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": {