diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index e83df8269e..921e9e598a 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -782,6 +782,14 @@ components:
required: true
schema:
type: string
+ MembershipSort:
+ description: >-
+ Field to sort memberships by. Supported values: `name`, `uuid`, `-name`, `-uuid`. Defaults to `uuid`.
+ in: query
+ name: sort
+ required: false
+ schema:
+ $ref: "#/components/schemas/OrgGroupMembershipSortOption"
MetricID:
description: The name of the log-based metric.
in: path
@@ -913,6 +921,148 @@ components:
example: "f9ec96b0-8c8a-4b0a-9b0a-1b2c3d4e5f6a"
format: uuid
type: string
+ OrgGroupId:
+ description: The ID of the org group.
+ in: path
+ name: org_group_id
+ required: true
+ schema:
+ example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
+ OrgGroupInclude:
+ description: >-
+ List of related resources to include.
+ explode: false
+ in: query
+ name: include
+ required: false
+ schema:
+ example:
+ - memberships
+ items:
+ $ref: "#/components/schemas/OrgGroupIncludeOption"
+ type: array
+ style: form
+ OrgGroupMembershipFilterOrgGroupId:
+ description: Filter memberships by org group ID. Required when `filter[org_uuid]` is not provided.
+ in: query
+ name: filter[org_group_id]
+ required: false
+ schema:
+ example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
+ OrgGroupMembershipFilterOrgUuid:
+ description: Filter memberships by org UUID. Returns a single-item list.
+ in: query
+ name: filter[org_uuid]
+ required: false
+ schema:
+ example: "b2c3d4e5-f6a7-8901-bcde-f01234567890"
+ format: uuid
+ type: string
+ OrgGroupMembershipId:
+ description: The ID of the org group membership.
+ in: path
+ name: org_group_membership_id
+ required: true
+ schema:
+ example: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ format: uuid
+ type: string
+ OrgGroupPageNumber:
+ description: The page number to return.
+ in: query
+ name: page[number]
+ required: false
+ schema:
+ default: 0
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ OrgGroupPageSize:
+ description: The number of items per page. Maximum is 1000.
+ in: query
+ name: page[size]
+ required: false
+ schema:
+ default: 50
+ example: 50
+ format: int64
+ maximum: 1000
+ minimum: 1
+ type: integer
+ OrgGroupPolicyFilterOrgGroupId:
+ description: Filter policies by org group ID.
+ in: query
+ name: filter[org_group_id]
+ required: true
+ schema:
+ example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
+ OrgGroupPolicyFilterPolicyName:
+ description: Filter policies by policy name.
+ in: query
+ name: filter[policy_name]
+ required: false
+ schema:
+ example: monitor_timezone
+ type: string
+ OrgGroupPolicyId:
+ description: The ID of the org group policy.
+ in: path
+ name: org_group_policy_id
+ required: true
+ schema:
+ example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
+ OrgGroupPolicyOverrideFilterOrgGroupId:
+ description: Filter policy overrides by org group ID.
+ in: query
+ name: filter[org_group_id]
+ required: true
+ schema:
+ example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
+ OrgGroupPolicyOverrideFilterPolicyId:
+ description: Filter policy overrides by policy ID.
+ in: query
+ name: filter[policy_id]
+ required: false
+ schema:
+ example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
+ OrgGroupPolicyOverrideId:
+ description: The ID of the org group policy override.
+ in: path
+ name: org_group_policy_override_id
+ required: true
+ schema:
+ example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321"
+ format: uuid
+ type: string
+ OrgGroupSort:
+ description: >-
+ Field to sort org groups by. Supported values: `name`, `uuid`, `-name`, `-uuid`. Defaults to `uuid`.
+ in: query
+ name: sort
+ required: false
+ schema:
+ $ref: "#/components/schemas/OrgGroupSortOption"
+ OverrideSort:
+ description: >-
+ Field to sort overrides by. Supported values: `id`, `org_uuid`, `-id`, `-org_uuid`. Defaults to `id`.
+ in: query
+ name: sort
+ required: false
+ schema:
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideSortOption"
PageNumber:
description: Specific page number to return.
in: query
@@ -951,6 +1101,14 @@ components:
required: true
schema:
type: string
+ PolicySort:
+ description: >-
+ Field to sort policies by. Supported values: `id`, `name`, `-id`, `-name`. Defaults to `id`.
+ in: query
+ name: sort
+ required: false
+ schema:
+ $ref: "#/components/schemas/OrgGroupPolicySortOption"
ProductName:
description: Name of the product to be deleted, either `logs` or `rum`.
in: path
@@ -29499,6 +29657,22 @@ components:
type: string
x-enum-varnames:
- INCIDENTS_GLOBAL_SETTINGS
+ GlobalOrgIdentifier:
+ description: A unique identifier for an organization including its site.
+ properties:
+ org_site:
+ description: The site of the organization.
+ example: "datadoghq.com"
+ type: string
+ org_uuid:
+ description: The UUID of the organization.
+ example: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ format: uuid
+ type: string
+ required:
+ - org_uuid
+ - org_site
+ type: object
GlobalVariableData:
description: Synthetics global variable data. Wrapper around the global variable object.
properties:
@@ -48155,853 +48329,1745 @@ components:
type: string
x-enum-varnames:
- USERS
- Organization:
- description: Organization object.
- properties:
- attributes:
- $ref: "#/components/schemas/OrganizationAttributes"
- id:
- description: ID of the organization.
- type: string
- type:
- $ref: "#/components/schemas/OrganizationsType"
- required:
- - type
- type: object
- OrganizationAttributes:
- description: Attributes of the organization.
+ OrgGroupAttributes:
+ description: Attributes of an org group.
properties:
created_at:
- description: Creation time of the organization.
+ description: Timestamp when the org group was created.
+ example: "2024-01-15T10:30:00Z"
format: date-time
type: string
- description:
- description: Description of the organization.
- type: string
- disabled:
- description: Whether or not the organization is disabled.
- type: boolean
modified_at:
- description: Time of last organization modification.
+ description: Timestamp when the org group was last modified.
+ example: "2024-01-15T10:30:00Z"
format: date-time
type: string
name:
- description: Name of the organization.
- type: string
- public_id:
- description: Public ID of the organization.
+ description: The name of the org group.
+ example: "My Org Group"
type: string
- sharing:
- description: Sharing type of the organization.
+ owner_org_site:
+ description: The site of the organization that owns this org group.
+ example: "datadoghq.com"
type: string
- url:
- description: URL of the site that this organization exists at.
+ owner_org_uuid:
+ description: The UUID of the organization that owns this org group.
+ example: "b2c3d4e5-f6a7-8901-bcde-f01234567890"
+ format: uuid
type: string
+ required:
+ - name
+ - owner_org_uuid
+ - owner_org_site
+ - created_at
+ - modified_at
type: object
- OrganizationsType:
- default: orgs
- description: Organizations resource type.
- enum:
- - orgs
- example: orgs
- type: string
- x-enum-varnames:
- - ORGS
- OutboundEdge:
- description: The definition of `OutboundEdge` object.
+ OrgGroupCreateAttributes:
+ description: Attributes for creating an org group.
properties:
- branchName:
- description: The `OutboundEdge` `branchName`.
- example: ""
- type: string
- nextStepName:
- description: The `OutboundEdge` `nextStepName`.
- example: ""
+ name:
+ description: The name of the org group.
+ example: "My Org Group"
type: string
required:
- - nextStepName
- - branchName
+ - name
type: object
- OutcomeType:
- default: outcome
- description: The JSON:API type for an outcome.
- enum:
- - outcome
- example: outcome
- type: string
- x-enum-varnames:
- - OUTCOME
- OutcomesBatchAttributes:
- description: The JSON:API attributes for a batched set of scorecard outcomes.
+ OrgGroupCreateData:
+ description: Data for creating an org group.
properties:
- results:
- description: Set of scorecard outcomes to update.
- items:
- $ref: "#/components/schemas/OutcomesBatchRequestItem"
- type: array
+ attributes:
+ $ref: "#/components/schemas/OrgGroupCreateAttributes"
+ type:
+ $ref: "#/components/schemas/OrgGroupType"
+ required:
+ - type
+ - attributes
type: object
- OutcomesBatchRequest:
- description: Scorecard outcomes batch request.
+ OrgGroupCreateRequest:
+ description: Request to create an org group.
properties:
data:
- $ref: "#/components/schemas/OutcomesBatchRequestData"
+ $ref: "#/components/schemas/OrgGroupCreateData"
+ required:
+ - data
type: object
- OutcomesBatchRequestData:
- description: Scorecard outcomes batch request data.
+ OrgGroupData:
+ description: An org group resource.
properties:
attributes:
- $ref: "#/components/schemas/OutcomesBatchAttributes"
- type:
- $ref: "#/components/schemas/OutcomesBatchType"
- type: object
- OutcomesBatchRequestItem:
- description: Scorecard outcome for a specific rule, for a given service within a batched update.
- properties:
- remarks:
- description: >-
- Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks.
- example: 'See: Services'
- type: string
- rule_id:
- $ref: "#/components/schemas/RuleId"
- service_name:
- description: The unique name for a service in the catalog.
- example: my-service
+ $ref: "#/components/schemas/OrgGroupAttributes"
+ id:
+ description: The ID of the org group.
+ example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ format: uuid
type: string
- state:
- $ref: "#/components/schemas/State"
+ relationships:
+ $ref: "#/components/schemas/OrgGroupRelationships"
+ type:
+ $ref: "#/components/schemas/OrgGroupType"
required:
- - rule_id
- - service_name
- - state
+ - id
+ - type
+ - attributes
type: object
- OutcomesBatchResponse:
- description: Scorecard outcomes batch response.
+ OrgGroupIncludeOption:
+ description: Allowed include options for org group endpoints.
+ enum:
+ - memberships
+ type: string
+ x-enum-varnames:
+ - MEMBERSHIPS
+ OrgGroupListResponse:
+ description: Response containing a list of org groups.
properties:
data:
- $ref: "#/components/schemas/OutcomesBatchResponseData"
+ description: An array of org groups.
+ items:
+ $ref: "#/components/schemas/OrgGroupData"
+ type: array
+ included:
+ description: Included related resources (memberships when requested via include parameter).
+ items:
+ $ref: "#/components/schemas/OrgGroupMembershipData"
+ type: array
meta:
- $ref: "#/components/schemas/OutcomesBatchResponseMeta"
+ $ref: "#/components/schemas/OrgGroupPaginationMeta"
required:
- data
- - meta
type: object
- OutcomesBatchResponseAttributes:
- description: The JSON:API attributes for an outcome.
+ OrgGroupMembershipAttributes:
+ description: Attributes of an org group membership.
properties:
created_at:
- description: Creation time of the rule outcome.
+ description: Timestamp when the membership was created.
+ example: "2024-01-15T10:30:00Z"
format: date-time
type: string
modified_at:
- description: Time of last rule outcome modification.
+ description: Timestamp when the membership was last modified.
+ example: "2024-01-15T10:30:00Z"
format: date-time
type: string
- remarks:
- description: >-
- Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks.
- example: 'See: Services'
+ org_name:
+ description: The name of the member organization.
+ example: "Acme Corp"
type: string
- service_name:
- description: The unique name for a service in the catalog.
- example: my-service
+ org_site:
+ description: The site of the member organization.
+ example: "datadoghq.com"
type: string
- state:
- $ref: "#/components/schemas/State"
+ org_uuid:
+ description: The UUID of the member organization.
+ example: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ format: uuid
+ type: string
+ required:
+ - org_name
+ - org_uuid
+ - org_site
+ - created_at
+ - modified_at
type: object
- OutcomesBatchResponseData:
- description: List of rule outcomes which were affected during the bulk operation.
- items:
- $ref: "#/components/schemas/OutcomesResponseDataItem"
- type: array
- OutcomesBatchResponseMeta:
- description: Metadata pertaining to the bulk operation.
+ OrgGroupMembershipBulkUpdateAttributes:
+ description: Attributes for bulk updating org group memberships.
properties:
- total_received:
- description: Total number of scorecard results received during the bulk operation.
- format: int64
- type: integer
- total_updated:
- description: Total number of scorecard results modified during the bulk operation.
- format: int64
- type: integer
+ orgs:
+ description: List of organizations to move. Maximum 100 per request.
+ items:
+ $ref: "#/components/schemas/GlobalOrgIdentifier"
+ type: array
+ required:
+ - orgs
type: object
- OutcomesBatchType:
- default: batched-outcome
- description: The JSON:API type for scorecard outcomes.
- enum: [batched-outcome]
- example: batched-outcome
- type: string
- x-enum-varnames: [BATCHED_OUTCOME]
- OutcomesResponse:
- description: Scorecard outcomes - the result of a rule for a service.
+ OrgGroupMembershipBulkUpdateData:
+ description: Data for bulk updating org group memberships.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateAttributes"
+ relationships:
+ $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateRelationships"
+ type:
+ $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateType"
+ required:
+ - type
+ - attributes
+ - relationships
+ type: object
+ OrgGroupMembershipBulkUpdateRelationships:
+ description: Relationships for bulk updating memberships.
+ properties:
+ source_org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
+ target_org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
+ required:
+ - source_org_group
+ - target_org_group
+ type: object
+ OrgGroupMembershipBulkUpdateRequest:
+ description: Request to bulk update org group memberships.
properties:
data:
- $ref: "#/components/schemas/OutcomesResponseData"
- included:
- $ref: "#/components/schemas/OutcomesResponseIncluded"
- links:
- $ref: "#/components/schemas/OutcomesResponseLinks"
+ $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateData"
+ required:
+ - data
type: object
- OutcomesResponseData:
- description: List of rule outcomes.
- items:
- $ref: "#/components/schemas/OutcomesResponseDataItem"
- type: array
- OutcomesResponseDataItem:
- description: A single rule outcome.
+ OrgGroupMembershipBulkUpdateType:
+ description: Org group membership bulk update resource type.
+ enum:
+ - org_group_membership_bulk_updates
+ example: org_group_membership_bulk_updates
+ type: string
+ x-enum-varnames:
+ - ORG_GROUP_MEMBERSHIP_BULK_UPDATES
+ OrgGroupMembershipData:
+ description: An org group membership resource.
properties:
attributes:
- $ref: "#/components/schemas/OutcomesBatchResponseAttributes"
+ $ref: "#/components/schemas/OrgGroupMembershipAttributes"
id:
- description: The unique ID for a rule outcome.
+ description: The ID of the org group membership.
+ example: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ format: uuid
type: string
relationships:
- $ref: "#/components/schemas/RuleOutcomeRelationships"
+ $ref: "#/components/schemas/OrgGroupMembershipRelationships"
type:
- $ref: "#/components/schemas/OutcomeType"
+ $ref: "#/components/schemas/OrgGroupMembershipType"
+ required:
+ - id
+ - type
+ - attributes
type: object
- OutcomesResponseIncluded:
- description: Array of rule details.
- items:
- $ref: "#/components/schemas/OutcomesResponseIncludedItem"
- type: array
- OutcomesResponseIncludedItem:
- description: Attributes of the included rule.
+ OrgGroupMembershipListResponse:
+ description: Response containing a list of org group memberships.
+ properties:
+ data:
+ description: An array of org group memberships.
+ items:
+ $ref: "#/components/schemas/OrgGroupMembershipData"
+ type: array
+ meta:
+ $ref: "#/components/schemas/OrgGroupPaginationMeta"
+ required:
+ - data
+ type: object
+ OrgGroupMembershipRelationshipData:
+ description: A reference to an org group membership.
properties:
- attributes:
- $ref: "#/components/schemas/OutcomesResponseIncludedRuleAttributes"
id:
- $ref: "#/components/schemas/RuleId"
+ description: The ID of the membership.
+ example: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ format: uuid
+ type: string
type:
- $ref: "#/components/schemas/RuleType"
+ $ref: "#/components/schemas/OrgGroupMembershipType"
+ required:
+ - id
+ - type
type: object
- OutcomesResponseIncludedRuleAttributes:
- description: Details of a rule.
+ OrgGroupMembershipRelationships:
+ description: Relationships of an org group membership.
properties:
- name:
- description: Name of the rule.
- example: Team Defined
- type: string
- scorecard_name:
- description: The scorecard name to which this rule must belong.
- example: Observability Best Practices
- type: string
+ org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
type: object
- OutcomesResponseLinks:
- description: Links attributes.
+ OrgGroupMembershipResponse:
+ description: Response containing a single org group membership.
properties:
- next:
- description: |-
- Link for the next set of results.
- example: "/api/v2/scorecard/outcomes?include=rule&page%5Blimit%5D=100&page%5Boffset%5D=100"
+ data:
+ $ref: "#/components/schemas/OrgGroupMembershipData"
+ required:
+ - data
+ type: object
+ OrgGroupMembershipSortOption:
+ default: uuid
+ description: Field to sort memberships by.
+ enum:
+ - name
+ - -name
+ - uuid
+ - -uuid
+ example: uuid
+ type: string
+ x-enum-varnames:
+ - NAME
+ - MINUS_NAME
+ - UUID
+ - MINUS_UUID
+ OrgGroupMembershipType:
+ description: Org group memberships resource type.
+ enum:
+ - org_group_memberships
+ example: org_group_memberships
+ type: string
+ x-enum-varnames:
+ - ORG_GROUP_MEMBERSHIPS
+ OrgGroupMembershipUpdateData:
+ description: Data for updating an org group membership.
+ properties:
+ id:
+ description: The ID of the membership.
+ example: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ format: uuid
type: string
+ relationships:
+ $ref: "#/components/schemas/OrgGroupMembershipUpdateRelationships"
+ type:
+ $ref: "#/components/schemas/OrgGroupMembershipType"
+ required:
+ - id
+ - type
+ - relationships
type: object
- OutputSchema:
- description: "A list of output parameters for the workflow."
+ OrgGroupMembershipUpdateRelationships:
+ description: Relationships for updating a membership.
properties:
- parameters:
- description: The `OutputSchema` `parameters`.
+ org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
+ required:
+ - org_group
+ type: object
+ OrgGroupMembershipUpdateRequest:
+ description: Request to update an org group membership.
+ properties:
+ data:
+ $ref: "#/components/schemas/OrgGroupMembershipUpdateData"
+ required:
+ - data
+ type: object
+ OrgGroupMembershipsRelationship:
+ description: Relationship to org group memberships.
+ properties:
+ data:
+ description: An array of membership relationship references.
items:
- $ref: "#/components/schemas/OutputSchemaParameters"
+ $ref: "#/components/schemas/OrgGroupMembershipRelationshipData"
type: array
+ required:
+ - data
type: object
- OutputSchemaParameters:
- description: The definition of `OutputSchemaParameters` object.
+ OrgGroupPaginationMeta:
+ description: Pagination metadata.
properties:
- defaultValue:
- description: The `OutputSchemaParameters` `defaultValue`.
- description:
- description: The `OutputSchemaParameters` `description`.
+ page:
+ $ref: "#/components/schemas/OrgGroupPaginationMetaPage"
+ required:
+ - page
+ type: object
+ OrgGroupPaginationMetaPage:
+ description: Page-based pagination details.
+ properties:
+ total_count:
+ description: The total number of items.
+ example: 42
+ format: int64
+ type: integer
+ required:
+ - total_count
+ type: object
+ OrgGroupPolicyAttributes:
+ description: Attributes of an org group policy.
+ properties:
+ content:
+ additionalProperties: {}
+ description: The policy content as key-value pairs.
+ example:
+ value: "UTC"
+ type: object
+ enforced_at:
+ description: Timestamp when the policy was enforced.
+ example: "2024-01-15T10:30:00Z"
+ format: date-time
type: string
- label:
- description: The `OutputSchemaParameters` `label`.
+ modified_at:
+ description: Timestamp when the policy was last modified.
+ example: "2024-01-15T10:30:00Z"
+ format: date-time
+ type: string
+ policy_name:
+ description: The name of the policy.
+ example: "monitor_timezone"
+ type: string
+ required:
+ - policy_name
+ - enforced_at
+ - modified_at
+ type: object
+ OrgGroupPolicyConfigAttributes:
+ description: Attributes of an org group policy config.
+ properties:
+ allowed_values:
+ description: The allowed values for this config.
+ example: ["UTC", "US/Eastern", "US/Pacific"]
+ items:
+ description: An allowed value for this config.
+ type: string
+ type: array
+ default_value:
+ description: The default value for this config.
+ example: "UTC"
+ description:
+ description: The description of the policy config.
+ example: "The default timezone for monitors."
type: string
name:
- description: The `OutputSchemaParameters` `name`.
- example: ""
+ description: The name of the policy config.
+ example: "monitor_timezone"
+ type: string
+ value_type:
+ description: The type of the value for this config.
+ example: "string"
type: string
- type:
- $ref: "#/components/schemas/OutputSchemaParametersType"
- value:
- description: The `OutputSchemaParameters` `value`.
required:
- name
+ - description
+ - value_type
+ - allowed_values
+ - default_value
+ type: object
+ OrgGroupPolicyConfigData:
+ description: An org group policy config resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/OrgGroupPolicyConfigAttributes"
+ id:
+ description: The identifier of the policy config (uses the config name).
+ example: "monitor_timezone"
+ type: string
+ type:
+ $ref: "#/components/schemas/OrgGroupPolicyConfigType"
+ required:
+ - id
- type
+ - attributes
type: object
- OutputSchemaParametersType:
- description: The definition of `OutputSchemaParametersType` object.
- enum:
- - STRING
- - NUMBER
- - BOOLEAN
- - OBJECT
- - ARRAY_STRING
- - ARRAY_NUMBER
- - ARRAY_BOOLEAN
- - ARRAY_OBJECT
- example: STRING
- type: string
- x-enum-varnames:
- - STRING
- - NUMBER
- - BOOLEAN
- - OBJECT
- - ARRAY_STRING
- - ARRAY_NUMBER
- - ARRAY_BOOLEAN
- - ARRAY_OBJECT
- OverwriteAllocationsRequest:
- description: Request to overwrite targeting rules (allocations) for a feature flag in an environment.
+ OrgGroupPolicyConfigListResponse:
+ description: Response containing a list of org group policy configs.
properties:
data:
- description: Targeting rules (allocations) to replace existing ones with.
+ description: An array of org group policy configs.
items:
- $ref: "#/components/schemas/AllocationDataRequest"
+ $ref: "#/components/schemas/OrgGroupPolicyConfigData"
type: array
required:
- data
type: object
- PageUrgency:
- default: high
- description: On-Call Page urgency level.
+ OrgGroupPolicyConfigType:
+ description: Org group policy configs resource type.
enum:
- - low
- - high
- example: high
+ - org_group_policy_configs
+ example: org_group_policy_configs
type: string
x-enum-varnames:
- - LOW
- - HIGH
- Pagination:
- description: Pagination object.
+ - ORG_GROUP_POLICY_CONFIGS
+ OrgGroupPolicyCreateAttributes:
+ description: Attributes for creating an org group policy.
properties:
- total_count:
- description: Total count.
- format: int64
- type: integer
- total_filtered_count:
- description: Total count of elements matched by the filter.
- format: int64
- type: integer
+ content:
+ additionalProperties: {}
+ description: The policy content as key-value pairs.
+ example:
+ value: "UTC"
+ type: object
+ policy_name:
+ description: The name of the policy.
+ example: "monitor_timezone"
+ type: string
+ required:
+ - policy_name
+ - content
type: object
- PaginationMeta:
- description: Response metadata.
+ OrgGroupPolicyCreateData:
+ description: Data for creating an org group policy.
properties:
- page:
- $ref: "#/components/schemas/PaginationMetaPage"
- readOnly: true
+ attributes:
+ $ref: "#/components/schemas/OrgGroupPolicyCreateAttributes"
+ relationships:
+ $ref: "#/components/schemas/OrgGroupPolicyCreateRelationships"
+ type:
+ $ref: "#/components/schemas/OrgGroupPolicyType"
+ required:
+ - type
+ - attributes
+ - relationships
type: object
- PaginationMetaPage:
- description: Offset-based pagination schema.
- example:
- first_offset: 0
- last_offset: 900
- limit: 100
- next_offset: 100
- offset: 0
- prev_offset: 100
- total: 1000
- type: offset_limit
+ OrgGroupPolicyCreateRelationships:
+ description: Relationships for creating a policy.
properties:
- first_offset:
- description: Integer representing the offset to fetch the first page of results.
- example: 0
- format: int64
- type: integer
- last_offset:
- description: Integer representing the offset to fetch the last page of results.
- example: 900
- format: int64
- nullable: true
- type: integer
- limit:
- description: Integer representing the number of elements to be returned in the results.
- example: 100
- format: int64
- type: integer
- next_offset:
- description: >-
- Integer representing the index of the first element in the next page of results. Equal to page size added to the current offset.
- example: 100
- format: int64
- nullable: true
- type: integer
- offset:
- description: Integer representing the index of the first element in the results.
- example: 0
- format: int64
- type: integer
- prev_offset:
- description: Integer representing the index of the first element in the previous page of results.
- example: 100
- format: int64
- nullable: true
- type: integer
- total:
- description: Integer representing the total number of elements available.
- example: 1000
- format: int64
- nullable: true
- type: integer
- type:
- $ref: "#/components/schemas/PaginationMetaPageType"
+ org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
+ required:
+ - org_group
type: object
- PaginationMetaPageType:
- default: offset_limit
- description: The pagination type used for offset-based pagination.
- enum:
- - offset_limit
- example: offset_limit
- type: string
- x-enum-varnames:
- - OFFSET_LIMIT
- Parameter:
- description: The definition of `Parameter` object.
+ OrgGroupPolicyCreateRequest:
+ description: Request to create an org group policy.
properties:
- name:
- description: The `Parameter` `name`.
- example: ""
- type: string
- value:
- description: The `Parameter` `value`.
+ data:
+ $ref: "#/components/schemas/OrgGroupPolicyCreateData"
required:
- - name
- - value
+ - data
type: object
- PartialAPIKey:
- description: Partial Datadog API key.
+ OrgGroupPolicyData:
+ description: An org group policy resource.
properties:
attributes:
- $ref: "#/components/schemas/PartialAPIKeyAttributes"
+ $ref: "#/components/schemas/OrgGroupPolicyAttributes"
id:
- description: ID of the API key.
+ description: The ID of the org group policy.
+ example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ format: uuid
type: string
relationships:
- $ref: "#/components/schemas/APIKeyRelationships"
+ $ref: "#/components/schemas/OrgGroupPolicyRelationships"
type:
- $ref: "#/components/schemas/APIKeysType"
+ $ref: "#/components/schemas/OrgGroupPolicyType"
+ required:
+ - id
+ - type
+ - attributes
type: object
- PartialAPIKeyAttributes:
- description: Attributes of a partial API key.
+ OrgGroupPolicyListResponse:
+ description: Response containing a list of org group policies.
properties:
- category:
- description: The category of the API key.
- type: string
+ data:
+ description: An array of org group policies.
+ items:
+ $ref: "#/components/schemas/OrgGroupPolicyData"
+ type: array
+ meta:
+ $ref: "#/components/schemas/OrgGroupPaginationMeta"
+ required:
+ - data
+ type: object
+ OrgGroupPolicyOverrideAttributes:
+ description: Attributes of an org group policy override.
+ properties:
+ content:
+ additionalProperties: {}
+ description: The override content as key-value pairs.
+ type: object
created_at:
- description: Creation date of the API key.
- example: "2020-11-23T10:00:00.000Z"
- readOnly: true
+ description: Timestamp when the override was created.
+ example: "2024-01-15T10:30:00Z"
+ format: date-time
type: string
- date_last_used:
- description: Date the API Key was last used.
- example: "2020-11-27T10:00:00.000Z"
+ modified_at:
+ description: Timestamp when the override was last modified.
+ example: "2024-01-15T10:30:00Z"
format: date-time
- nullable: true
- readOnly: true
type: string
- last4:
- description: The last four characters of the API key.
- example: "abcd"
- maxLength: 4
- minLength: 4
- readOnly: true
+ org_site:
+ description: The site of the organization that has the override.
+ example: "datadoghq.com"
type: string
- modified_at:
- description: Date the API key was last modified.
- example: "2020-11-23T10:00:00.000Z"
- readOnly: true
+ org_uuid:
+ description: The UUID of the organization that has the override.
+ example: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ format: uuid
type: string
- name:
- description: Name of the API key.
- example: "API Key for submitting metrics"
+ required:
+ - org_uuid
+ - org_site
+ - created_at
+ - modified_at
+ type: object
+ OrgGroupPolicyOverrideCreateAttributes:
+ description: Attributes for creating a policy override.
+ properties:
+ org_site:
+ description: The site of the organization.
+ example: "datadoghq.com"
type: string
- remote_config_read_enabled:
- description: The remote config read enabled status.
- type: boolean
+ org_uuid:
+ description: The UUID of the organization to grant the override.
+ example: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ format: uuid
+ type: string
+ required:
+ - org_uuid
+ - org_site
type: object
- PartialApplicationKey:
- description: Partial Datadog application key.
+ OrgGroupPolicyOverrideCreateData:
+ description: Data for creating an org group policy override.
properties:
attributes:
- $ref: "#/components/schemas/PartialApplicationKeyAttributes"
- id:
- description: ID of the application key.
- type: string
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateAttributes"
relationships:
- $ref: "#/components/schemas/ApplicationKeyRelationships"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateRelationships"
type:
- $ref: "#/components/schemas/ApplicationKeysType"
- type: object
- PartialApplicationKeyAttributes:
- description: Attributes of a partial application key.
- properties:
- created_at:
- description: Creation date of the application key.
- example: "2020-11-23T10:00:00.000Z"
- readOnly: true
- type: string
- last4:
- description: The last four characters of the application key.
- example: "abcd"
- maxLength: 4
- minLength: 4
- readOnly: true
- type: string
- last_used_at:
- description: Last usage timestamp of the application key.
- example: "2020-12-20T10:00:00.000Z"
- nullable: true
- readOnly: true
- type: string
- name:
- description: Name of the application key.
- example: "Application Key for managing dashboards"
- type: string
- scopes:
- description: Array of scopes to grant the application key.
- example: ["dashboards_read", "dashboards_write", "dashboards_public_share"]
- items:
- description: Name of scope.
- type: string
- nullable: true
- type: array
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideType"
+ required:
+ - type
+ - attributes
+ - relationships
type: object
- PartialApplicationKeyResponse:
- description: Response for retrieving a partial application key.
+ OrgGroupPolicyOverrideCreateRelationships:
+ description: Relationships for creating a policy override.
properties:
- data:
- $ref: "#/components/schemas/PartialApplicationKey"
- included:
- description: Array of objects related to the application key.
- items:
- $ref: "#/components/schemas/ApplicationKeyResponseIncludedItem"
- type: array
+ org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
+ org_group_policy:
+ $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOne"
+ required:
+ - org_group
+ - org_group_policy
type: object
- PatchAttachmentRequest:
- description: Request to update an attachment.
+ OrgGroupPolicyOverrideCreateRequest:
+ description: Request to create an org group policy override.
properties:
data:
- $ref: "#/components/schemas/PatchAttachmentRequestData"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateData"
+ required:
+ - data
type: object
- PatchAttachmentRequestData:
- description: Attachment data for an update request.
+ OrgGroupPolicyOverrideData:
+ description: An org group policy override resource.
properties:
attributes:
- $ref: "#/components/schemas/PatchAttachmentRequestDataAttributes"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideAttributes"
id:
- description: The unique identifier of the attachment.
- example: "00000000-abcd-0002-0000-000000000000"
+ description: The ID of the policy override.
+ example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321"
+ format: uuid
type: string
+ relationships:
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideRelationships"
type:
- $ref: "#/components/schemas/IncidentAttachmentType"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideType"
required:
+ - id
- type
+ - attributes
type: object
- PatchAttachmentRequestDataAttributes:
- description: The attributes for updating an attachment.
+ OrgGroupPolicyOverrideListResponse:
+ description: Response containing a list of org group policy overrides.
properties:
- attachment:
- $ref: "#/components/schemas/PatchAttachmentRequestDataAttributesAttachment"
+ data:
+ description: An array of org group policy overrides.
+ items:
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideData"
+ type: array
+ meta:
+ $ref: "#/components/schemas/OrgGroupPaginationMeta"
+ required:
+ - data
type: object
- PatchAttachmentRequestDataAttributesAttachment:
- description: The updated attachment object.
+ OrgGroupPolicyOverrideRelationships:
+ description: Relationships of an org group policy override.
properties:
- documentUrl:
- description: The updated URL for the attachment.
- example: https://app.datadoghq.com/notebook/124/Postmortem-IR-124
- type: string
- title:
- description: The updated title for the attachment.
- example: Postmortem-IR-124
- type: string
+ org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
+ org_group_policy:
+ $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOne"
type: object
- PatchComponentRequest:
- description: Request object for updating a component.
- example:
- data:
- attributes:
- name: Metrics Intake Service
- position: 4
- id: 1234abcd-12ab-34cd-56ef-123456abcdef
- type: components
+ OrgGroupPolicyOverrideResponse:
+ description: Response containing a single org group policy override.
properties:
data:
- $ref: "#/components/schemas/PatchComponentRequestData"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideData"
+ required:
+ - data
type: object
- PatchComponentRequestData:
- description: The data object for updating a component.
+ OrgGroupPolicyOverrideSortOption:
+ default: id
+ description: Field to sort overrides by.
+ enum:
+ - id
+ - -id
+ - org_uuid
+ - -org_uuid
+ example: id
+ type: string
+ x-enum-varnames:
+ - ID
+ - MINUS_ID
+ - ORG_UUID
+ - MINUS_ORG_UUID
+ OrgGroupPolicyOverrideType:
+ description: Org group policy overrides resource type.
+ enum:
+ - org_group_policy_overrides
+ example: org_group_policy_overrides
+ type: string
+ x-enum-varnames:
+ - ORG_GROUP_POLICY_OVERRIDES
+ OrgGroupPolicyOverrideUpdateAttributes:
+ description: Attributes for updating a policy override.
+ properties:
+ org_site:
+ description: The site of the organization.
+ example: "datadoghq.com"
+ type: string
+ org_uuid:
+ description: The UUID of the organization.
+ example: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ format: uuid
+ type: string
+ required:
+ - org_uuid
+ - org_site
+ type: object
+ OrgGroupPolicyOverrideUpdateData:
+ description: Data for updating a policy override.
properties:
attributes:
- $ref: "#/components/schemas/PatchComponentRequestDataAttributes"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideUpdateAttributes"
id:
- description: The ID of the component.
- example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ description: The ID of the policy override.
+ example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321"
format: uuid
type: string
type:
- $ref: "#/components/schemas/StatusPagesComponentGroupType"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideType"
required:
- - attributes
- id
- type
+ - attributes
type: object
- PatchComponentRequestDataAttributes:
- description: The supported attributes for updating a component.
+ OrgGroupPolicyOverrideUpdateRequest:
+ description: Request to update an org group policy override.
properties:
- name:
- description: The name of the component.
- example: Web App
- type: string
- position:
- description: The position of the component. If the component belongs to a group, the position is relative to the other components in the group.
- example: 1
- format: int64
- type: integer
- type: object
- PatchDegradationRequest:
- description: Request object for updating a degradation.
- example:
data:
- attributes:
- components_affected:
- - id: 1234abcd-12ab-34cd-56ef-123456abcdef
- status: operational
- description: We've deployed a fix and latency has returned to normal. This issue has been resolved.
- status: resolved
- id: 1234abcd-12ab-34cd-56ef-123456abcdef
- type: degradations
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideUpdateData"
+ required:
+ - data
+ type: object
+ OrgGroupPolicyRelationshipToOne:
+ description: Relationship to a single org group policy.
properties:
data:
- $ref: "#/components/schemas/PatchDegradationRequestData"
+ $ref: "#/components/schemas/OrgGroupPolicyRelationshipToOneData"
+ required:
+ - data
type: object
- PatchDegradationRequestData:
- description: The data object for updating a degradation.
+ OrgGroupPolicyRelationshipToOneData:
+ description: A reference to an org group policy.
properties:
- attributes:
- $ref: "#/components/schemas/PatchDegradationRequestDataAttributes"
id:
- description: The ID of the degradation.
- example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ description: The ID of the policy.
+ example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
format: uuid
type: string
type:
- $ref: "#/components/schemas/PatchDegradationRequestDataType"
+ $ref: "#/components/schemas/OrgGroupPolicyType"
required:
- - attributes
- id
- type
type: object
- PatchDegradationRequestDataAttributes:
- description: The supported attributes for updating a degradation.
+ OrgGroupPolicyRelationships:
+ description: Relationships of an org group policy.
properties:
- components_affected:
- description: The components affected by the degradation.
- example:
- - id: 1234abcd-12ab-34cd-56ef-123456abcdef
- status: operational
- items:
- $ref: "#/components/schemas/PatchDegradationRequestDataAttributesComponentsAffectedItems"
- type: array
- description:
- description: The description of the degradation.
- example: We've deployed a fix and latency has returned to normal. This issue has been resolved.
- type: string
- status:
- $ref: "#/components/schemas/PatchDegradationRequestDataAttributesStatus"
- example: resolved
- title:
- description: The title of the degradation.
- example: Elevated API Latency
- type: string
+ org_group:
+ $ref: "#/components/schemas/OrgGroupRelationshipToOne"
type: object
- PatchDegradationRequestDataAttributesComponentsAffectedItems:
- description: A component affected by a degradation.
+ OrgGroupPolicyResponse:
+ description: Response containing a single org group policy.
properties:
- id:
- description: The ID of the component. Must be a component of type `component`.
- example: "1234abcd-12ab-34cd-56ef-123456abcdef"
- format: uuid
- type: string
- name:
- description: The name of the component.
- readOnly: true
- type: string
- status:
- $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus"
+ data:
+ $ref: "#/components/schemas/OrgGroupPolicyData"
required:
- - id
- - status
+ - data
type: object
- PatchDegradationRequestDataAttributesStatus:
- description: The status of the degradation.
+ OrgGroupPolicySortOption:
+ default: id
+ description: Field to sort policies by.
enum:
- - investigating
- - identified
- - monitoring
- - resolved
+ - id
+ - -id
+ - name
+ - -name
+ example: id
type: string
x-enum-varnames:
- - INVESTIGATING
- - IDENTIFIED
- - MONITORING
- - RESOLVED
- PatchDegradationRequestDataType:
- default: degradations
- description: Degradations resource type.
+ - ID
+ - MINUS_ID
+ - NAME
+ - MINUS_NAME
+ OrgGroupPolicyType:
+ description: Org group policies resource type.
enum:
- - degradations
- example: degradations
+ - org_group_policies
+ example: org_group_policies
type: string
x-enum-varnames:
- - DEGRADATIONS
- PatchIncidentNotificationTemplateRequest:
- description: Update request for a notification template.
+ - ORG_GROUP_POLICIES
+ OrgGroupPolicyUpdateAttributes:
+ description: Attributes for updating an org group policy.
+ properties:
+ content:
+ additionalProperties: {}
+ description: The policy content as key-value pairs.
+ example:
+ value: "UTC"
+ type: object
+ type: object
+ OrgGroupPolicyUpdateData:
+ description: Data for updating an org group policy.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/OrgGroupPolicyUpdateAttributes"
+ id:
+ description: The ID of the policy.
+ example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
+ type:
+ $ref: "#/components/schemas/OrgGroupPolicyType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ OrgGroupPolicyUpdateRequest:
+ description: Request to update an org group policy.
properties:
data:
- $ref: "#/components/schemas/IncidentNotificationTemplateUpdateData"
+ $ref: "#/components/schemas/OrgGroupPolicyUpdateData"
required:
- data
type: object
- PatchMaintenanceRequest:
- description: Request object for updating a maintenance.
- example:
- data:
- attributes:
- completed_date: "2026-02-18T20:01:13.332360075Z"
- in_progress_description: We are currently performing maintenance on the API to improve performance for 40 minutes.
- scheduled_description: We will be performing maintenance on the API to improve performance for 40 minutes.
- start_date: "2026-02-18T19:21:13.332360075Z"
- title: API Maintenance
- id: 1234abcd-12ab-34cd-56ef-123456abcdef
- type: maintenances
+ OrgGroupRelationshipToOne:
+ description: Relationship to a single org group.
properties:
data:
- $ref: "#/components/schemas/PatchMaintenanceRequestData"
+ $ref: "#/components/schemas/OrgGroupRelationshipToOneData"
+ required:
+ - data
type: object
- PatchMaintenanceRequestData:
- description: The data object for updating a maintenance.
+ OrgGroupRelationshipToOneData:
+ description: A reference to an org group.
properties:
- attributes:
- $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributes"
id:
- description: The ID of the maintenance.
- example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ description: The ID of the org group.
+ example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
format: uuid
type: string
type:
- $ref: "#/components/schemas/PatchMaintenanceRequestDataType"
+ $ref: "#/components/schemas/OrgGroupType"
required:
- - attributes
- - type
- id
+ - type
type: object
- PatchMaintenanceRequestDataAttributes:
- description: The supported attributes for updating a maintenance.
+ OrgGroupRelationships:
+ description: Relationships of an org group.
properties:
- completed_date:
- description: Timestamp of when the maintenance was completed.
- format: date-time
- type: string
- completed_description:
- description: The description shown when the maintenance is completed.
- type: string
- components_affected:
- description: The components affected by the maintenance.
- items:
- $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItems"
- type: array
- in_progress_description:
- description: The description shown while the maintenance is in progress.
- type: string
- scheduled_description:
- description: The description shown when the maintenance is scheduled.
- type: string
- start_date:
- description: Timestamp of when the maintenance is scheduled to start.
- format: date-time
- type: string
- status:
- $ref: "#/components/schemas/MaintenanceDataAttributesStatus"
- description: The status of the maintenance.
- title:
- description: The title of the maintenance.
- type: string
+ memberships:
+ $ref: "#/components/schemas/OrgGroupMembershipsRelationship"
type: object
- PatchMaintenanceRequestDataAttributesComponentsAffectedItems:
- description: A component affected by a maintenance.
+ OrgGroupResponse:
+ description: Response containing a single org group.
properties:
- id:
- description: The ID of the component. Must be a component of type `component`.
- example: "1234abcd-12ab-34cd-56ef-123456abcdef"
- format: uuid
- type: string
- name:
- description: The name of the component.
- readOnly: true
- type: string
- status:
- $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus"
+ data:
+ $ref: "#/components/schemas/OrgGroupData"
required:
- - id
- - status
+ - data
type: object
- PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus:
- description: The status of the component.
+ OrgGroupSortOption:
+ default: uuid
+ description: Field to sort org groups by.
enum:
- - operational
- - maintenance
- example: operational
+ - name
+ - -name
+ - uuid
+ - -uuid
+ example: name
type: string
x-enum-varnames:
- - OPERATIONAL
- - MAINTENANCE
- PatchMaintenanceRequestDataType:
- default: maintenances
- description: Maintenances resource type.
+ - NAME
+ - MINUS_NAME
+ - UUID
+ - MINUS_UUID
+ OrgGroupType:
+ description: Org groups resource type.
enum:
- - maintenances
- example: maintenances
+ - org_groups
+ example: org_groups
type: string
x-enum-varnames:
- - MAINTENANCES
- PatchNotificationRuleParameters:
- description: Body of the notification rule patch request.
+ - ORG_GROUPS
+ OrgGroupUpdateAttributes:
+ description: Attributes for updating an org group.
properties:
- data:
- $ref: "#/components/schemas/PatchNotificationRuleParametersData"
+ name:
+ description: The name of the org group.
+ example: "Updated Org Group Name"
+ type: string
+ required:
+ - name
type: object
- PatchNotificationRuleParametersData:
- description: |-
- Data of the notification rule patch request: the rule ID, the rule type, and the rule attributes. All fields are required.
+ OrgGroupUpdateData:
+ description: Data for updating an org group.
properties:
attributes:
- $ref: "#/components/schemas/PatchNotificationRuleParametersDataAttributes"
+ $ref: "#/components/schemas/OrgGroupUpdateAttributes"
id:
- $ref: "#/components/schemas/ID"
+ description: The ID of the org group.
+ example: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ format: uuid
+ type: string
type:
- $ref: "#/components/schemas/NotificationRulesType"
+ $ref: "#/components/schemas/OrgGroupType"
required:
- - attributes
- id
- type
+ - attributes
type: object
- PatchNotificationRuleParametersDataAttributes:
- description: |-
- Attributes of the notification rule patch request. It is required to update the version of the rule when patching it.
+ OrgGroupUpdateRequest:
+ description: Request to update an org group.
properties:
- enabled:
- $ref: "#/components/schemas/Enabled"
- name:
- $ref: "#/components/schemas/RuleName"
- selectors:
- $ref: "#/components/schemas/Selectors"
- targets:
- $ref: "#/components/schemas/Targets"
- time_aggregation:
- $ref: "#/components/schemas/TimeAggregation"
- version:
- $ref: "#/components/schemas/Version"
+ data:
+ $ref: "#/components/schemas/OrgGroupUpdateData"
+ required:
+ - data
+ type: object
+ Organization:
+ description: Organization object.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/OrganizationAttributes"
+ id:
+ description: ID of the organization.
+ type: string
+ type:
+ $ref: "#/components/schemas/OrganizationsType"
+ required:
+ - type
+ type: object
+ OrganizationAttributes:
+ description: Attributes of the organization.
+ properties:
+ created_at:
+ description: Creation time of the organization.
+ format: date-time
+ type: string
+ description:
+ description: Description of the organization.
+ type: string
+ disabled:
+ description: Whether or not the organization is disabled.
+ type: boolean
+ modified_at:
+ description: Time of last organization modification.
+ format: date-time
+ type: string
+ name:
+ description: Name of the organization.
+ type: string
+ public_id:
+ description: Public ID of the organization.
+ type: string
+ sharing:
+ description: Sharing type of the organization.
+ type: string
+ url:
+ description: URL of the site that this organization exists at.
+ type: string
+ type: object
+ OrganizationsType:
+ default: orgs
+ description: Organizations resource type.
+ enum:
+ - orgs
+ example: orgs
+ type: string
+ x-enum-varnames:
+ - ORGS
+ OutboundEdge:
+ description: The definition of `OutboundEdge` object.
+ properties:
+ branchName:
+ description: The `OutboundEdge` `branchName`.
+ example: ""
+ type: string
+ nextStepName:
+ description: The `OutboundEdge` `nextStepName`.
+ example: ""
+ type: string
+ required:
+ - nextStepName
+ - branchName
+ type: object
+ OutcomeType:
+ default: outcome
+ description: The JSON:API type for an outcome.
+ enum:
+ - outcome
+ example: outcome
+ type: string
+ x-enum-varnames:
+ - OUTCOME
+ OutcomesBatchAttributes:
+ description: The JSON:API attributes for a batched set of scorecard outcomes.
+ properties:
+ results:
+ description: Set of scorecard outcomes to update.
+ items:
+ $ref: "#/components/schemas/OutcomesBatchRequestItem"
+ type: array
+ type: object
+ OutcomesBatchRequest:
+ description: Scorecard outcomes batch request.
+ properties:
+ data:
+ $ref: "#/components/schemas/OutcomesBatchRequestData"
+ type: object
+ OutcomesBatchRequestData:
+ description: Scorecard outcomes batch request data.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/OutcomesBatchAttributes"
+ type:
+ $ref: "#/components/schemas/OutcomesBatchType"
+ type: object
+ OutcomesBatchRequestItem:
+ description: Scorecard outcome for a specific rule, for a given service within a batched update.
+ properties:
+ remarks:
+ description: >-
+ Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks.
+ example: 'See: Services'
+ type: string
+ rule_id:
+ $ref: "#/components/schemas/RuleId"
+ service_name:
+ description: The unique name for a service in the catalog.
+ example: my-service
+ type: string
+ state:
+ $ref: "#/components/schemas/State"
+ required:
+ - rule_id
+ - service_name
+ - state
+ type: object
+ OutcomesBatchResponse:
+ description: Scorecard outcomes batch response.
+ properties:
+ data:
+ $ref: "#/components/schemas/OutcomesBatchResponseData"
+ meta:
+ $ref: "#/components/schemas/OutcomesBatchResponseMeta"
+ required:
+ - data
+ - meta
+ type: object
+ OutcomesBatchResponseAttributes:
+ description: The JSON:API attributes for an outcome.
+ properties:
+ created_at:
+ description: Creation time of the rule outcome.
+ format: date-time
+ type: string
+ modified_at:
+ description: Time of last rule outcome modification.
+ format: date-time
+ type: string
+ remarks:
+ description: >-
+ Any remarks regarding the scorecard rule's evaluation, and supports HTML hyperlinks.
+ example: 'See: Services'
+ type: string
+ service_name:
+ description: The unique name for a service in the catalog.
+ example: my-service
+ type: string
+ state:
+ $ref: "#/components/schemas/State"
+ type: object
+ OutcomesBatchResponseData:
+ description: List of rule outcomes which were affected during the bulk operation.
+ items:
+ $ref: "#/components/schemas/OutcomesResponseDataItem"
+ type: array
+ OutcomesBatchResponseMeta:
+ description: Metadata pertaining to the bulk operation.
+ properties:
+ total_received:
+ description: Total number of scorecard results received during the bulk operation.
+ format: int64
+ type: integer
+ total_updated:
+ description: Total number of scorecard results modified during the bulk operation.
+ format: int64
+ type: integer
+ type: object
+ OutcomesBatchType:
+ default: batched-outcome
+ description: The JSON:API type for scorecard outcomes.
+ enum: [batched-outcome]
+ example: batched-outcome
+ type: string
+ x-enum-varnames: [BATCHED_OUTCOME]
+ OutcomesResponse:
+ description: Scorecard outcomes - the result of a rule for a service.
+ properties:
+ data:
+ $ref: "#/components/schemas/OutcomesResponseData"
+ included:
+ $ref: "#/components/schemas/OutcomesResponseIncluded"
+ links:
+ $ref: "#/components/schemas/OutcomesResponseLinks"
+ type: object
+ OutcomesResponseData:
+ description: List of rule outcomes.
+ items:
+ $ref: "#/components/schemas/OutcomesResponseDataItem"
+ type: array
+ OutcomesResponseDataItem:
+ description: A single rule outcome.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/OutcomesBatchResponseAttributes"
+ id:
+ description: The unique ID for a rule outcome.
+ type: string
+ relationships:
+ $ref: "#/components/schemas/RuleOutcomeRelationships"
+ type:
+ $ref: "#/components/schemas/OutcomeType"
+ type: object
+ OutcomesResponseIncluded:
+ description: Array of rule details.
+ items:
+ $ref: "#/components/schemas/OutcomesResponseIncludedItem"
+ type: array
+ OutcomesResponseIncludedItem:
+ description: Attributes of the included rule.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/OutcomesResponseIncludedRuleAttributes"
+ id:
+ $ref: "#/components/schemas/RuleId"
+ type:
+ $ref: "#/components/schemas/RuleType"
+ type: object
+ OutcomesResponseIncludedRuleAttributes:
+ description: Details of a rule.
+ properties:
+ name:
+ description: Name of the rule.
+ example: Team Defined
+ type: string
+ scorecard_name:
+ description: The scorecard name to which this rule must belong.
+ example: Observability Best Practices
+ type: string
+ type: object
+ OutcomesResponseLinks:
+ description: Links attributes.
+ properties:
+ next:
+ description: |-
+ Link for the next set of results.
+ example: "/api/v2/scorecard/outcomes?include=rule&page%5Blimit%5D=100&page%5Boffset%5D=100"
+ type: string
+ type: object
+ OutputSchema:
+ description: "A list of output parameters for the workflow."
+ properties:
+ parameters:
+ description: The `OutputSchema` `parameters`.
+ items:
+ $ref: "#/components/schemas/OutputSchemaParameters"
+ type: array
+ type: object
+ OutputSchemaParameters:
+ description: The definition of `OutputSchemaParameters` object.
+ properties:
+ defaultValue:
+ description: The `OutputSchemaParameters` `defaultValue`.
+ description:
+ description: The `OutputSchemaParameters` `description`.
+ type: string
+ label:
+ description: The `OutputSchemaParameters` `label`.
+ type: string
+ name:
+ description: The `OutputSchemaParameters` `name`.
+ example: ""
+ type: string
+ type:
+ $ref: "#/components/schemas/OutputSchemaParametersType"
+ value:
+ description: The `OutputSchemaParameters` `value`.
+ required:
+ - name
+ - type
+ type: object
+ OutputSchemaParametersType:
+ description: The definition of `OutputSchemaParametersType` object.
+ enum:
+ - STRING
+ - NUMBER
+ - BOOLEAN
+ - OBJECT
+ - ARRAY_STRING
+ - ARRAY_NUMBER
+ - ARRAY_BOOLEAN
+ - ARRAY_OBJECT
+ example: STRING
+ type: string
+ x-enum-varnames:
+ - STRING
+ - NUMBER
+ - BOOLEAN
+ - OBJECT
+ - ARRAY_STRING
+ - ARRAY_NUMBER
+ - ARRAY_BOOLEAN
+ - ARRAY_OBJECT
+ OverwriteAllocationsRequest:
+ description: Request to overwrite targeting rules (allocations) for a feature flag in an environment.
+ properties:
+ data:
+ description: Targeting rules (allocations) to replace existing ones with.
+ items:
+ $ref: "#/components/schemas/AllocationDataRequest"
+ type: array
+ required:
+ - data
+ type: object
+ PageUrgency:
+ default: high
+ description: On-Call Page urgency level.
+ enum:
+ - low
+ - high
+ example: high
+ type: string
+ x-enum-varnames:
+ - LOW
+ - HIGH
+ Pagination:
+ description: Pagination object.
+ properties:
+ total_count:
+ description: Total count.
+ format: int64
+ type: integer
+ total_filtered_count:
+ description: Total count of elements matched by the filter.
+ format: int64
+ type: integer
+ type: object
+ PaginationMeta:
+ description: Response metadata.
+ properties:
+ page:
+ $ref: "#/components/schemas/PaginationMetaPage"
+ readOnly: true
+ type: object
+ PaginationMetaPage:
+ description: Offset-based pagination schema.
+ example:
+ first_offset: 0
+ last_offset: 900
+ limit: 100
+ next_offset: 100
+ offset: 0
+ prev_offset: 100
+ total: 1000
+ type: offset_limit
+ properties:
+ first_offset:
+ description: Integer representing the offset to fetch the first page of results.
+ example: 0
+ format: int64
+ type: integer
+ last_offset:
+ description: Integer representing the offset to fetch the last page of results.
+ example: 900
+ format: int64
+ nullable: true
+ type: integer
+ limit:
+ description: Integer representing the number of elements to be returned in the results.
+ example: 100
+ format: int64
+ type: integer
+ next_offset:
+ description: >-
+ Integer representing the index of the first element in the next page of results. Equal to page size added to the current offset.
+ example: 100
+ format: int64
+ nullable: true
+ type: integer
+ offset:
+ description: Integer representing the index of the first element in the results.
+ example: 0
+ format: int64
+ type: integer
+ prev_offset:
+ description: Integer representing the index of the first element in the previous page of results.
+ example: 100
+ format: int64
+ nullable: true
+ type: integer
+ total:
+ description: Integer representing the total number of elements available.
+ example: 1000
+ format: int64
+ nullable: true
+ type: integer
+ type:
+ $ref: "#/components/schemas/PaginationMetaPageType"
+ type: object
+ PaginationMetaPageType:
+ default: offset_limit
+ description: The pagination type used for offset-based pagination.
+ enum:
+ - offset_limit
+ example: offset_limit
+ type: string
+ x-enum-varnames:
+ - OFFSET_LIMIT
+ Parameter:
+ description: The definition of `Parameter` object.
+ properties:
+ name:
+ description: The `Parameter` `name`.
+ example: ""
+ type: string
+ value:
+ description: The `Parameter` `value`.
+ required:
+ - name
+ - value
+ type: object
+ PartialAPIKey:
+ description: Partial Datadog API key.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/PartialAPIKeyAttributes"
+ id:
+ description: ID of the API key.
+ type: string
+ relationships:
+ $ref: "#/components/schemas/APIKeyRelationships"
+ type:
+ $ref: "#/components/schemas/APIKeysType"
+ type: object
+ PartialAPIKeyAttributes:
+ description: Attributes of a partial API key.
+ properties:
+ category:
+ description: The category of the API key.
+ type: string
+ created_at:
+ description: Creation date of the API key.
+ example: "2020-11-23T10:00:00.000Z"
+ readOnly: true
+ type: string
+ date_last_used:
+ description: Date the API Key was last used.
+ example: "2020-11-27T10:00:00.000Z"
+ format: date-time
+ nullable: true
+ readOnly: true
+ type: string
+ last4:
+ description: The last four characters of the API key.
+ example: "abcd"
+ maxLength: 4
+ minLength: 4
+ readOnly: true
+ type: string
+ modified_at:
+ description: Date the API key was last modified.
+ example: "2020-11-23T10:00:00.000Z"
+ readOnly: true
+ type: string
+ name:
+ description: Name of the API key.
+ example: "API Key for submitting metrics"
+ type: string
+ remote_config_read_enabled:
+ description: The remote config read enabled status.
+ type: boolean
+ type: object
+ PartialApplicationKey:
+ description: Partial Datadog application key.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/PartialApplicationKeyAttributes"
+ id:
+ description: ID of the application key.
+ type: string
+ relationships:
+ $ref: "#/components/schemas/ApplicationKeyRelationships"
+ type:
+ $ref: "#/components/schemas/ApplicationKeysType"
+ type: object
+ PartialApplicationKeyAttributes:
+ description: Attributes of a partial application key.
+ properties:
+ created_at:
+ description: Creation date of the application key.
+ example: "2020-11-23T10:00:00.000Z"
+ readOnly: true
+ type: string
+ last4:
+ description: The last four characters of the application key.
+ example: "abcd"
+ maxLength: 4
+ minLength: 4
+ readOnly: true
+ type: string
+ last_used_at:
+ description: Last usage timestamp of the application key.
+ example: "2020-12-20T10:00:00.000Z"
+ nullable: true
+ readOnly: true
+ type: string
+ name:
+ description: Name of the application key.
+ example: "Application Key for managing dashboards"
+ type: string
+ scopes:
+ description: Array of scopes to grant the application key.
+ example: ["dashboards_read", "dashboards_write", "dashboards_public_share"]
+ items:
+ description: Name of scope.
+ type: string
+ nullable: true
+ type: array
+ type: object
+ PartialApplicationKeyResponse:
+ description: Response for retrieving a partial application key.
+ properties:
+ data:
+ $ref: "#/components/schemas/PartialApplicationKey"
+ included:
+ description: Array of objects related to the application key.
+ items:
+ $ref: "#/components/schemas/ApplicationKeyResponseIncludedItem"
+ type: array
+ type: object
+ PatchAttachmentRequest:
+ description: Request to update an attachment.
+ properties:
+ data:
+ $ref: "#/components/schemas/PatchAttachmentRequestData"
+ type: object
+ PatchAttachmentRequestData:
+ description: Attachment data for an update request.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/PatchAttachmentRequestDataAttributes"
+ id:
+ description: The unique identifier of the attachment.
+ example: "00000000-abcd-0002-0000-000000000000"
+ type: string
+ type:
+ $ref: "#/components/schemas/IncidentAttachmentType"
+ required:
+ - type
+ type: object
+ PatchAttachmentRequestDataAttributes:
+ description: The attributes for updating an attachment.
+ properties:
+ attachment:
+ $ref: "#/components/schemas/PatchAttachmentRequestDataAttributesAttachment"
+ type: object
+ PatchAttachmentRequestDataAttributesAttachment:
+ description: The updated attachment object.
+ properties:
+ documentUrl:
+ description: The updated URL for the attachment.
+ example: https://app.datadoghq.com/notebook/124/Postmortem-IR-124
+ type: string
+ title:
+ description: The updated title for the attachment.
+ example: Postmortem-IR-124
+ type: string
+ type: object
+ PatchComponentRequest:
+ description: Request object for updating a component.
+ example:
+ data:
+ attributes:
+ name: Metrics Intake Service
+ position: 4
+ id: 1234abcd-12ab-34cd-56ef-123456abcdef
+ type: components
+ properties:
+ data:
+ $ref: "#/components/schemas/PatchComponentRequestData"
+ type: object
+ PatchComponentRequestData:
+ description: The data object for updating a component.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/PatchComponentRequestDataAttributes"
+ id:
+ description: The ID of the component.
+ example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ format: uuid
+ type: string
+ type:
+ $ref: "#/components/schemas/StatusPagesComponentGroupType"
+ required:
+ - attributes
+ - id
+ - type
+ type: object
+ PatchComponentRequestDataAttributes:
+ description: The supported attributes for updating a component.
+ properties:
+ name:
+ description: The name of the component.
+ example: Web App
+ type: string
+ position:
+ description: The position of the component. If the component belongs to a group, the position is relative to the other components in the group.
+ example: 1
+ format: int64
+ type: integer
+ type: object
+ PatchDegradationRequest:
+ description: Request object for updating a degradation.
+ example:
+ data:
+ attributes:
+ components_affected:
+ - id: 1234abcd-12ab-34cd-56ef-123456abcdef
+ status: operational
+ description: We've deployed a fix and latency has returned to normal. This issue has been resolved.
+ status: resolved
+ id: 1234abcd-12ab-34cd-56ef-123456abcdef
+ type: degradations
+ properties:
+ data:
+ $ref: "#/components/schemas/PatchDegradationRequestData"
+ type: object
+ PatchDegradationRequestData:
+ description: The data object for updating a degradation.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/PatchDegradationRequestDataAttributes"
+ id:
+ description: The ID of the degradation.
+ example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ format: uuid
+ type: string
+ type:
+ $ref: "#/components/schemas/PatchDegradationRequestDataType"
+ required:
+ - attributes
+ - id
+ - type
+ type: object
+ PatchDegradationRequestDataAttributes:
+ description: The supported attributes for updating a degradation.
+ properties:
+ components_affected:
+ description: The components affected by the degradation.
+ example:
+ - id: 1234abcd-12ab-34cd-56ef-123456abcdef
+ status: operational
+ items:
+ $ref: "#/components/schemas/PatchDegradationRequestDataAttributesComponentsAffectedItems"
+ type: array
+ description:
+ description: The description of the degradation.
+ example: We've deployed a fix and latency has returned to normal. This issue has been resolved.
+ type: string
+ status:
+ $ref: "#/components/schemas/PatchDegradationRequestDataAttributesStatus"
+ example: resolved
+ title:
+ description: The title of the degradation.
+ example: Elevated API Latency
+ type: string
+ type: object
+ PatchDegradationRequestDataAttributesComponentsAffectedItems:
+ description: A component affected by a degradation.
+ properties:
+ id:
+ description: The ID of the component. Must be a component of type `component`.
+ example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ format: uuid
+ type: string
+ name:
+ description: The name of the component.
+ readOnly: true
+ type: string
+ status:
+ $ref: "#/components/schemas/StatusPagesComponentDataAttributesStatus"
+ required:
+ - id
+ - status
+ type: object
+ PatchDegradationRequestDataAttributesStatus:
+ description: The status of the degradation.
+ enum:
+ - investigating
+ - identified
+ - monitoring
+ - resolved
+ type: string
+ x-enum-varnames:
+ - INVESTIGATING
+ - IDENTIFIED
+ - MONITORING
+ - RESOLVED
+ PatchDegradationRequestDataType:
+ default: degradations
+ description: Degradations resource type.
+ enum:
+ - degradations
+ example: degradations
+ type: string
+ x-enum-varnames:
+ - DEGRADATIONS
+ PatchIncidentNotificationTemplateRequest:
+ description: Update request for a notification template.
+ properties:
+ data:
+ $ref: "#/components/schemas/IncidentNotificationTemplateUpdateData"
+ required:
+ - data
+ type: object
+ PatchMaintenanceRequest:
+ description: Request object for updating a maintenance.
+ example:
+ data:
+ attributes:
+ completed_date: "2026-02-18T20:01:13.332360075Z"
+ in_progress_description: We are currently performing maintenance on the API to improve performance for 40 minutes.
+ scheduled_description: We will be performing maintenance on the API to improve performance for 40 minutes.
+ start_date: "2026-02-18T19:21:13.332360075Z"
+ title: API Maintenance
+ id: 1234abcd-12ab-34cd-56ef-123456abcdef
+ type: maintenances
+ properties:
+ data:
+ $ref: "#/components/schemas/PatchMaintenanceRequestData"
+ type: object
+ PatchMaintenanceRequestData:
+ description: The data object for updating a maintenance.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributes"
+ id:
+ description: The ID of the maintenance.
+ example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ format: uuid
+ type: string
+ type:
+ $ref: "#/components/schemas/PatchMaintenanceRequestDataType"
+ required:
+ - attributes
+ - type
+ - id
+ type: object
+ PatchMaintenanceRequestDataAttributes:
+ description: The supported attributes for updating a maintenance.
+ properties:
+ completed_date:
+ description: Timestamp of when the maintenance was completed.
+ format: date-time
+ type: string
+ completed_description:
+ description: The description shown when the maintenance is completed.
+ type: string
+ components_affected:
+ description: The components affected by the maintenance.
+ items:
+ $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItems"
+ type: array
+ in_progress_description:
+ description: The description shown while the maintenance is in progress.
+ type: string
+ scheduled_description:
+ description: The description shown when the maintenance is scheduled.
+ type: string
+ start_date:
+ description: Timestamp of when the maintenance is scheduled to start.
+ format: date-time
+ type: string
+ status:
+ $ref: "#/components/schemas/MaintenanceDataAttributesStatus"
+ description: The status of the maintenance.
+ title:
+ description: The title of the maintenance.
+ type: string
+ type: object
+ PatchMaintenanceRequestDataAttributesComponentsAffectedItems:
+ description: A component affected by a maintenance.
+ properties:
+ id:
+ description: The ID of the component. Must be a component of type `component`.
+ example: "1234abcd-12ab-34cd-56ef-123456abcdef"
+ format: uuid
+ type: string
+ name:
+ description: The name of the component.
+ readOnly: true
+ type: string
+ status:
+ $ref: "#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus"
+ required:
+ - id
+ - status
+ type: object
+ PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus:
+ description: The status of the component.
+ enum:
+ - operational
+ - maintenance
+ example: operational
+ type: string
+ x-enum-varnames:
+ - OPERATIONAL
+ - MAINTENANCE
+ PatchMaintenanceRequestDataType:
+ default: maintenances
+ description: Maintenances resource type.
+ enum:
+ - maintenances
+ example: maintenances
+ type: string
+ x-enum-varnames:
+ - MAINTENANCES
+ PatchNotificationRuleParameters:
+ description: Body of the notification rule patch request.
+ properties:
+ data:
+ $ref: "#/components/schemas/PatchNotificationRuleParametersData"
+ type: object
+ PatchNotificationRuleParametersData:
+ description: |-
+ Data of the notification rule patch request: the rule ID, the rule type, and the rule attributes. All fields are required.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/PatchNotificationRuleParametersDataAttributes"
+ id:
+ $ref: "#/components/schemas/ID"
+ type:
+ $ref: "#/components/schemas/NotificationRulesType"
+ required:
+ - attributes
+ - id
+ - type
+ type: object
+ PatchNotificationRuleParametersDataAttributes:
+ description: |-
+ Attributes of the notification rule patch request. It is required to update the version of the rule when patching it.
+ properties:
+ enabled:
+ $ref: "#/components/schemas/Enabled"
+ name:
+ $ref: "#/components/schemas/RuleName"
+ selectors:
+ $ref: "#/components/schemas/Selectors"
+ targets:
+ $ref: "#/components/schemas/Targets"
+ time_aggregation:
+ $ref: "#/components/schemas/TimeAggregation"
+ version:
+ $ref: "#/components/schemas/Version"
type: object
PatchStatusPageRequest:
description: Request object for updating a status page.
@@ -96010,64 +97076,508 @@ paths:
schema:
type: string
responses:
- "200":
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListTagsResponse"
+ description: OK
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get the list of tags for a device
+ tags:
+ - Network Device Monitoring
+ patch:
+ description: Update the tags for a device.
+ operationId: UpdateDeviceUserTags
+ parameters:
+ - description: The id of the device to update tags for.
+ example: example:1.2.3.4
+ in: path
+ name: device_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListTagsResponse"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListTagsResponse"
+ description: OK
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Update the tags for a device
+ tags:
+ - Network Device Monitoring
+ /api/v2/ndm/tags/interfaces/{interface_id}:
+ get:
+ description: Returns the tags associated with the specified interface.
+ operationId: ListInterfaceUserTags
+ parameters:
+ - description: The ID of the interface for which to retrieve tags.
+ example: example:1.2.3.4:1
+ in: path
+ name: interface_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListInterfaceTagsResponse"
+ description: OK
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: List tags for an interface
+ tags:
+ - Network Device Monitoring
+ patch:
+ description: Updates the tags associated with the specified interface.
+ operationId: UpdateInterfaceUserTags
+ parameters:
+ - description: The ID of the interface for which to update tags.
+ example: example:1.2.3.4:1
+ in: path
+ name: interface_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListInterfaceTagsResponse"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListInterfaceTagsResponse"
+ description: OK
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Update the tags for an interface
+ tags:
+ - Network Device Monitoring
+ /api/v2/network/connections/aggregate:
+ get:
+ description: Get all aggregated connections.
+ operationId: GetAggregatedConnections
+ parameters:
+ - description: Unix timestamp (number of seconds since epoch) of the start of the query window. If not provided, the start of the query window is 15 minutes before the `to` timestamp. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
+ in: query
+ name: from
+ schema:
+ format: int64
+ type: integer
+ - description: Unix timestamp (number of seconds since epoch) of the end of the query window. If not provided, the end of the query window is the current time. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
+ in: query
+ name: to
+ schema:
+ format: int64
+ type: integer
+ - description: Comma-separated list of fields to group connections by. The maximum number of group_by(s) is 10.
+ in: query
+ name: group_by
+ schema:
+ type: string
+ - description: Comma-separated list of tags to filter connections by.
+ in: query
+ name: tags
+ schema:
+ type: string
+ - description: The number of connections to be returned. The maximum value is 7500. The default is 100.
+ in: query
+ name: limit
+ schema:
+ default: 100
+ format: int32
+ maximum: 7500
+ minimum: 1
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SingleAggregatedConnectionResponseArray"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get all aggregated connections
+ tags:
+ - Cloud Network Monitoring
+ /api/v2/network/dns/aggregate:
+ get:
+ description: Get all aggregated DNS traffic.
+ operationId: GetAggregatedDns
+ parameters:
+ - description: Unix timestamp (number of seconds since epoch) of the start of the query window. If not provided, the start of the query window is 15 minutes before the `to` timestamp. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
+ in: query
+ name: from
+ schema:
+ format: int64
+ type: integer
+ - description: Unix timestamp (number of seconds since epoch) of the end of the query window. If not provided, the end of the query window is the current time. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
+ in: query
+ name: to
+ schema:
+ format: int64
+ type: integer
+ - description: Comma-separated list of fields to group DNS traffic by. The server side defaults to `network.dns_query` if unspecified. `server_ungrouped` may be used if groups are not desired. The maximum number of group_by(s) is 10.
+ in: query
+ name: group_by
+ schema:
+ type: string
+ - description: Comma-separated list of tags to filter DNS traffic by.
+ in: query
+ name: tags
+ schema:
+ type: string
+ - description: The number of aggregated DNS entries to be returned. The maximum value is 7500. The default is 100.
+ in: query
+ name: limit
+ schema:
+ default: 100
+ format: int32
+ maximum: 7500
+ minimum: 1
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SingleAggregatedDnsResponseArray"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get all aggregated DNS traffic
+ tags:
+ - Cloud Network Monitoring
+ /api/v2/obs-pipelines/pipelines:
+ get:
+ description: Retrieve a list of pipelines.
+ operationId: ListPipelines
+ parameters:
+ - $ref: "#/components/parameters/PageSize"
+ - $ref: "#/components/parameters/PageNumber"
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ListPipelinesResponse"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: List pipelines
+ tags:
+ - Observability Pipelines
+ "x-permission":
+ operator: OR
+ permissions:
+ - observability_pipelines_read
+ post:
+ description: Create a new pipeline.
+ operationId: CreatePipeline
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ObservabilityPipelineSpec"
+ required: true
+ responses:
+ "201":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ObservabilityPipeline"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "409":
+ $ref: "#/components/responses/ConflictResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Create a new pipeline
+ tags:
+ - Observability Pipelines
+ "x-permission":
+ operator: OR
+ permissions:
+ - observability_pipelines_deploy
+ /api/v2/obs-pipelines/pipelines/validate:
+ post:
+ description: |-
+ Validates a pipeline configuration without creating or updating any resources.
+ Returns a list of validation errors, if any.
+ operationId: ValidatePipeline
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ObservabilityPipelineSpec"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ValidationResponse"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Validate an observability pipeline
+ tags:
+ - Observability Pipelines
+ "x-permission":
+ operator: OR
+ permissions:
+ - observability_pipelines_read
+ /api/v2/obs-pipelines/pipelines/{pipeline_id}:
+ delete:
+ description: Delete a pipeline.
+ operationId: DeletePipeline
+ parameters:
+ - description: The ID of the pipeline to delete.
+ in: path
+ name: pipeline_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "204":
+ description: OK
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/APIErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/APIErrorResponse"
+ description: Not Found
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/APIErrorResponse"
+ description: Conflict
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Delete a pipeline
+ tags:
+ - Observability Pipelines
+ "x-permission":
+ operator: OR
+ permissions:
+ - observability_pipelines_delete
+ get:
+ description: Get a specific pipeline by its ID.
+ operationId: GetPipeline
+ parameters:
+ - description: The ID of the pipeline to retrieve.
+ in: path
+ name: pipeline_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ObservabilityPipeline"
+ description: OK
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/APIErrorResponse"
+ description: Forbidden
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get a specific pipeline
+ tags:
+ - Observability Pipelines
+ "x-permission":
+ operator: OR
+ permissions:
+ - observability_pipelines_read
+ put:
+ description: Update a pipeline.
+ operationId: UpdatePipeline
+ parameters:
+ - description: The ID of the pipeline to update.
+ in: path
+ name: pipeline_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ObservabilityPipeline"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ObservabilityPipeline"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "409":
+ $ref: "#/components/responses/ConflictResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Update a pipeline
+ tags:
+ - Observability Pipelines
+ "x-permission":
+ operator: OR
+ permissions:
+ - observability_pipelines_deploy
+ /api/v2/on-call/escalation-policies:
+ post:
+ description: Create a new On-Call escalation policy
+ operationId: CreateOnCallEscalationPolicy
+ parameters:
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`."
+ in: query
+ name: include
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/EscalationPolicyCreateRequest"
+ required: true
+ responses:
+ "201":
content:
application/json:
schema:
- $ref: "#/components/schemas/ListTagsResponse"
- description: OK
+ $ref: "#/components/schemas/EscalationPolicy"
+ description: Created
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
$ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Get the list of tags for a device
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Create On-Call escalation policy
tags:
- - Network Device Monitoring
- patch:
- description: Update the tags for a device.
- operationId: UpdateDeviceUserTags
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_write
+ /api/v2/on-call/escalation-policies/{policy_id}:
+ delete:
+ description: Delete an On-Call escalation policy
+ operationId: DeleteOnCallEscalationPolicy
parameters:
- - description: The id of the device to update tags for.
- example: example:1.2.3.4
+ - description: The ID of the escalation policy
in: path
- name: device_id
+ name: policy_id
required: true
schema:
+ example: a3000000-0000-0000-0000-000000000000
type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ListTagsResponse"
- required: true
responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ListTagsResponse"
- description: OK
+ "204":
+ description: No Content
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
$ref: "#/components/responses/ForbiddenResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Update the tags for a device
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Delete On-Call escalation policy
tags:
- - Network Device Monitoring
- /api/v2/ndm/tags/interfaces/{interface_id}:
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_write
get:
- description: Returns the tags associated with the specified interface.
- operationId: ListInterfaceUserTags
+ description: Get an On-Call escalation policy
+ operationId: GetOnCallEscalationPolicy
parameters:
- - description: The ID of the interface for which to retrieve tags.
- example: example:1.2.3.4:1
+ - description: The ID of the escalation policy
in: path
- name: interface_id
+ name: policy_id
required: true
+ schema:
+ example: a3000000-0000-0000-0000-000000000000
+ type: string
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`."
+ in: query
+ name: include
schema:
type: string
responses:
@@ -96075,410 +97585,545 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ListInterfaceTagsResponse"
+ $ref: "#/components/schemas/EscalationPolicy"
description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
$ref: "#/components/responses/ForbiddenResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: List tags for an interface
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Get On-Call escalation policy
tags:
- - Network Device Monitoring
- patch:
- description: Updates the tags associated with the specified interface.
- operationId: UpdateInterfaceUserTags
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_read
+ put:
+ description: Update an On-Call escalation policy
+ operationId: UpdateOnCallEscalationPolicy
parameters:
- - description: The ID of the interface for which to update tags.
- example: example:1.2.3.4:1
+ - description: The ID of the escalation policy
in: path
- name: interface_id
+ name: policy_id
required: true
+ schema:
+ example: a3000000-0000-0000-0000-000000000000
+ type: string
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`."
+ in: query
+ name: include
schema:
type: string
requestBody:
content:
application/json:
schema:
- $ref: "#/components/schemas/ListInterfaceTagsResponse"
+ $ref: "#/components/schemas/EscalationPolicyUpdateRequest"
required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/ListInterfaceTagsResponse"
+ $ref: "#/components/schemas/EscalationPolicy"
description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
$ref: "#/components/responses/ForbiddenResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Update the tags for an interface
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Update On-Call escalation policy
tags:
- - Network Device Monitoring
- /api/v2/network/connections/aggregate:
- get:
- description: Get all aggregated connections.
- operationId: GetAggregatedConnections
- parameters:
- - description: Unix timestamp (number of seconds since epoch) of the start of the query window. If not provided, the start of the query window is 15 minutes before the `to` timestamp. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
- in: query
- name: from
- schema:
- format: int64
- type: integer
- - description: Unix timestamp (number of seconds since epoch) of the end of the query window. If not provided, the end of the query window is the current time. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
- in: query
- name: to
- schema:
- format: int64
- type: integer
- - description: Comma-separated list of fields to group connections by. The maximum number of group_by(s) is 10.
- in: query
- name: group_by
- schema:
- type: string
- - description: Comma-separated list of tags to filter connections by.
- in: query
- name: tags
- schema:
- type: string
- - description: The number of connections to be returned. The maximum value is 7500. The default is 100.
- in: query
- name: limit
- schema:
- default: 100
- format: int32
- maximum: 7500
- minimum: 1
- type: integer
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_write
+ /api/v2/on-call/pages:
+ post:
+ description: |-
+ Trigger a new On-Call Page.
+ operationId: CreateOnCallPage
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreatePageRequest"
+ required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/SingleAggregatedConnectionResponseArray"
- description: OK
- "400":
- $ref: "#/components/responses/BadRequestResponse"
+ $ref: "#/components/schemas/CreatePageResponse"
+ description: OK.
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Get all aggregated connections
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ servers:
+ - url: https://{site}
+ variables:
+ site:
+ default: navy.oncall.datadoghq.com
+ description: The globally available endpoint for On-Call.
+ enum:
+ - lava.oncall.datadoghq.com
+ - saffron.oncall.datadoghq.com
+ - navy.oncall.datadoghq.com
+ - coral.oncall.datadoghq.com
+ - teal.oncall.datadoghq.com
+ - beige.oncall.datadoghq.eu
+ - url: "{protocol}://{name}"
+ variables:
+ name:
+ default: api.datadoghq.com
+ description: Full site DNS name.
+ protocol:
+ default: https
+ description: The protocol for accessing the API.
+ - url: https://{subdomain}.{site}
+ variables:
+ site:
+ default: datadoghq.com
+ description: Any Datadog deployment.
+ subdomain:
+ default: api
+ description: The subdomain where the API is deployed.
+ summary: Create On-Call Page
tags:
- - Cloud Network Monitoring
- /api/v2/network/dns/aggregate:
- get:
- description: Get all aggregated DNS traffic.
- operationId: GetAggregatedDns
+ - On-Call Paging
+ /api/v2/on-call/pages/{page_id}/acknowledge:
+ post:
+ description: |-
+ Acknowledges an On-Call Page.
+ operationId: AcknowledgeOnCallPage
parameters:
- - description: Unix timestamp (number of seconds since epoch) of the start of the query window. If not provided, the start of the query window is 15 minutes before the `to` timestamp. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
- in: query
- name: from
- schema:
- format: int64
- type: integer
- - description: Unix timestamp (number of seconds since epoch) of the end of the query window. If not provided, the end of the query window is the current time. If neither `from` nor `to` are provided, the query window is `[now - 15m, now]`.
- in: query
- name: to
- schema:
- format: int64
- type: integer
- - description: Comma-separated list of fields to group DNS traffic by. The server side defaults to `network.dns_query` if unspecified. `server_ungrouped` may be used if groups are not desired. The maximum number of group_by(s) is 10.
- in: query
- name: group_by
- schema:
- type: string
- - description: Comma-separated list of tags to filter DNS traffic by.
- in: query
- name: tags
+ - description: The page ID.
+ in: path
+ name: page_id
+ required: true
schema:
+ example: 15e74b8b-f865-48d0-bcc5-453323ed2c8f
+ format: uuid
type: string
- - description: The number of aggregated DNS entries to be returned. The maximum value is 7500. The default is 100.
- in: query
- name: limit
- schema:
- default: 100
- format: int32
- maximum: 7500
- minimum: 1
- type: integer
responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/SingleAggregatedDnsResponseArray"
- description: OK
- "400":
- $ref: "#/components/responses/BadRequestResponse"
+ "202":
+ description: Accepted.
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Get all aggregated DNS traffic
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ servers:
+ - url: https://{site}
+ variables:
+ site:
+ default: navy.oncall.datadoghq.com
+ description: The globally available endpoint for On-Call.
+ enum:
+ - lava.oncall.datadoghq.com
+ - saffron.oncall.datadoghq.com
+ - navy.oncall.datadoghq.com
+ - coral.oncall.datadoghq.com
+ - teal.oncall.datadoghq.com
+ - beige.oncall.datadoghq.eu
+ - url: "{protocol}://{name}"
+ variables:
+ name:
+ default: api.datadoghq.com
+ description: Full site DNS name.
+ protocol:
+ default: https
+ description: The protocol for accessing the API.
+ - url: https://{subdomain}.{site}
+ variables:
+ site:
+ default: datadoghq.com
+ description: Any Datadog deployment.
+ subdomain:
+ default: api
+ description: The subdomain where the API is deployed.
+ summary: Acknowledge On-Call Page
tags:
- - Cloud Network Monitoring
- /api/v2/obs-pipelines/pipelines:
- get:
- description: Retrieve a list of pipelines.
- operationId: ListPipelines
+ - On-Call Paging
+ /api/v2/on-call/pages/{page_id}/escalate:
+ post:
+ description: |-
+ Escalates an On-Call Page.
+ operationId: EscalateOnCallPage
parameters:
- - $ref: "#/components/parameters/PageSize"
- - $ref: "#/components/parameters/PageNumber"
+ - description: The page ID.
+ in: path
+ name: page_id
+ required: true
+ schema:
+ example: 15e74b8b-f865-48d0-bcc5-453323ed2c8f
+ format: uuid
+ type: string
responses:
- "200":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ListPipelinesResponse"
- description: OK
- "400":
- $ref: "#/components/responses/BadRequestResponse"
- "403":
- $ref: "#/components/responses/NotAuthorizedResponse"
+ "202":
+ description: Accepted.
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: List pipelines
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ servers:
+ - url: https://{site}
+ variables:
+ site:
+ default: navy.oncall.datadoghq.com
+ description: The globally available endpoint for On-Call.
+ enum:
+ - lava.oncall.datadoghq.com
+ - saffron.oncall.datadoghq.com
+ - navy.oncall.datadoghq.com
+ - coral.oncall.datadoghq.com
+ - teal.oncall.datadoghq.com
+ - beige.oncall.datadoghq.eu
+ - url: "{protocol}://{name}"
+ variables:
+ name:
+ default: api.datadoghq.com
+ description: Full site DNS name.
+ protocol:
+ default: https
+ description: The protocol for accessing the API.
+ - url: https://{subdomain}.{site}
+ variables:
+ site:
+ default: datadoghq.com
+ description: Any Datadog deployment.
+ subdomain:
+ default: api
+ description: The subdomain where the API is deployed.
+ summary: Escalate On-Call Page
tags:
- - Observability Pipelines
- "x-permission":
- operator: OR
- permissions:
- - observability_pipelines_read
+ - On-Call Paging
+ /api/v2/on-call/pages/{page_id}/resolve:
post:
- description: Create a new pipeline.
- operationId: CreatePipeline
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ObservabilityPipelineSpec"
- required: true
+ description: |-
+ Resolves an On-Call Page.
+ operationId: ResolveOnCallPage
+ parameters:
+ - description: The page ID.
+ in: path
+ name: page_id
+ required: true
+ schema:
+ example: 15e74b8b-f865-48d0-bcc5-453323ed2c8f
+ format: uuid
+ type: string
responses:
- "201":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ObservabilityPipeline"
- description: OK
- "400":
- $ref: "#/components/responses/BadRequestResponse"
- "403":
- $ref: "#/components/responses/NotAuthorizedResponse"
- "409":
- $ref: "#/components/responses/ConflictResponse"
+ "202":
+ description: Accepted.
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Create a new pipeline
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ servers:
+ - url: https://{site}
+ variables:
+ site:
+ default: navy.oncall.datadoghq.com
+ description: The globally available endpoint for On-Call.
+ enum:
+ - lava.oncall.datadoghq.com
+ - saffron.oncall.datadoghq.com
+ - navy.oncall.datadoghq.com
+ - coral.oncall.datadoghq.com
+ - teal.oncall.datadoghq.com
+ - beige.oncall.datadoghq.eu
+ - url: "{protocol}://{name}"
+ variables:
+ name:
+ default: api.datadoghq.com
+ description: Full site DNS name.
+ protocol:
+ default: https
+ description: The protocol for accessing the API.
+ - url: https://{subdomain}.{site}
+ variables:
+ site:
+ default: datadoghq.com
+ description: Any Datadog deployment.
+ subdomain:
+ default: api
+ description: The subdomain where the API is deployed.
+ summary: Resolve On-Call Page
tags:
- - Observability Pipelines
- "x-permission":
- operator: OR
- permissions:
- - observability_pipelines_deploy
- /api/v2/obs-pipelines/pipelines/validate:
+ - On-Call Paging
+ /api/v2/on-call/schedules:
post:
- description: |-
- Validates a pipeline configuration without creating or updating any resources.
- Returns a list of validation errors, if any.
- operationId: ValidatePipeline
+ description: Create a new On-Call schedule
+ operationId: CreateOnCallSchedule
+ parameters:
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `layers`, `layers.members`, `layers.members.user`."
+ in: query
+ name: include
+ schema:
+ type: string
requestBody:
content:
- application/json:
+ "application/json":
schema:
- $ref: "#/components/schemas/ObservabilityPipelineSpec"
+ $ref: "#/components/schemas/ScheduleCreateRequest"
required: true
responses:
- "200":
+ "201":
content:
- application/json:
+ "application/json":
schema:
- $ref: "#/components/schemas/ValidationResponse"
- description: OK
+ $ref: "#/components/schemas/Schedule"
+ description: Created
"400":
$ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
- $ref: "#/components/responses/NotAuthorizedResponse"
+ $ref: "#/components/responses/ForbiddenResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Validate an observability pipeline
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Create On-Call schedule
tags:
- - Observability Pipelines
+ - On-Call
"x-permission":
- operator: OR
+ operator: AND
permissions:
- - observability_pipelines_read
- /api/v2/obs-pipelines/pipelines/{pipeline_id}:
+ - on_call_write
+ /api/v2/on-call/schedules/{schedule_id}:
delete:
- description: Delete a pipeline.
- operationId: DeletePipeline
+ description: Delete an On-Call schedule
+ operationId: DeleteOnCallSchedule
parameters:
- - description: The ID of the pipeline to delete.
+ - description: The ID of the schedule
in: path
- name: pipeline_id
+ name: schedule_id
required: true
schema:
+ example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
type: string
responses:
"204":
- description: OK
+ description: No Content
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/APIErrorResponse"
- description: Forbidden
+ $ref: "#/components/responses/ForbiddenResponse"
"404":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/APIErrorResponse"
- description: Not Found
- "409":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/APIErrorResponse"
- description: Conflict
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Delete a pipeline
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Delete On-Call schedule
tags:
- - Observability Pipelines
+ - On-Call
"x-permission":
- operator: OR
+ operator: AND
permissions:
- - observability_pipelines_delete
+ - on_call_write
get:
- description: Get a specific pipeline by its ID.
- operationId: GetPipeline
+ description: Get an On-Call schedule
+ operationId: GetOnCallSchedule
parameters:
- - description: The ID of the pipeline to retrieve.
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `layers`, `layers.members`, `layers.members.user`."
+ in: query
+ name: include
+ schema:
+ type: string
+ - description: The ID of the schedule
in: path
- name: pipeline_id
+ name: schedule_id
required: true
schema:
+ example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
type: string
responses:
"200":
content:
- application/json:
+ "application/json":
schema:
- $ref: "#/components/schemas/ObservabilityPipeline"
+ $ref: "#/components/schemas/Schedule"
description: OK
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/APIErrorResponse"
- description: Forbidden
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Get a specific pipeline
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Get On-Call schedule
tags:
- - Observability Pipelines
+ - On-Call
"x-permission":
- operator: OR
+ operator: AND
permissions:
- - observability_pipelines_read
+ - on_call_read
put:
- description: Update a pipeline.
- operationId: UpdatePipeline
+ description: Update a new On-Call schedule
+ operationId: UpdateOnCallSchedule
parameters:
- - description: The ID of the pipeline to update.
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `layers`, `layers.members`, `layers.members.user`."
+ in: query
+ name: include
+ schema:
+ type: string
+ - description: The ID of the schedule
in: path
- name: pipeline_id
+ name: schedule_id
required: true
schema:
+ example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
type: string
requestBody:
content:
- application/json:
+ "application/json":
schema:
- $ref: "#/components/schemas/ObservabilityPipeline"
+ $ref: "#/components/schemas/ScheduleUpdateRequest"
required: true
responses:
"200":
content:
- application/json:
+ "application/json":
schema:
- $ref: "#/components/schemas/ObservabilityPipeline"
+ $ref: "#/components/schemas/Schedule"
description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
"403":
- $ref: "#/components/responses/NotAuthorizedResponse"
+ $ref: "#/components/responses/ForbiddenResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
- "409":
- $ref: "#/components/responses/ConflictResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- summary: Update a pipeline
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Update On-Call schedule
tags:
- - Observability Pipelines
+ - On-Call
"x-permission":
- operator: OR
+ operator: AND
permissions:
- - observability_pipelines_deploy
- /api/v2/on-call/escalation-policies:
- post:
- description: Create a new On-Call escalation policy
- operationId: CreateOnCallEscalationPolicy
+ - on_call_write
+ /api/v2/on-call/schedules/{schedule_id}/on-call:
+ get:
+ description: "Retrieves the user who is on-call for the specified schedule at a given time."
+ operationId: GetScheduleOnCallUser
parameters:
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`."
+ - description: "Specifies related resources to include in the response as a comma-separated list. Allowed value: `user`."
in: query
name: include
schema:
type: string
- requestBody:
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/EscalationPolicyCreateRequest"
- required: true
+ - description: The ID of the schedule.
+ in: path
+ name: schedule_id
+ required: true
+ schema:
+ example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
+ type: string
+ - description: Retrieves the on-call user at the given timestamp in RFC3339 format (for example, `2025-05-07T02:53:01Z` or `2025-05-07T02:53:01+00:00`). When using timezone offsets with `+` or `-`, ensure proper URL encoding (`+` should be encoded as `%2B`). Defaults to the current time if omitted.
+ in: query
+ name: filter[at_ts]
+ schema:
+ example: "2025-05-07T02:53:01Z"
+ type: string
responses:
- "201":
+ "200":
content:
application/json:
schema:
- $ref: "#/components/schemas/EscalationPolicy"
- description: Created
+ $ref: "#/components/schemas/Shift"
+ description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
"401":
$ref: "#/components/responses/UnauthorizedResponse"
"403":
$ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Create On-Call escalation policy
+ summary: Get scheduled on-call user
tags:
- On-Call
"x-permission":
operator: AND
permissions:
- - on_call_write
- /api/v2/on-call/escalation-policies/{policy_id}:
- delete:
- description: Delete an On-Call escalation policy
- operationId: DeleteOnCallEscalationPolicy
+ - on_call_read
+ /api/v2/on-call/teams/{team_id}/on-call:
+ get:
+ description: Get a team's on-call users at a given time
+ operationId: GetTeamOnCallUsers
parameters:
- - description: The ID of the escalation policy
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `responders`, `escalations`, `escalations.responders`."
+ in: query
+ name: include
+ schema:
+ type: string
+ - description: The team ID
in: path
- name: policy_id
+ name: team_id
required: true
schema:
- example: a3000000-0000-0000-0000-000000000000
+ example: 27590dae-47be-4a7d-9abf-8f4e45124020
type: string
responses:
- "204":
- description: No Content
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TeamOnCallResponders"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
"401":
$ref: "#/components/responses/UnauthorizedResponse"
"403":
@@ -96491,25 +98136,26 @@ paths:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Delete On-Call escalation policy
+ summary: Get team on-call users
tags:
- On-Call
"x-permission":
operator: AND
permissions:
- - on_call_write
+ - on_call_read
+ /api/v2/on-call/teams/{team_id}/routing-rules:
get:
- description: Get an On-Call escalation policy
- operationId: GetOnCallEscalationPolicy
+ description: Get a team's On-Call routing rules
+ operationId: GetOnCallTeamRoutingRules
parameters:
- - description: The ID of the escalation policy
+ - description: The team ID
in: path
- name: policy_id
+ name: team_id
required: true
schema:
- example: a3000000-0000-0000-0000-000000000000
+ example: 27590dae-47be-4a7d-9abf-8f4e45124020
type: string
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`."
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `rules`, `rules.policy`."
in: query
name: include
schema:
@@ -96519,23 +98165,15 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/EscalationPolicy"
+ $ref: "#/components/schemas/TeamRoutingRules"
description: OK
- "400":
- $ref: "#/components/responses/BadRequestResponse"
- "401":
- $ref: "#/components/responses/UnauthorizedResponse"
- "403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Get On-Call escalation policy
+ summary: Get On-Call team routing rules
tags:
- On-Call
"x-permission":
@@ -96543,17 +98181,17 @@ paths:
permissions:
- on_call_read
put:
- description: Update an On-Call escalation policy
- operationId: UpdateOnCallEscalationPolicy
+ description: Set a team's On-Call routing rules
+ operationId: SetOnCallTeamRoutingRules
parameters:
- - description: The ID of the escalation policy
+ - description: The team ID
in: path
- name: policy_id
+ name: team_id
required: true
schema:
- example: a3000000-0000-0000-0000-000000000000
+ example: 27590dae-47be-4a7d-9abf-8f4e45124020
type: string
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`."
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `rules`, `rules.policy`."
in: query
name: include
schema:
@@ -96562,14 +98200,46 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/EscalationPolicyUpdateRequest"
+ $ref: "#/components/schemas/TeamRoutingRulesRequest"
required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/EscalationPolicy"
+ $ref: "#/components/schemas/TeamRoutingRules"
+ description: OK
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Set On-Call team routing rules
+ tags:
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_write
+ /api/v2/on-call/users/{user_id}/notification-channels:
+ get:
+ description: List the notification channels for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: ListUserNotificationChannels
+ parameters:
+ - description: The user ID
+ in: path
+ name: user_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ responses:
+ "200":
+ content:
+ "application/json":
+ schema:
+ $ref: "#/components/schemas/ListNotificationChannelsResponse"
description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
@@ -96585,256 +98255,215 @@ paths:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Update On-Call escalation policy
+ summary: List On-Call notification channels for a user
tags:
- On-Call
"x-permission":
operator: AND
permissions:
- - on_call_write
- /api/v2/on-call/pages:
+ - on_call_read
post:
- description: |-
- Trigger a new On-Call Page.
- operationId: CreateOnCallPage
+ description: Create a new notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: CreateUserNotificationChannel
+ parameters:
+ - description: The user ID
+ in: path
+ name: user_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
requestBody:
content:
- application/json:
+ "application/json":
schema:
- $ref: "#/components/schemas/CreatePageRequest"
+ $ref: "#/components/schemas/CreateUserNotificationChannelRequest"
required: true
responses:
- "200":
+ "201":
content:
- application/json:
+ "application/json":
schema:
- $ref: "#/components/schemas/CreatePageResponse"
- description: OK.
+ $ref: "#/components/schemas/NotificationChannel"
+ description: Created
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- servers:
- - url: https://{site}
- variables:
- site:
- default: navy.oncall.datadoghq.com
- description: The globally available endpoint for On-Call.
- enum:
- - lava.oncall.datadoghq.com
- - saffron.oncall.datadoghq.com
- - navy.oncall.datadoghq.com
- - coral.oncall.datadoghq.com
- - teal.oncall.datadoghq.com
- - beige.oncall.datadoghq.eu
- - url: "{protocol}://{name}"
- variables:
- name:
- default: api.datadoghq.com
- description: Full site DNS name.
- protocol:
- default: https
- description: The protocol for accessing the API.
- - url: https://{subdomain}.{site}
- variables:
- site:
- default: datadoghq.com
- description: Any Datadog deployment.
- subdomain:
- default: api
- description: The subdomain where the API is deployed.
- summary: Create On-Call Page
+ summary: Create an On-Call notification channel for a user
tags:
- - On-Call Paging
- /api/v2/on-call/pages/{page_id}/acknowledge:
- post:
- description: |-
- Acknowledges an On-Call Page.
- operationId: AcknowledgeOnCallPage
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_respond
+ /api/v2/on-call/users/{user_id}/notification-channels/{channel_id}:
+ delete:
+ description: Delete a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: DeleteUserNotificationChannel
parameters:
- - description: The page ID.
+ - description: The user ID
in: path
- name: page_id
+ name: user_id
required: true
schema:
- example: 15e74b8b-f865-48d0-bcc5-453323ed2c8f
- format: uuid
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ - description: The channel ID
+ in: path
+ name: channel_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000000
type: string
responses:
- "202":
- description: Accepted.
+ "204":
+ description: No Content
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- servers:
- - url: https://{site}
- variables:
- site:
- default: navy.oncall.datadoghq.com
- description: The globally available endpoint for On-Call.
- enum:
- - lava.oncall.datadoghq.com
- - saffron.oncall.datadoghq.com
- - navy.oncall.datadoghq.com
- - coral.oncall.datadoghq.com
- - teal.oncall.datadoghq.com
- - beige.oncall.datadoghq.eu
- - url: "{protocol}://{name}"
- variables:
- name:
- default: api.datadoghq.com
- description: Full site DNS name.
- protocol:
- default: https
- description: The protocol for accessing the API.
- - url: https://{subdomain}.{site}
- variables:
- site:
- default: datadoghq.com
- description: Any Datadog deployment.
- subdomain:
- default: api
- description: The subdomain where the API is deployed.
- summary: Acknowledge On-Call Page
+ summary: Delete an On-Call notification channel for a user
tags:
- - On-Call Paging
- /api/v2/on-call/pages/{page_id}/escalate:
- post:
- description: |-
- Escalates an On-Call Page.
- operationId: EscalateOnCallPage
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_respond
+ get:
+ description: Get a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: GetUserNotificationChannel
parameters:
- - description: The page ID.
+ - description: The user ID
in: path
- name: page_id
+ name: user_id
required: true
schema:
- example: 15e74b8b-f865-48d0-bcc5-453323ed2c8f
- format: uuid
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ - description: The channel ID
+ in: path
+ name: channel_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000000
type: string
responses:
- "202":
- description: Accepted.
+ "200":
+ content:
+ "application/json":
+ schema:
+ $ref: "#/components/schemas/NotificationChannel"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- servers:
- - url: https://{site}
- variables:
- site:
- default: navy.oncall.datadoghq.com
- description: The globally available endpoint for On-Call.
- enum:
- - lava.oncall.datadoghq.com
- - saffron.oncall.datadoghq.com
- - navy.oncall.datadoghq.com
- - coral.oncall.datadoghq.com
- - teal.oncall.datadoghq.com
- - beige.oncall.datadoghq.eu
- - url: "{protocol}://{name}"
- variables:
- name:
- default: api.datadoghq.com
- description: Full site DNS name.
- protocol:
- default: https
- description: The protocol for accessing the API.
- - url: https://{subdomain}.{site}
- variables:
- site:
- default: datadoghq.com
- description: Any Datadog deployment.
- subdomain:
- default: api
- description: The subdomain where the API is deployed.
- summary: Escalate On-Call Page
+ summary: Get an On-Call notification channel for a user
tags:
- - On-Call Paging
- /api/v2/on-call/pages/{page_id}/resolve:
- post:
- description: |-
- Resolves an On-Call Page.
- operationId: ResolveOnCallPage
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_read
+ /api/v2/on-call/users/{user_id}/notification-rules:
+ get:
+ description: List the notification rules for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: ListUserNotificationRules
parameters:
- - description: The page ID.
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `channel`."
+ in: query
+ name: include
+ schema:
+ type: string
+ - description: The user ID
in: path
- name: page_id
+ name: user_id
required: true
schema:
- example: 15e74b8b-f865-48d0-bcc5-453323ed2c8f
- format: uuid
+ example: 00000000-0000-0000-0000-000000000000
type: string
responses:
- "202":
- description: Accepted.
+ "200":
+ content:
+ "application/json":
+ schema:
+ $ref: "#/components/schemas/ListOnCallNotificationRulesResponse"
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- servers:
- - url: https://{site}
- variables:
- site:
- default: navy.oncall.datadoghq.com
- description: The globally available endpoint for On-Call.
- enum:
- - lava.oncall.datadoghq.com
- - saffron.oncall.datadoghq.com
- - navy.oncall.datadoghq.com
- - coral.oncall.datadoghq.com
- - teal.oncall.datadoghq.com
- - beige.oncall.datadoghq.eu
- - url: "{protocol}://{name}"
- variables:
- name:
- default: api.datadoghq.com
- description: Full site DNS name.
- protocol:
- default: https
- description: The protocol for accessing the API.
- - url: https://{subdomain}.{site}
- variables:
- site:
- default: datadoghq.com
- description: Any Datadog deployment.
- subdomain:
- default: api
- description: The subdomain where the API is deployed.
- summary: Resolve On-Call Page
+ summary: List On-Call notification rules for a user
tags:
- - On-Call Paging
- /api/v2/on-call/schedules:
+ - On-Call
+ "x-permission":
+ operator: AND
+ permissions:
+ - on_call_read
post:
- description: Create a new On-Call schedule
- operationId: CreateOnCallSchedule
+ description: Create a new notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: CreateUserNotificationRule
parameters:
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `layers`, `layers.members`, `layers.members.user`."
- in: query
- name: include
+ - description: The user ID
+ in: path
+ name: user_id
+ required: true
schema:
+ example: 00000000-0000-0000-0000-000000000000
type: string
requestBody:
content:
"application/json":
schema:
- $ref: "#/components/schemas/ScheduleCreateRequest"
+ $ref: "#/components/schemas/CreateOnCallNotificationRuleRequest"
required: true
responses:
"201":
content:
"application/json":
schema:
- $ref: "#/components/schemas/Schedule"
+ $ref: "#/components/schemas/OnCallNotificationRule"
description: Created
"400":
$ref: "#/components/responses/BadRequestResponse"
@@ -96842,34 +98471,45 @@ paths:
$ref: "#/components/responses/UnauthorizedResponse"
"403":
$ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Create On-Call schedule
+ summary: Create an On-Call notification rule for a user
tags:
- On-Call
"x-permission":
operator: AND
permissions:
- - on_call_write
- /api/v2/on-call/schedules/{schedule_id}:
+ - on_call_respond
+ /api/v2/on-call/users/{user_id}/notification-rules/{rule_id}:
delete:
- description: Delete an On-Call schedule
- operationId: DeleteOnCallSchedule
+ description: Delete a notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: DeleteUserNotificationRule
parameters:
- - description: The ID of the schedule
+ - description: The user ID
in: path
- name: schedule_id
+ name: user_id
required: true
schema:
- example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ - description: The rule ID
+ in: path
+ name: rule_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000000
type: string
responses:
"204":
description: No Content
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
"401":
$ref: "#/components/responses/UnauthorizedResponse"
"403":
@@ -96882,36 +98522,45 @@ paths:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Delete On-Call schedule
+ summary: Delete an On-Call notification rule for a user
tags:
- On-Call
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_write
+ - on_call_respond
get:
- description: Get an On-Call schedule
- operationId: GetOnCallSchedule
+ description: Get a notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: GetUserNotificationRule
parameters:
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `layers`, `layers.members`, `layers.members.user`."
- in: query
- name: include
+ - description: The user ID
+ in: path
+ name: user_id
+ required: true
schema:
+ example: 00000000-0000-0000-0000-000000000000
type: string
- - description: The ID of the schedule
+ - description: The rule ID
in: path
- name: schedule_id
+ name: rule_id
required: true
schema:
- example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `channel`."
+ in: query
+ name: include
+ schema:
type: string
responses:
"200":
content:
"application/json":
schema:
- $ref: "#/components/schemas/Schedule"
+ $ref: "#/components/schemas/OnCallNotificationRule"
description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
"401":
$ref: "#/components/responses/UnauthorizedResponse"
"403":
@@ -96924,41 +98573,48 @@ paths:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Get On-Call schedule
+ summary: Get an On-Call notification rule for a user
tags:
- On-Call
"x-permission":
- operator: AND
+ operator: OR
permissions:
- on_call_read
put:
- description: Update a new On-Call schedule
- operationId: UpdateOnCallSchedule
+ description: Update a notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
+ operationId: UpdateUserNotificationRule
parameters:
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `teams`, `layers`, `layers.members`, `layers.members.user`."
- in: query
- name: include
+ - description: The user ID
+ in: path
+ name: user_id
+ required: true
schema:
+ example: 00000000-0000-0000-0000-000000000000
type: string
- - description: The ID of the schedule
+ - description: The rule ID
in: path
- name: schedule_id
+ name: rule_id
required: true
schema:
- example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ - description: "Comma-separated list of included relationships to be returned. Allowed values: `channel`."
+ in: query
+ name: include
+ schema:
type: string
requestBody:
content:
"application/json":
schema:
- $ref: "#/components/schemas/ScheduleUpdateRequest"
+ $ref: "#/components/schemas/UpdateOnCallNotificationRuleRequest"
required: true
responses:
"200":
content:
"application/json":
schema:
- $ref: "#/components/schemas/Schedule"
+ $ref: "#/components/schemas/OnCallNotificationRule"
description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
@@ -96974,42 +98630,153 @@ paths:
- apiKeyAuth: []
appKeyAuth: []
- AuthZ: []
- summary: Update On-Call schedule
+ summary: Update an On-Call notification rule for a user
tags:
- On-Call
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_write
- /api/v2/on-call/schedules/{schedule_id}/on-call:
+ - on_call_read
+ /api/v2/org_configs:
get:
- description: "Retrieves the user who is on-call for the specified schedule at a given time."
- operationId: GetScheduleOnCallUser
+ description: Returns all Org Configs (name, description, and value).
+ operationId: ListOrgConfigs
+ responses:
+ "200":
+ content:
+ application/json:
+ schema: {$ref: "#/components/schemas/OrgConfigListResponse"}
+ description: OK
+ "400": {$ref: "#/components/responses/BadRequestResponse"}
+ "401": {$ref: "#/components/responses/UnauthorizedResponse"}
+ "403": {$ref: "#/components/responses/ForbiddenResponse"}
+ "429": {$ref: "#/components/responses/TooManyRequestsResponse"}
+ summary: List Org Configs
+ tags: [Organizations]
+ "x-permission":
+ operator: OPEN
+ permissions: []
+ /api/v2/org_configs/{org_config_name}:
+ get:
+ description: Return the name, description, and value of a specific Org Config.
+ operationId: GetOrgConfig
+ parameters: [$ref: "#/components/parameters/OrgConfigName"]
+ responses:
+ "200":
+ content:
+ application/json:
+ schema: {$ref: "#/components/schemas/OrgConfigGetResponse"}
+ description: OK
+ "400": {$ref: "#/components/responses/BadRequestResponse"}
+ "401": {$ref: "#/components/responses/UnauthorizedResponse"}
+ "403": {$ref: "#/components/responses/ForbiddenResponse"}
+ "404": {$ref: "#/components/responses/NotFoundResponse"}
+ "429": {$ref: "#/components/responses/TooManyRequestsResponse"}
+ summary: Get a specific Org Config value
+ tags: [Organizations]
+ "x-permission":
+ operator: OPEN
+ permissions: []
+ patch:
+ description: Update the value of a specific Org Config.
+ operationId: UpdateOrgConfig
+ parameters: [$ref: "#/components/parameters/OrgConfigName"]
+ requestBody:
+ content:
+ application/json:
+ schema: {$ref: "#/components/schemas/OrgConfigWriteRequest"}
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema: {$ref: "#/components/schemas/OrgConfigGetResponse"}
+ description: OK
+ "400": {$ref: "#/components/responses/BadRequestResponse"}
+ "401": {$ref: "#/components/responses/UnauthorizedResponse"}
+ "403": {$ref: "#/components/responses/ForbiddenResponse"}
+ "404": {$ref: "#/components/responses/NotFoundResponse"}
+ "429": {$ref: "#/components/responses/TooManyRequestsResponse"}
+ summary: Update a specific Org Config
+ tags: [Organizations]
+ "x-permission":
+ operator: OR
+ permissions:
+ - org_management
+ /api/v2/org_connections:
+ get:
+ description: Returns a list of org connections.
+ operationId: ListOrgConnections
parameters:
- - description: "Specifies related resources to include in the response as a comma-separated list. Allowed value: `user`."
+ - description: The Org ID of the sink org.
+ example: "0879ce27-29a1-481f-a12e-bc2a48ec9ae1"
in: query
- name: include
+ name: sink_org_id
+ required: false
schema:
type: string
- - description: The ID of the schedule.
- in: path
- name: schedule_id
- required: true
+ - description: The Org ID of the source org.
+ example: "0879ce27-29a1-481f-a12e-bc2a48ec9ae1"
+ in: query
+ name: source_org_id
+ required: false
schema:
- example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
type: string
- - description: Retrieves the on-call user at the given timestamp in RFC3339 format (for example, `2025-05-07T02:53:01Z` or `2025-05-07T02:53:01+00:00`). When using timezone offsets with `+` or `-`, ensure proper URL encoding (`+` should be encoded as `%2B`). Defaults to the current time if omitted.
+ - description: The limit of number of entries you want to return. Default is 1000.
+ example: 1000
in: query
- name: filter[at_ts]
+ name: limit
+ required: false
schema:
- example: "2025-05-07T02:53:01Z"
- type: string
+ format: int64
+ type: integer
+ - description: The pagination offset which you want to query from. Default is 0.
+ example: 0
+ in: query
+ name: offset
+ required: false
+ schema:
+ format: int64
+ type: integer
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/Shift"
+ $ref: "#/components/schemas/OrgConnectionListResponse"
+ description: OK
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - org_connections_read
+ summary: List Org Connections
+ tags: ["Org Connections"]
+ "x-permission":
+ operator: OR
+ permissions:
+ - org_connections_read
+ post:
+ description: Create a new org connection between the current org and a target org.
+ operationId: CreateOrgConnections
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/OrgConnectionCreateRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/OrgConnectionResponse"
description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
@@ -97019,42 +98786,69 @@ paths:
$ref: "#/components/responses/ForbiddenResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
+ "409":
+ $ref: "#/components/responses/ConflictResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
security:
- apiKeyAuth: []
appKeyAuth: []
- - AuthZ: []
- summary: Get scheduled on-call user
- tags:
- - On-Call
+ - AuthZ:
+ - org_connections_write
+ summary: Create Org Connection
+ tags: ["Org Connections"]
+ x-codegen-request-body-name: body
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_read
- /api/v2/on-call/teams/{team_id}/on-call:
- get:
- description: Get a team's on-call users at a given time
- operationId: GetTeamOnCallUsers
+ - org_connections_write
+ /api/v2/org_connections/{connection_id}:
+ delete:
+ description: Delete an existing org connection.
+ operationId: DeleteOrgConnections
parameters:
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `responders`, `escalations`, `escalations.responders`."
- in: query
- name: include
- schema:
- type: string
- - description: The team ID
- in: path
- name: team_id
- required: true
- schema:
- example: 27590dae-47be-4a7d-9abf-8f4e45124020
- type: string
+ - $ref: "#/components/parameters/OrgConnectionId"
+ responses:
+ "200":
+ description: OK
+ "400":
+ $ref: "#/components/responses/BadRequestResponse"
+ "401":
+ $ref: "#/components/responses/UnauthorizedResponse"
+ "403":
+ $ref: "#/components/responses/ForbiddenResponse"
+ "404":
+ $ref: "#/components/responses/NotFoundResponse"
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - org_connections_write
+ summary: Delete Org Connection
+ tags: ["Org Connections"]
+ "x-permission":
+ operator: OR
+ permissions:
+ - org_connections_write
+ patch:
+ description: Update an existing org connection.
+ operationId: UpdateOrgConnections
+ parameters:
+ - $ref: "#/components/parameters/OrgConnectionId"
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/OrgConnectionUpdateRequest"
+ required: true
responses:
"200":
content:
application/json:
schema:
- $ref: "#/components/schemas/TeamOnCallResponders"
+ $ref: "#/components/schemas/OrgConnectionResponse"
description: OK
"400":
$ref: "#/components/responses/BadRequestResponse"
@@ -97069,742 +98863,1222 @@ paths:
security:
- apiKeyAuth: []
appKeyAuth: []
- - AuthZ: []
- summary: Get team on-call users
- tags:
- - On-Call
+ - AuthZ:
+ - org_connections_write
+ summary: Update Org Connection
+ tags: ["Org Connections"]
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_read
- /api/v2/on-call/teams/{team_id}/routing-rules:
+ - org_connections_write
+ /api/v2/org_group_memberships:
get:
- description: Get a team's On-Call routing rules
- operationId: GetOnCallTeamRoutingRules
+ description: >-
+ List organization group memberships. Filter by org group ID or org UUID. When filtering by org UUID, returns a single-item list with the membership for that org.
+ operationId: ListOrgGroupMemberships
parameters:
- - description: The team ID
- in: path
- name: team_id
- required: true
- schema:
- example: 27590dae-47be-4a7d-9abf-8f4e45124020
- type: string
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `rules`, `rules.policy`."
- in: query
- name: include
- schema:
- type: string
+ - $ref: "#/components/parameters/OrgGroupMembershipFilterOrgGroupId"
+ - $ref: "#/components/parameters/OrgGroupMembershipFilterOrgUuid"
+ - $ref: "#/components/parameters/OrgGroupPageNumber"
+ - $ref: "#/components/parameters/OrgGroupPageSize"
+ - $ref: "#/components/parameters/MembershipSort"
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ org_name: "Acme Corp"
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_memberships
+ meta:
+ page:
+ total_count: 1
+ schema:
+ $ref: "#/components/schemas/OrgGroupMembershipListResponse"
+ 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 memberships
+ 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_group_memberships/bulk:
+ patch:
+ description: >-
+ Move a batch of organizations from one org group to another. This is an atomic operation. Maximum 100 orgs per request.
+ operationId: BulkUpdateOrgGroupMemberships
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ orgs:
+ - org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ relationships:
+ source_org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ target_org_group:
+ data:
+ id: "d4e5f6a7-b890-1234-cdef-567890abcdef"
+ type: org_groups
+ type: org_group_membership_bulk_updates
+ schema:
+ $ref: "#/components/schemas/OrgGroupMembershipBulkUpdateRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-16T14:00:00Z"
+ org_name: "Acme Corp"
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ relationships:
+ org_group:
+ data:
+ id: "d4e5f6a7-b890-1234-cdef-567890abcdef"
+ type: org_groups
+ type: org_group_memberships
+ schema:
+ $ref: "#/components/schemas/OrgGroupMembershipListResponse"
+ 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
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Bulk update org group memberships
+ tags: [Org Groups]
+ "x-permission":
+ operator: OR
+ permissions:
+ - org_group_write
+ 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_memberships/{org_group_membership_id}:
+ get:
+ description: Get a specific organization group membership by its ID.
+ operationId: GetOrgGroupMembership
+ parameters:
+ - $ref: "#/components/parameters/OrgGroupMembershipId"
responses:
"200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ org_name: "Acme Corp"
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_memberships
+ schema:
+ $ref: "#/components/schemas/OrgGroupMembershipResponse"
+ description: OK
+ "400":
content:
application/json:
schema:
- $ref: "#/components/schemas/TeamRoutingRules"
- description: OK
+ $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
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Get On-Call team routing rules
- tags:
- - On-Call
+ summary: Get an org group membership
+ tags: [Org Groups]
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_read
- put:
- description: Set a team's On-Call routing rules
- operationId: SetOnCallTeamRoutingRules
+ - 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/).
+ patch:
+ description: Move an organization to a different org group by updating its membership.
+ operationId: UpdateOrgGroupMembership
parameters:
- - description: The team ID
- in: path
- name: team_id
- required: true
- schema:
- example: 27590dae-47be-4a7d-9abf-8f4e45124020
- type: string
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `rules`, `rules.policy`."
- in: query
- name: include
- schema:
- type: string
+ - $ref: "#/components/parameters/OrgGroupMembershipId"
requestBody:
content:
application/json:
+ examples:
+ default:
+ value:
+ data:
+ id: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_memberships
schema:
- $ref: "#/components/schemas/TeamRoutingRulesRequest"
+ $ref: "#/components/schemas/OrgGroupMembershipUpdateRequest"
required: true
responses:
"200":
content:
application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-16T14:00:00Z"
+ org_name: "Acme Corp"
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "f1e2d3c4-b5a6-7890-1234-567890abcdef"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_memberships
schema:
- $ref: "#/components/schemas/TeamRoutingRules"
+ $ref: "#/components/schemas/OrgGroupMembershipResponse"
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
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Set On-Call team routing rules
- tags:
- - On-Call
+ summary: Update an org group membership
+ tags: [Org Groups]
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_write
- /api/v2/on-call/users/{user_id}/notification-channels:
+ - org_group_write
+ 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_policies:
get:
- description: List the notification channels for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: ListUserNotificationChannels
+ description: List policies for an organization group. Requires a filter on org group ID.
+ operationId: ListOrgGroupPolicies
parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
+ - $ref: "#/components/parameters/OrgGroupPolicyFilterOrgGroupId"
+ - $ref: "#/components/parameters/OrgGroupPolicyFilterPolicyName"
+ - $ref: "#/components/parameters/OrgGroupPageNumber"
+ - $ref: "#/components/parameters/OrgGroupPageSize"
+ - $ref: "#/components/parameters/PolicySort"
responses:
"200":
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ content:
+ value: "UTC"
+ enforced_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ policy_name: "monitor_timezone"
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_policies
+ meta:
+ page:
+ total_count: 1
schema:
- $ref: "#/components/schemas/ListNotificationChannelsResponse"
+ $ref: "#/components/schemas/OrgGroupPolicyListResponse"
description: OK
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: List On-Call notification channels for a user
- tags:
- - On-Call
+ summary: List org group policies
+ tags: [Org Groups]
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_read
+ - 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/).
post:
- description: Create a new notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: CreateUserNotificationChannel
- parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
+ description: Create a new policy for an organization group.
+ operationId: CreateOrgGroupPolicy
requestBody:
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ content:
+ value: "UTC"
+ policy_name: "monitor_timezone"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_policies
schema:
- $ref: "#/components/schemas/CreateUserNotificationChannelRequest"
+ $ref: "#/components/schemas/OrgGroupPolicyCreateRequest"
required: true
responses:
"201":
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ content:
+ value: "UTC"
+ enforced_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ policy_name: "monitor_timezone"
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_policies
schema:
- $ref: "#/components/schemas/NotificationChannel"
+ $ref: "#/components/schemas/OrgGroupPolicyResponse"
description: Created
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Conflict
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Create an On-Call notification channel for a user
- tags:
- - On-Call
+ summary: Create an org group policy
+ tags: [Org Groups]
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_respond
- /api/v2/on-call/users/{user_id}/notification-channels/{channel_id}:
+ - org_group_write
+ 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_policies/{org_group_policy_id}:
delete:
- description: Delete a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: DeleteUserNotificationChannel
+ description: Delete an organization group policy by its ID.
+ operationId: DeleteOrgGroupPolicy
parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- - description: The channel ID
- in: path
- name: channel_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
+ - $ref: "#/components/parameters/OrgGroupPolicyId"
responses:
"204":
description: No Content
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Delete an On-Call notification channel for a user
- tags:
- - On-Call
+ summary: Delete an org group policy
+ tags: [Org Groups]
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_respond
- get:
- description: Get a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: GetUserNotificationChannel
+ - org_group_write
+ 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/).
+ patch:
+ description: Update the content of an existing organization group policy.
+ operationId: UpdateOrgGroupPolicy
parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- - description: The channel ID
- in: path
- name: channel_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
+ - $ref: "#/components/parameters/OrgGroupPolicyId"
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ content:
+ value: "US/Eastern"
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ type: org_group_policies
+ schema:
+ $ref: "#/components/schemas/OrgGroupPolicyUpdateRequest"
+ required: true
responses:
"200":
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ content:
+ value: "US/Eastern"
+ enforced_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-16T14:00:00Z"
+ policy_name: "monitor_timezone"
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ type: org_group_policies
schema:
- $ref: "#/components/schemas/NotificationChannel"
+ $ref: "#/components/schemas/OrgGroupPolicyResponse"
description: OK
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Get an On-Call notification channel for a user
- tags:
- - On-Call
+ summary: Update an org group policy
+ tags: [Org Groups]
"x-permission":
- operator: AND
+ operator: OR
permissions:
- - on_call_read
- /api/v2/on-call/users/{user_id}/notification-rules:
+ - org_group_write
+ 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_configs:
get:
- description: List the notification rules for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: ListUserNotificationRules
- parameters:
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `channel`."
- in: query
- name: include
- schema:
- type: string
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
+ description: List all org configs that are eligible to be used as organization group policies.
+ operationId: ListOrgGroupPolicyConfigs
responses:
"200":
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ allowed_values: ["UTC", "US/Eastern", "US/Pacific"]
+ default_value: "UTC"
+ description: "The default timezone for monitors."
+ name: "monitor_timezone"
+ value_type: "string"
+ id: "monitor_timezone"
+ type: org_group_policy_configs
schema:
- $ref: "#/components/schemas/ListOnCallNotificationRulesResponse"
+ $ref: "#/components/schemas/OrgGroupPolicyConfigListResponse"
description: OK
- "400":
- $ref: "#/components/responses/BadRequestResponse"
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
- "403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
- "429":
- $ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: List On-Call notification rules for a user
- tags:
- - On-Call
- "x-permission":
- operator: AND
- permissions:
- - on_call_read
- post:
- description: Create a new notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: CreateUserNotificationRule
- parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- requestBody:
- content:
- "application/json":
- schema:
- $ref: "#/components/schemas/CreateOnCallNotificationRuleRequest"
- required: true
- responses:
- "201":
content:
- "application/json":
+ application/json:
schema:
- $ref: "#/components/schemas/OnCallNotificationRule"
- description: Created
- "400":
- $ref: "#/components/responses/BadRequestResponse"
- "401":
- $ref: "#/components/responses/UnauthorizedResponse"
- "403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
- "429":
- $ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Create an On-Call notification rule for a user
- tags:
- - On-Call
- "x-permission":
- operator: AND
- permissions:
- - on_call_respond
- /api/v2/on-call/users/{user_id}/notification-rules/{rule_id}:
- delete:
- description: Delete a notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: DeleteUserNotificationRule
- parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- - description: The rule ID
- in: path
- name: rule_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- responses:
- "204":
- description: No Content
- "400":
- $ref: "#/components/responses/BadRequestResponse"
- "401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Delete an On-Call notification rule for a user
- tags:
- - On-Call
+ summary: List org group policy configs
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - on_call_respond
- get:
- description: Get a notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: GetUserNotificationRule
- parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- - description: The rule ID
- in: path
- name: rule_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `channel`."
- in: query
- name: include
- schema:
- type: string
+ - 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_group_policy_overrides:
+ get:
+ description: >-
+ List policy overrides for an organization group. Requires a filter on org group ID. Optionally filter by policy ID.
+ operationId: ListOrgGroupPolicyOverrides
+ parameters:
+ - $ref: "#/components/parameters/OrgGroupPolicyOverrideFilterOrgGroupId"
+ - $ref: "#/components/parameters/OrgGroupPolicyOverrideFilterPolicyId"
+ - $ref: "#/components/parameters/OrgGroupPageNumber"
+ - $ref: "#/components/parameters/OrgGroupPageSize"
+ - $ref: "#/components/parameters/OverrideSort"
responses:
"200":
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "9f8e7d6c-5b4a-3210-fedc-ba0987654321"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ org_group_policy:
+ data:
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ type: org_group_policies
+ type: org_group_policy_overrides
+ meta:
+ page:
+ total_count: 1
schema:
- $ref: "#/components/schemas/OnCallNotificationRule"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideListResponse"
description: OK
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Get an On-Call notification rule for a user
- tags:
- - On-Call
+ summary: List org group policy overrides
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - on_call_read
- put:
- description: Update a notification rule for a user. The authenticated user must be the target user or have the `on_call_admin` permission
- operationId: UpdateUserNotificationRule
- parameters:
- - description: The user ID
- in: path
- name: user_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- - description: The rule ID
- in: path
- name: rule_id
- required: true
- schema:
- example: 00000000-0000-0000-0000-000000000000
- type: string
- - description: "Comma-separated list of included relationships to be returned. Allowed values: `channel`."
- in: query
- name: include
- schema:
- type: string
+ - 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/).
+ post:
+ description: Create a new policy override for an organization within an org group.
+ operationId: CreateOrgGroupPolicyOverride
requestBody:
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ org_group_policy:
+ data:
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ type: org_group_policies
+ type: org_group_policy_overrides
schema:
- $ref: "#/components/schemas/UpdateOnCallNotificationRuleRequest"
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideCreateRequest"
required: true
responses:
- "200":
+ "201":
content:
- "application/json":
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "9f8e7d6c-5b4a-3210-fedc-ba0987654321"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ org_group_policy:
+ data:
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ type: org_group_policies
+ type: org_group_policy_overrides
schema:
- $ref: "#/components/schemas/OnCallNotificationRule"
- description: OK
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideResponse"
+ description: Created
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Conflict
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ: []
- summary: Update an On-Call notification rule for a user
- tags:
- - On-Call
+ summary: Create an org group policy override
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - on_call_read
- /api/v2/org_configs:
- get:
- description: Returns all Org Configs (name, description, and value).
- operationId: ListOrgConfigs
+ - org_group_write
+ 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_overrides/{org_group_policy_override_id}:
+ delete:
+ description: Delete an organization group policy override by its ID.
+ operationId: DeleteOrgGroupPolicyOverride
+ parameters:
+ - $ref: "#/components/parameters/OrgGroupPolicyOverrideId"
responses:
- "200":
+ "204":
+ description: No Content
+ "400":
content:
application/json:
- schema: {$ref: "#/components/schemas/OrgConfigListResponse"}
- description: OK
- "400": {$ref: "#/components/responses/BadRequestResponse"}
- "401": {$ref: "#/components/responses/UnauthorizedResponse"}
- "403": {$ref: "#/components/responses/ForbiddenResponse"}
- "429": {$ref: "#/components/responses/TooManyRequestsResponse"}
- summary: List Org Configs
- tags: [Organizations]
- "x-permission":
- operator: OPEN
- permissions: []
- /api/v2/org_configs/{org_config_name}:
- get:
- description: Return the name, description, and value of a specific Org Config.
- operationId: GetOrgConfig
- parameters: [$ref: "#/components/parameters/OrgConfigName"]
- responses:
- "200":
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
content:
application/json:
- schema: {$ref: "#/components/schemas/OrgConfigGetResponse"}
- description: OK
- "400": {$ref: "#/components/responses/BadRequestResponse"}
- "401": {$ref: "#/components/responses/UnauthorizedResponse"}
- "403": {$ref: "#/components/responses/ForbiddenResponse"}
- "404": {$ref: "#/components/responses/NotFoundResponse"}
- "429": {$ref: "#/components/responses/TooManyRequestsResponse"}
- summary: Get a specific Org Config value
- tags: [Organizations]
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Delete an org group policy override
+ tags: [Org Groups]
"x-permission":
- operator: OPEN
- permissions: []
+ operator: OR
+ permissions:
+ - org_group_write
+ 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/).
patch:
- description: Update the value of a specific Org Config.
- operationId: UpdateOrgConfig
- parameters: [$ref: "#/components/parameters/OrgConfigName"]
+ description: Update an existing organization group policy override.
+ operationId: UpdateOrgGroupPolicyOverride
+ parameters:
+ - $ref: "#/components/parameters/OrgGroupPolicyOverrideId"
requestBody:
content:
application/json:
- schema: {$ref: "#/components/schemas/OrgConfigWriteRequest"}
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "9f8e7d6c-5b4a-3210-fedc-ba0987654321"
+ type: org_group_policy_overrides
+ schema:
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideUpdateRequest"
required: true
responses:
"200":
content:
application/json:
- schema: {$ref: "#/components/schemas/OrgConfigGetResponse"}
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-16T14:00:00Z"
+ org_site: "datadoghq.com"
+ org_uuid: "c3d4e5f6-a7b8-9012-cdef-012345678901"
+ id: "9f8e7d6c-5b4a-3210-fedc-ba0987654321"
+ relationships:
+ org_group:
+ data:
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ org_group_policy:
+ data:
+ id: "1a2b3c4d-5e6f-7890-abcd-ef0123456789"
+ type: org_group_policies
+ type: org_group_policy_overrides
+ schema:
+ $ref: "#/components/schemas/OrgGroupPolicyOverrideResponse"
description: OK
- "400": {$ref: "#/components/responses/BadRequestResponse"}
- "401": {$ref: "#/components/responses/UnauthorizedResponse"}
- "403": {$ref: "#/components/responses/ForbiddenResponse"}
- "404": {$ref: "#/components/responses/NotFoundResponse"}
- "429": {$ref: "#/components/responses/TooManyRequestsResponse"}
- summary: Update a specific Org Config
- tags: [Organizations]
+ "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
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Update an org group policy override
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - org_management
- /api/v2/org_connections:
+ - org_group_write
+ 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: Returns a list of org connections.
- operationId: ListOrgConnections
+ description: List all organization groups that the requesting organization has access to.
+ operationId: ListOrgGroups
parameters:
- - description: The Org ID of the sink org.
- example: "0879ce27-29a1-481f-a12e-bc2a48ec9ae1"
- in: query
- name: sink_org_id
- required: false
- schema:
- type: string
- - description: The Org ID of the source org.
- example: "0879ce27-29a1-481f-a12e-bc2a48ec9ae1"
- in: query
- name: source_org_id
- required: false
- schema:
- type: string
- - description: The limit of number of entries you want to return. Default is 1000.
- example: 1000
- in: query
- name: limit
- required: false
- schema:
- format: int64
- type: integer
- - description: The pagination offset which you want to query from. Default is 0.
- example: 0
- in: query
- name: offset
- required: false
- schema:
- format: int64
- type: integer
+ - $ref: "#/components/parameters/OrgGroupPageNumber"
+ - $ref: "#/components/parameters/OrgGroupPageSize"
+ - $ref: "#/components/parameters/OrgGroupSort"
+ - $ref: "#/components/parameters/OrgGroupInclude"
responses:
"200":
content:
application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ name: "My Org Group"
+ owner_org_site: "datadoghq.com"
+ owner_org_uuid: "b2c3d4e5-f6a7-8901-bcde-f01234567890"
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ meta:
+ page:
+ total_count: 1
schema:
- $ref: "#/components/schemas/OrgConnectionListResponse"
+ $ref: "#/components/schemas/OrgGroupListResponse"
description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ:
- - org_connections_read
- summary: List Org Connections
- tags: ["Org Connections"]
+ summary: List org groups
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - org_connections_read
+ - 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/).
post:
- description: Create a new org connection between the current org and a target org.
- operationId: CreateOrgConnections
+ description: Create a new organization group.
+ operationId: CreateOrgGroup
requestBody:
content:
application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ name: "My Org Group"
+ type: org_groups
schema:
- $ref: "#/components/schemas/OrgConnectionCreateRequest"
+ $ref: "#/components/schemas/OrgGroupCreateRequest"
required: true
responses:
- "200":
+ "201":
content:
application/json:
- schema:
- $ref: "#/components/schemas/OrgConnectionResponse"
- description: OK
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ name: "My Org Group"
+ owner_org_site: "datadoghq.com"
+ owner_org_uuid: "b2c3d4e5-f6a7-8901-bcde-f01234567890"
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ schema:
+ $ref: "#/components/schemas/OrgGroupResponse"
+ description: Created
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
- "404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"409":
- $ref: "#/components/responses/ConflictResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Conflict
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ:
- - org_connections_write
- summary: Create Org Connection
- tags: ["Org Connections"]
- x-codegen-request-body-name: body
+ summary: Create an org group
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - org_connections_write
- /api/v2/org_connections/{connection_id}:
+ - org_group_write
+ 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/{org_group_id}:
delete:
- description: Delete an existing org connection.
- operationId: DeleteOrgConnections
+ description: Delete an organization group by its ID.
+ operationId: DeleteOrgGroup
parameters:
- - $ref: "#/components/parameters/OrgConnectionId"
+ - $ref: "#/components/parameters/OrgGroupId"
+ responses:
+ "204":
+ description: No Content
+ "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
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Delete an org group
+ tags: [Org Groups]
+ "x-permission":
+ operator: OR
+ permissions:
+ - org_group_write
+ 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/).
+ get:
+ description: Get a specific organization group by its ID.
+ operationId: GetOrgGroup
+ parameters:
+ - $ref: "#/components/parameters/OrgGroupId"
responses:
"200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-15T10:30:00Z"
+ name: "My Org Group"
+ owner_org_site: "datadoghq.com"
+ owner_org_uuid: "b2c3d4e5-f6a7-8901-bcde-f01234567890"
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
+ schema:
+ $ref: "#/components/schemas/OrgGroupResponse"
description: OK
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ:
- - org_connections_write
- summary: Delete Org Connection
- tags: ["Org Connections"]
+ summary: Get an org group
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - org_connections_write
+ - 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/).
patch:
- description: Update an existing org connection.
- operationId: UpdateOrgConnections
+ description: Update the name of an existing organization group.
+ operationId: UpdateOrgGroup
parameters:
- - $ref: "#/components/parameters/OrgConnectionId"
+ - $ref: "#/components/parameters/OrgGroupId"
requestBody:
content:
application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ name: "Updated Org Group Name"
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
schema:
- $ref: "#/components/schemas/OrgConnectionUpdateRequest"
+ $ref: "#/components/schemas/OrgGroupUpdateRequest"
required: true
responses:
"200":
content:
application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2024-01-15T10:30:00Z"
+ modified_at: "2024-01-16T14:00:00Z"
+ name: "Updated Org Group Name"
+ owner_org_site: "datadoghq.com"
+ owner_org_uuid: "b2c3d4e5-f6a7-8901-bcde-f01234567890"
+ id: "a1b2c3d4-e5f6-7890-abcd-ef0123456789"
+ type: org_groups
schema:
- $ref: "#/components/schemas/OrgConnectionResponse"
+ $ref: "#/components/schemas/OrgGroupResponse"
description: OK
"400":
- $ref: "#/components/responses/BadRequestResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
"401":
- $ref: "#/components/responses/UnauthorizedResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Unauthorized
"403":
- $ref: "#/components/responses/ForbiddenResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Forbidden
"404":
- $ref: "#/components/responses/NotFoundResponse"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ:
- - org_connections_write
- summary: Update Org Connection
- tags: ["Org Connections"]
+ summary: Update an org group
+ tags: [Org Groups]
"x-permission":
operator: OR
permissions:
- - org_connections_write
+ - org_group_write
+ 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/permissions:
get:
description: |-
@@ -114605,6 +116879,9 @@ tags:
- description: |-
Manage connections between organizations. Org connections allow for controlled sharing of data between different Datadog organizations. See the [Cross-Organization Visibiltiy](https://docs.datadoghq.com/account_management/org_settings/cross_org_visibility/) page for more information.
name: Org Connections
+ - description: >-
+ Manage organization groups, memberships, policies, policy overrides, and policy configurations.
+ name: Org Groups
- description: Create, edit, and manage your organizations. Read more about [multi-org accounts](https://docs.datadoghq.com/account_management/multi_organization).
externalDocs:
description: Find out more at
diff --git a/docs/datadog_api_client.v2.api.rst b/docs/datadog_api_client.v2.api.rst
index c3be7e8838..ded9fb1425 100644
--- a/docs/datadog_api_client.v2.api.rst
+++ b/docs/datadog_api_client.v2.api.rst
@@ -487,6 +487,13 @@ datadog\_api\_client.v2.api.org\_connections\_api module
:members:
:show-inheritance:
+datadog\_api\_client.v2.api.org\_groups\_api module
+---------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.api.org_groups_api
+ :members:
+ :show-inheritance:
+
datadog\_api\_client.v2.api.organizations\_api module
-----------------------------------------------------
diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst
index d1dc990342..1d8fe9505e 100644
--- a/docs/datadog_api_client.v2.model.rst
+++ b/docs/datadog_api_client.v2.model.rst
@@ -12618,6 +12618,13 @@ datadog\_api\_client.v2.model.global\_incident\_settings\_type module
:members:
:show-inheritance:
+datadog\_api\_client.v2.model.global\_org\_identifier module
+------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.global_org_identifier
+ :members:
+ :show-inheritance:
+
datadog\_api\_client.v2.model.global\_variable\_data module
-----------------------------------------------------------
@@ -21508,6 +21515,489 @@ datadog\_api\_client.v2.model.org\_connection\_user\_relationship\_data\_type mo
:members:
:show-inheritance:
+datadog\_api\_client.v2.model.org\_group\_attributes module
+-----------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_create\_attributes module
+-------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_create_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_create\_data module
+-------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_create_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_create\_request module
+----------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_create_request
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_data module
+-----------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_include\_option module
+----------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_include_option
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_list\_response module
+---------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_list_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_attributes module
+-----------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_bulk\_update\_attributes module
+-------------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_bulk_update_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_bulk\_update\_data module
+-------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_bulk_update_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_bulk\_update\_relationships module
+----------------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_bulk_update_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_bulk\_update\_request module
+----------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_bulk_update_request
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_bulk\_update\_type module
+-------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_bulk_update_type
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_data module
+-----------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_list\_response module
+---------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_list_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_relationship\_data module
+-------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_relationship_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_relationships module
+--------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_response module
+---------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_sort\_option module
+-------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_sort_option
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_type module
+-----------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_type
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_update\_data module
+-------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_update_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_update\_relationships module
+----------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_update_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_membership\_update\_request module
+----------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_membership_update_request
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_memberships\_relationship module
+--------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_memberships_relationship
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_pagination\_meta module
+-----------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_pagination_meta
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_pagination\_meta\_page module
+-----------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_pagination_meta_page
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_attributes module
+-------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_config\_attributes module
+---------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_config_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_config\_data module
+---------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_config_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_config\_list\_response module
+-------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_config_list_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_config\_type module
+---------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_config_type
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_create\_attributes module
+---------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_create_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_create\_data module
+---------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_create_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_create\_relationships module
+------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_create_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_create\_request module
+------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_create_request
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_data module
+-------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_list\_response module
+-----------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_list_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_attributes module
+-----------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_create\_attributes module
+-------------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_create_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_create\_data module
+-------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_create_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_create\_relationships module
+----------------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_create_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_create\_request module
+----------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_create_request
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_data module
+-----------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_list\_response module
+---------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_list_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_relationships module
+--------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_response module
+---------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_sort\_option module
+-------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_sort_option
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_type module
+-----------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_type
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_update\_attributes module
+-------------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_update_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_update\_data module
+-------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_update_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_override\_update\_request module
+----------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_override_update_request
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_relationship\_to\_one module
+------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_relationship_to_one
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_relationship\_to\_one\_data module
+------------------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_relationship_to_one_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_relationships module
+----------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_response module
+-----------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_sort\_option module
+---------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_sort_option
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_type module
+-------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_type
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_update\_attributes module
+---------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_update_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_update\_data module
+---------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_update_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_policy\_update\_request module
+------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_policy_update_request
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_relationship\_to\_one module
+----------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_relationship_to_one
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_relationship\_to\_one\_data module
+----------------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_relationship_to_one_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_relationships module
+--------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_relationships
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_response module
+---------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_response
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_sort\_option module
+-------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_sort_option
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_type module
+-----------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_type
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_update\_attributes module
+-------------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_update_attributes
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_update\_data module
+-------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_update_data
+ :members:
+ :show-inheritance:
+
+datadog\_api\_client.v2.model.org\_group\_update\_request module
+----------------------------------------------------------------
+
+.. automodule:: datadog_api_client.v2.model.org_group_update_request
+ :members:
+ :show-inheritance:
+
datadog\_api\_client.v2.model.organization module
-------------------------------------------------
diff --git a/examples/v2/org-groups/BulkUpdateOrgGroupMemberships.py b/examples/v2/org-groups/BulkUpdateOrgGroupMemberships.py
new file mode 100644
index 0000000000..4f38609b71
--- /dev/null
+++ b/examples/v2/org-groups/BulkUpdateOrgGroupMemberships.py
@@ -0,0 +1,56 @@
+"""
+Bulk update org group memberships returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+from datadog_api_client.v2.model.global_org_identifier import GlobalOrgIdentifier
+from datadog_api_client.v2.model.org_group_membership_bulk_update_attributes import (
+ OrgGroupMembershipBulkUpdateAttributes,
+)
+from datadog_api_client.v2.model.org_group_membership_bulk_update_data import OrgGroupMembershipBulkUpdateData
+from datadog_api_client.v2.model.org_group_membership_bulk_update_relationships import (
+ OrgGroupMembershipBulkUpdateRelationships,
+)
+from datadog_api_client.v2.model.org_group_membership_bulk_update_request import OrgGroupMembershipBulkUpdateRequest
+from datadog_api_client.v2.model.org_group_membership_bulk_update_type import OrgGroupMembershipBulkUpdateType
+from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+from datadog_api_client.v2.model.org_group_relationship_to_one_data import OrgGroupRelationshipToOneData
+from datadog_api_client.v2.model.org_group_type import OrgGroupType
+from uuid import UUID
+
+body = OrgGroupMembershipBulkUpdateRequest(
+ data=OrgGroupMembershipBulkUpdateData(
+ attributes=OrgGroupMembershipBulkUpdateAttributes(
+ orgs=[
+ GlobalOrgIdentifier(
+ org_site="datadoghq.com",
+ org_uuid=UUID("c3d4e5f6-a7b8-9012-cdef-012345678901"),
+ ),
+ ],
+ ),
+ relationships=OrgGroupMembershipBulkUpdateRelationships(
+ source_org_group=OrgGroupRelationshipToOne(
+ data=OrgGroupRelationshipToOneData(
+ id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ type=OrgGroupType.ORG_GROUPS,
+ ),
+ ),
+ target_org_group=OrgGroupRelationshipToOne(
+ data=OrgGroupRelationshipToOneData(
+ id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ type=OrgGroupType.ORG_GROUPS,
+ ),
+ ),
+ ),
+ type=OrgGroupMembershipBulkUpdateType.ORG_GROUP_MEMBERSHIP_BULK_UPDATES,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["bulk_update_org_group_memberships"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.bulk_update_org_group_memberships(body=body)
+
+ print(response)
diff --git a/examples/v2/org-groups/CreateOrgGroup.py b/examples/v2/org-groups/CreateOrgGroup.py
new file mode 100644
index 0000000000..eb98ca7c46
--- /dev/null
+++ b/examples/v2/org-groups/CreateOrgGroup.py
@@ -0,0 +1,27 @@
+"""
+Create an org group returns "Created" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+from datadog_api_client.v2.model.org_group_create_attributes import OrgGroupCreateAttributes
+from datadog_api_client.v2.model.org_group_create_data import OrgGroupCreateData
+from datadog_api_client.v2.model.org_group_create_request import OrgGroupCreateRequest
+from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+body = OrgGroupCreateRequest(
+ data=OrgGroupCreateData(
+ attributes=OrgGroupCreateAttributes(
+ name="My Org Group",
+ ),
+ type=OrgGroupType.ORG_GROUPS,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["create_org_group"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.create_org_group(body=body)
+
+ print(response)
diff --git a/examples/v2/org-groups/CreateOrgGroupPolicy.py b/examples/v2/org-groups/CreateOrgGroupPolicy.py
new file mode 100644
index 0000000000..f33361d1ee
--- /dev/null
+++ b/examples/v2/org-groups/CreateOrgGroupPolicy.py
@@ -0,0 +1,41 @@
+"""
+Create an org group policy returns "Created" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+from datadog_api_client.v2.model.org_group_policy_create_attributes import OrgGroupPolicyCreateAttributes
+from datadog_api_client.v2.model.org_group_policy_create_data import OrgGroupPolicyCreateData
+from datadog_api_client.v2.model.org_group_policy_create_relationships import OrgGroupPolicyCreateRelationships
+from datadog_api_client.v2.model.org_group_policy_create_request import OrgGroupPolicyCreateRequest
+from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+from datadog_api_client.v2.model.org_group_relationship_to_one_data import OrgGroupRelationshipToOneData
+from datadog_api_client.v2.model.org_group_type import OrgGroupType
+from uuid import UUID
+
+body = OrgGroupPolicyCreateRequest(
+ data=OrgGroupPolicyCreateData(
+ attributes=OrgGroupPolicyCreateAttributes(
+ content=dict([("value", "UTC")]),
+ policy_name="monitor_timezone",
+ ),
+ relationships=OrgGroupPolicyCreateRelationships(
+ org_group=OrgGroupRelationshipToOne(
+ data=OrgGroupRelationshipToOneData(
+ id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ type=OrgGroupType.ORG_GROUPS,
+ ),
+ ),
+ ),
+ type=OrgGroupPolicyType.ORG_GROUP_POLICIES,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["create_org_group_policy"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.create_org_group_policy(body=body)
+
+ print(response)
diff --git a/examples/v2/org-groups/CreateOrgGroupPolicyOverride.py b/examples/v2/org-groups/CreateOrgGroupPolicyOverride.py
new file mode 100644
index 0000000000..6b348c185f
--- /dev/null
+++ b/examples/v2/org-groups/CreateOrgGroupPolicyOverride.py
@@ -0,0 +1,54 @@
+"""
+Create an org group policy override returns "Created" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+from datadog_api_client.v2.model.org_group_policy_override_create_attributes import (
+ OrgGroupPolicyOverrideCreateAttributes,
+)
+from datadog_api_client.v2.model.org_group_policy_override_create_data import OrgGroupPolicyOverrideCreateData
+from datadog_api_client.v2.model.org_group_policy_override_create_relationships import (
+ OrgGroupPolicyOverrideCreateRelationships,
+)
+from datadog_api_client.v2.model.org_group_policy_override_create_request import OrgGroupPolicyOverrideCreateRequest
+from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+from datadog_api_client.v2.model.org_group_policy_relationship_to_one import OrgGroupPolicyRelationshipToOne
+from datadog_api_client.v2.model.org_group_policy_relationship_to_one_data import OrgGroupPolicyRelationshipToOneData
+from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+from datadog_api_client.v2.model.org_group_relationship_to_one_data import OrgGroupRelationshipToOneData
+from datadog_api_client.v2.model.org_group_type import OrgGroupType
+from uuid import UUID
+
+body = OrgGroupPolicyOverrideCreateRequest(
+ data=OrgGroupPolicyOverrideCreateData(
+ attributes=OrgGroupPolicyOverrideCreateAttributes(
+ org_site="datadoghq.com",
+ org_uuid=UUID("c3d4e5f6-a7b8-9012-cdef-012345678901"),
+ ),
+ relationships=OrgGroupPolicyOverrideCreateRelationships(
+ org_group=OrgGroupRelationshipToOne(
+ data=OrgGroupRelationshipToOneData(
+ id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ type=OrgGroupType.ORG_GROUPS,
+ ),
+ ),
+ org_group_policy=OrgGroupPolicyRelationshipToOne(
+ data=OrgGroupPolicyRelationshipToOneData(
+ id=UUID("1a2b3c4d-5e6f-7890-abcd-ef0123456789"),
+ type=OrgGroupPolicyType.ORG_GROUP_POLICIES,
+ ),
+ ),
+ ),
+ type=OrgGroupPolicyOverrideType.ORG_GROUP_POLICY_OVERRIDES,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["create_org_group_policy_override"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.create_org_group_policy_override(body=body)
+
+ print(response)
diff --git a/examples/v2/org-groups/DeleteOrgGroup.py b/examples/v2/org-groups/DeleteOrgGroup.py
new file mode 100644
index 0000000000..9cf91e9ff8
--- /dev/null
+++ b/examples/v2/org-groups/DeleteOrgGroup.py
@@ -0,0 +1,15 @@
+"""
+Delete an org group returns "No Content" 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["delete_org_group"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ api_instance.delete_org_group(
+ org_group_id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ )
diff --git a/examples/v2/org-groups/DeleteOrgGroupPolicy.py b/examples/v2/org-groups/DeleteOrgGroupPolicy.py
new file mode 100644
index 0000000000..a1209a88a7
--- /dev/null
+++ b/examples/v2/org-groups/DeleteOrgGroupPolicy.py
@@ -0,0 +1,15 @@
+"""
+Delete an org group policy returns "No Content" 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["delete_org_group_policy"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ api_instance.delete_org_group_policy(
+ org_group_policy_id=UUID("1a2b3c4d-5e6f-7890-abcd-ef0123456789"),
+ )
diff --git a/examples/v2/org-groups/DeleteOrgGroupPolicyOverride.py b/examples/v2/org-groups/DeleteOrgGroupPolicyOverride.py
new file mode 100644
index 0000000000..d3482d431b
--- /dev/null
+++ b/examples/v2/org-groups/DeleteOrgGroupPolicyOverride.py
@@ -0,0 +1,15 @@
+"""
+Delete an org group policy override returns "No Content" 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["delete_org_group_policy_override"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ api_instance.delete_org_group_policy_override(
+ org_group_policy_override_id=UUID("9f8e7d6c-5b4a-3210-fedc-ba0987654321"),
+ )
diff --git a/examples/v2/org-groups/GetOrgGroup.py b/examples/v2/org-groups/GetOrgGroup.py
new file mode 100644
index 0000000000..808e5492cb
--- /dev/null
+++ b/examples/v2/org-groups/GetOrgGroup.py
@@ -0,0 +1,17 @@
+"""
+Get an org group 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["get_org_group"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.get_org_group(
+ org_group_id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ )
+
+ print(response)
diff --git a/examples/v2/org-groups/GetOrgGroupMembership.py b/examples/v2/org-groups/GetOrgGroupMembership.py
new file mode 100644
index 0000000000..821ec513d6
--- /dev/null
+++ b/examples/v2/org-groups/GetOrgGroupMembership.py
@@ -0,0 +1,17 @@
+"""
+Get an org group membership 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["get_org_group_membership"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.get_org_group_membership(
+ org_group_membership_id=UUID("f1e2d3c4-b5a6-7890-1234-567890abcdef"),
+ )
+
+ print(response)
diff --git a/examples/v2/org-groups/ListOrgGroupMemberships.py b/examples/v2/org-groups/ListOrgGroupMemberships.py
new file mode 100644
index 0000000000..dcff5d506b
--- /dev/null
+++ b/examples/v2/org-groups/ListOrgGroupMemberships.py
@@ -0,0 +1,14 @@
+"""
+List org group memberships returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+
+configuration = Configuration()
+configuration.unstable_operations["list_org_group_memberships"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.list_org_group_memberships()
+
+ print(response)
diff --git a/examples/v2/org-groups/ListOrgGroupPolicies.py b/examples/v2/org-groups/ListOrgGroupPolicies.py
new file mode 100644
index 0000000000..9f3eaf81e8
--- /dev/null
+++ b/examples/v2/org-groups/ListOrgGroupPolicies.py
@@ -0,0 +1,17 @@
+"""
+List org group policies 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_policies"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.list_org_group_policies(
+ filter_org_group_id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ )
+
+ print(response)
diff --git a/examples/v2/org-groups/ListOrgGroupPolicyConfigs.py b/examples/v2/org-groups/ListOrgGroupPolicyConfigs.py
new file mode 100644
index 0000000000..26e92a48cd
--- /dev/null
+++ b/examples/v2/org-groups/ListOrgGroupPolicyConfigs.py
@@ -0,0 +1,14 @@
+"""
+List org group policy configs returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+
+configuration = Configuration()
+configuration.unstable_operations["list_org_group_policy_configs"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.list_org_group_policy_configs()
+
+ print(response)
diff --git a/examples/v2/org-groups/ListOrgGroupPolicyOverrides.py b/examples/v2/org-groups/ListOrgGroupPolicyOverrides.py
new file mode 100644
index 0000000000..528a8b2bf7
--- /dev/null
+++ b/examples/v2/org-groups/ListOrgGroupPolicyOverrides.py
@@ -0,0 +1,17 @@
+"""
+List org group policy overrides 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_overrides"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.list_org_group_policy_overrides(
+ filter_org_group_id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ )
+
+ print(response)
diff --git a/examples/v2/org-groups/ListOrgGroups.py b/examples/v2/org-groups/ListOrgGroups.py
new file mode 100644
index 0000000000..adf20b24e9
--- /dev/null
+++ b/examples/v2/org-groups/ListOrgGroups.py
@@ -0,0 +1,14 @@
+"""
+List org groups returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+
+configuration = Configuration()
+configuration.unstable_operations["list_org_groups"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.list_org_groups()
+
+ print(response)
diff --git a/examples/v2/org-groups/UpdateOrgGroup.py b/examples/v2/org-groups/UpdateOrgGroup.py
new file mode 100644
index 0000000000..c1072c5f91
--- /dev/null
+++ b/examples/v2/org-groups/UpdateOrgGroup.py
@@ -0,0 +1,29 @@
+"""
+Update an org group returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+from datadog_api_client.v2.model.org_group_type import OrgGroupType
+from datadog_api_client.v2.model.org_group_update_attributes import OrgGroupUpdateAttributes
+from datadog_api_client.v2.model.org_group_update_data import OrgGroupUpdateData
+from datadog_api_client.v2.model.org_group_update_request import OrgGroupUpdateRequest
+from uuid import UUID
+
+body = OrgGroupUpdateRequest(
+ data=OrgGroupUpdateData(
+ attributes=OrgGroupUpdateAttributes(
+ name="Updated Org Group Name",
+ ),
+ id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ type=OrgGroupType.ORG_GROUPS,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["update_org_group"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.update_org_group(org_group_id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"), body=body)
+
+ print(response)
diff --git a/examples/v2/org-groups/UpdateOrgGroupMembership.py b/examples/v2/org-groups/UpdateOrgGroupMembership.py
new file mode 100644
index 0000000000..89df1c94c2
--- /dev/null
+++ b/examples/v2/org-groups/UpdateOrgGroupMembership.py
@@ -0,0 +1,39 @@
+"""
+Update an org group membership returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+from datadog_api_client.v2.model.org_group_membership_update_data import OrgGroupMembershipUpdateData
+from datadog_api_client.v2.model.org_group_membership_update_relationships import OrgGroupMembershipUpdateRelationships
+from datadog_api_client.v2.model.org_group_membership_update_request import OrgGroupMembershipUpdateRequest
+from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+from datadog_api_client.v2.model.org_group_relationship_to_one_data import OrgGroupRelationshipToOneData
+from datadog_api_client.v2.model.org_group_type import OrgGroupType
+from uuid import UUID
+
+body = OrgGroupMembershipUpdateRequest(
+ data=OrgGroupMembershipUpdateData(
+ id=UUID("f1e2d3c4-b5a6-7890-1234-567890abcdef"),
+ relationships=OrgGroupMembershipUpdateRelationships(
+ org_group=OrgGroupRelationshipToOne(
+ data=OrgGroupRelationshipToOneData(
+ id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"),
+ type=OrgGroupType.ORG_GROUPS,
+ ),
+ ),
+ ),
+ type=OrgGroupMembershipType.ORG_GROUP_MEMBERSHIPS,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["update_org_group_membership"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.update_org_group_membership(
+ org_group_membership_id=UUID("f1e2d3c4-b5a6-7890-1234-567890abcdef"), body=body
+ )
+
+ print(response)
diff --git a/examples/v2/org-groups/UpdateOrgGroupPolicy.py b/examples/v2/org-groups/UpdateOrgGroupPolicy.py
new file mode 100644
index 0000000000..3decf71b94
--- /dev/null
+++ b/examples/v2/org-groups/UpdateOrgGroupPolicy.py
@@ -0,0 +1,31 @@
+"""
+Update an org group policy returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+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
+from datadog_api_client.v2.model.org_group_policy_update_request import OrgGroupPolicyUpdateRequest
+from uuid import UUID
+
+body = OrgGroupPolicyUpdateRequest(
+ data=OrgGroupPolicyUpdateData(
+ attributes=OrgGroupPolicyUpdateAttributes(
+ content=dict([("value", "UTC")]),
+ ),
+ id=UUID("1a2b3c4d-5e6f-7890-abcd-ef0123456789"),
+ type=OrgGroupPolicyType.ORG_GROUP_POLICIES,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["update_org_group_policy"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.update_org_group_policy(
+ org_group_policy_id=UUID("1a2b3c4d-5e6f-7890-abcd-ef0123456789"), body=body
+ )
+
+ print(response)
diff --git a/examples/v2/org-groups/UpdateOrgGroupPolicyOverride.py b/examples/v2/org-groups/UpdateOrgGroupPolicyOverride.py
new file mode 100644
index 0000000000..b59bc61a69
--- /dev/null
+++ b/examples/v2/org-groups/UpdateOrgGroupPolicyOverride.py
@@ -0,0 +1,34 @@
+"""
+Update an org group policy override returns "OK" response
+"""
+
+from datadog_api_client import ApiClient, Configuration
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
+from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+from datadog_api_client.v2.model.org_group_policy_override_update_attributes import (
+ OrgGroupPolicyOverrideUpdateAttributes,
+)
+from datadog_api_client.v2.model.org_group_policy_override_update_data import OrgGroupPolicyOverrideUpdateData
+from datadog_api_client.v2.model.org_group_policy_override_update_request import OrgGroupPolicyOverrideUpdateRequest
+from uuid import UUID
+
+body = OrgGroupPolicyOverrideUpdateRequest(
+ data=OrgGroupPolicyOverrideUpdateData(
+ attributes=OrgGroupPolicyOverrideUpdateAttributes(
+ org_site="datadoghq.com",
+ org_uuid=UUID("c3d4e5f6-a7b8-9012-cdef-012345678901"),
+ ),
+ id=UUID("9f8e7d6c-5b4a-3210-fedc-ba0987654321"),
+ type=OrgGroupPolicyOverrideType.ORG_GROUP_POLICY_OVERRIDES,
+ ),
+)
+
+configuration = Configuration()
+configuration.unstable_operations["update_org_group_policy_override"] = True
+with ApiClient(configuration) as api_client:
+ api_instance = OrgGroupsApi(api_client)
+ response = api_instance.update_org_group_policy_override(
+ org_group_policy_override_id=UUID("9f8e7d6c-5b4a-3210-fedc-ba0987654321"), body=body
+ )
+
+ print(response)
diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py
index c40c8ba9fc..f809dfa8f6 100644
--- a/src/datadog_api_client/configuration.py
+++ b/src/datadog_api_client/configuration.py
@@ -435,6 +435,24 @@ def __init__(
"v2.update_monitor_user_template": False,
"v2.validate_existing_monitor_user_template": False,
"v2.validate_monitor_user_template": False,
+ "v2.bulk_update_org_group_memberships": False,
+ "v2.create_org_group": False,
+ "v2.create_org_group_policy": False,
+ "v2.create_org_group_policy_override": False,
+ "v2.delete_org_group": False,
+ "v2.delete_org_group_policy": False,
+ "v2.delete_org_group_policy_override": False,
+ "v2.get_org_group": False,
+ "v2.get_org_group_membership": False,
+ "v2.list_org_group_memberships": False,
+ "v2.list_org_group_policies": False,
+ "v2.list_org_group_policy_configs": False,
+ "v2.list_org_group_policy_overrides": False,
+ "v2.list_org_groups": False,
+ "v2.update_org_group": False,
+ "v2.update_org_group_membership": False,
+ "v2.update_org_group_policy": False,
+ "v2.update_org_group_policy_override": False,
"v2.list_role_templates": False,
"v2.create_connection": False,
"v2.delete_connection": 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
new file mode 100644
index 0000000000..b3b7f269f6
--- /dev/null
+++ b/src/datadog_api_client/v2/api/org_groups_api.py
@@ -0,0 +1,965 @@
+# 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, Dict, List, 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 (
+ UnsetType,
+ unset,
+ UUID,
+)
+from datadog_api_client.v2.model.org_group_membership_list_response import OrgGroupMembershipListResponse
+from datadog_api_client.v2.model.org_group_membership_sort_option import OrgGroupMembershipSortOption
+from datadog_api_client.v2.model.org_group_membership_bulk_update_request import OrgGroupMembershipBulkUpdateRequest
+from datadog_api_client.v2.model.org_group_membership_response import OrgGroupMembershipResponse
+from datadog_api_client.v2.model.org_group_membership_update_request import OrgGroupMembershipUpdateRequest
+from datadog_api_client.v2.model.org_group_policy_list_response import OrgGroupPolicyListResponse
+from datadog_api_client.v2.model.org_group_policy_sort_option import OrgGroupPolicySortOption
+from datadog_api_client.v2.model.org_group_policy_response import OrgGroupPolicyResponse
+from datadog_api_client.v2.model.org_group_policy_create_request import OrgGroupPolicyCreateRequest
+from datadog_api_client.v2.model.org_group_policy_update_request import OrgGroupPolicyUpdateRequest
+from datadog_api_client.v2.model.org_group_policy_config_list_response import OrgGroupPolicyConfigListResponse
+from datadog_api_client.v2.model.org_group_policy_override_list_response import OrgGroupPolicyOverrideListResponse
+from datadog_api_client.v2.model.org_group_policy_override_sort_option import OrgGroupPolicyOverrideSortOption
+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_list_response import OrgGroupListResponse
+from datadog_api_client.v2.model.org_group_sort_option import OrgGroupSortOption
+from datadog_api_client.v2.model.org_group_include_option import OrgGroupIncludeOption
+from datadog_api_client.v2.model.org_group_response import OrgGroupResponse
+from datadog_api_client.v2.model.org_group_create_request import OrgGroupCreateRequest
+from datadog_api_client.v2.model.org_group_update_request import OrgGroupUpdateRequest
+
+
+class OrgGroupsApi:
+ """
+ Manage organization groups, memberships, policies, policy overrides, and policy configurations.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient(Configuration())
+ self.api_client = api_client
+
+ self._bulk_update_org_group_memberships_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupMembershipListResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_memberships/bulk",
+ "operation_id": "bulk_update_org_group_memberships",
+ "http_method": "PATCH",
+ "version": "v2",
+ },
+ params_map={
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupMembershipBulkUpdateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ self._create_org_group_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_groups",
+ "operation_id": "create_org_group",
+ "http_method": "POST",
+ "version": "v2",
+ },
+ params_map={
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupCreateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ self._create_org_group_policy_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupPolicyResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policies",
+ "operation_id": "create_org_group_policy",
+ "http_method": "POST",
+ "version": "v2",
+ },
+ params_map={
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupPolicyCreateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ self._create_org_group_policy_override_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupPolicyOverrideResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policy_overrides",
+ "operation_id": "create_org_group_policy_override",
+ "http_method": "POST",
+ "version": "v2",
+ },
+ params_map={
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupPolicyOverrideCreateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ self._delete_org_group_endpoint = _Endpoint(
+ settings={
+ "response_type": None,
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_groups/{org_group_id}",
+ "operation_id": "delete_org_group",
+ "http_method": "DELETE",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_id",
+ "location": "path",
+ },
+ },
+ headers_map={
+ "accept": ["*/*"],
+ },
+ api_client=api_client,
+ )
+
+ self._delete_org_group_policy_endpoint = _Endpoint(
+ settings={
+ "response_type": None,
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policies/{org_group_policy_id}",
+ "operation_id": "delete_org_group_policy",
+ "http_method": "DELETE",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_policy_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_policy_id",
+ "location": "path",
+ },
+ },
+ headers_map={
+ "accept": ["*/*"],
+ },
+ api_client=api_client,
+ )
+
+ self._delete_org_group_policy_override_endpoint = _Endpoint(
+ settings={
+ "response_type": None,
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policy_overrides/{org_group_policy_override_id}",
+ "operation_id": "delete_org_group_policy_override",
+ "http_method": "DELETE",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_policy_override_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_policy_override_id",
+ "location": "path",
+ },
+ },
+ headers_map={
+ "accept": ["*/*"],
+ },
+ api_client=api_client,
+ )
+
+ self._get_org_group_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_groups/{org_group_id}",
+ "operation_id": "get_org_group",
+ "http_method": "GET",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_id",
+ "location": "path",
+ },
+ },
+ headers_map={
+ "accept": ["application/json"],
+ },
+ api_client=api_client,
+ )
+
+ self._get_org_group_membership_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupMembershipResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_memberships/{org_group_membership_id}",
+ "operation_id": "get_org_group_membership",
+ "http_method": "GET",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_membership_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_membership_id",
+ "location": "path",
+ },
+ },
+ headers_map={
+ "accept": ["application/json"],
+ },
+ api_client=api_client,
+ )
+
+ self._list_org_group_memberships_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupMembershipListResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_memberships",
+ "operation_id": "list_org_group_memberships",
+ "http_method": "GET",
+ "version": "v2",
+ },
+ params_map={
+ "filter_org_group_id": {
+ "openapi_types": (UUID,),
+ "attribute": "filter[org_group_id]",
+ "location": "query",
+ },
+ "filter_org_uuid": {
+ "openapi_types": (UUID,),
+ "attribute": "filter[org_uuid]",
+ "location": "query",
+ },
+ "page_number": {
+ "validation": {
+ "inclusive_minimum": 0,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[number]",
+ "location": "query",
+ },
+ "page_size": {
+ "validation": {
+ "inclusive_maximum": 1000,
+ "inclusive_minimum": 1,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[size]",
+ "location": "query",
+ },
+ "sort": {
+ "openapi_types": (OrgGroupMembershipSortOption,),
+ "attribute": "sort",
+ "location": "query",
+ },
+ },
+ headers_map={
+ "accept": ["application/json"],
+ },
+ api_client=api_client,
+ )
+
+ self._list_org_group_policies_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupPolicyListResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policies",
+ "operation_id": "list_org_group_policies",
+ "http_method": "GET",
+ "version": "v2",
+ },
+ params_map={
+ "filter_org_group_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "filter[org_group_id]",
+ "location": "query",
+ },
+ "filter_policy_name": {
+ "openapi_types": (str,),
+ "attribute": "filter[policy_name]",
+ "location": "query",
+ },
+ "page_number": {
+ "validation": {
+ "inclusive_minimum": 0,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[number]",
+ "location": "query",
+ },
+ "page_size": {
+ "validation": {
+ "inclusive_maximum": 1000,
+ "inclusive_minimum": 1,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[size]",
+ "location": "query",
+ },
+ "sort": {
+ "openapi_types": (OrgGroupPolicySortOption,),
+ "attribute": "sort",
+ "location": "query",
+ },
+ },
+ headers_map={
+ "accept": ["application/json"],
+ },
+ api_client=api_client,
+ )
+
+ self._list_org_group_policy_configs_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupPolicyConfigListResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policy_configs",
+ "operation_id": "list_org_group_policy_configs",
+ "http_method": "GET",
+ "version": "v2",
+ },
+ params_map={},
+ headers_map={
+ "accept": ["application/json"],
+ },
+ api_client=api_client,
+ )
+
+ self._list_org_group_policy_overrides_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupPolicyOverrideListResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policy_overrides",
+ "operation_id": "list_org_group_policy_overrides",
+ "http_method": "GET",
+ "version": "v2",
+ },
+ params_map={
+ "filter_org_group_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "filter[org_group_id]",
+ "location": "query",
+ },
+ "filter_policy_id": {
+ "openapi_types": (UUID,),
+ "attribute": "filter[policy_id]",
+ "location": "query",
+ },
+ "page_number": {
+ "validation": {
+ "inclusive_minimum": 0,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[number]",
+ "location": "query",
+ },
+ "page_size": {
+ "validation": {
+ "inclusive_maximum": 1000,
+ "inclusive_minimum": 1,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[size]",
+ "location": "query",
+ },
+ "sort": {
+ "openapi_types": (OrgGroupPolicyOverrideSortOption,),
+ "attribute": "sort",
+ "location": "query",
+ },
+ },
+ headers_map={
+ "accept": ["application/json"],
+ },
+ api_client=api_client,
+ )
+
+ self._list_org_groups_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupListResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_groups",
+ "operation_id": "list_org_groups",
+ "http_method": "GET",
+ "version": "v2",
+ },
+ params_map={
+ "page_number": {
+ "validation": {
+ "inclusive_minimum": 0,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[number]",
+ "location": "query",
+ },
+ "page_size": {
+ "validation": {
+ "inclusive_maximum": 1000,
+ "inclusive_minimum": 1,
+ },
+ "openapi_types": (int,),
+ "attribute": "page[size]",
+ "location": "query",
+ },
+ "sort": {
+ "openapi_types": (OrgGroupSortOption,),
+ "attribute": "sort",
+ "location": "query",
+ },
+ "include": {
+ "openapi_types": ([OrgGroupIncludeOption],),
+ "attribute": "include",
+ "location": "query",
+ "collection_format": "csv",
+ },
+ },
+ headers_map={
+ "accept": ["application/json"],
+ },
+ api_client=api_client,
+ )
+
+ self._update_org_group_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_groups/{org_group_id}",
+ "operation_id": "update_org_group",
+ "http_method": "PATCH",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_id",
+ "location": "path",
+ },
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupUpdateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ self._update_org_group_membership_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupMembershipResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_memberships/{org_group_membership_id}",
+ "operation_id": "update_org_group_membership",
+ "http_method": "PATCH",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_membership_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_membership_id",
+ "location": "path",
+ },
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupMembershipUpdateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ self._update_org_group_policy_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupPolicyResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policies/{org_group_policy_id}",
+ "operation_id": "update_org_group_policy",
+ "http_method": "PATCH",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_policy_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_policy_id",
+ "location": "path",
+ },
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupPolicyUpdateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ self._update_org_group_policy_override_endpoint = _Endpoint(
+ settings={
+ "response_type": (OrgGroupPolicyOverrideResponse,),
+ "auth": ["apiKeyAuth", "appKeyAuth"],
+ "endpoint_path": "/api/v2/org_group_policy_overrides/{org_group_policy_override_id}",
+ "operation_id": "update_org_group_policy_override",
+ "http_method": "PATCH",
+ "version": "v2",
+ },
+ params_map={
+ "org_group_policy_override_id": {
+ "required": True,
+ "openapi_types": (UUID,),
+ "attribute": "org_group_policy_override_id",
+ "location": "path",
+ },
+ "body": {
+ "required": True,
+ "openapi_types": (OrgGroupPolicyOverrideUpdateRequest,),
+ "location": "body",
+ },
+ },
+ headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
+ api_client=api_client,
+ )
+
+ def bulk_update_org_group_memberships(
+ self,
+ body: OrgGroupMembershipBulkUpdateRequest,
+ ) -> OrgGroupMembershipListResponse:
+ """Bulk update org group memberships.
+
+ Move a batch of organizations from one org group to another. This is an atomic operation. Maximum 100 orgs per request.
+
+ :type body: OrgGroupMembershipBulkUpdateRequest
+ :rtype: OrgGroupMembershipListResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["body"] = body
+
+ return self._bulk_update_org_group_memberships_endpoint.call_with_http_info(**kwargs)
+
+ def create_org_group(
+ self,
+ body: OrgGroupCreateRequest,
+ ) -> OrgGroupResponse:
+ """Create an org group.
+
+ Create a new organization group.
+
+ :type body: OrgGroupCreateRequest
+ :rtype: OrgGroupResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["body"] = body
+
+ return self._create_org_group_endpoint.call_with_http_info(**kwargs)
+
+ def create_org_group_policy(
+ self,
+ body: OrgGroupPolicyCreateRequest,
+ ) -> OrgGroupPolicyResponse:
+ """Create an org group policy.
+
+ Create a new policy for an organization group.
+
+ :type body: OrgGroupPolicyCreateRequest
+ :rtype: OrgGroupPolicyResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["body"] = body
+
+ return self._create_org_group_policy_endpoint.call_with_http_info(**kwargs)
+
+ def create_org_group_policy_override(
+ self,
+ body: OrgGroupPolicyOverrideCreateRequest,
+ ) -> OrgGroupPolicyOverrideResponse:
+ """Create an org group policy override.
+
+ Create a new policy override for an organization within an org group.
+
+ :type body: OrgGroupPolicyOverrideCreateRequest
+ :rtype: OrgGroupPolicyOverrideResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["body"] = body
+
+ return self._create_org_group_policy_override_endpoint.call_with_http_info(**kwargs)
+
+ def delete_org_group(
+ self,
+ org_group_id: UUID,
+ ) -> None:
+ """Delete an org group.
+
+ Delete an organization group by its ID.
+
+ :param org_group_id: The ID of the org group.
+ :type org_group_id: UUID
+ :rtype: None
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_id"] = org_group_id
+
+ return self._delete_org_group_endpoint.call_with_http_info(**kwargs)
+
+ def delete_org_group_policy(
+ self,
+ org_group_policy_id: UUID,
+ ) -> None:
+ """Delete an org group policy.
+
+ Delete an organization group policy by its ID.
+
+ :param org_group_policy_id: The ID of the org group policy.
+ :type org_group_policy_id: UUID
+ :rtype: None
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_policy_id"] = org_group_policy_id
+
+ return self._delete_org_group_policy_endpoint.call_with_http_info(**kwargs)
+
+ def delete_org_group_policy_override(
+ self,
+ org_group_policy_override_id: UUID,
+ ) -> None:
+ """Delete an org group policy override.
+
+ Delete an organization group policy override by its ID.
+
+ :param org_group_policy_override_id: The ID of the org group policy override.
+ :type org_group_policy_override_id: UUID
+ :rtype: None
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_policy_override_id"] = org_group_policy_override_id
+
+ return self._delete_org_group_policy_override_endpoint.call_with_http_info(**kwargs)
+
+ def get_org_group(
+ self,
+ org_group_id: UUID,
+ ) -> OrgGroupResponse:
+ """Get an org group.
+
+ Get a specific organization group by its ID.
+
+ :param org_group_id: The ID of the org group.
+ :type org_group_id: UUID
+ :rtype: OrgGroupResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_id"] = org_group_id
+
+ return self._get_org_group_endpoint.call_with_http_info(**kwargs)
+
+ def get_org_group_membership(
+ self,
+ org_group_membership_id: UUID,
+ ) -> OrgGroupMembershipResponse:
+ """Get an org group membership.
+
+ Get a specific organization group membership by its ID.
+
+ :param org_group_membership_id: The ID of the org group membership.
+ :type org_group_membership_id: UUID
+ :rtype: OrgGroupMembershipResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_membership_id"] = org_group_membership_id
+
+ return self._get_org_group_membership_endpoint.call_with_http_info(**kwargs)
+
+ def list_org_group_memberships(
+ self,
+ *,
+ filter_org_group_id: Union[UUID, UnsetType] = unset,
+ filter_org_uuid: Union[UUID, UnsetType] = unset,
+ page_number: Union[int, UnsetType] = unset,
+ page_size: Union[int, UnsetType] = unset,
+ sort: Union[OrgGroupMembershipSortOption, UnsetType] = unset,
+ ) -> OrgGroupMembershipListResponse:
+ """List org group memberships.
+
+ List organization group memberships. Filter by org group ID or org UUID. When filtering by org UUID, returns a single-item list with the membership for that org.
+
+ :param filter_org_group_id: Filter memberships by org group ID. Required when ``filter[org_uuid]`` is not provided.
+ :type filter_org_group_id: UUID, optional
+ :param filter_org_uuid: Filter memberships by org UUID. Returns a single-item list.
+ :type filter_org_uuid: UUID, optional
+ :param page_number: The page number to return.
+ :type page_number: int, optional
+ :param page_size: The number of items per page. Maximum is 1000.
+ :type page_size: int, optional
+ :param sort: Field to sort memberships by. Supported values: ``name`` , ``uuid`` , ``-name`` , ``-uuid``. Defaults to ``uuid``.
+ :type sort: OrgGroupMembershipSortOption, optional
+ :rtype: OrgGroupMembershipListResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ if filter_org_group_id is not unset:
+ kwargs["filter_org_group_id"] = filter_org_group_id
+
+ if filter_org_uuid is not unset:
+ kwargs["filter_org_uuid"] = filter_org_uuid
+
+ if page_number is not unset:
+ kwargs["page_number"] = page_number
+
+ if page_size is not unset:
+ kwargs["page_size"] = page_size
+
+ if sort is not unset:
+ kwargs["sort"] = sort
+
+ return self._list_org_group_memberships_endpoint.call_with_http_info(**kwargs)
+
+ def list_org_group_policies(
+ self,
+ filter_org_group_id: UUID,
+ *,
+ filter_policy_name: Union[str, UnsetType] = unset,
+ page_number: Union[int, UnsetType] = unset,
+ page_size: Union[int, UnsetType] = unset,
+ sort: Union[OrgGroupPolicySortOption, UnsetType] = unset,
+ ) -> OrgGroupPolicyListResponse:
+ """List org group policies.
+
+ List policies for an organization group. 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_policy_name: Filter policies by policy name.
+ :type filter_policy_name: str, optional
+ :param page_number: The page number to return.
+ :type page_number: int, optional
+ :param page_size: The number of items per page. Maximum is 1000.
+ :type page_size: int, optional
+ :param sort: Field to sort policies by. Supported values: ``id`` , ``name`` , ``-id`` , ``-name``. Defaults to ``id``.
+ :type sort: OrgGroupPolicySortOption, optional
+ :rtype: OrgGroupPolicyListResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["filter_org_group_id"] = filter_org_group_id
+
+ if filter_policy_name is not unset:
+ kwargs["filter_policy_name"] = filter_policy_name
+
+ if page_number is not unset:
+ kwargs["page_number"] = page_number
+
+ if page_size is not unset:
+ kwargs["page_size"] = page_size
+
+ if sort is not unset:
+ kwargs["sort"] = sort
+
+ return self._list_org_group_policies_endpoint.call_with_http_info(**kwargs)
+
+ def list_org_group_policy_configs(
+ self,
+ ) -> OrgGroupPolicyConfigListResponse:
+ """List org group policy configs.
+
+ List all org configs that are eligible to be used as organization group policies.
+
+ :rtype: OrgGroupPolicyConfigListResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ return self._list_org_group_policy_configs_endpoint.call_with_http_info(**kwargs)
+
+ def list_org_group_policy_overrides(
+ self,
+ filter_org_group_id: UUID,
+ *,
+ filter_policy_id: Union[UUID, UnsetType] = unset,
+ page_number: Union[int, UnsetType] = unset,
+ page_size: Union[int, UnsetType] = unset,
+ sort: Union[OrgGroupPolicyOverrideSortOption, UnsetType] = unset,
+ ) -> OrgGroupPolicyOverrideListResponse:
+ """List org group policy overrides.
+
+ List policy overrides for an organization group. Requires a filter on org group ID. Optionally filter by policy ID.
+
+ :param filter_org_group_id: Filter policy overrides by org group ID.
+ :type filter_org_group_id: UUID
+ :param filter_policy_id: Filter policy overrides by policy ID.
+ :type filter_policy_id: UUID, optional
+ :param page_number: The page number to return.
+ :type page_number: int, optional
+ :param page_size: The number of items per page. Maximum is 1000.
+ :type page_size: int, optional
+ :param sort: Field to sort overrides by. Supported values: ``id`` , ``org_uuid`` , ``-id`` , ``-org_uuid``. Defaults to ``id``.
+ :type sort: OrgGroupPolicyOverrideSortOption, optional
+ :rtype: OrgGroupPolicyOverrideListResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["filter_org_group_id"] = filter_org_group_id
+
+ if filter_policy_id is not unset:
+ kwargs["filter_policy_id"] = filter_policy_id
+
+ if page_number is not unset:
+ kwargs["page_number"] = page_number
+
+ if page_size is not unset:
+ kwargs["page_size"] = page_size
+
+ if sort is not unset:
+ kwargs["sort"] = sort
+
+ return self._list_org_group_policy_overrides_endpoint.call_with_http_info(**kwargs)
+
+ def list_org_groups(
+ self,
+ *,
+ page_number: Union[int, UnsetType] = unset,
+ page_size: Union[int, UnsetType] = unset,
+ sort: Union[OrgGroupSortOption, UnsetType] = unset,
+ include: Union[List[OrgGroupIncludeOption], UnsetType] = unset,
+ ) -> OrgGroupListResponse:
+ """List org groups.
+
+ List all organization groups that the requesting organization has access to.
+
+ :param page_number: The page number to return.
+ :type page_number: int, optional
+ :param page_size: The number of items per page. Maximum is 1000.
+ :type page_size: int, optional
+ :param sort: Field to sort org groups by. Supported values: ``name`` , ``uuid`` , ``-name`` , ``-uuid``. Defaults to ``uuid``.
+ :type sort: OrgGroupSortOption, optional
+ :param include: List of related resources to include.
+ :type include: [OrgGroupIncludeOption], optional
+ :rtype: OrgGroupListResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ if page_number is not unset:
+ kwargs["page_number"] = page_number
+
+ if page_size is not unset:
+ kwargs["page_size"] = page_size
+
+ if sort is not unset:
+ kwargs["sort"] = sort
+
+ if include is not unset:
+ kwargs["include"] = include
+
+ return self._list_org_groups_endpoint.call_with_http_info(**kwargs)
+
+ def update_org_group(
+ self,
+ org_group_id: UUID,
+ body: OrgGroupUpdateRequest,
+ ) -> OrgGroupResponse:
+ """Update an org group.
+
+ Update the name of an existing organization group.
+
+ :param org_group_id: The ID of the org group.
+ :type org_group_id: UUID
+ :type body: OrgGroupUpdateRequest
+ :rtype: OrgGroupResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_id"] = org_group_id
+
+ kwargs["body"] = body
+
+ return self._update_org_group_endpoint.call_with_http_info(**kwargs)
+
+ def update_org_group_membership(
+ self,
+ org_group_membership_id: UUID,
+ body: OrgGroupMembershipUpdateRequest,
+ ) -> OrgGroupMembershipResponse:
+ """Update an org group membership.
+
+ Move an organization to a different org group by updating its membership.
+
+ :param org_group_membership_id: The ID of the org group membership.
+ :type org_group_membership_id: UUID
+ :type body: OrgGroupMembershipUpdateRequest
+ :rtype: OrgGroupMembershipResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_membership_id"] = org_group_membership_id
+
+ kwargs["body"] = body
+
+ return self._update_org_group_membership_endpoint.call_with_http_info(**kwargs)
+
+ def update_org_group_policy(
+ self,
+ org_group_policy_id: UUID,
+ body: OrgGroupPolicyUpdateRequest,
+ ) -> OrgGroupPolicyResponse:
+ """Update an org group policy.
+
+ Update the content of an existing organization group policy.
+
+ :param org_group_policy_id: The ID of the org group policy.
+ :type org_group_policy_id: UUID
+ :type body: OrgGroupPolicyUpdateRequest
+ :rtype: OrgGroupPolicyResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_policy_id"] = org_group_policy_id
+
+ kwargs["body"] = body
+
+ return self._update_org_group_policy_endpoint.call_with_http_info(**kwargs)
+
+ def update_org_group_policy_override(
+ self,
+ org_group_policy_override_id: UUID,
+ body: OrgGroupPolicyOverrideUpdateRequest,
+ ) -> OrgGroupPolicyOverrideResponse:
+ """Update an org group policy override.
+
+ Update an existing organization group policy override.
+
+ :param org_group_policy_override_id: The ID of the org group policy override.
+ :type org_group_policy_override_id: UUID
+ :type body: OrgGroupPolicyOverrideUpdateRequest
+ :rtype: OrgGroupPolicyOverrideResponse
+ """
+ kwargs: Dict[str, Any] = {}
+ kwargs["org_group_policy_override_id"] = org_group_policy_override_id
+
+ kwargs["body"] = body
+
+ return self._update_org_group_policy_override_endpoint.call_with_http_info(**kwargs)
diff --git a/src/datadog_api_client/v2/apis/__init__.py b/src/datadog_api_client/v2/apis/__init__.py
index db7cdb8ab0..4fe654dfc8 100644
--- a/src/datadog_api_client/v2/apis/__init__.py
+++ b/src/datadog_api_client/v2/apis/__init__.py
@@ -67,6 +67,7 @@
from datadog_api_client.v2.api.on_call_paging_api import OnCallPagingApi
from datadog_api_client.v2.api.opsgenie_integration_api import OpsgenieIntegrationApi
from datadog_api_client.v2.api.org_connections_api import OrgConnectionsApi
+from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi
from datadog_api_client.v2.api.organizations_api import OrganizationsApi
from datadog_api_client.v2.api.powerpack_api import PowerpackApi
from datadog_api_client.v2.api.processes_api import ProcessesApi
@@ -175,6 +176,7 @@
"OnCallPagingApi",
"OpsgenieIntegrationApi",
"OrgConnectionsApi",
+ "OrgGroupsApi",
"OrganizationsApi",
"PowerpackApi",
"ProcessesApi",
diff --git a/src/datadog_api_client/v2/model/global_org_identifier.py b/src/datadog_api_client/v2/model/global_org_identifier.py
new file mode 100644
index 0000000000..0febb2dd50
--- /dev/null
+++ b/src/datadog_api_client/v2/model/global_org_identifier.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 datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ UUID,
+)
+
+
+class GlobalOrgIdentifier(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "org_site": (str,),
+ "org_uuid": (UUID,),
+ }
+
+ attribute_map = {
+ "org_site": "org_site",
+ "org_uuid": "org_uuid",
+ }
+
+ def __init__(self_, org_site: str, org_uuid: UUID, **kwargs):
+ """
+ A unique identifier for an organization including its site.
+
+ :param org_site: The site of the organization.
+ :type org_site: str
+
+ :param org_uuid: The UUID of the organization.
+ :type org_uuid: UUID
+ """
+ super().__init__(kwargs)
+
+ self_.org_site = org_site
+ self_.org_uuid = org_uuid
diff --git a/src/datadog_api_client/v2/model/org_group_attributes.py b/src/datadog_api_client/v2/model/org_group_attributes.py
new file mode 100644
index 0000000000..410a7e4ec4
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_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 datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ datetime,
+ UUID,
+)
+
+
+class OrgGroupAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "created_at": (datetime,),
+ "modified_at": (datetime,),
+ "name": (str,),
+ "owner_org_site": (str,),
+ "owner_org_uuid": (UUID,),
+ }
+
+ attribute_map = {
+ "created_at": "created_at",
+ "modified_at": "modified_at",
+ "name": "name",
+ "owner_org_site": "owner_org_site",
+ "owner_org_uuid": "owner_org_uuid",
+ }
+
+ def __init__(
+ self_,
+ created_at: datetime,
+ modified_at: datetime,
+ name: str,
+ owner_org_site: str,
+ owner_org_uuid: UUID,
+ **kwargs,
+ ):
+ """
+ Attributes of an org group.
+
+ :param created_at: Timestamp when the org group was created.
+ :type created_at: datetime
+
+ :param modified_at: Timestamp when the org group was last modified.
+ :type modified_at: datetime
+
+ :param name: The name of the org group.
+ :type name: str
+
+ :param owner_org_site: The site of the organization that owns this org group.
+ :type owner_org_site: str
+
+ :param owner_org_uuid: The UUID of the organization that owns this org group.
+ :type owner_org_uuid: UUID
+ """
+ super().__init__(kwargs)
+
+ self_.created_at = created_at
+ self_.modified_at = modified_at
+ self_.name = name
+ self_.owner_org_site = owner_org_site
+ self_.owner_org_uuid = owner_org_uuid
diff --git a/src/datadog_api_client/v2/model/org_group_create_attributes.py b/src/datadog_api_client/v2/model/org_group_create_attributes.py
new file mode 100644
index 0000000000..da848dfd24
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_create_attributes.py
@@ -0,0 +1,33 @@
+# 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 (
+ ModelNormal,
+ cached_property,
+)
+
+
+class OrgGroupCreateAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "name": (str,),
+ }
+
+ attribute_map = {
+ "name": "name",
+ }
+
+ def __init__(self_, name: str, **kwargs):
+ """
+ Attributes for creating an org group.
+
+ :param name: The name of the org group.
+ :type name: str
+ """
+ super().__init__(kwargs)
+
+ self_.name = name
diff --git a/src/datadog_api_client/v2/model/org_group_create_data.py b/src/datadog_api_client/v2/model/org_group_create_data.py
new file mode 100644
index 0000000000..927b23179e
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_create_data.py
@@ -0,0 +1,48 @@
+# 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_create_attributes import OrgGroupCreateAttributes
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+
+class OrgGroupCreateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_create_attributes import OrgGroupCreateAttributes
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+ return {
+ "attributes": (OrgGroupCreateAttributes,),
+ "type": (OrgGroupType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "type": "type",
+ }
+
+ def __init__(self_, attributes: OrgGroupCreateAttributes, type: OrgGroupType, **kwargs):
+ """
+ Data for creating an org group.
+
+ :param attributes: Attributes for creating an org group.
+ :type attributes: OrgGroupCreateAttributes
+
+ :param type: Org groups resource type.
+ :type type: OrgGroupType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_create_request.py b/src/datadog_api_client/v2/model/org_group_create_request.py
new file mode 100644
index 0000000000..7dc7b5ac1f
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_create_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_create_data import OrgGroupCreateData
+
+
+class OrgGroupCreateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_create_data import OrgGroupCreateData
+
+ return {
+ "data": (OrgGroupCreateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupCreateData, **kwargs):
+ """
+ Request to create an org group.
+
+ :param data: Data for creating an org group.
+ :type data: OrgGroupCreateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_data.py b/src/datadog_api_client/v2/model/org_group_data.py
new file mode 100644
index 0000000000..05687d6267
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_data.py
@@ -0,0 +1,73 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_attributes import OrgGroupAttributes
+ from datadog_api_client.v2.model.org_group_relationships import OrgGroupRelationships
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+
+class OrgGroupData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_attributes import OrgGroupAttributes
+ from datadog_api_client.v2.model.org_group_relationships import OrgGroupRelationships
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+ return {
+ "attributes": (OrgGroupAttributes,),
+ "id": (UUID,),
+ "relationships": (OrgGroupRelationships,),
+ "type": (OrgGroupType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_,
+ attributes: OrgGroupAttributes,
+ id: UUID,
+ type: OrgGroupType,
+ relationships: Union[OrgGroupRelationships, UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ An org group resource.
+
+ :param attributes: Attributes of an org group.
+ :type attributes: OrgGroupAttributes
+
+ :param id: The ID of the org group.
+ :type id: UUID
+
+ :param relationships: Relationships of an org group.
+ :type relationships: OrgGroupRelationships, optional
+
+ :param type: Org groups resource type.
+ :type type: OrgGroupType
+ """
+ if relationships is not unset:
+ kwargs["relationships"] = relationships
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_include_option.py b/src/datadog_api_client/v2/model/org_group_include_option.py
new file mode 100644
index 0000000000..12aaa46abd
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_include_option.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 OrgGroupIncludeOption(ModelSimple):
+ """
+ Allowed include options for org group endpoints.
+
+ :param value: If omitted defaults to "memberships". Must be one of ["memberships"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "memberships",
+ }
+ MEMBERSHIPS: ClassVar["OrgGroupIncludeOption"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupIncludeOption.MEMBERSHIPS = OrgGroupIncludeOption("memberships")
diff --git a/src/datadog_api_client/v2/model/org_group_list_response.py b/src/datadog_api_client/v2/model/org_group_list_response.py
new file mode 100644
index 0000000000..d5cb6ba6f1
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_list_response.py
@@ -0,0 +1,66 @@
+# 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, Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_data import OrgGroupData
+ from datadog_api_client.v2.model.org_group_membership_data import OrgGroupMembershipData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+
+class OrgGroupListResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_data import OrgGroupData
+ from datadog_api_client.v2.model.org_group_membership_data import OrgGroupMembershipData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+ return {
+ "data": ([OrgGroupData],),
+ "included": ([OrgGroupMembershipData],),
+ "meta": (OrgGroupPaginationMeta,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ "included": "included",
+ "meta": "meta",
+ }
+
+ def __init__(
+ self_,
+ data: List[OrgGroupData],
+ included: Union[List[OrgGroupMembershipData], UnsetType] = unset,
+ meta: Union[OrgGroupPaginationMeta, UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ Response containing a list of org groups.
+
+ :param data: An array of org groups.
+ :type data: [OrgGroupData]
+
+ :param included: Included related resources (memberships when requested via include parameter).
+ :type included: [OrgGroupMembershipData], optional
+
+ :param meta: Pagination metadata.
+ :type meta: OrgGroupPaginationMeta, optional
+ """
+ if included is not unset:
+ kwargs["included"] = included
+ if meta is not unset:
+ kwargs["meta"] = meta
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_membership_attributes.py b/src/datadog_api_client/v2/model/org_group_membership_attributes.py
new file mode 100644
index 0000000000..a9322b9182
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_attributes.py
@@ -0,0 +1,61 @@
+# 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 (
+ ModelNormal,
+ cached_property,
+ datetime,
+ UUID,
+)
+
+
+class OrgGroupMembershipAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "created_at": (datetime,),
+ "modified_at": (datetime,),
+ "org_name": (str,),
+ "org_site": (str,),
+ "org_uuid": (UUID,),
+ }
+
+ attribute_map = {
+ "created_at": "created_at",
+ "modified_at": "modified_at",
+ "org_name": "org_name",
+ "org_site": "org_site",
+ "org_uuid": "org_uuid",
+ }
+
+ def __init__(
+ self_, created_at: datetime, modified_at: datetime, org_name: str, org_site: str, org_uuid: UUID, **kwargs
+ ):
+ """
+ Attributes of an org group membership.
+
+ :param created_at: Timestamp when the membership was created.
+ :type created_at: datetime
+
+ :param modified_at: Timestamp when the membership was last modified.
+ :type modified_at: datetime
+
+ :param org_name: The name of the member organization.
+ :type org_name: str
+
+ :param org_site: The site of the member organization.
+ :type org_site: str
+
+ :param org_uuid: The UUID of the member organization.
+ :type org_uuid: UUID
+ """
+ super().__init__(kwargs)
+
+ self_.created_at = created_at
+ self_.modified_at = modified_at
+ self_.org_name = org_name
+ self_.org_site = org_site
+ self_.org_uuid = org_uuid
diff --git a/src/datadog_api_client/v2/model/org_group_membership_bulk_update_attributes.py b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_attributes.py
new file mode 100644
index 0000000000..7feb79ba36
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_attributes.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.global_org_identifier import GlobalOrgIdentifier
+
+
+class OrgGroupMembershipBulkUpdateAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.global_org_identifier import GlobalOrgIdentifier
+
+ return {
+ "orgs": ([GlobalOrgIdentifier],),
+ }
+
+ attribute_map = {
+ "orgs": "orgs",
+ }
+
+ def __init__(self_, orgs: List[GlobalOrgIdentifier], **kwargs):
+ """
+ Attributes for bulk updating org group memberships.
+
+ :param orgs: List of organizations to move. Maximum 100 per request.
+ :type orgs: [GlobalOrgIdentifier]
+ """
+ super().__init__(kwargs)
+
+ self_.orgs = orgs
diff --git a/src/datadog_api_client/v2/model/org_group_membership_bulk_update_data.py b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_data.py
new file mode 100644
index 0000000000..8007e96d8d
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_data.py
@@ -0,0 +1,70 @@
+# 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_membership_bulk_update_attributes import (
+ OrgGroupMembershipBulkUpdateAttributes,
+ )
+ from datadog_api_client.v2.model.org_group_membership_bulk_update_relationships import (
+ OrgGroupMembershipBulkUpdateRelationships,
+ )
+ from datadog_api_client.v2.model.org_group_membership_bulk_update_type import OrgGroupMembershipBulkUpdateType
+
+
+class OrgGroupMembershipBulkUpdateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_bulk_update_attributes import (
+ OrgGroupMembershipBulkUpdateAttributes,
+ )
+ from datadog_api_client.v2.model.org_group_membership_bulk_update_relationships import (
+ OrgGroupMembershipBulkUpdateRelationships,
+ )
+ from datadog_api_client.v2.model.org_group_membership_bulk_update_type import OrgGroupMembershipBulkUpdateType
+
+ return {
+ "attributes": (OrgGroupMembershipBulkUpdateAttributes,),
+ "relationships": (OrgGroupMembershipBulkUpdateRelationships,),
+ "type": (OrgGroupMembershipBulkUpdateType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_,
+ attributes: OrgGroupMembershipBulkUpdateAttributes,
+ relationships: OrgGroupMembershipBulkUpdateRelationships,
+ type: OrgGroupMembershipBulkUpdateType,
+ **kwargs,
+ ):
+ """
+ Data for bulk updating org group memberships.
+
+ :param attributes: Attributes for bulk updating org group memberships.
+ :type attributes: OrgGroupMembershipBulkUpdateAttributes
+
+ :param relationships: Relationships for bulk updating memberships.
+ :type relationships: OrgGroupMembershipBulkUpdateRelationships
+
+ :param type: Org group membership bulk update resource type.
+ :type type: OrgGroupMembershipBulkUpdateType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.relationships = relationships
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_membership_bulk_update_relationships.py b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_relationships.py
new file mode 100644
index 0000000000..40907f6406
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_relationships.py
@@ -0,0 +1,48 @@
+# 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_relationship_to_one import OrgGroupRelationshipToOne
+
+
+class OrgGroupMembershipBulkUpdateRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+ return {
+ "source_org_group": (OrgGroupRelationshipToOne,),
+ "target_org_group": (OrgGroupRelationshipToOne,),
+ }
+
+ attribute_map = {
+ "source_org_group": "source_org_group",
+ "target_org_group": "target_org_group",
+ }
+
+ def __init__(
+ self_, source_org_group: OrgGroupRelationshipToOne, target_org_group: OrgGroupRelationshipToOne, **kwargs
+ ):
+ """
+ Relationships for bulk updating memberships.
+
+ :param source_org_group: Relationship to a single org group.
+ :type source_org_group: OrgGroupRelationshipToOne
+
+ :param target_org_group: Relationship to a single org group.
+ :type target_org_group: OrgGroupRelationshipToOne
+ """
+ super().__init__(kwargs)
+
+ self_.source_org_group = source_org_group
+ self_.target_org_group = target_org_group
diff --git a/src/datadog_api_client/v2/model/org_group_membership_bulk_update_request.py b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_request.py
new file mode 100644
index 0000000000..0a61f51efe
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_membership_bulk_update_data import OrgGroupMembershipBulkUpdateData
+
+
+class OrgGroupMembershipBulkUpdateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_bulk_update_data import OrgGroupMembershipBulkUpdateData
+
+ return {
+ "data": (OrgGroupMembershipBulkUpdateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupMembershipBulkUpdateData, **kwargs):
+ """
+ Request to bulk update org group memberships.
+
+ :param data: Data for bulk updating org group memberships.
+ :type data: OrgGroupMembershipBulkUpdateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_membership_bulk_update_type.py b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_type.py
new file mode 100644
index 0000000000..9e366529e3
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_bulk_update_type.py
@@ -0,0 +1,37 @@
+# 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 OrgGroupMembershipBulkUpdateType(ModelSimple):
+ """
+ Org group membership bulk update resource type.
+
+ :param value: If omitted defaults to "org_group_membership_bulk_updates". Must be one of ["org_group_membership_bulk_updates"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "org_group_membership_bulk_updates",
+ }
+ ORG_GROUP_MEMBERSHIP_BULK_UPDATES: ClassVar["OrgGroupMembershipBulkUpdateType"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupMembershipBulkUpdateType.ORG_GROUP_MEMBERSHIP_BULK_UPDATES = OrgGroupMembershipBulkUpdateType(
+ "org_group_membership_bulk_updates"
+)
diff --git a/src/datadog_api_client/v2/model/org_group_membership_data.py b/src/datadog_api_client/v2/model/org_group_membership_data.py
new file mode 100644
index 0000000000..d478706778
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_data.py
@@ -0,0 +1,73 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_membership_attributes import OrgGroupMembershipAttributes
+ from datadog_api_client.v2.model.org_group_membership_relationships import OrgGroupMembershipRelationships
+ from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+
+
+class OrgGroupMembershipData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_attributes import OrgGroupMembershipAttributes
+ from datadog_api_client.v2.model.org_group_membership_relationships import OrgGroupMembershipRelationships
+ from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+
+ return {
+ "attributes": (OrgGroupMembershipAttributes,),
+ "id": (UUID,),
+ "relationships": (OrgGroupMembershipRelationships,),
+ "type": (OrgGroupMembershipType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_,
+ attributes: OrgGroupMembershipAttributes,
+ id: UUID,
+ type: OrgGroupMembershipType,
+ relationships: Union[OrgGroupMembershipRelationships, UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ An org group membership resource.
+
+ :param attributes: Attributes of an org group membership.
+ :type attributes: OrgGroupMembershipAttributes
+
+ :param id: The ID of the org group membership.
+ :type id: UUID
+
+ :param relationships: Relationships of an org group membership.
+ :type relationships: OrgGroupMembershipRelationships, optional
+
+ :param type: Org group memberships resource type.
+ :type type: OrgGroupMembershipType
+ """
+ if relationships is not unset:
+ kwargs["relationships"] = relationships
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_membership_list_response.py b/src/datadog_api_client/v2/model/org_group_membership_list_response.py
new file mode 100644
index 0000000000..3579abda02
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_list_response.py
@@ -0,0 +1,53 @@
+# 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, Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_membership_data import OrgGroupMembershipData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+
+class OrgGroupMembershipListResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_data import OrgGroupMembershipData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+ return {
+ "data": ([OrgGroupMembershipData],),
+ "meta": (OrgGroupPaginationMeta,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ "meta": "meta",
+ }
+
+ def __init__(
+ self_, data: List[OrgGroupMembershipData], meta: Union[OrgGroupPaginationMeta, UnsetType] = unset, **kwargs
+ ):
+ """
+ Response containing a list of org group memberships.
+
+ :param data: An array of org group memberships.
+ :type data: [OrgGroupMembershipData]
+
+ :param meta: Pagination metadata.
+ :type meta: OrgGroupPaginationMeta, optional
+ """
+ if meta is not unset:
+ kwargs["meta"] = meta
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_membership_relationship_data.py b/src/datadog_api_client/v2/model/org_group_membership_relationship_data.py
new file mode 100644
index 0000000000..0326d1dd5b
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_relationship_data.py
@@ -0,0 +1,47 @@
+# 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,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+
+
+class OrgGroupMembershipRelationshipData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+
+ return {
+ "id": (UUID,),
+ "type": (OrgGroupMembershipType,),
+ }
+
+ attribute_map = {
+ "id": "id",
+ "type": "type",
+ }
+
+ def __init__(self_, id: UUID, type: OrgGroupMembershipType, **kwargs):
+ """
+ A reference to an org group membership.
+
+ :param id: The ID of the membership.
+ :type id: UUID
+
+ :param type: Org group memberships resource type.
+ :type type: OrgGroupMembershipType
+ """
+ super().__init__(kwargs)
+
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_membership_relationships.py b/src/datadog_api_client/v2/model/org_group_membership_relationships.py
new file mode 100644
index 0000000000..9bd54563d8
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_relationships.py
@@ -0,0 +1,42 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+
+class OrgGroupMembershipRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+ return {
+ "org_group": (OrgGroupRelationshipToOne,),
+ }
+
+ attribute_map = {
+ "org_group": "org_group",
+ }
+
+ def __init__(self_, org_group: Union[OrgGroupRelationshipToOne, UnsetType] = unset, **kwargs):
+ """
+ Relationships of an org group membership.
+
+ :param org_group: Relationship to a single org group.
+ :type org_group: OrgGroupRelationshipToOne, optional
+ """
+ if org_group is not unset:
+ kwargs["org_group"] = org_group
+ super().__init__(kwargs)
diff --git a/src/datadog_api_client/v2/model/org_group_membership_response.py b/src/datadog_api_client/v2/model/org_group_membership_response.py
new file mode 100644
index 0000000000..dc88a85fd5
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_membership_data import OrgGroupMembershipData
+
+
+class OrgGroupMembershipResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_data import OrgGroupMembershipData
+
+ return {
+ "data": (OrgGroupMembershipData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupMembershipData, **kwargs):
+ """
+ Response containing a single org group membership.
+
+ :param data: An org group membership resource.
+ :type data: OrgGroupMembershipData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_membership_sort_option.py b/src/datadog_api_client/v2/model/org_group_membership_sort_option.py
new file mode 100644
index 0000000000..7e6774b074
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_sort_option.py
@@ -0,0 +1,44 @@
+# 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 OrgGroupMembershipSortOption(ModelSimple):
+ """
+ Field to sort memberships by.
+
+ :param value: If omitted defaults to "uuid". Must be one of ["name", "-name", "uuid", "-uuid"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "name",
+ "-name",
+ "uuid",
+ "-uuid",
+ }
+ NAME: ClassVar["OrgGroupMembershipSortOption"]
+ MINUS_NAME: ClassVar["OrgGroupMembershipSortOption"]
+ UUID: ClassVar["OrgGroupMembershipSortOption"]
+ MINUS_UUID: ClassVar["OrgGroupMembershipSortOption"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupMembershipSortOption.NAME = OrgGroupMembershipSortOption("name")
+OrgGroupMembershipSortOption.MINUS_NAME = OrgGroupMembershipSortOption("-name")
+OrgGroupMembershipSortOption.UUID = OrgGroupMembershipSortOption("uuid")
+OrgGroupMembershipSortOption.MINUS_UUID = OrgGroupMembershipSortOption("-uuid")
diff --git a/src/datadog_api_client/v2/model/org_group_membership_type.py b/src/datadog_api_client/v2/model/org_group_membership_type.py
new file mode 100644
index 0000000000..9af8895de1
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_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 OrgGroupMembershipType(ModelSimple):
+ """
+ Org group memberships resource type.
+
+ :param value: If omitted defaults to "org_group_memberships". Must be one of ["org_group_memberships"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "org_group_memberships",
+ }
+ ORG_GROUP_MEMBERSHIPS: ClassVar["OrgGroupMembershipType"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupMembershipType.ORG_GROUP_MEMBERSHIPS = OrgGroupMembershipType("org_group_memberships")
diff --git a/src/datadog_api_client/v2/model/org_group_membership_update_data.py b/src/datadog_api_client/v2/model/org_group_membership_update_data.py
new file mode 100644
index 0000000000..8382a14127
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_update_data.py
@@ -0,0 +1,61 @@
+# 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,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_membership_update_relationships import (
+ OrgGroupMembershipUpdateRelationships,
+ )
+ from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+
+
+class OrgGroupMembershipUpdateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_update_relationships import (
+ OrgGroupMembershipUpdateRelationships,
+ )
+ from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+
+ return {
+ "id": (UUID,),
+ "relationships": (OrgGroupMembershipUpdateRelationships,),
+ "type": (OrgGroupMembershipType,),
+ }
+
+ attribute_map = {
+ "id": "id",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_, id: UUID, relationships: OrgGroupMembershipUpdateRelationships, type: OrgGroupMembershipType, **kwargs
+ ):
+ """
+ Data for updating an org group membership.
+
+ :param id: The ID of the membership.
+ :type id: UUID
+
+ :param relationships: Relationships for updating a membership.
+ :type relationships: OrgGroupMembershipUpdateRelationships
+
+ :param type: Org group memberships resource type.
+ :type type: OrgGroupMembershipType
+ """
+ super().__init__(kwargs)
+
+ self_.id = id
+ self_.relationships = relationships
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_membership_update_relationships.py b/src/datadog_api_client/v2/model/org_group_membership_update_relationships.py
new file mode 100644
index 0000000000..b1d21977e1
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_update_relationships.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+
+class OrgGroupMembershipUpdateRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+ return {
+ "org_group": (OrgGroupRelationshipToOne,),
+ }
+
+ attribute_map = {
+ "org_group": "org_group",
+ }
+
+ def __init__(self_, org_group: OrgGroupRelationshipToOne, **kwargs):
+ """
+ Relationships for updating a membership.
+
+ :param org_group: Relationship to a single org group.
+ :type org_group: OrgGroupRelationshipToOne
+ """
+ super().__init__(kwargs)
+
+ self_.org_group = org_group
diff --git a/src/datadog_api_client/v2/model/org_group_membership_update_request.py b/src/datadog_api_client/v2/model/org_group_membership_update_request.py
new file mode 100644
index 0000000000..58fc55cd6d
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_membership_update_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_membership_update_data import OrgGroupMembershipUpdateData
+
+
+class OrgGroupMembershipUpdateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_update_data import OrgGroupMembershipUpdateData
+
+ return {
+ "data": (OrgGroupMembershipUpdateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupMembershipUpdateData, **kwargs):
+ """
+ Request to update an org group membership.
+
+ :param data: Data for updating an org group membership.
+ :type data: OrgGroupMembershipUpdateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_memberships_relationship.py b/src/datadog_api_client/v2/model/org_group_memberships_relationship.py
new file mode 100644
index 0000000000..de695421c9
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_memberships_relationship.py
@@ -0,0 +1,42 @@
+# 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_membership_relationship_data import OrgGroupMembershipRelationshipData
+
+
+class OrgGroupMembershipsRelationship(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_membership_relationship_data import (
+ OrgGroupMembershipRelationshipData,
+ )
+
+ return {
+ "data": ([OrgGroupMembershipRelationshipData],),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: List[OrgGroupMembershipRelationshipData], **kwargs):
+ """
+ Relationship to org group memberships.
+
+ :param data: An array of membership relationship references.
+ :type data: [OrgGroupMembershipRelationshipData]
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_pagination_meta.py b/src/datadog_api_client/v2/model/org_group_pagination_meta.py
new file mode 100644
index 0000000000..ac1c11cdcb
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_pagination_meta.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_pagination_meta_page import OrgGroupPaginationMetaPage
+
+
+class OrgGroupPaginationMeta(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_pagination_meta_page import OrgGroupPaginationMetaPage
+
+ return {
+ "page": (OrgGroupPaginationMetaPage,),
+ }
+
+ attribute_map = {
+ "page": "page",
+ }
+
+ def __init__(self_, page: OrgGroupPaginationMetaPage, **kwargs):
+ """
+ Pagination metadata.
+
+ :param page: Page-based pagination details.
+ :type page: OrgGroupPaginationMetaPage
+ """
+ super().__init__(kwargs)
+
+ self_.page = page
diff --git a/src/datadog_api_client/v2/model/org_group_pagination_meta_page.py b/src/datadog_api_client/v2/model/org_group_pagination_meta_page.py
new file mode 100644
index 0000000000..b175b08295
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_pagination_meta_page.py
@@ -0,0 +1,33 @@
+# 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 (
+ ModelNormal,
+ cached_property,
+)
+
+
+class OrgGroupPaginationMetaPage(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "total_count": (int,),
+ }
+
+ attribute_map = {
+ "total_count": "total_count",
+ }
+
+ def __init__(self_, total_count: int, **kwargs):
+ """
+ Page-based pagination details.
+
+ :param total_count: The total number of items.
+ :type total_count: int
+ """
+ super().__init__(kwargs)
+
+ self_.total_count = total_count
diff --git a/src/datadog_api_client/v2/model/org_group_policy_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_attributes.py
new file mode 100644
index 0000000000..3ad14f7d30
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_attributes.py
@@ -0,0 +1,81 @@
+# 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, Dict, Union
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ date,
+ datetime,
+ none_type,
+ unset,
+ UnsetType,
+ UUID,
+)
+
+
+class OrgGroupPolicyAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "content": (
+ {
+ str: (
+ bool,
+ date,
+ datetime,
+ dict,
+ float,
+ int,
+ list,
+ str,
+ UUID,
+ none_type,
+ )
+ },
+ ),
+ "enforced_at": (datetime,),
+ "modified_at": (datetime,),
+ "policy_name": (str,),
+ }
+
+ attribute_map = {
+ "content": "content",
+ "enforced_at": "enforced_at",
+ "modified_at": "modified_at",
+ "policy_name": "policy_name",
+ }
+
+ def __init__(
+ self_,
+ enforced_at: datetime,
+ modified_at: datetime,
+ policy_name: str,
+ content: Union[Dict[str, Any], UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ Attributes of an org group policy.
+
+ :param content: The policy content as key-value pairs.
+ :type content: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional
+
+ :param enforced_at: Timestamp when the policy was enforced.
+ :type enforced_at: datetime
+
+ :param modified_at: Timestamp when the policy was last modified.
+ :type modified_at: datetime
+
+ :param policy_name: The name of the policy.
+ :type policy_name: str
+ """
+ if content is not unset:
+ kwargs["content"] = content
+ super().__init__(kwargs)
+
+ self_.enforced_at = enforced_at
+ self_.modified_at = modified_at
+ self_.policy_name = policy_name
diff --git a/src/datadog_api_client/v2/model/org_group_policy_config_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_config_attributes.py
new file mode 100644
index 0000000000..22517dd0f4
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_config_attributes.py
@@ -0,0 +1,75 @@
+# 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, List
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ date,
+ datetime,
+ none_type,
+ UUID,
+)
+
+
+class OrgGroupPolicyConfigAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "allowed_values": ([str],),
+ "default_value": (
+ bool,
+ date,
+ datetime,
+ dict,
+ float,
+ int,
+ list,
+ str,
+ UUID,
+ none_type,
+ ),
+ "description": (str,),
+ "name": (str,),
+ "value_type": (str,),
+ }
+
+ attribute_map = {
+ "allowed_values": "allowed_values",
+ "default_value": "default_value",
+ "description": "description",
+ "name": "name",
+ "value_type": "value_type",
+ }
+
+ def __init__(
+ self_, allowed_values: List[str], default_value: Any, description: str, name: str, value_type: str, **kwargs
+ ):
+ """
+ Attributes of an org group policy config.
+
+ :param allowed_values: The allowed values for this config.
+ :type allowed_values: [str]
+
+ :param default_value: The default value for this config.
+ :type default_value: bool, date, datetime, dict, float, int, list, str, UUID, none_type
+
+ :param description: The description of the policy config.
+ :type description: str
+
+ :param name: The name of the policy config.
+ :type name: str
+
+ :param value_type: The type of the value for this config.
+ :type value_type: str
+ """
+ super().__init__(kwargs)
+
+ self_.allowed_values = allowed_values
+ self_.default_value = default_value
+ self_.description = description
+ self_.name = name
+ self_.value_type = value_type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_config_data.py b/src/datadog_api_client/v2/model/org_group_policy_config_data.py
new file mode 100644
index 0000000000..e3db514525
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_config_data.py
@@ -0,0 +1,54 @@
+# 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_config_attributes import OrgGroupPolicyConfigAttributes
+ from datadog_api_client.v2.model.org_group_policy_config_type import OrgGroupPolicyConfigType
+
+
+class OrgGroupPolicyConfigData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_config_attributes import OrgGroupPolicyConfigAttributes
+ from datadog_api_client.v2.model.org_group_policy_config_type import OrgGroupPolicyConfigType
+
+ return {
+ "attributes": (OrgGroupPolicyConfigAttributes,),
+ "id": (str,),
+ "type": (OrgGroupPolicyConfigType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "type": "type",
+ }
+
+ def __init__(self_, attributes: OrgGroupPolicyConfigAttributes, id: str, type: OrgGroupPolicyConfigType, **kwargs):
+ """
+ An org group policy config resource.
+
+ :param attributes: Attributes of an org group policy config.
+ :type attributes: OrgGroupPolicyConfigAttributes
+
+ :param id: The identifier of the policy config (uses the config name).
+ :type id: str
+
+ :param type: Org group policy configs resource type.
+ :type type: OrgGroupPolicyConfigType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_config_list_response.py b/src/datadog_api_client/v2/model/org_group_policy_config_list_response.py
new file mode 100644
index 0000000000..d339ede46c
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_config_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_config_data import OrgGroupPolicyConfigData
+
+
+class OrgGroupPolicyConfigListResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_config_data import OrgGroupPolicyConfigData
+
+ return {
+ "data": ([OrgGroupPolicyConfigData],),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: List[OrgGroupPolicyConfigData], **kwargs):
+ """
+ Response containing a list of org group policy configs.
+
+ :param data: An array of org group policy configs.
+ :type data: [OrgGroupPolicyConfigData]
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_config_type.py b/src/datadog_api_client/v2/model/org_group_policy_config_type.py
new file mode 100644
index 0000000000..46e89fdf17
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_config_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 OrgGroupPolicyConfigType(ModelSimple):
+ """
+ Org group policy configs resource type.
+
+ :param value: If omitted defaults to "org_group_policy_configs". Must be one of ["org_group_policy_configs"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "org_group_policy_configs",
+ }
+ ORG_GROUP_POLICY_CONFIGS: ClassVar["OrgGroupPolicyConfigType"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupPolicyConfigType.ORG_GROUP_POLICY_CONFIGS = OrgGroupPolicyConfigType("org_group_policy_configs")
diff --git a/src/datadog_api_client/v2/model/org_group_policy_create_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_create_attributes.py
new file mode 100644
index 0000000000..4430c67ee3
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_create_attributes.py
@@ -0,0 +1,59 @@
+# 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, Dict
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ date,
+ datetime,
+ none_type,
+ UUID,
+)
+
+
+class OrgGroupPolicyCreateAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "content": (
+ {
+ str: (
+ bool,
+ date,
+ datetime,
+ dict,
+ float,
+ int,
+ list,
+ str,
+ UUID,
+ none_type,
+ )
+ },
+ ),
+ "policy_name": (str,),
+ }
+
+ attribute_map = {
+ "content": "content",
+ "policy_name": "policy_name",
+ }
+
+ def __init__(self_, content: Dict[str, Any], policy_name: str, **kwargs):
+ """
+ Attributes for creating an org group policy.
+
+ :param content: The policy content as key-value pairs.
+ :type content: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}
+
+ :param policy_name: The name of the policy.
+ :type policy_name: str
+ """
+ super().__init__(kwargs)
+
+ self_.content = content
+ self_.policy_name = policy_name
diff --git a/src/datadog_api_client/v2/model/org_group_policy_create_data.py b/src/datadog_api_client/v2/model/org_group_policy_create_data.py
new file mode 100644
index 0000000000..5941491198
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_create_data.py
@@ -0,0 +1,62 @@
+# 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_create_attributes import OrgGroupPolicyCreateAttributes
+ from datadog_api_client.v2.model.org_group_policy_create_relationships import OrgGroupPolicyCreateRelationships
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+
+class OrgGroupPolicyCreateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_create_attributes import OrgGroupPolicyCreateAttributes
+ from datadog_api_client.v2.model.org_group_policy_create_relationships import OrgGroupPolicyCreateRelationships
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+ return {
+ "attributes": (OrgGroupPolicyCreateAttributes,),
+ "relationships": (OrgGroupPolicyCreateRelationships,),
+ "type": (OrgGroupPolicyType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_,
+ attributes: OrgGroupPolicyCreateAttributes,
+ relationships: OrgGroupPolicyCreateRelationships,
+ type: OrgGroupPolicyType,
+ **kwargs,
+ ):
+ """
+ Data for creating an org group policy.
+
+ :param attributes: Attributes for creating an org group policy.
+ :type attributes: OrgGroupPolicyCreateAttributes
+
+ :param relationships: Relationships for creating a policy.
+ :type relationships: OrgGroupPolicyCreateRelationships
+
+ :param type: Org group policies resource type.
+ :type type: OrgGroupPolicyType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.relationships = relationships
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_create_relationships.py b/src/datadog_api_client/v2/model/org_group_policy_create_relationships.py
new file mode 100644
index 0000000000..8db2fa2e15
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_create_relationships.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+
+class OrgGroupPolicyCreateRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+ return {
+ "org_group": (OrgGroupRelationshipToOne,),
+ }
+
+ attribute_map = {
+ "org_group": "org_group",
+ }
+
+ def __init__(self_, org_group: OrgGroupRelationshipToOne, **kwargs):
+ """
+ Relationships for creating a policy.
+
+ :param org_group: Relationship to a single org group.
+ :type org_group: OrgGroupRelationshipToOne
+ """
+ super().__init__(kwargs)
+
+ self_.org_group = org_group
diff --git a/src/datadog_api_client/v2/model/org_group_policy_create_request.py b/src/datadog_api_client/v2/model/org_group_policy_create_request.py
new file mode 100644
index 0000000000..10dd85a9ab
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_create_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_create_data import OrgGroupPolicyCreateData
+
+
+class OrgGroupPolicyCreateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_create_data import OrgGroupPolicyCreateData
+
+ return {
+ "data": (OrgGroupPolicyCreateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupPolicyCreateData, **kwargs):
+ """
+ Request to create an org group policy.
+
+ :param data: Data for creating an org group policy.
+ :type data: OrgGroupPolicyCreateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_data.py b/src/datadog_api_client/v2/model/org_group_policy_data.py
new file mode 100644
index 0000000000..b50b53cc8d
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_data.py
@@ -0,0 +1,73 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_attributes import OrgGroupPolicyAttributes
+ from datadog_api_client.v2.model.org_group_policy_relationships import OrgGroupPolicyRelationships
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+
+class OrgGroupPolicyData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_attributes import OrgGroupPolicyAttributes
+ from datadog_api_client.v2.model.org_group_policy_relationships import OrgGroupPolicyRelationships
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+ return {
+ "attributes": (OrgGroupPolicyAttributes,),
+ "id": (UUID,),
+ "relationships": (OrgGroupPolicyRelationships,),
+ "type": (OrgGroupPolicyType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_,
+ attributes: OrgGroupPolicyAttributes,
+ id: UUID,
+ type: OrgGroupPolicyType,
+ relationships: Union[OrgGroupPolicyRelationships, UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ An org group policy resource.
+
+ :param attributes: Attributes of an org group policy.
+ :type attributes: OrgGroupPolicyAttributes
+
+ :param id: The ID of the org group policy.
+ :type id: UUID
+
+ :param relationships: Relationships of an org group policy.
+ :type relationships: OrgGroupPolicyRelationships, optional
+
+ :param type: Org group policies resource type.
+ :type type: OrgGroupPolicyType
+ """
+ if relationships is not unset:
+ kwargs["relationships"] = relationships
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_list_response.py b/src/datadog_api_client/v2/model/org_group_policy_list_response.py
new file mode 100644
index 0000000000..0a16ebf49d
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_list_response.py
@@ -0,0 +1,53 @@
+# 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, Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_data import OrgGroupPolicyData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+
+class OrgGroupPolicyListResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_data import OrgGroupPolicyData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+ return {
+ "data": ([OrgGroupPolicyData],),
+ "meta": (OrgGroupPaginationMeta,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ "meta": "meta",
+ }
+
+ def __init__(
+ self_, data: List[OrgGroupPolicyData], meta: Union[OrgGroupPaginationMeta, UnsetType] = unset, **kwargs
+ ):
+ """
+ Response containing a list of org group policies.
+
+ :param data: An array of org group policies.
+ :type data: [OrgGroupPolicyData]
+
+ :param meta: Pagination metadata.
+ :type meta: OrgGroupPaginationMeta, optional
+ """
+ if meta is not unset:
+ kwargs["meta"] = meta
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_override_attributes.py
new file mode 100644
index 0000000000..23a99bb13c
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_attributes.py
@@ -0,0 +1,88 @@
+# 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, Dict, Union
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ date,
+ datetime,
+ none_type,
+ unset,
+ UnsetType,
+ UUID,
+)
+
+
+class OrgGroupPolicyOverrideAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "content": (
+ {
+ str: (
+ bool,
+ date,
+ datetime,
+ dict,
+ float,
+ int,
+ list,
+ str,
+ UUID,
+ none_type,
+ )
+ },
+ ),
+ "created_at": (datetime,),
+ "modified_at": (datetime,),
+ "org_site": (str,),
+ "org_uuid": (UUID,),
+ }
+
+ attribute_map = {
+ "content": "content",
+ "created_at": "created_at",
+ "modified_at": "modified_at",
+ "org_site": "org_site",
+ "org_uuid": "org_uuid",
+ }
+
+ def __init__(
+ self_,
+ created_at: datetime,
+ modified_at: datetime,
+ org_site: str,
+ org_uuid: UUID,
+ content: Union[Dict[str, Any], UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ Attributes of an org group policy override.
+
+ :param content: The override content as key-value pairs.
+ :type content: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional
+
+ :param created_at: Timestamp when the override was created.
+ :type created_at: datetime
+
+ :param modified_at: Timestamp when the override was last modified.
+ :type modified_at: datetime
+
+ :param org_site: The site of the organization that has the override.
+ :type org_site: str
+
+ :param org_uuid: The UUID of the organization that has the override.
+ :type org_uuid: UUID
+ """
+ if content is not unset:
+ kwargs["content"] = content
+ super().__init__(kwargs)
+
+ self_.created_at = created_at
+ self_.modified_at = modified_at
+ self_.org_site = org_site
+ self_.org_uuid = org_uuid
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_create_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_override_create_attributes.py
new file mode 100644
index 0000000000..49176b8bc8
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_create_attributes.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 datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ UUID,
+)
+
+
+class OrgGroupPolicyOverrideCreateAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "org_site": (str,),
+ "org_uuid": (UUID,),
+ }
+
+ attribute_map = {
+ "org_site": "org_site",
+ "org_uuid": "org_uuid",
+ }
+
+ def __init__(self_, org_site: str, org_uuid: UUID, **kwargs):
+ """
+ Attributes for creating a policy override.
+
+ :param org_site: The site of the organization.
+ :type org_site: str
+
+ :param org_uuid: The UUID of the organization to grant the override.
+ :type org_uuid: UUID
+ """
+ super().__init__(kwargs)
+
+ self_.org_site = org_site
+ self_.org_uuid = org_uuid
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_create_data.py b/src/datadog_api_client/v2/model/org_group_policy_override_create_data.py
new file mode 100644
index 0000000000..4964b521b5
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_create_data.py
@@ -0,0 +1,70 @@
+# 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_override_create_attributes import (
+ OrgGroupPolicyOverrideCreateAttributes,
+ )
+ from datadog_api_client.v2.model.org_group_policy_override_create_relationships import (
+ OrgGroupPolicyOverrideCreateRelationships,
+ )
+ from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+
+
+class OrgGroupPolicyOverrideCreateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_override_create_attributes import (
+ OrgGroupPolicyOverrideCreateAttributes,
+ )
+ from datadog_api_client.v2.model.org_group_policy_override_create_relationships import (
+ OrgGroupPolicyOverrideCreateRelationships,
+ )
+ from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+
+ return {
+ "attributes": (OrgGroupPolicyOverrideCreateAttributes,),
+ "relationships": (OrgGroupPolicyOverrideCreateRelationships,),
+ "type": (OrgGroupPolicyOverrideType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_,
+ attributes: OrgGroupPolicyOverrideCreateAttributes,
+ relationships: OrgGroupPolicyOverrideCreateRelationships,
+ type: OrgGroupPolicyOverrideType,
+ **kwargs,
+ ):
+ """
+ Data for creating an org group policy override.
+
+ :param attributes: Attributes for creating a policy override.
+ :type attributes: OrgGroupPolicyOverrideCreateAttributes
+
+ :param relationships: Relationships for creating a policy override.
+ :type relationships: OrgGroupPolicyOverrideCreateRelationships
+
+ :param type: Org group policy overrides resource type.
+ :type type: OrgGroupPolicyOverrideType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.relationships = relationships
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_create_relationships.py b/src/datadog_api_client/v2/model/org_group_policy_override_create_relationships.py
new file mode 100644
index 0000000000..8ecb4660c1
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_create_relationships.py
@@ -0,0 +1,50 @@
+# 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_relationship_to_one import OrgGroupRelationshipToOne
+ from datadog_api_client.v2.model.org_group_policy_relationship_to_one import OrgGroupPolicyRelationshipToOne
+
+
+class OrgGroupPolicyOverrideCreateRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+ from datadog_api_client.v2.model.org_group_policy_relationship_to_one import OrgGroupPolicyRelationshipToOne
+
+ return {
+ "org_group": (OrgGroupRelationshipToOne,),
+ "org_group_policy": (OrgGroupPolicyRelationshipToOne,),
+ }
+
+ attribute_map = {
+ "org_group": "org_group",
+ "org_group_policy": "org_group_policy",
+ }
+
+ def __init__(
+ self_, org_group: OrgGroupRelationshipToOne, org_group_policy: OrgGroupPolicyRelationshipToOne, **kwargs
+ ):
+ """
+ Relationships for creating a policy override.
+
+ :param org_group: Relationship to a single org group.
+ :type org_group: OrgGroupRelationshipToOne
+
+ :param org_group_policy: Relationship to a single org group policy.
+ :type org_group_policy: OrgGroupPolicyRelationshipToOne
+ """
+ super().__init__(kwargs)
+
+ self_.org_group = org_group
+ self_.org_group_policy = org_group_policy
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_create_request.py b/src/datadog_api_client/v2/model/org_group_policy_override_create_request.py
new file mode 100644
index 0000000000..5d901cacbe
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_create_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_override_create_data import OrgGroupPolicyOverrideCreateData
+
+
+class OrgGroupPolicyOverrideCreateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_override_create_data import OrgGroupPolicyOverrideCreateData
+
+ return {
+ "data": (OrgGroupPolicyOverrideCreateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupPolicyOverrideCreateData, **kwargs):
+ """
+ Request to create an org group policy override.
+
+ :param data: Data for creating an org group policy override.
+ :type data: OrgGroupPolicyOverrideCreateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_data.py b/src/datadog_api_client/v2/model/org_group_policy_override_data.py
new file mode 100644
index 0000000000..0d42981f1c
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_data.py
@@ -0,0 +1,75 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_override_attributes import OrgGroupPolicyOverrideAttributes
+ from datadog_api_client.v2.model.org_group_policy_override_relationships import OrgGroupPolicyOverrideRelationships
+ from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+
+
+class OrgGroupPolicyOverrideData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_override_attributes import OrgGroupPolicyOverrideAttributes
+ from datadog_api_client.v2.model.org_group_policy_override_relationships import (
+ OrgGroupPolicyOverrideRelationships,
+ )
+ from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+
+ return {
+ "attributes": (OrgGroupPolicyOverrideAttributes,),
+ "id": (UUID,),
+ "relationships": (OrgGroupPolicyOverrideRelationships,),
+ "type": (OrgGroupPolicyOverrideType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "relationships": "relationships",
+ "type": "type",
+ }
+
+ def __init__(
+ self_,
+ attributes: OrgGroupPolicyOverrideAttributes,
+ id: UUID,
+ type: OrgGroupPolicyOverrideType,
+ relationships: Union[OrgGroupPolicyOverrideRelationships, UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ An org group policy override resource.
+
+ :param attributes: Attributes of an org group policy override.
+ :type attributes: OrgGroupPolicyOverrideAttributes
+
+ :param id: The ID of the policy override.
+ :type id: UUID
+
+ :param relationships: Relationships of an org group policy override.
+ :type relationships: OrgGroupPolicyOverrideRelationships, optional
+
+ :param type: Org group policy overrides resource type.
+ :type type: OrgGroupPolicyOverrideType
+ """
+ if relationships is not unset:
+ kwargs["relationships"] = relationships
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_list_response.py b/src/datadog_api_client/v2/model/org_group_policy_override_list_response.py
new file mode 100644
index 0000000000..7e07d086eb
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_list_response.py
@@ -0,0 +1,53 @@
+# 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, Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_override_data import OrgGroupPolicyOverrideData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+
+class OrgGroupPolicyOverrideListResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_override_data import OrgGroupPolicyOverrideData
+ from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+
+ return {
+ "data": ([OrgGroupPolicyOverrideData],),
+ "meta": (OrgGroupPaginationMeta,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ "meta": "meta",
+ }
+
+ def __init__(
+ self_, data: List[OrgGroupPolicyOverrideData], meta: Union[OrgGroupPaginationMeta, UnsetType] = unset, **kwargs
+ ):
+ """
+ Response containing a list of org group policy overrides.
+
+ :param data: An array of org group policy overrides.
+ :type data: [OrgGroupPolicyOverrideData]
+
+ :param meta: Pagination metadata.
+ :type meta: OrgGroupPaginationMeta, optional
+ """
+ if meta is not unset:
+ kwargs["meta"] = meta
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_relationships.py b/src/datadog_api_client/v2/model/org_group_policy_override_relationships.py
new file mode 100644
index 0000000000..06427cf0b2
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_relationships.py
@@ -0,0 +1,56 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+ from datadog_api_client.v2.model.org_group_policy_relationship_to_one import OrgGroupPolicyRelationshipToOne
+
+
+class OrgGroupPolicyOverrideRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+ from datadog_api_client.v2.model.org_group_policy_relationship_to_one import OrgGroupPolicyRelationshipToOne
+
+ return {
+ "org_group": (OrgGroupRelationshipToOne,),
+ "org_group_policy": (OrgGroupPolicyRelationshipToOne,),
+ }
+
+ attribute_map = {
+ "org_group": "org_group",
+ "org_group_policy": "org_group_policy",
+ }
+
+ def __init__(
+ self_,
+ org_group: Union[OrgGroupRelationshipToOne, UnsetType] = unset,
+ org_group_policy: Union[OrgGroupPolicyRelationshipToOne, UnsetType] = unset,
+ **kwargs,
+ ):
+ """
+ Relationships of an org group policy override.
+
+ :param org_group: Relationship to a single org group.
+ :type org_group: OrgGroupRelationshipToOne, optional
+
+ :param org_group_policy: Relationship to a single org group policy.
+ :type org_group_policy: OrgGroupPolicyRelationshipToOne, optional
+ """
+ if org_group is not unset:
+ kwargs["org_group"] = org_group
+ if org_group_policy is not unset:
+ kwargs["org_group_policy"] = org_group_policy
+ super().__init__(kwargs)
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_response.py b/src/datadog_api_client/v2/model/org_group_policy_override_response.py
new file mode 100644
index 0000000000..301aa9d13e
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_override_data import OrgGroupPolicyOverrideData
+
+
+class OrgGroupPolicyOverrideResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_override_data import OrgGroupPolicyOverrideData
+
+ return {
+ "data": (OrgGroupPolicyOverrideData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupPolicyOverrideData, **kwargs):
+ """
+ Response containing a single org group policy override.
+
+ :param data: An org group policy override resource.
+ :type data: OrgGroupPolicyOverrideData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_sort_option.py b/src/datadog_api_client/v2/model/org_group_policy_override_sort_option.py
new file mode 100644
index 0000000000..abd0d525d1
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_sort_option.py
@@ -0,0 +1,44 @@
+# 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 OrgGroupPolicyOverrideSortOption(ModelSimple):
+ """
+ Field to sort overrides by.
+
+ :param value: If omitted defaults to "id". Must be one of ["id", "-id", "org_uuid", "-org_uuid"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "id",
+ "-id",
+ "org_uuid",
+ "-org_uuid",
+ }
+ ID: ClassVar["OrgGroupPolicyOverrideSortOption"]
+ MINUS_ID: ClassVar["OrgGroupPolicyOverrideSortOption"]
+ ORG_UUID: ClassVar["OrgGroupPolicyOverrideSortOption"]
+ MINUS_ORG_UUID: ClassVar["OrgGroupPolicyOverrideSortOption"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupPolicyOverrideSortOption.ID = OrgGroupPolicyOverrideSortOption("id")
+OrgGroupPolicyOverrideSortOption.MINUS_ID = OrgGroupPolicyOverrideSortOption("-id")
+OrgGroupPolicyOverrideSortOption.ORG_UUID = OrgGroupPolicyOverrideSortOption("org_uuid")
+OrgGroupPolicyOverrideSortOption.MINUS_ORG_UUID = OrgGroupPolicyOverrideSortOption("-org_uuid")
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_type.py b/src/datadog_api_client/v2/model/org_group_policy_override_type.py
new file mode 100644
index 0000000000..de818e52bc
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_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 OrgGroupPolicyOverrideType(ModelSimple):
+ """
+ Org group policy overrides resource type.
+
+ :param value: If omitted defaults to "org_group_policy_overrides". Must be one of ["org_group_policy_overrides"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "org_group_policy_overrides",
+ }
+ ORG_GROUP_POLICY_OVERRIDES: ClassVar["OrgGroupPolicyOverrideType"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupPolicyOverrideType.ORG_GROUP_POLICY_OVERRIDES = OrgGroupPolicyOverrideType("org_group_policy_overrides")
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_update_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_override_update_attributes.py
new file mode 100644
index 0000000000..fabd912259
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_update_attributes.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 datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ UUID,
+)
+
+
+class OrgGroupPolicyOverrideUpdateAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "org_site": (str,),
+ "org_uuid": (UUID,),
+ }
+
+ attribute_map = {
+ "org_site": "org_site",
+ "org_uuid": "org_uuid",
+ }
+
+ def __init__(self_, org_site: str, org_uuid: UUID, **kwargs):
+ """
+ Attributes for updating a policy override.
+
+ :param org_site: The site of the organization.
+ :type org_site: str
+
+ :param org_uuid: The UUID of the organization.
+ :type org_uuid: UUID
+ """
+ super().__init__(kwargs)
+
+ self_.org_site = org_site
+ self_.org_uuid = org_uuid
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_update_data.py b/src/datadog_api_client/v2/model/org_group_policy_override_update_data.py
new file mode 100644
index 0000000000..4d648f0c8c
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_update_data.py
@@ -0,0 +1,61 @@
+# 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,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_override_update_attributes import (
+ OrgGroupPolicyOverrideUpdateAttributes,
+ )
+ from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+
+
+class OrgGroupPolicyOverrideUpdateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_override_update_attributes import (
+ OrgGroupPolicyOverrideUpdateAttributes,
+ )
+ from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+
+ return {
+ "attributes": (OrgGroupPolicyOverrideUpdateAttributes,),
+ "id": (UUID,),
+ "type": (OrgGroupPolicyOverrideType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "type": "type",
+ }
+
+ def __init__(
+ self_, attributes: OrgGroupPolicyOverrideUpdateAttributes, id: UUID, type: OrgGroupPolicyOverrideType, **kwargs
+ ):
+ """
+ Data for updating a policy override.
+
+ :param attributes: Attributes for updating a policy override.
+ :type attributes: OrgGroupPolicyOverrideUpdateAttributes
+
+ :param id: The ID of the policy override.
+ :type id: UUID
+
+ :param type: Org group policy overrides resource type.
+ :type type: OrgGroupPolicyOverrideType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_override_update_request.py b/src/datadog_api_client/v2/model/org_group_policy_override_update_request.py
new file mode 100644
index 0000000000..2c9e328c2a
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_override_update_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_override_update_data import OrgGroupPolicyOverrideUpdateData
+
+
+class OrgGroupPolicyOverrideUpdateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_override_update_data import OrgGroupPolicyOverrideUpdateData
+
+ return {
+ "data": (OrgGroupPolicyOverrideUpdateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupPolicyOverrideUpdateData, **kwargs):
+ """
+ Request to update an org group policy override.
+
+ :param data: Data for updating a policy override.
+ :type data: OrgGroupPolicyOverrideUpdateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_relationship_to_one.py b/src/datadog_api_client/v2/model/org_group_policy_relationship_to_one.py
new file mode 100644
index 0000000000..7cae4db6f9
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_relationship_to_one.py
@@ -0,0 +1,44 @@
+# 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_relationship_to_one_data import (
+ OrgGroupPolicyRelationshipToOneData,
+ )
+
+
+class OrgGroupPolicyRelationshipToOne(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_relationship_to_one_data import (
+ OrgGroupPolicyRelationshipToOneData,
+ )
+
+ return {
+ "data": (OrgGroupPolicyRelationshipToOneData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupPolicyRelationshipToOneData, **kwargs):
+ """
+ Relationship to a single org group policy.
+
+ :param data: A reference to an org group policy.
+ :type data: OrgGroupPolicyRelationshipToOneData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_relationship_to_one_data.py b/src/datadog_api_client/v2/model/org_group_policy_relationship_to_one_data.py
new file mode 100644
index 0000000000..234bbea760
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_relationship_to_one_data.py
@@ -0,0 +1,47 @@
+# 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,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+
+class OrgGroupPolicyRelationshipToOneData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+ return {
+ "id": (UUID,),
+ "type": (OrgGroupPolicyType,),
+ }
+
+ attribute_map = {
+ "id": "id",
+ "type": "type",
+ }
+
+ def __init__(self_, id: UUID, type: OrgGroupPolicyType, **kwargs):
+ """
+ A reference to an org group policy.
+
+ :param id: The ID of the policy.
+ :type id: UUID
+
+ :param type: Org group policies resource type.
+ :type type: OrgGroupPolicyType
+ """
+ super().__init__(kwargs)
+
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_relationships.py b/src/datadog_api_client/v2/model/org_group_policy_relationships.py
new file mode 100644
index 0000000000..9325980a50
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_relationships.py
@@ -0,0 +1,42 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+
+class OrgGroupPolicyRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+
+ return {
+ "org_group": (OrgGroupRelationshipToOne,),
+ }
+
+ attribute_map = {
+ "org_group": "org_group",
+ }
+
+ def __init__(self_, org_group: Union[OrgGroupRelationshipToOne, UnsetType] = unset, **kwargs):
+ """
+ Relationships of an org group policy.
+
+ :param org_group: Relationship to a single org group.
+ :type org_group: OrgGroupRelationshipToOne, optional
+ """
+ if org_group is not unset:
+ kwargs["org_group"] = org_group
+ super().__init__(kwargs)
diff --git a/src/datadog_api_client/v2/model/org_group_policy_response.py b/src/datadog_api_client/v2/model/org_group_policy_response.py
new file mode 100644
index 0000000000..ff2bd9e95b
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_data import OrgGroupPolicyData
+
+
+class OrgGroupPolicyResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_data import OrgGroupPolicyData
+
+ return {
+ "data": (OrgGroupPolicyData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupPolicyData, **kwargs):
+ """
+ Response containing a single org group policy.
+
+ :param data: An org group policy resource.
+ :type data: OrgGroupPolicyData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_policy_sort_option.py b/src/datadog_api_client/v2/model/org_group_policy_sort_option.py
new file mode 100644
index 0000000000..17ba33941c
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_sort_option.py
@@ -0,0 +1,44 @@
+# 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 OrgGroupPolicySortOption(ModelSimple):
+ """
+ Field to sort policies by.
+
+ :param value: If omitted defaults to "id". Must be one of ["id", "-id", "name", "-name"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "id",
+ "-id",
+ "name",
+ "-name",
+ }
+ ID: ClassVar["OrgGroupPolicySortOption"]
+ MINUS_ID: ClassVar["OrgGroupPolicySortOption"]
+ NAME: ClassVar["OrgGroupPolicySortOption"]
+ MINUS_NAME: ClassVar["OrgGroupPolicySortOption"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupPolicySortOption.ID = OrgGroupPolicySortOption("id")
+OrgGroupPolicySortOption.MINUS_ID = OrgGroupPolicySortOption("-id")
+OrgGroupPolicySortOption.NAME = OrgGroupPolicySortOption("name")
+OrgGroupPolicySortOption.MINUS_NAME = OrgGroupPolicySortOption("-name")
diff --git a/src/datadog_api_client/v2/model/org_group_policy_type.py b/src/datadog_api_client/v2/model/org_group_policy_type.py
new file mode 100644
index 0000000000..398824203c
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_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 OrgGroupPolicyType(ModelSimple):
+ """
+ Org group policies resource type.
+
+ :param value: If omitted defaults to "org_group_policies". Must be one of ["org_group_policies"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "org_group_policies",
+ }
+ ORG_GROUP_POLICIES: ClassVar["OrgGroupPolicyType"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupPolicyType.ORG_GROUP_POLICIES = OrgGroupPolicyType("org_group_policies")
diff --git a/src/datadog_api_client/v2/model/org_group_policy_update_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_update_attributes.py
new file mode 100644
index 0000000000..eb72272c70
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_update_attributes.py
@@ -0,0 +1,55 @@
+# 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, Dict, Union
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ date,
+ datetime,
+ none_type,
+ unset,
+ UnsetType,
+ UUID,
+)
+
+
+class OrgGroupPolicyUpdateAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "content": (
+ {
+ str: (
+ bool,
+ date,
+ datetime,
+ dict,
+ float,
+ int,
+ list,
+ str,
+ UUID,
+ none_type,
+ )
+ },
+ ),
+ }
+
+ attribute_map = {
+ "content": "content",
+ }
+
+ def __init__(self_, content: Union[Dict[str, Any], UnsetType] = unset, **kwargs):
+ """
+ Attributes for updating an org group policy.
+
+ :param content: The policy content as key-value pairs.
+ :type content: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional
+ """
+ if content is not unset:
+ kwargs["content"] = content
+ super().__init__(kwargs)
diff --git a/src/datadog_api_client/v2/model/org_group_policy_update_data.py b/src/datadog_api_client/v2/model/org_group_policy_update_data.py
new file mode 100644
index 0000000000..af89fa3c8b
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_update_data.py
@@ -0,0 +1,55 @@
+# 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,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_update_attributes import OrgGroupPolicyUpdateAttributes
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+
+class OrgGroupPolicyUpdateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_update_attributes import OrgGroupPolicyUpdateAttributes
+ from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType
+
+ return {
+ "attributes": (OrgGroupPolicyUpdateAttributes,),
+ "id": (UUID,),
+ "type": (OrgGroupPolicyType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "type": "type",
+ }
+
+ def __init__(self_, attributes: OrgGroupPolicyUpdateAttributes, id: UUID, type: OrgGroupPolicyType, **kwargs):
+ """
+ Data for updating an org group policy.
+
+ :param attributes: Attributes for updating an org group policy.
+ :type attributes: OrgGroupPolicyUpdateAttributes
+
+ :param id: The ID of the policy.
+ :type id: UUID
+
+ :param type: Org group policies resource type.
+ :type type: OrgGroupPolicyType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_policy_update_request.py b/src/datadog_api_client/v2/model/org_group_policy_update_request.py
new file mode 100644
index 0000000000..49a6aa3d85
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_policy_update_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_policy_update_data import OrgGroupPolicyUpdateData
+
+
+class OrgGroupPolicyUpdateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_policy_update_data import OrgGroupPolicyUpdateData
+
+ return {
+ "data": (OrgGroupPolicyUpdateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupPolicyUpdateData, **kwargs):
+ """
+ Request to update an org group policy.
+
+ :param data: Data for updating an org group policy.
+ :type data: OrgGroupPolicyUpdateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_relationship_to_one.py b/src/datadog_api_client/v2/model/org_group_relationship_to_one.py
new file mode 100644
index 0000000000..473fec0b0d
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_relationship_to_one.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_relationship_to_one_data import OrgGroupRelationshipToOneData
+
+
+class OrgGroupRelationshipToOne(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_relationship_to_one_data import OrgGroupRelationshipToOneData
+
+ return {
+ "data": (OrgGroupRelationshipToOneData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupRelationshipToOneData, **kwargs):
+ """
+ Relationship to a single org group.
+
+ :param data: A reference to an org group.
+ :type data: OrgGroupRelationshipToOneData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_relationship_to_one_data.py b/src/datadog_api_client/v2/model/org_group_relationship_to_one_data.py
new file mode 100644
index 0000000000..6357e32f28
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_relationship_to_one_data.py
@@ -0,0 +1,47 @@
+# 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,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+
+class OrgGroupRelationshipToOneData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+ return {
+ "id": (UUID,),
+ "type": (OrgGroupType,),
+ }
+
+ attribute_map = {
+ "id": "id",
+ "type": "type",
+ }
+
+ def __init__(self_, id: UUID, type: OrgGroupType, **kwargs):
+ """
+ A reference to an org group.
+
+ :param id: The ID of the org group.
+ :type id: UUID
+
+ :param type: Org groups resource type.
+ :type type: OrgGroupType
+ """
+ super().__init__(kwargs)
+
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_relationships.py b/src/datadog_api_client/v2/model/org_group_relationships.py
new file mode 100644
index 0000000000..1c43ab4404
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_relationships.py
@@ -0,0 +1,42 @@
+# 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 Union, TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+ unset,
+ UnsetType,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_memberships_relationship import OrgGroupMembershipsRelationship
+
+
+class OrgGroupRelationships(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_memberships_relationship import OrgGroupMembershipsRelationship
+
+ return {
+ "memberships": (OrgGroupMembershipsRelationship,),
+ }
+
+ attribute_map = {
+ "memberships": "memberships",
+ }
+
+ def __init__(self_, memberships: Union[OrgGroupMembershipsRelationship, UnsetType] = unset, **kwargs):
+ """
+ Relationships of an org group.
+
+ :param memberships: Relationship to org group memberships.
+ :type memberships: OrgGroupMembershipsRelationship, optional
+ """
+ if memberships is not unset:
+ kwargs["memberships"] = memberships
+ super().__init__(kwargs)
diff --git a/src/datadog_api_client/v2/model/org_group_response.py b/src/datadog_api_client/v2/model/org_group_response.py
new file mode 100644
index 0000000000..a76b765840
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_data import OrgGroupData
+
+
+class OrgGroupResponse(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_data import OrgGroupData
+
+ return {
+ "data": (OrgGroupData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupData, **kwargs):
+ """
+ Response containing a single org group.
+
+ :param data: An org group resource.
+ :type data: OrgGroupData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/model/org_group_sort_option.py b/src/datadog_api_client/v2/model/org_group_sort_option.py
new file mode 100644
index 0000000000..0c13f49627
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_sort_option.py
@@ -0,0 +1,44 @@
+# 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 OrgGroupSortOption(ModelSimple):
+ """
+ Field to sort org groups by.
+
+ :param value: If omitted defaults to "uuid". Must be one of ["name", "-name", "uuid", "-uuid"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "name",
+ "-name",
+ "uuid",
+ "-uuid",
+ }
+ NAME: ClassVar["OrgGroupSortOption"]
+ MINUS_NAME: ClassVar["OrgGroupSortOption"]
+ UUID: ClassVar["OrgGroupSortOption"]
+ MINUS_UUID: ClassVar["OrgGroupSortOption"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupSortOption.NAME = OrgGroupSortOption("name")
+OrgGroupSortOption.MINUS_NAME = OrgGroupSortOption("-name")
+OrgGroupSortOption.UUID = OrgGroupSortOption("uuid")
+OrgGroupSortOption.MINUS_UUID = OrgGroupSortOption("-uuid")
diff --git a/src/datadog_api_client/v2/model/org_group_type.py b/src/datadog_api_client/v2/model/org_group_type.py
new file mode 100644
index 0000000000..30ca09d7b1
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_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 OrgGroupType(ModelSimple):
+ """
+ Org groups resource type.
+
+ :param value: If omitted defaults to "org_groups". Must be one of ["org_groups"].
+ :type value: str
+ """
+
+ allowed_values = {
+ "org_groups",
+ }
+ ORG_GROUPS: ClassVar["OrgGroupType"]
+
+ @cached_property
+ def openapi_types(_):
+ return {
+ "value": (str,),
+ }
+
+
+OrgGroupType.ORG_GROUPS = OrgGroupType("org_groups")
diff --git a/src/datadog_api_client/v2/model/org_group_update_attributes.py b/src/datadog_api_client/v2/model/org_group_update_attributes.py
new file mode 100644
index 0000000000..3033f8f044
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_update_attributes.py
@@ -0,0 +1,33 @@
+# 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 (
+ ModelNormal,
+ cached_property,
+)
+
+
+class OrgGroupUpdateAttributes(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ return {
+ "name": (str,),
+ }
+
+ attribute_map = {
+ "name": "name",
+ }
+
+ def __init__(self_, name: str, **kwargs):
+ """
+ Attributes for updating an org group.
+
+ :param name: The name of the org group.
+ :type name: str
+ """
+ super().__init__(kwargs)
+
+ self_.name = name
diff --git a/src/datadog_api_client/v2/model/org_group_update_data.py b/src/datadog_api_client/v2/model/org_group_update_data.py
new file mode 100644
index 0000000000..2a40f7d221
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_update_data.py
@@ -0,0 +1,55 @@
+# 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,
+ UUID,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_update_attributes import OrgGroupUpdateAttributes
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+
+class OrgGroupUpdateData(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_update_attributes import OrgGroupUpdateAttributes
+ from datadog_api_client.v2.model.org_group_type import OrgGroupType
+
+ return {
+ "attributes": (OrgGroupUpdateAttributes,),
+ "id": (UUID,),
+ "type": (OrgGroupType,),
+ }
+
+ attribute_map = {
+ "attributes": "attributes",
+ "id": "id",
+ "type": "type",
+ }
+
+ def __init__(self_, attributes: OrgGroupUpdateAttributes, id: UUID, type: OrgGroupType, **kwargs):
+ """
+ Data for updating an org group.
+
+ :param attributes: Attributes for updating an org group.
+ :type attributes: OrgGroupUpdateAttributes
+
+ :param id: The ID of the org group.
+ :type id: UUID
+
+ :param type: Org groups resource type.
+ :type type: OrgGroupType
+ """
+ super().__init__(kwargs)
+
+ self_.attributes = attributes
+ self_.id = id
+ self_.type = type
diff --git a/src/datadog_api_client/v2/model/org_group_update_request.py b/src/datadog_api_client/v2/model/org_group_update_request.py
new file mode 100644
index 0000000000..3e46243585
--- /dev/null
+++ b/src/datadog_api_client/v2/model/org_group_update_request.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 TYPE_CHECKING
+
+from datadog_api_client.model_utils import (
+ ModelNormal,
+ cached_property,
+)
+
+
+if TYPE_CHECKING:
+ from datadog_api_client.v2.model.org_group_update_data import OrgGroupUpdateData
+
+
+class OrgGroupUpdateRequest(ModelNormal):
+ @cached_property
+ def openapi_types(_):
+ from datadog_api_client.v2.model.org_group_update_data import OrgGroupUpdateData
+
+ return {
+ "data": (OrgGroupUpdateData,),
+ }
+
+ attribute_map = {
+ "data": "data",
+ }
+
+ def __init__(self_, data: OrgGroupUpdateData, **kwargs):
+ """
+ Request to update an org group.
+
+ :param data: Data for updating an org group.
+ :type data: OrgGroupUpdateData
+ """
+ super().__init__(kwargs)
+
+ self_.data = data
diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py
index 22f4a4d800..c32695f20c 100644
--- a/src/datadog_api_client/v2/models/__init__.py
+++ b/src/datadog_api_client/v2/models/__init__.py
@@ -2421,6 +2421,7 @@
from datadog_api_client.v2.model.global_incident_settings_request import GlobalIncidentSettingsRequest
from datadog_api_client.v2.model.global_incident_settings_response import GlobalIncidentSettingsResponse
from datadog_api_client.v2.model.global_incident_settings_type import GlobalIncidentSettingsType
+from datadog_api_client.v2.model.global_org_identifier import GlobalOrgIdentifier
from datadog_api_client.v2.model.global_variable_data import GlobalVariableData
from datadog_api_client.v2.model.global_variable_json_patch_request import GlobalVariableJsonPatchRequest
from datadog_api_client.v2.model.global_variable_json_patch_request_data import GlobalVariableJsonPatchRequestData
@@ -4430,6 +4431,85 @@
from datadog_api_client.v2.model.org_connection_user_relationship import OrgConnectionUserRelationship
from datadog_api_client.v2.model.org_connection_user_relationship_data import OrgConnectionUserRelationshipData
from datadog_api_client.v2.model.org_connection_user_relationship_data_type import OrgConnectionUserRelationshipDataType
+from datadog_api_client.v2.model.org_group_attributes import OrgGroupAttributes
+from datadog_api_client.v2.model.org_group_create_attributes import OrgGroupCreateAttributes
+from datadog_api_client.v2.model.org_group_create_data import OrgGroupCreateData
+from datadog_api_client.v2.model.org_group_create_request import OrgGroupCreateRequest
+from datadog_api_client.v2.model.org_group_data import OrgGroupData
+from datadog_api_client.v2.model.org_group_include_option import OrgGroupIncludeOption
+from datadog_api_client.v2.model.org_group_list_response import OrgGroupListResponse
+from datadog_api_client.v2.model.org_group_membership_attributes import OrgGroupMembershipAttributes
+from datadog_api_client.v2.model.org_group_membership_bulk_update_attributes import (
+ OrgGroupMembershipBulkUpdateAttributes,
+)
+from datadog_api_client.v2.model.org_group_membership_bulk_update_data import OrgGroupMembershipBulkUpdateData
+from datadog_api_client.v2.model.org_group_membership_bulk_update_relationships import (
+ OrgGroupMembershipBulkUpdateRelationships,
+)
+from datadog_api_client.v2.model.org_group_membership_bulk_update_request import OrgGroupMembershipBulkUpdateRequest
+from datadog_api_client.v2.model.org_group_membership_bulk_update_type import OrgGroupMembershipBulkUpdateType
+from datadog_api_client.v2.model.org_group_membership_data import OrgGroupMembershipData
+from datadog_api_client.v2.model.org_group_membership_list_response import OrgGroupMembershipListResponse
+from datadog_api_client.v2.model.org_group_membership_relationship_data import OrgGroupMembershipRelationshipData
+from datadog_api_client.v2.model.org_group_membership_relationships import OrgGroupMembershipRelationships
+from datadog_api_client.v2.model.org_group_membership_response import OrgGroupMembershipResponse
+from datadog_api_client.v2.model.org_group_membership_sort_option import OrgGroupMembershipSortOption
+from datadog_api_client.v2.model.org_group_membership_type import OrgGroupMembershipType
+from datadog_api_client.v2.model.org_group_membership_update_data import OrgGroupMembershipUpdateData
+from datadog_api_client.v2.model.org_group_membership_update_relationships import OrgGroupMembershipUpdateRelationships
+from datadog_api_client.v2.model.org_group_membership_update_request import OrgGroupMembershipUpdateRequest
+from datadog_api_client.v2.model.org_group_memberships_relationship import OrgGroupMembershipsRelationship
+from datadog_api_client.v2.model.org_group_pagination_meta import OrgGroupPaginationMeta
+from datadog_api_client.v2.model.org_group_pagination_meta_page import OrgGroupPaginationMetaPage
+from datadog_api_client.v2.model.org_group_policy_attributes import OrgGroupPolicyAttributes
+from datadog_api_client.v2.model.org_group_policy_config_attributes import OrgGroupPolicyConfigAttributes
+from datadog_api_client.v2.model.org_group_policy_config_data import OrgGroupPolicyConfigData
+from datadog_api_client.v2.model.org_group_policy_config_list_response import OrgGroupPolicyConfigListResponse
+from datadog_api_client.v2.model.org_group_policy_config_type import OrgGroupPolicyConfigType
+from datadog_api_client.v2.model.org_group_policy_create_attributes import OrgGroupPolicyCreateAttributes
+from datadog_api_client.v2.model.org_group_policy_create_data import OrgGroupPolicyCreateData
+from datadog_api_client.v2.model.org_group_policy_create_relationships import OrgGroupPolicyCreateRelationships
+from datadog_api_client.v2.model.org_group_policy_create_request import OrgGroupPolicyCreateRequest
+from datadog_api_client.v2.model.org_group_policy_data import OrgGroupPolicyData
+from datadog_api_client.v2.model.org_group_policy_list_response import OrgGroupPolicyListResponse
+from datadog_api_client.v2.model.org_group_policy_override_attributes import OrgGroupPolicyOverrideAttributes
+from datadog_api_client.v2.model.org_group_policy_override_create_attributes import (
+ OrgGroupPolicyOverrideCreateAttributes,
+)
+from datadog_api_client.v2.model.org_group_policy_override_create_data import OrgGroupPolicyOverrideCreateData
+from datadog_api_client.v2.model.org_group_policy_override_create_relationships import (
+ OrgGroupPolicyOverrideCreateRelationships,
+)
+from datadog_api_client.v2.model.org_group_policy_override_create_request import OrgGroupPolicyOverrideCreateRequest
+from datadog_api_client.v2.model.org_group_policy_override_data import OrgGroupPolicyOverrideData
+from datadog_api_client.v2.model.org_group_policy_override_list_response import OrgGroupPolicyOverrideListResponse
+from datadog_api_client.v2.model.org_group_policy_override_relationships import OrgGroupPolicyOverrideRelationships
+from datadog_api_client.v2.model.org_group_policy_override_response import OrgGroupPolicyOverrideResponse
+from datadog_api_client.v2.model.org_group_policy_override_sort_option import OrgGroupPolicyOverrideSortOption
+from datadog_api_client.v2.model.org_group_policy_override_type import OrgGroupPolicyOverrideType
+from datadog_api_client.v2.model.org_group_policy_override_update_attributes import (
+ OrgGroupPolicyOverrideUpdateAttributes,
+)
+from datadog_api_client.v2.model.org_group_policy_override_update_data import OrgGroupPolicyOverrideUpdateData
+from datadog_api_client.v2.model.org_group_policy_override_update_request import OrgGroupPolicyOverrideUpdateRequest
+from datadog_api_client.v2.model.org_group_policy_relationship_to_one import OrgGroupPolicyRelationshipToOne
+from datadog_api_client.v2.model.org_group_policy_relationship_to_one_data import OrgGroupPolicyRelationshipToOneData
+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_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
+from datadog_api_client.v2.model.org_group_policy_update_request import OrgGroupPolicyUpdateRequest
+from datadog_api_client.v2.model.org_group_relationship_to_one import OrgGroupRelationshipToOne
+from datadog_api_client.v2.model.org_group_relationship_to_one_data import OrgGroupRelationshipToOneData
+from datadog_api_client.v2.model.org_group_relationships import OrgGroupRelationships
+from datadog_api_client.v2.model.org_group_response import OrgGroupResponse
+from datadog_api_client.v2.model.org_group_sort_option import OrgGroupSortOption
+from datadog_api_client.v2.model.org_group_type import OrgGroupType
+from datadog_api_client.v2.model.org_group_update_attributes import OrgGroupUpdateAttributes
+from datadog_api_client.v2.model.org_group_update_data import OrgGroupUpdateData
+from datadog_api_client.v2.model.org_group_update_request import OrgGroupUpdateRequest
from datadog_api_client.v2.model.organization import Organization
from datadog_api_client.v2.model.organization_attributes import OrganizationAttributes
from datadog_api_client.v2.model.organizations_type import OrganizationsType
@@ -8610,6 +8690,7 @@
"GlobalIncidentSettingsRequest",
"GlobalIncidentSettingsResponse",
"GlobalIncidentSettingsType",
+ "GlobalOrgIdentifier",
"GlobalVariableData",
"GlobalVariableJsonPatchRequest",
"GlobalVariableJsonPatchRequestData",
@@ -9881,6 +9962,75 @@
"OrgConnectionUserRelationship",
"OrgConnectionUserRelationshipData",
"OrgConnectionUserRelationshipDataType",
+ "OrgGroupAttributes",
+ "OrgGroupCreateAttributes",
+ "OrgGroupCreateData",
+ "OrgGroupCreateRequest",
+ "OrgGroupData",
+ "OrgGroupIncludeOption",
+ "OrgGroupListResponse",
+ "OrgGroupMembershipAttributes",
+ "OrgGroupMembershipBulkUpdateAttributes",
+ "OrgGroupMembershipBulkUpdateData",
+ "OrgGroupMembershipBulkUpdateRelationships",
+ "OrgGroupMembershipBulkUpdateRequest",
+ "OrgGroupMembershipBulkUpdateType",
+ "OrgGroupMembershipData",
+ "OrgGroupMembershipListResponse",
+ "OrgGroupMembershipRelationshipData",
+ "OrgGroupMembershipRelationships",
+ "OrgGroupMembershipResponse",
+ "OrgGroupMembershipSortOption",
+ "OrgGroupMembershipType",
+ "OrgGroupMembershipUpdateData",
+ "OrgGroupMembershipUpdateRelationships",
+ "OrgGroupMembershipUpdateRequest",
+ "OrgGroupMembershipsRelationship",
+ "OrgGroupPaginationMeta",
+ "OrgGroupPaginationMetaPage",
+ "OrgGroupPolicyAttributes",
+ "OrgGroupPolicyConfigAttributes",
+ "OrgGroupPolicyConfigData",
+ "OrgGroupPolicyConfigListResponse",
+ "OrgGroupPolicyConfigType",
+ "OrgGroupPolicyCreateAttributes",
+ "OrgGroupPolicyCreateData",
+ "OrgGroupPolicyCreateRelationships",
+ "OrgGroupPolicyCreateRequest",
+ "OrgGroupPolicyData",
+ "OrgGroupPolicyListResponse",
+ "OrgGroupPolicyOverrideAttributes",
+ "OrgGroupPolicyOverrideCreateAttributes",
+ "OrgGroupPolicyOverrideCreateData",
+ "OrgGroupPolicyOverrideCreateRelationships",
+ "OrgGroupPolicyOverrideCreateRequest",
+ "OrgGroupPolicyOverrideData",
+ "OrgGroupPolicyOverrideListResponse",
+ "OrgGroupPolicyOverrideRelationships",
+ "OrgGroupPolicyOverrideResponse",
+ "OrgGroupPolicyOverrideSortOption",
+ "OrgGroupPolicyOverrideType",
+ "OrgGroupPolicyOverrideUpdateAttributes",
+ "OrgGroupPolicyOverrideUpdateData",
+ "OrgGroupPolicyOverrideUpdateRequest",
+ "OrgGroupPolicyRelationshipToOne",
+ "OrgGroupPolicyRelationshipToOneData",
+ "OrgGroupPolicyRelationships",
+ "OrgGroupPolicyResponse",
+ "OrgGroupPolicySortOption",
+ "OrgGroupPolicyType",
+ "OrgGroupPolicyUpdateAttributes",
+ "OrgGroupPolicyUpdateData",
+ "OrgGroupPolicyUpdateRequest",
+ "OrgGroupRelationshipToOne",
+ "OrgGroupRelationshipToOneData",
+ "OrgGroupRelationships",
+ "OrgGroupResponse",
+ "OrgGroupSortOption",
+ "OrgGroupType",
+ "OrgGroupUpdateAttributes",
+ "OrgGroupUpdateData",
+ "OrgGroupUpdateRequest",
"Organization",
"OrganizationAttributes",
"OrganizationsType",
diff --git a/tests/v2/features/org_groups.feature b/tests/v2/features/org_groups.feature
new file mode 100644
index 0000000000..73cce63cd8
--- /dev/null
+++ b/tests/v2/features/org_groups.feature
@@ -0,0 +1,400 @@
+@endpoint(org-groups) @endpoint(org-groups-v2)
+Feature: Org Groups
+ Manage organization groups, memberships, policies, policy overrides, and
+ policy configurations.
+
+ Background:
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "OrgGroups" API
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Bulk update org group memberships returns "Bad Request" response
+ Given operation "BulkUpdateOrgGroupMemberships" enabled
+ And new "BulkUpdateOrgGroupMemberships" request
+ And body with value {"data": {"attributes": {"orgs": [{"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}]}, "relationships": {"source_org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}, "target_org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_membership_bulk_updates"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Bulk update org group memberships returns "Not Found" response
+ Given operation "BulkUpdateOrgGroupMemberships" enabled
+ And new "BulkUpdateOrgGroupMemberships" request
+ And body with value {"data": {"attributes": {"orgs": [{"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}]}, "relationships": {"source_org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}, "target_org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_membership_bulk_updates"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Bulk update org group memberships returns "OK" response
+ Given operation "BulkUpdateOrgGroupMemberships" enabled
+ And new "BulkUpdateOrgGroupMemberships" request
+ And body with value {"data": {"attributes": {"orgs": [{"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}]}, "relationships": {"source_org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}, "target_org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_membership_bulk_updates"}}
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group policy override returns "Bad Request" response
+ Given operation "CreateOrgGroupPolicyOverride" enabled
+ And new "CreateOrgGroupPolicyOverride" request
+ And body with value {"data": {"attributes": {"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}, "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}, "org_group_policy": {"data": {"id": "1a2b3c4d-5e6f-7890-abcd-ef0123456789", "type": "org_group_policies"}}}, "type": "org_group_policy_overrides"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group policy override returns "Conflict" response
+ Given operation "CreateOrgGroupPolicyOverride" enabled
+ And new "CreateOrgGroupPolicyOverride" request
+ And body with value {"data": {"attributes": {"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}, "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}, "org_group_policy": {"data": {"id": "1a2b3c4d-5e6f-7890-abcd-ef0123456789", "type": "org_group_policies"}}}, "type": "org_group_policy_overrides"}}
+ When the request is sent
+ Then the response status is 409 Conflict
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group policy override returns "Created" response
+ Given operation "CreateOrgGroupPolicyOverride" enabled
+ And new "CreateOrgGroupPolicyOverride" request
+ And body with value {"data": {"attributes": {"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}, "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}, "org_group_policy": {"data": {"id": "1a2b3c4d-5e6f-7890-abcd-ef0123456789", "type": "org_group_policies"}}}, "type": "org_group_policy_overrides"}}
+ When the request is sent
+ Then the response status is 201 Created
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group policy returns "Bad Request" response
+ Given operation "CreateOrgGroupPolicy" enabled
+ And new "CreateOrgGroupPolicy" request
+ And body with value {"data": {"attributes": {"content": {"value": "UTC"}, "policy_name": "monitor_timezone"}, "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_policies"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group policy returns "Conflict" response
+ Given operation "CreateOrgGroupPolicy" enabled
+ And new "CreateOrgGroupPolicy" request
+ And body with value {"data": {"attributes": {"content": {"value": "UTC"}, "policy_name": "monitor_timezone"}, "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_policies"}}
+ When the request is sent
+ Then the response status is 409 Conflict
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group policy returns "Created" response
+ Given operation "CreateOrgGroupPolicy" enabled
+ And new "CreateOrgGroupPolicy" request
+ And body with value {"data": {"attributes": {"content": {"value": "UTC"}, "policy_name": "monitor_timezone"}, "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_policies"}}
+ When the request is sent
+ Then the response status is 201 Created
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group returns "Bad Request" response
+ Given operation "CreateOrgGroup" enabled
+ And new "CreateOrgGroup" request
+ And body with value {"data": {"attributes": {"name": "My Org Group"}, "type": "org_groups"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group returns "Conflict" response
+ Given operation "CreateOrgGroup" enabled
+ And new "CreateOrgGroup" request
+ And body with value {"data": {"attributes": {"name": "My Org Group"}, "type": "org_groups"}}
+ When the request is sent
+ Then the response status is 409 Conflict
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Create an org group returns "Created" response
+ Given operation "CreateOrgGroup" enabled
+ And new "CreateOrgGroup" request
+ And body with value {"data": {"attributes": {"name": "My Org Group"}, "type": "org_groups"}}
+ When the request is sent
+ Then the response status is 201 Created
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Delete an org group policy override returns "Bad Request" response
+ Given operation "DeleteOrgGroupPolicyOverride" enabled
+ And new "DeleteOrgGroupPolicyOverride" request
+ And request contains "org_group_policy_override_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: Delete an org group policy override returns "No Content" response
+ Given operation "DeleteOrgGroupPolicyOverride" enabled
+ And new "DeleteOrgGroupPolicyOverride" request
+ And request contains "org_group_policy_override_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 204 No Content
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Delete an org group policy override returns "Not Found" response
+ Given operation "DeleteOrgGroupPolicyOverride" enabled
+ And new "DeleteOrgGroupPolicyOverride" request
+ And request contains "org_group_policy_override_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Delete an org group policy returns "Bad Request" response
+ Given operation "DeleteOrgGroupPolicy" enabled
+ And new "DeleteOrgGroupPolicy" request
+ And request contains "org_group_policy_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: Delete an org group policy returns "No Content" response
+ Given operation "DeleteOrgGroupPolicy" enabled
+ And new "DeleteOrgGroupPolicy" request
+ And request contains "org_group_policy_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 204 No Content
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Delete an org group policy returns "Not Found" response
+ Given operation "DeleteOrgGroupPolicy" enabled
+ And new "DeleteOrgGroupPolicy" request
+ And request contains "org_group_policy_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Delete an org group returns "Bad Request" response
+ Given operation "DeleteOrgGroup" enabled
+ And new "DeleteOrgGroup" request
+ And request contains "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: Delete an org group returns "No Content" response
+ Given operation "DeleteOrgGroup" enabled
+ And new "DeleteOrgGroup" request
+ And request contains "org_group_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 204 No Content
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Delete an org group returns "Not Found" response
+ Given operation "DeleteOrgGroup" enabled
+ And new "DeleteOrgGroup" request
+ And request contains "org_group_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Get an org group membership returns "Bad Request" response
+ Given operation "GetOrgGroupMembership" enabled
+ And new "GetOrgGroupMembership" request
+ And request contains "org_group_membership_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: Get an org group membership returns "Not Found" response
+ Given operation "GetOrgGroupMembership" enabled
+ And new "GetOrgGroupMembership" request
+ And request contains "org_group_membership_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Get an org group membership returns "OK" response
+ Given operation "GetOrgGroupMembership" enabled
+ And new "GetOrgGroupMembership" request
+ And request contains "org_group_membership_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Get an org group returns "Bad Request" response
+ Given operation "GetOrgGroup" enabled
+ And new "GetOrgGroup" request
+ And request contains "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: Get an org group returns "Not Found" response
+ Given operation "GetOrgGroup" enabled
+ And new "GetOrgGroup" request
+ And request contains "org_group_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Get an org group returns "OK" response
+ Given operation "GetOrgGroup" enabled
+ And new "GetOrgGroup" request
+ And request contains "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 group memberships returns "Bad Request" response
+ Given operation "ListOrgGroupMemberships" enabled
+ And new "ListOrgGroupMemberships" request
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: List org group memberships returns "OK" response
+ Given operation "ListOrgGroupMemberships" enabled
+ And new "ListOrgGroupMemberships" request
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: List org group policies returns "Bad Request" response
+ Given operation "ListOrgGroupPolicies" enabled
+ And new "ListOrgGroupPolicies" 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 policies returns "OK" response
+ Given operation "ListOrgGroupPolicies" enabled
+ And new "ListOrgGroupPolicies" 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 group policy configs returns "OK" response
+ Given operation "ListOrgGroupPolicyConfigs" enabled
+ And new "ListOrgGroupPolicyConfigs" request
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: List org group policy overrides returns "Bad Request" response
+ Given operation "ListOrgGroupPolicyOverrides" enabled
+ And new "ListOrgGroupPolicyOverrides" 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 overrides returns "OK" response
+ Given operation "ListOrgGroupPolicyOverrides" enabled
+ And new "ListOrgGroupPolicyOverrides" 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
+ And new "ListOrgGroups" request
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: List org groups returns "OK" response
+ Given operation "ListOrgGroups" enabled
+ And new "ListOrgGroups" request
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group membership returns "Bad Request" response
+ Given operation "UpdateOrgGroupMembership" enabled
+ And new "UpdateOrgGroupMembership" request
+ And request contains "org_group_membership_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"id": "f1e2d3c4-b5a6-7890-1234-567890abcdef", "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_memberships"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group membership returns "Not Found" response
+ Given operation "UpdateOrgGroupMembership" enabled
+ And new "UpdateOrgGroupMembership" request
+ And request contains "org_group_membership_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"id": "f1e2d3c4-b5a6-7890-1234-567890abcdef", "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_memberships"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group membership returns "OK" response
+ Given operation "UpdateOrgGroupMembership" enabled
+ And new "UpdateOrgGroupMembership" request
+ And request contains "org_group_membership_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"id": "f1e2d3c4-b5a6-7890-1234-567890abcdef", "relationships": {"org_group": {"data": {"id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}}, "type": "org_group_memberships"}}
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group policy override returns "Bad Request" response
+ Given operation "UpdateOrgGroupPolicyOverride" enabled
+ And new "UpdateOrgGroupPolicyOverride" request
+ And request contains "org_group_policy_override_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}, "id": "9f8e7d6c-5b4a-3210-fedc-ba0987654321", "type": "org_group_policy_overrides"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group policy override returns "Not Found" response
+ Given operation "UpdateOrgGroupPolicyOverride" enabled
+ And new "UpdateOrgGroupPolicyOverride" request
+ And request contains "org_group_policy_override_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}, "id": "9f8e7d6c-5b4a-3210-fedc-ba0987654321", "type": "org_group_policy_overrides"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group policy override returns "OK" response
+ Given operation "UpdateOrgGroupPolicyOverride" enabled
+ And new "UpdateOrgGroupPolicyOverride" request
+ And request contains "org_group_policy_override_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"org_site": "datadoghq.com", "org_uuid": "c3d4e5f6-a7b8-9012-cdef-012345678901"}, "id": "9f8e7d6c-5b4a-3210-fedc-ba0987654321", "type": "org_group_policy_overrides"}}
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group policy returns "Bad Request" response
+ Given operation "UpdateOrgGroupPolicy" enabled
+ And new "UpdateOrgGroupPolicy" request
+ And request contains "org_group_policy_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"content": {"value": "UTC"}}, "id": "1a2b3c4d-5e6f-7890-abcd-ef0123456789", "type": "org_group_policies"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group policy returns "Not Found" response
+ Given operation "UpdateOrgGroupPolicy" enabled
+ And new "UpdateOrgGroupPolicy" request
+ And request contains "org_group_policy_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"content": {"value": "UTC"}}, "id": "1a2b3c4d-5e6f-7890-abcd-ef0123456789", "type": "org_group_policies"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group policy returns "OK" response
+ Given operation "UpdateOrgGroupPolicy" enabled
+ And new "UpdateOrgGroupPolicy" request
+ And request contains "org_group_policy_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"content": {"value": "UTC"}}, "id": "1a2b3c4d-5e6f-7890-abcd-ef0123456789", "type": "org_group_policies"}}
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group returns "Bad Request" response
+ Given operation "UpdateOrgGroup" enabled
+ And new "UpdateOrgGroup" request
+ And request contains "org_group_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "Updated Org Group Name"}, "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group returns "Not Found" response
+ Given operation "UpdateOrgGroup" enabled
+ And new "UpdateOrgGroup" request
+ And request contains "org_group_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "Updated Org Group Name"}, "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/org-management
+ Scenario: Update an org group returns "OK" response
+ Given operation "UpdateOrgGroup" enabled
+ And new "UpdateOrgGroup" request
+ And request contains "org_group_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"name": "Updated Org Group Name"}, "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789", "type": "org_groups"}}
+ When the request is sent
+ Then the response status is 200 OK
diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json
index 1f11ffb7e7..00d826d9e7 100644
--- a/tests/v2/features/undo.json
+++ b/tests/v2/features/undo.json
@@ -4000,6 +4000,132 @@
"type": "idempotent"
}
},
+ "ListOrgGroupMemberships": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "BulkUpdateOrgGroupMemberships": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "GetOrgGroupMembership": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "UpdateOrgGroupMembership": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "ListOrgGroupPolicies": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "CreateOrgGroupPolicy": {
+ "tag": "Org Groups",
+ "undo": {
+ "operationId": "DeleteOrgGroupPolicy",
+ "parameters": [
+ {
+ "name": "org_group_policy_id",
+ "source": "data.id"
+ }
+ ]
+ }
+ },
+ "DeleteOrgGroupPolicy": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "unsafe"
+ }
+ },
+ "UpdateOrgGroupPolicy": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "ListOrgGroupPolicyConfigs": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "ListOrgGroupPolicyOverrides": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "CreateOrgGroupPolicyOverride": {
+ "tag": "Org Groups",
+ "undo": {
+ "operationId": "DeleteOrgGroupPolicyOverride",
+ "parameters": [
+ {
+ "name": "org_group_policy_override_id",
+ "source": "data.id"
+ }
+ ]
+ }
+ },
+ "DeleteOrgGroupPolicyOverride": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "unsafe"
+ }
+ },
+ "UpdateOrgGroupPolicyOverride": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "ListOrgGroups": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "CreateOrgGroup": {
+ "tag": "Org Groups",
+ "undo": {
+ "operationId": "DeleteOrgGroup",
+ "parameters": [
+ {
+ "name": "org_group_id",
+ "source": "data.id"
+ }
+ ]
+ }
+ },
+ "DeleteOrgGroup": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "unsafe"
+ }
+ },
+ "GetOrgGroup": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "UpdateOrgGroup": {
+ "tag": "Org Groups",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
"ListPermissions": {
"tag": "Roles",
"undo": {