Datadog Custom API

The Custom API from Datadog — 8 operation(s) for custom.

Operations 13

DELETE /api/v2/cloud_security_management/custom_frameworks/{handle}/{version} Datadog Delete a Custom Framework #
GET /api/v2/cloud_security_management/custom_frameworks/{handle}/{version} Datadog Get a Custom Framework #
PUT /api/v2/cloud_security_management/custom_frameworks/{handle}/{version} Datadog Update a Custom Framework #
GET /api/v2/cost/custom_costs Datadog List Custom Costs Files #
PUT /api/v2/cost/custom_costs Datadog Upload Custom Costs File #
DELETE /api/v2/cost/custom_costs/{file_id} Datadog Delete Custom Costs File #
GET /api/v2/cost/custom_costs/{file_id} Datadog Get Custom Costs File #
DELETE /api/v2/logs/config/custom-destinations/{custom_destination_id} Datadog Delete a Custom Destination #
GET /api/v2/logs/config/custom-destinations/{custom_destination_id} Datadog Get a Custom Destination #
PATCH /api/v2/logs/config/custom-destinations/{custom_destination_id} Datadog Update a Custom Destination #
DELETE /api/v2/remote_config/products/asm/waf/custom_rules/{custom_rule_id} Datadog Delete a Waf Custom Rule #
GET /api/v2/remote_config/products/asm/waf/custom_rules/{custom_rule_id} Datadog Get a Waf Custom Rule #
PUT /api/v2/remote_config/products/asm/waf/custom_rules/{custom_rule_id} Datadog Update a Waf Custom Rule #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/datadog-custom-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

datadog-custom-api-openapi.yml Raw ↑
openapi: 3.2.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 Custom 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: Custom
paths:
  /api/v2/cloud_security_management/custom_frameworks/{handle}/{version}:
    delete:
      description: Delete a custom framework.
      operationId: DeleteCustomFramework
      parameters:
      - $ref: '#/components/parameters/CustomFrameworkHandle'
      - $ref: '#/components/parameters/CustomFrameworkVersion'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCustomFrameworkResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        '500':
          $ref: '#/components/responses/BadRequestResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - security_monitoring_rules_read
        - security_monitoring_rules_write
      summary: Datadog Delete a Custom Framework
      tags:
      - Custom
      x-codegen-request-body-name: body
      x-menu-order: 4
      x-permission:
        operator: AND
        permissions:
        - security_monitoring_rules_read
        - security_monitoring_rules_write
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Get a custom framework.
      operationId: GetCustomFramework
      parameters:
      - $ref: '#/components/parameters/CustomFrameworkHandle'
      - $ref: '#/components/parameters/CustomFrameworkVersion'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomFrameworkResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        '500':
          $ref: '#/components/responses/BadRequestResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - security_monitoring_rules_read
      summary: Datadog Get a Custom Framework
      tags:
      - Custom
      x-codegen-request-body-name: body
      x-menu-order: 4
      x-permission:
        operator: OR
        permissions:
        - security_monitoring_rules_read
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      description: Update a custom framework.
      operationId: UpdateCustomFramework
      parameters:
      - $ref: '#/components/parameters/CustomFrameworkHandle'
      - $ref: '#/components/parameters/CustomFrameworkVersion'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomFrameworkRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCustomFrameworkResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
        '500':
          $ref: '#/components/responses/BadRequestResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - security_monitoring_rules_read
        - security_monitoring_rules_write
      summary: Datadog Update a Custom Framework
      tags:
      - Custom
      x-codegen-request-body-name: body
      x-menu-order: 4
      x-permission:
        operator: AND
        permissions:
        - security_monitoring_rules_read
        - security_monitoring_rules_write
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/cost/custom_costs:
    get:
      description: List the Custom Costs files.
      operationId: ListCustomCostsFiles
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomCostsFileListResponse'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - cloud_cost_management_read
      summary: Datadog List Custom Costs Files
      tags:
      - Custom
      x-menu-order: 10
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      description: Upload a Custom Costs file.
      operationId: UploadCustomCostsFile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomCostsFileUploadRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomCostsFileUploadResponse'
          description: Accepted
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - cloud_cost_management_write
      summary: Datadog Upload Custom Costs File
      tags:
      - Custom
      x-menu-order: 11
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/cost/custom_costs/{file_id}:
    delete:
      description: Delete the specified Custom Costs file.
      operationId: DeleteCustomCostsFile
      parameters:
      - $ref: '#/components/parameters/FileID'
      responses:
        '204':
          description: No Content
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - cloud_cost_management_write
      summary: Datadog Delete Custom Costs File
      tags:
      - Custom
      x-menu-order: 13
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Fetch the specified Custom Costs file.
      operationId: GetCustomCostsFile
      parameters:
      - $ref: '#/components/parameters/FileID'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomCostsFileGetResponse'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - cloud_cost_management_read
      summary: Datadog Get Custom Costs File
      tags:
      - Custom
      x-menu-order: 12
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/logs/config/custom-destinations/{custom_destination_id}:
    delete:
      description: Delete a specific custom destination in your organization.
      operationId: DeleteLogsCustomDestination
      parameters:
      - $ref: '#/components/parameters/CustomDestinationId'
      responses:
        '204':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Delete a Custom Destination
      tags:
      - Custom
      x-menu-order: 5
      x-permission:
        operator: OR
        permissions:
        - logs_write_forwarding_rules
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Get a specific custom destination in your organization.
      operationId: GetLogsCustomDestination
      parameters:
      - $ref: '#/components/parameters/CustomDestinationId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDestinationResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Get a Custom Destination
      tags:
      - Custom
      x-menu-order: 3
      x-permission:
        operator: OR
        permissions:
        - logs_read_data
        - logs_read_config
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      description: Update the given fields of a specific custom destination in your organization.
      operationId: UpdateLogsCustomDestination
      parameters:
      - $ref: '#/components/parameters/CustomDestinationId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomDestinationUpdateRequest'
        description: New definition of the custom destination's fields.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDestinationResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '409':
          $ref: '#/components/responses/ConflictResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Update a Custom Destination
      tags:
      - Custom
      x-codegen-request-body-name: body
      x-menu-order: 4
      x-permission:
        operator: OR
        permissions:
        - logs_write_forwarding_rules
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/remote_config/products/asm/waf/custom_rules/{custom_rule_id}:
    delete:
      description: Delete a specific WAF custom rule.
      operationId: DeleteApplicationSecurityWafCustomRule
      parameters:
      - $ref: '#/components/parameters/ApplicationSecurityWafCustomRuleIDParam'
      responses:
        '204':
          description: No Content
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '409':
          $ref: '#/components/responses/ConcurrentModificationResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Delete a Waf Custom Rule
      tags:
      - Custom
      x-menu-order: 16
      x-terraform-resource: appsec_waf_custom_rule
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Retrieve a WAF custom rule by ID.
      operationId: GetApplicationSecurityWafCustomRule
      parameters:
      - $ref: '#/components/parameters/ApplicationSecurityWafCustomRuleIDParam'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleResponse'
          description: OK
        '403':
          $ref: '#/components/responses/NotAuthorizedResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Get a Waf Custom Rule
      tags:
      - Custom
      x-menu-order: 10
      x-terraform-resource: appsec_waf_custom_rule
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      description: 'Update a specific WAF custom Rule.

        Returns the Custom Rule object when the request is successful.'
      operationId: UpdateApplicationSecurityWafCustomRule
      parameters:
      - $ref: '#/components/parameters/ApplicationSecurityWafCustomRuleIDParam'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleUpdateRequest'
        description: New definition of the WAF Custom Rule.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleResponse'
          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 Waf Custom Rule
      tags:
      - Custom
      x-codegen-request-body-name: body
      x-menu-order: 15
      x-terraform-resource: appsec_waf_custom_rule
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    ApplicationSecurityWafCustomRuleMetadata:
      description: Metadata associated with the WAF Custom Rule.
      properties:
        added_at:
          description: The date and time the WAF custom rule was created.
          example: '2021-01-01T00:00:00Z'
          format: date-time
          type: string
        added_by:
          description: The handle of the user who created the WAF custom rule.
          example: john.doe@datadoghq.com
          type: string
        added_by_name:
          description: The name of the user who created the WAF custom rule.
          example: John Doe
          type: string
        modified_at:
          description: The date and time the WAF custom rule was last updated.
          example: '2021-01-01T00:00:00Z'
          format: date-time
          type: string
        modified_by:
          description: The handle of the user who last updated the WAF custom rule.
          example: john.doe@datadoghq.com
          type: string
        modified_by_name:
          description: The name of the user who last updated the WAF custom rule.
          example: John Doe
          type: string
      readOnly: true
      type: object
    CustomDestinationResponseForwardDestinationHttp:
      description: The HTTP destination.
      properties:
        auth:
          $ref: '#/components/schemas/CustomDestinationResponseHttpDestinationAuth'
        endpoint:
          description: 'The destination for which logs will be forwarded to.

            Must have HTTPS scheme and forwarding back to Datadog is not allowed.'
          example: https://example.com
          type: string
        type:
          $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationHttpType'
      required:
      - type
      - endpoint
      - auth
      type: object
    CustomDestinationHttpDestinationAuthBasic:
      description: Basic access authentication.
      properties:
        password:
          description: The password of the authentication. This field is not returned by the API.
          example: datadog-custom-destination-password
          type: string
          writeOnly: true
        type:
          $ref: '#/components/schemas/CustomDestinationHttpDestinationAuthBasicType'
        username:
          description: The username of the authentication. This field is not returned by the API.
          example: datadog-custom-destination-username
          type: string
          writeOnly: true
      required:
      - type
      - username
      - password
      type: object
    ApplicationSecurityWafCustomRuleConditionInput:
      description: Input from the request on which the condition should apply.
      properties:
        address:
          $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleConditionInputAddress'
        key_path:
          description: Specific path for the input.
          items:
            type: string
          type: array
      required:
      - address
      type: object
    CustomDestinationHttpDestinationAuth:
      description: Authentication method of the HTTP requests.
      oneOf:
      - $ref: '#/components/schemas/CustomDestinationHttpDestinationAuthBasic'
      - $ref: '#/components/schemas/CustomDestinationHttpDestinationAuthCustomHeader'
    CustomDestinationResponseForwardDestinationHttpType:
      default: http
      description: Type of the HTTP destination.
      enum:
      - http
      example: http
      type: string
      x-enum-varnames:
      - HTTP
    CustomCostGetResponseMeta:
      description: Meta for the response from the Get Custom Costs endpoints.
      properties:
        version:
          description: Version of Custom Costs file
          type: string
          example: example_value
      type: object
    CustomDestinationUpdateRequestDefinition:
      description: The definition of a custom destination.
      properties:
        attributes:
          $ref: '#/components/schemas/CustomDestinationUpdateRequestAttributes'
        id:
          description: The custom destination ID.
          example: be5d7a69-d0c8-4d4d-8ee8-bba292d98139
          type: string
        type:
          $ref: '#/components/schemas/CustomDestinationType'
      required:
      - type
      - id
      type: object
    CustomCostsFileMetadataWithContent:
      description: Schema of a cost file's metadata.
      properties:
        billed_cost:
          description: Total cost in the cost file.
          example: 100.5
          format: double
          type: number
        billing_currency:
          description: Currency used in the Custom Costs file.
          example: USD
          type: string
        charge_period:
          $ref: '#/components/schemas/CustomCostsFileUsageChargePeriod'
        content:
          description: Detail of the line items from the Custom Costs file.
          items:
            $ref: '#/components/schemas/CustomCostsFileLineItem'
          type: array
        name:
          description: Name of the Custom Costs file.
          example: my_file.json
          type: string
        provider_names:
          description: Providers contained in the Custom Costs file.
          items:
            description: Name of a provider.
            example: my_provider
            type: string
          type: array
        status:
          description: Status of the Custom Costs file.
          example: active
          type: string
        uploaded_at:
          description: Timestamp in millisecond of the upload time of the Custom Costs file.
          example: 1704067200000
          format: double
          type: number
        uploaded_by:
          $ref: '#/components/schemas/CustomCostsUser'
      type: object
    ApplicationSecurityWafCustomRuleConditionInputAddress:
      description: Input from the request on which the condition should apply.
      enum:
      - server.db.statement
      - server.io.fs.file
      - server.io.net.url
      - server.sys.shell.cmd
      - server.request.method
      - server.request.uri.raw
      - server.request.path_params
      - server.request.query
      - server.request.headers.no_cookies
      - server.request.cookies
      - server.request.trailers
      - server.request.body
      - server.response.status
      - server.response.headers.no_cookies
      - server.response.trailers
      - grpc.server.request.metadata
      - grpc.server.request.message
      - grpc.server.method
      - graphql.server.all_resolvers
      - usr.id
      - http.client_ip
      example: server.db.statement
      type: string
      x-enum-varnames:
      - SERVER_DB_STATEMENT
      - SERVER_IO_FS_FILE
      - SERVER_IO_NET_URL
      - SERVER_SYS_SHELL_CMD
      - SERVER_REQUEST_METHOD
      - SERVER_REQUEST_URI_RAW
      - SERVER_REQUEST_PATH_PARAMS
      - SERVER_REQUEST_QUERY
      - SERVER_REQUEST_HEADERS_NO_COOKIES
      - SERVER_REQUEST_COOKIES
      - SERVER_REQUEST_TRAILERS
      - SERVER_REQUEST_BODY
      - SERVER_RESPONSE_STATUS
      - SERVER_RESPONSE_HEADERS_NO_COOKIES
      - SERVER_RESPONSE_TRAILERS
      - GRPC_SERVER_REQUEST_METADATA
      - GRPC_SERVER_REQUEST_MESSAGE
      - GRPC_SERVER_METHOD
      - GRAPHQL_SERVER_ALL_RESOLVERS
      - USR_ID
      - HTTP_CLIENT_IP
    GetCustomFrameworkResponse:
      description: Response object to get a custom framework.
      properties:
        data:
          $ref: '#/components/schemas/FullCustomFrameworkData'
      required:
      - data
      type: object
    ApplicationSecurityWafCustomRuleAction:
      description: The definition of `ApplicationSecurityWafCustomRuleAction` object.
      properties:
        action:
          $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleActionAction'
        parameters:
          $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleActionParameters'
      type: object
    CustomDestinationResponseForwardDestinationElasticsearch:
      description: The Elasticsearch destination.
      properties:
        auth:
          $ref: '#/components/schemas/CustomDestinationResponseElasticsearchDestinationAuth'
        endpoint:
          description: 'The destination for which logs will be forwarded to.

            Must have HTTPS scheme and forwarding back to Datadog is not allowed.'
          example: https://example.com
          type: string
        index_name:
          description: Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).
          example: nginx-logs
          type: string
        index_rotation:
          description: 'Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`

            (that is, `${index_name}-${indexPattern}`).

            You can customize the index rotation naming pattern by choosing one of these options:

            - Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)

            - Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)

            - Weekly: `yyyy-''W''ww` (as an example, it would render: `2022-W42`)

            - Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)


            If this field is missing or is blank, it means that the index name will always be the same

            (that is, no rotation).'
          example: yyyy-MM-dd
          type: string
        type:
          $ref: '#/components/schemas/CustomDestinationResponseForwardDestinationElasticsearchType'
      required:
      - type
      - endpoint
      - auth
      - index_name
      type: object
    ApplicationSecurityWafCustomRuleUpdateData:
      description: Object for a single WAF Custom Rule.
      properties:
        attributes:
          $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleUpdateAttributes'
        type:
          $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleType'
      required:
      - attributes
      - type
      type: object
    CustomCostsUser:
      description: Metadata of the user that has uploaded the Custom Costs file.
      properties:
        email:
          description: The name of the Custom Costs file.
          example: email.test@datadohq.com
          type: string
        icon:
          description: The name of the Custom Costs file.
          example: icon.png
          type: string
        name:
          description: Name of the user.
          example: Test User
          type: string
      type: object
    CustomCostsFileMetadataWithContentHighLevel:
      description: JSON API format of for a Custom Costs file with content.
      properties:
        attributes:
          $ref: '#/components/schemas/CustomCostsFileMetadataWithContent'
        id:
          description: ID of the Custom Costs metadata.
          type: string
          example: abc-123-def
        type:
          description: Type of the Custom Costs file metadata.
          type: string
          example: metric alert
      type: object
    CustomFrameworkControl:
      description: Framework Control.
      properties:
        name:
          description: Control Name.
          example: A1.2
          type: string
        rules_id:
          description: Rule IDs.
          example:
          - '["def-000-abc"]'
          items:
            type: string
          type: array
      required:
      - name
      - rules_id
      type: object
    CustomDestinationElasticsearchDestinationAuth:
      description: Basic access authentication.
      properties:
        password:
          description: The password of the authentication. This field is not returned by the API.
          example: datadog-custom-destination-password
          type: string
          writeOnly: true
        username:
          description: The username of the authentication. This field is not returned by the API.
          example: datadog-custom-destination-username
          type: string
          writeOnly: true
      required:
      - username
      - password
      type: object
    FullCustomFrameworkData:
      description: Contains type and attributes for custom frameworks.
      properties:
        attributes:
          $ref: '#/components/schemas/FullCustomFrameworkDataAttributes'
        id:
          description: The ID of the custom framework.
          example: handle-version
          type: string
        type:
          $ref: '#/components/schemas/CustomFrameworkType'
      required:
      - id
      - type
      - attributes
      type: object
    ApplicationSecurityWafCustomRuleTags:
      additionalProperties:
        type: string
      description: 'Tags associated with the WAF Custom Rule. The concatenation of category and type will form the security

        activity field associated with the traces.'
      maxProperties: 32
      properties:
        category:
          $ref: '#/components/schemas/ApplicationSecurityWafCustomRuleTagsCategory'
        type:
          description: The type of the WAF rule, associated with the category will form the security activity.
          example: users.login.success
          type: string
      required:
      - category
      - type
      type: object
    CustomDestinationResponseAttributes:
      description: The attributes associated with the custom destination.
      properties:
        enabled:
          default: true
          description: Whether logs matching this custom destination should be forwarded or not.
          example: true
          type: boolean
        forward_tags:
          default: true
          description: Whether tags from the forwarded logs should be forwarded or not.
          example: true
          type: boolean
        forward_tags_restriction_list:
          default: []
          description: 'List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.


            An empty list represents no restriction is in place and either all or no tags will be

            forwarded depending on `forward_tags_restriction_list_type` parameter.'
          example:
          - datacenter
          - host
          items:
            description: The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).
            type: string
          maxItems: 10
          minItems: 0
          type: array
        forward_tags_restriction_list_type:
          $ref: '#/components/schemas/CustomDestinationAttributeTagsRestrictionListType'
        forwarder_destination:
          $ref: '#/components/schemas/CustomDestinationResponseForwardDestination'
        name:
          description: The custom destination name.
          example: Nginx logs
          type: string
        query:
          default: ''
          description: The custom destination query filter. Logs matching this query are forwarded to the destination.
          example: source:nginx
          type: string
      type: object
    CustomDestinationForwardDestination:
      description: A custom destination's location to forward logs.
      oneOf:
      - $ref: '#/components/schemas/CustomDestinationForwardDestinationHttp'
      - $ref: '#/components/schemas/CustomDestinationForwardDestinationSplunk'
      - $ref: '#/components/schemas/CustomDestinationForwardDestinationElasticsearch'
    CustomDestinationType:
      default: custom_destination
      description: The type of the resource. The value should always be `custom_destination`.
      enum:
      - custom_destination
      example: custom_destination
      type: string
      x-enum-varnames:
      - CUSTOM_DESTINATION
    CustomFrameworkData:
      description: Co

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