Datadog Policies API

The Policies API from Datadog — 9 operation(s) for policies.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

datadog-policies-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  contact:
    email: support@datadoghq.com
    name: Datadog Support
    url: https://www.datadoghq.com/support/
  description: The Datadog API is an HTTP REST API. The API uses resource-oriented URLs to call the API, uses status codes to indicate the success or failure of requests, returns JSON from all requests, and uses standard HTTP response codes. Use the Datadog API to access the Datadog platform programmatically.
  title: Datadog Account Policies API
  version: '1.0'
servers:
- url: https://{subdomain}.{site}
  variables:
    site:
      default: datadoghq.com
      description: The regional site for Datadog customers.
      enum:
      - datadoghq.com
      - us3.datadoghq.com
      - us5.datadoghq.com
      - ap1.datadoghq.com
      - datadoghq.eu
      - ddog-gov.com
    subdomain:
      default: api
      description: The subdomain where the API is deployed.
- 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.
security:
- apiKeyAuth: []
  appKeyAuth: []
tags:
- name: Policies
paths:
  /api/v2/monitor/policy:
    get:
      description: Get all monitor configuration policies.
      operationId: ListMonitorConfigPolicies
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorConfigPolicyListResponse'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - monitors_read
      summary: Datadog Get All Monitor Configuration Policies
      tags:
      - Policies
      x-menu-order: 10
      x-permission:
        operator: OR
        permissions:
        - monitors_read
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      description: Create a monitor configuration policy.
      operationId: CreateMonitorConfigPolicy
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonitorConfigPolicyCreateRequest'
        description: Create a monitor configuration policy request body.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorConfigPolicyResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create a Monitor Configuration Policy
      tags:
      - Policies
      x-codegen-request-body-name: body
      x-given:
        monitor_configuration_policy:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"type\": \"monitor-config-policy\",\n    \"attributes\": {\n      \"policy_type\": \"tag\",\n      \"policy\": {\n        \"tag_key\": \"{{ unique_lower_alnum }}\", \"tag_key_required\": false, \"valid_tag_values\": [\"prod\", \"staging\"]\n      }\n    }\n  }\n}"
          step: there is a valid "monitor_configuration_policy" in the system
      x-menu-order: 11
      x-permission:
        operator: OR
        permissions:
        - monitor_config_policy_write
      x-undo:
        operationId: DeleteMonitorConfigPolicy
        parameters:
        - name: policy_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/monitor/policy/{policy_id}:
    delete:
      description: Delete a monitor configuration policy.
      operationId: DeleteMonitorConfigPolicy
      parameters:
      - description: ID of the monitor configuration policy.
        in: path
        name: policy_id
        required: true
        schema:
          example: 00000000-0000-1234-0000-000000000000
          type: string
        example: 00000000-0000-1234-0000-000000000000
      responses:
        '204':
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Delete a Monitor Configuration Policy
      tags:
      - Policies
      x-menu-order: 13
      x-permission:
        operator: OR
        permissions:
        - monitor_config_policy_write
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Get a monitor configuration policy by `policy_id`.
      operationId: GetMonitorConfigPolicy
      parameters:
      - description: ID of the monitor configuration policy.
        in: path
        name: policy_id
        required: true
        schema:
          example: 00000000-0000-1234-0000-000000000000
          type: string
        example: 00000000-0000-1234-0000-000000000000
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorConfigPolicyResponse'
          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
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - monitors_read
      summary: Datadog Get a Monitor Configuration Policy
      tags:
      - Policies
      x-menu-order: 9
      x-permission:
        operator: OR
        permissions:
        - monitors_read
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      description: Edit a monitor configuration policy.
      operationId: UpdateMonitorConfigPolicy
      parameters:
      - description: ID of the monitor configuration policy.
        in: path
        name: policy_id
        required: true
        schema:
          example: 00000000-0000-1234-0000-000000000000
          type: string
        example: 00000000-0000-1234-0000-000000000000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonitorConfigPolicyEditRequest'
        description: Description of the update.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorConfigPolicyResponse'
          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
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Unprocessable Entity
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Edit a Monitor Configuration Policy
      tags:
      - Policies
      x-codegen-request-body-name: body
      x-menu-order: 12
      x-permission:
        operator: OR
        permissions:
        - monitor_config_policy_write
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /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
        example: example_value
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EscalationPolicyCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EscalationPolicy'
          description: Created
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Create On-call Escalation Policy
      tags:
      - Policies
      x-given:
        escalation_policy:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"name\": \"{{ unique }}\",\n      \"resolve_page_on_policy_end\": true,\n      \"retries\": 2,\n      \"steps\": [\n        {\n          \"assignment\": \"default\",\n          \"escalate_after_seconds\": 3600,\n          \"targets\": [\n            {\n              \"id\": \"{{ dd_team.data.id }}\",\n              \"type\": \"teams\"\n            },\n            {\n              \"id\": \"{{ schedule.data.id }}\",\n              \"type\": \"schedules\"\n            },\n            {\n              \"id\": \"{{ user.data.id }}\",\n              \"type\": \"users\"\n            }\n          ]\n        },\n        {\n          \"assignment\": \"round-robin\",\n          \"escalate_after_seconds\": 3600,\n          \"targets\": [\n            {\n              \"id\": \"{{ dd_team.data.id }}\",\n              \"type\": \"teams\"\n            }\n          ]\n        }\n      ]\n    },\n    \"relationships\": {\n      \"teams\": {\n        \"data\": [\n          {\n            \"id\": \"{{ dd_team.data.id }}\",\n            \"type\": \"teams\"\n          }\n        ]\n      }\n    },\n    \"type\": \"policies\"\n  }\n}"
          step: there is a valid "escalation_policy" in the system
      x-menu-order: 5
      x-permission:
        operator: AND
        permissions:
        - on_call_write
      x-undo:
        operationId: DeleteOnCallEscalationPolicy
        parameters:
        - name: policy_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/on-call/escalation-policies/{policy_id}:
    delete:
      description: Delete an On-Call escalation policy
      operationId: DeleteOnCallEscalationPolicy
      parameters:
      - description: The ID of the escalation policy
        in: path
        name: policy_id
        required: true
        schema:
          example: a3000000-0000-0000-0000-000000000000
          type: string
        example: a3000000-0000-0000-0000-000000000000
      responses:
        '204':
          description: No Content
        '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: Datadog Delete On-call Escalation Policy
      tags:
      - Policies
      x-menu-order: 8
      x-permission:
        operator: AND
        permissions:
        - on_call_write
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Get an On-Call escalation policy
      operationId: GetOnCallEscalationPolicy
      parameters:
      - description: The ID of the escalation policy
        in: path
        name: policy_id
        required: true
        schema:
          example: a3000000-0000-0000-0000-000000000000
          type: string
        example: a3000000-0000-0000-0000-000000000000
      - description: 'Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`.'
        in: query
        name: include
        schema:
          type: string
        example: example_value
      responses:
        '200':
          content:
            application/json:
              schema:
                $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'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Get On-call Escalation Policy
      tags:
      - Policies
      x-menu-order: 7
      x-permission:
        operator: AND
        permissions:
        - on_call_read
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      description: Update an On-Call escalation policy
      operationId: UpdateOnCallEscalationPolicy
      parameters:
      - description: The ID of the escalation policy
        in: path
        name: policy_id
        required: true
        schema:
          example: a3000000-0000-0000-0000-000000000000
          type: string
        example: a3000000-0000-0000-0000-000000000000
      - description: 'Comma-separated list of included relationships to be returned. Allowed values: `teams`, `steps`, `steps.targets`.'
        in: query
        name: include
        schema:
          type: string
        example: example_value
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EscalationPolicyUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $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'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Update On-call Escalation Policy
      tags:
      - Policies
      x-menu-order: 6
      x-permission:
        operator: AND
        permissions:
        - on_call_write
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/remote_config/products/cws/policy:
    get:
      description: 'Get the list of Workload Protection policies.


        **Note**: This endpoint is not available for the Government (US1-FED) site. Please reference the (US1-FED) specific resource below.'
      operationId: ListCSMThreatsAgentPolicies
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudWorkloadSecurityAgentPoliciesListResponse'
          description: OK
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Get All Workload Protection Policies
      tags:
      - Policies
      x-menu-order: 6
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      description: 'Create a new Workload Protection policy with the given parameters.


        **Note**: This endpoint is not available for the Government (US1-FED) site. Please reference the (US1-FED) specific resource below.'
      operationId: CreateCSMThreatsAgentPolicy
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudWorkloadSecurityAgentPolicyCreateRequest'
        description: The definition of the new Agent policy
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudWorkloadSecurityAgentPolicyResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '409':
          $ref: '#/components/responses/ConflictResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create a Workload Protection Policy
      tags:
      - Policies
      x-codegen-request-body-name: body
      x-given:
        policy:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"type\": \"policy\",\n    \"attributes\": {\n      \"name\": \"{{ unique_lower_alnum }}\",\n      \"description\": \"My agent policy\",\n      \"hostTags\": [\"env:staging\"],\n      \"enabled\": true\n     }\n  }\n}"
          step: there is a valid "policy_rc" in the system
      x-menu-order: 8
      x-undo:
        operationId: DeleteCSMThreatsAgentPolicy
        parameters:
        - name: policy_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/remote_config/products/cws/policy/download:
    get:
      description: 'The download endpoint generates a Workload Protection policy file from your currently active

        Workload Protection agent rules, and downloads them as a `.policy` file. This file can then be deployed to

        your agents to update the policy running in your environment.


        **Note**: This endpoint is not available for the Government (US1-FED) site. Please reference the (US1-FED) specific resource below.'
      operationId: DownloadCSMThreatsPolicy
      responses:
        '200':
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: OK
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Download the Workload Protection Policy
      tags:
      - Policies
      x-menu-order: 11
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/remote_config/products/cws/policy/{policy_id}:
    delete:
      description: 'Delete a specific Workload Protection policy.


        **Note**: This endpoint is not available for the Government (US1-FED) site. Please reference the (US1-FED) specific resource below.'
      operationId: DeleteCSMThreatsAgentPolicy
      parameters:
      - $ref: '#/components/parameters/CloudWorkloadSecurityPathAgentPolicyID'
      responses:
        '202':
          description: OK
        '204':
          description: OK
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Delete a Workload Protection Policy
      tags:
      - Policies
      x-menu-order: 10
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: 'Get the details of a specific Workload Protection policy.


        **Note**: This endpoint is not available for the Government (US1-FED) site. Please reference the (US1-FED) specific resource below.'
      operationId: GetCSMThreatsAgentPolicy
      parameters:
      - $ref: '#/components/parameters/CloudWorkloadSecurityPathAgentPolicyID'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudWorkloadSecurityAgentPolicyResponse'
          description: OK
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Get a Workload Protection Policy
      tags:
      - Policies
      x-menu-order: 7
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      description: 'Update a specific Workload Protection policy.

        Returns the policy object when the request is successful.


        **Note**: This endpoint is not available for the Government (US1-FED) site. Please reference the (US1-FED) specific resource below.'
      operationId: UpdateCSMThreatsAgentPolicy
      parameters:
      - $ref: '#/components/parameters/CloudWorkloadSecurityPathAgentPolicyID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudWorkloadSecurityAgentPolicyUpdateRequest'
        description: New definition of the Agent policy
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudWorkloadSecurityAgentPolicyResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '409':
          $ref: '#/components/responses/ConcurrentModificationResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Update a Workload Protection Policy
      tags:
      - Policies
      x-codegen-request-body-name: body
      x-menu-order: 9
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/restriction_policy/{resource_id}:
    delete:
      description: Deletes the restriction policy associated with a specified resource.
      operationId: DeleteRestrictionPolicy
      parameters:
      - $ref: '#/components/parameters/ResourceID'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Delete a Restriction Policy
      tags:
      - Policies
      x-menu-order: 3
      x-permission:
        operator: OPEN
        permissions: []
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Retrieves the restriction policy associated with a specified resource.
      operationId: GetRestrictionPolicy
      parameters:
      - $ref: '#/components/parameters/ResourceID'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestrictionPolicyResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Get a Restriction Policy
      tags:
      - Policies
      x-menu-order: 2
      x-permission:
        operator: OPEN
        permissions: []
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      description: 'Updates the restriction policy associated with a resource.


        #### Supported resources

        Restriction policies can be applied to the following resources:

        - Dashboards: `dashboard`

        - Integration Accounts: `integration-account`

        - Integration Services: `integration-service`

        - Integration Webhooks: `integration-webhook`

        - Notebooks: `notebook`

        - Powerpacks: `powerpack`

        - Reference Tables: `reference-table`

        - Security Rules: `security-rule`

        - Service Level Objectives: `slo`

        - Synthetic Global Variables: `synthetics-global-variable`

        - Synthetic Tests: `synthetics-test`

        - Synthetic Private Locations: `synthetics-private-location`

        - Monitors: `monitor`

        - Workflows: `workflow`

        - App Builder Apps: `app-builder-app`

        - Connections: `connection`

        - Connection Groups: `connection-group`

        - RUM Applications: `rum-application`


        #### Supported relations for resources

        Resource Type               | Supported Relations

        ----------------------------|--------------------------

        Dashboards                  | `viewer`, `editor`

        Integration Accounts        | `viewer`, `editor`

        Integration Services        | `viewer`, `editor`

        Integration Webhooks        | `viewer`, `editor`

        Notebooks                   | `viewer`, `editor`

        Powerpacks                  | `viewer`, `editor`

        Security Rules              | `viewer`, `editor`

        Service Level Objectives    | `viewer`, `editor`

        Synthetic Global Variables  | `viewer`, `editor`

        Synthetic Tests             | `viewer`, `editor`

        Synthetic Private Locations | `viewer`, `editor`

        Monitors                    | `viewer`, `editor`

        Reference Tables            | `viewer`, `editor`

        Workflows                   | `viewer`, `runner`, `editor`

        App Builder Apps            | `viewer`, `editor`

        Connections                 | `viewer`, `resolver`, `editor`

        Connection Groups           | `viewer`, `editor`

        RUM Application             | `viewer`, `editor`'
      operationId: UpdateRestrictionPolicy
      parameters:
      - $ref: '#/components/parameters/ResourceID'
      - description: Allows admins (users with the `user_access_manage` permission) to remove their own access from the resource if set to `true`. By default, this is set to `false`, preventing admins from locking themselves out.
        in: query
        name: allow_self_lockout
        required: false
        schema:
          type: boolean
        example: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestrictionPolicyUpdateRequest'
        description: Restriction policy payload
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestrictionPolicyResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Update a Restriction Policy
      tags:
      - Policies
      x-codegen-request-body-name: body
      x-menu-order: 1
      x-permission:
        operator: OPEN
        permissions: []
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/security/cloud_workload/policy/download:
    get:
      description: 'The download endpoint generates a Workload Protection policy file from your currently active

        Workload Protection agent rules, and downloads them as a `.policy` file. This file can then be deployed to

        your agents to update the policy running in your environment.


        **Note**: This endpoint should only be used for the Government (US1-FED) site.'
      operationId: DownloadCloudWorkloadPolicyFile
      responses:
        '200':
          content:
            application/yaml:
              schema:
                format: binary
                type: string
          description: OK
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Download the Workload Protection Policy (us1-fed)
      tags:
      - Policies
      x-menu-order: 17
      x-permission:
        operator: OR
        permissions:
        - security_monitoring_cws_agent_rules

# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datadog/refs/heads/main/openapi/datadog-policies-api-openapi.yml