From 94b6ce52d9a04d418f92006ea6bd44585adfb77b Mon Sep 17 00:00:00 2001 From: "api-clients-generation-pipeline[bot]" <54105614+api-clients-generation-pipeline[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 08:57:13 +0000 Subject: [PATCH 1/3] Remove any references to synthetics test suites (#2681) Co-authored-by: ci.datadog-api-spec --- .generator/schemas/v1/openapi.yaml | 8 +------- examples/v1/synthetics/SearchTests_195957771.rb | 14 -------------- features/scenarios_model_mapping.rb | 1 - features/v1/synthetics.feature | 13 ------------- lib/datadog_api_client/v1/api/synthetics_api.rb | 4 +--- 5 files changed, 2 insertions(+), 38 deletions(-) delete mode 100644 examples/v1/synthetics/SearchTests_195957771.rb diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index dc6c8110eef5..6c5f428b9c37 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -34053,7 +34053,7 @@ paths: - synthetics_write /api/v1/synthetics/tests/search: get: - description: Search for Synthetic tests and Test Suites. + description: Search for Synthetic tests. operationId: SearchTests parameters: - description: The search query. @@ -34069,12 +34069,6 @@ paths: required: false schema: type: boolean - - description: If true, returns suites instead of tests. - in: query - name: search_suites - required: false - schema: - type: boolean - description: If true, return only facets instead of full test details. in: query name: facets_only diff --git a/examples/v1/synthetics/SearchTests_195957771.rb b/examples/v1/synthetics/SearchTests_195957771.rb deleted file mode 100644 index 921a196bbf0c..000000000000 --- a/examples/v1/synthetics/SearchTests_195957771.rb +++ /dev/null @@ -1,14 +0,0 @@ -# Search Synthetic tests with boolean query parameters - -require "datadog_api_client" -api_instance = DatadogAPIClient::V1::SyntheticsAPI.new -opts = { - text: "tag:value", - include_full_config: true, - search_suites: true, - facets_only: true, - start: 10, - count: 5, - sort: "name,desc", -} -p api_instance.search_tests(opts) diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index 8dfadba604a9..4e2d08a17003 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -756,7 +756,6 @@ "v1.SearchTests" => { "text" => "String", "include_full_config" => "Boolean", - "search_suites" => "Boolean", "facets_only" => "Boolean", "start" => "Integer", "count" => "Integer", diff --git a/features/v1/synthetics.feature b/features/v1/synthetics.feature index bee6e5de8ca6..401514da28d4 100644 --- a/features/v1/synthetics.feature +++ b/features/v1/synthetics.feature @@ -803,19 +803,6 @@ Feature: Synthetics When the request is sent Then the response status is 200 OK - Returns the list of Synthetic tests matching the search. - @team:DataDog/synthetics-managing - Scenario: Search Synthetic tests with boolean query parameters - Given new "SearchTests" request - And request contains "text" parameter with value "tag:value" - And request contains "include_full_config" parameter with value true - And request contains "search_suites" parameter with value true - And request contains "facets_only" parameter with value true - And request contains "start" parameter with value 10 - And request contains "count" parameter with value 5 - And request contains "sort" parameter with value "name,desc" - When the request is sent - Then the response status is 200 OK - Returns the list of Synthetic tests matching the search. - @generated @skip @team:DataDog/synthetics-managing Scenario: Trigger Synthetic tests returns "Bad Request" response Given new "TriggerTests" request diff --git a/lib/datadog_api_client/v1/api/synthetics_api.rb b/lib/datadog_api_client/v1/api/synthetics_api.rb index a6df453f7036..fcd6f7b98c51 100644 --- a/lib/datadog_api_client/v1/api/synthetics_api.rb +++ b/lib/datadog_api_client/v1/api/synthetics_api.rb @@ -1785,12 +1785,11 @@ def search_tests(opts = {}) # Search Synthetic tests. # - # Search for Synthetic tests and Test Suites. + # Search for Synthetic tests. # # @param opts [Hash] the optional parameters # @option opts [String] :text The search query. # @option opts [Boolean] :include_full_config If true, include the full configuration for each test in the response. - # @option opts [Boolean] :search_suites If true, returns suites instead of tests. # @option opts [Boolean] :facets_only If true, return only facets instead of full test details. # @option opts [Integer] :start The offset from which to start returning results. # @option opts [Integer] :count The maximum number of results to return. @@ -1808,7 +1807,6 @@ def search_tests_with_http_info(opts = {}) query_params = opts[:query_params] || {} query_params[:'text'] = opts[:'text'] if !opts[:'text'].nil? query_params[:'include_full_config'] = opts[:'include_full_config'] if !opts[:'include_full_config'].nil? - query_params[:'search_suites'] = opts[:'search_suites'] if !opts[:'search_suites'].nil? query_params[:'facets_only'] = opts[:'facets_only'] if !opts[:'facets_only'].nil? query_params[:'start'] = opts[:'start'] if !opts[:'start'].nil? query_params[:'count'] = opts[:'count'] if !opts[:'count'].nil? From a361f4729d93609cbe7b87f8f8e71d36799f007c Mon Sep 17 00:00:00 2001 From: Ulysse Mavrocordatos <57703535+MintsInc@users.noreply.github.com> Date: Thu, 25 Sep 2025 11:23:33 +0200 Subject: [PATCH 2/3] fix the concurrency group of the integration workflow (#2691) * fix the concurrency group of the integration workflow * fix: remove duplicate conditional logic from reusable workflows The reusable workflows had duplicate conditions that don't work properly in workflow_call context since github.event.pull_request is not available. The main test.yml workflow already handles these conditions correctly. --- .github/workflows/reusable-examples.yml | 5 ----- .github/workflows/reusable-integration-test.yml | 2 +- .github/workflows/reusable-pre-commit.yml | 5 ----- .github/workflows/reusable-ruby-test.yml | 1 - 4 files changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/reusable-examples.yml b/.github/workflows/reusable-examples.yml index 90a2ea764cbd..06583ec96f16 100644 --- a/.github/workflows/reusable-examples.yml +++ b/.github/workflows/reusable-examples.yml @@ -22,11 +22,6 @@ on: jobs: examples: runs-on: ubuntu-latest - if: > - (github.event.pull_request.draft == false && - !contains(github.event.pull_request.labels.*.name, 'ci/skip') && - !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/')) || - github.event_name == 'schedule' env: DD_PROFILING_NO_EXTENSION: true steps: diff --git a/.github/workflows/reusable-integration-test.yml b/.github/workflows/reusable-integration-test.yml index 4798a72bdaed..a083199be7b5 100644 --- a/.github/workflows/reusable-integration-test.yml +++ b/.github/workflows/reusable-integration-test.yml @@ -63,7 +63,7 @@ on: required: false concurrency: - group: integration-${{ github.head_ref }} + group: integration-ruby-${{ inputs.target-branch || github.head_ref }} cancel-in-progress: true jobs: diff --git a/.github/workflows/reusable-pre-commit.yml b/.github/workflows/reusable-pre-commit.yml index 27bf9957a4f6..a8b1c7bb58db 100644 --- a/.github/workflows/reusable-pre-commit.yml +++ b/.github/workflows/reusable-pre-commit.yml @@ -26,11 +26,6 @@ env: jobs: pre-commit: runs-on: ubuntu-latest - if: > - (github.event.pull_request.draft == false && - !contains(github.event.pull_request.labels.*.name, 'ci/skip') && - !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/')) || - github.event_name == 'schedule' steps: - name: Get GitHub App token id: get_token diff --git a/.github/workflows/reusable-ruby-test.yml b/.github/workflows/reusable-ruby-test.yml index 77c270464268..176a72420b7a 100644 --- a/.github/workflows/reusable-ruby-test.yml +++ b/.github/workflows/reusable-ruby-test.yml @@ -43,7 +43,6 @@ jobs: ruby-version: ${{ fromJSON(inputs.ruby-versions) }} platform: ${{ fromJSON(inputs.platforms) }} runs-on: ${{ matrix.platform }} - if: (github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'ci/skip') && !contains(github.event.pull_request.head.ref, 'datadog-api-spec/test/')) || github.event_name == 'schedule' env: BUNDLE_WITHOUT: docs DD_PROFILING_NO_EXTENSION: true From 9db491e674e2ab12fb1f666e6025357550f7779a Mon Sep 17 00:00:00 2001 From: "api-clients-generation-pipeline[bot]" <54105614+api-clients-generation-pipeline[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:26:30 +0000 Subject: [PATCH 3/3] Add API Key ID to rum application response (#2690) Co-authored-by: ci.datadog-api-spec --- .generator/schemas/v2/openapi.yaml | 6 +++++ .../v2/models/rum_application_attributes.rb | 23 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index f3d3ffaa56b6..5051b689027c 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -35837,6 +35837,12 @@ components: RUMApplicationAttributes: description: RUM application attributes. properties: + api_key_id: + description: ID of the API key associated with the application. + example: 123456789 + format: int32 + maximum: 2147483647 + type: integer application_id: description: ID of the RUM application. example: abcd1234-0000-0000-abcd-1234abcd5678 diff --git a/lib/datadog_api_client/v2/models/rum_application_attributes.rb b/lib/datadog_api_client/v2/models/rum_application_attributes.rb index de3aba8ee6b1..b5084282caea 100644 --- a/lib/datadog_api_client/v2/models/rum_application_attributes.rb +++ b/lib/datadog_api_client/v2/models/rum_application_attributes.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class RUMApplicationAttributes include BaseGenericModel + # ID of the API key associated with the application. + attr_reader :api_key_id + # ID of the RUM application. attr_reader :application_id @@ -63,6 +66,7 @@ class RUMApplicationAttributes # @!visibility private def self.attribute_map { + :'api_key_id' => :'api_key_id', :'application_id' => :'application_id', :'client_token' => :'client_token', :'created_at' => :'created_at', @@ -82,6 +86,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'api_key_id' => :'Integer', :'application_id' => :'String', :'client_token' => :'String', :'created_at' => :'Integer', @@ -115,6 +120,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'api_key_id') + self.api_key_id = attributes[:'api_key_id'] + end + if attributes.key?(:'application_id') self.application_id = attributes[:'application_id'] end @@ -168,6 +177,7 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if !@api_key_id.nil? && @api_key_id > 2147483647 return false if @application_id.nil? return false if @client_token.nil? return false if @created_at.nil? @@ -181,6 +191,16 @@ def valid? true end + # Custom attribute writer method with validation + # @param api_key_id [Object] Object to be assigned + # @!visibility private + def api_key_id=(api_key_id) + if !api_key_id.nil? && api_key_id > 2147483647 + fail ArgumentError, 'invalid value for "api_key_id", must be smaller than or equal to 2147483647.' + end + @api_key_id = api_key_id + end + # Custom attribute writer method with validation # @param application_id [Object] Object to be assigned # @!visibility private @@ -300,6 +320,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + api_key_id == o.api_key_id && application_id == o.application_id && client_token == o.client_token && created_at == o.created_at && @@ -319,7 +340,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [application_id, client_token, created_at, created_by_handle, _hash, is_active, name, org_id, product_scales, type, updated_at, updated_by_handle, additional_properties].hash + [api_key_id, application_id, client_token, created_at, created_by_handle, _hash, is_active, name, org_id, product_scales, type, updated_at, updated_by_handle, additional_properties].hash end end end