datadog_api_client 2.42.0 → 2.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/.generator/schemas/v1/openapi.yaml +3 -7
  3. data/.generator/schemas/v2/openapi.yaml +2981 -63
  4. data/.github/CODEOWNERS +4 -4
  5. data/.github/workflows/reusable-ci.yml +71 -0
  6. data/.github/workflows/reusable-examples.yml +40 -0
  7. data/.github/workflows/{test_integration.yml → reusable-integration-test.yml} +66 -17
  8. data/.github/workflows/reusable-pre-commit.yml +84 -0
  9. data/.github/workflows/reusable-ruby-test.yml +65 -0
  10. data/.github/workflows/test.yml +31 -89
  11. data/CHANGELOG.md +19 -0
  12. data/examples/v1/dashboards/CreateDashboard_607525069.rb +61 -0
  13. data/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection.rb +5 -0
  14. data/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection_1008672547.rb +5 -0
  15. data/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard.rb +5 -0
  16. data/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard_3136299151.rb +5 -0
  17. data/examples/v2/cloud-cost-management/CreateArbitraryCostRule.rb +63 -0
  18. data/examples/v2/cloud-cost-management/CreateCostAzureUCConfigs.rb +0 -1
  19. data/examples/v2/cloud-cost-management/CreateCostGCPUsageCostConfig.rb +1 -1
  20. data/examples/v2/cloud-cost-management/CreateRuleset.rb +32 -0
  21. data/examples/v2/cloud-cost-management/DeleteArbitraryCostRule.rb +5 -0
  22. data/examples/v2/cloud-cost-management/DeleteCostGCPUsageCostConfig.rb +1 -1
  23. data/examples/v2/cloud-cost-management/DeleteRuleset.rb +5 -0
  24. data/examples/v2/cloud-cost-management/GetArbitraryCostRule.rb +5 -0
  25. data/examples/v2/cloud-cost-management/GetCostAWSCURConfig.rb +5 -0
  26. data/examples/v2/cloud-cost-management/GetCostAzureUCConfig.rb +5 -0
  27. data/examples/v2/cloud-cost-management/GetCostGCPUsageCostConfig.rb +5 -0
  28. data/examples/v2/cloud-cost-management/GetRuleset.rb +5 -0
  29. data/examples/v2/cloud-cost-management/ListArbitraryCostRules.rb +5 -0
  30. data/examples/v2/cloud-cost-management/ListCostGCPUsageCostConfigs.rb +1 -1
  31. data/examples/v2/cloud-cost-management/ListRulesets.rb +5 -0
  32. data/examples/v2/cloud-cost-management/ReorderArbitraryCostRules.rb +22 -0
  33. data/examples/v2/cloud-cost-management/ReorderRulesets.rb +13 -0
  34. data/examples/v2/cloud-cost-management/UpdateArbitraryCostRule.rb +63 -0
  35. data/examples/v2/cloud-cost-management/UpdateCostGCPUsageCostConfig.rb +1 -1
  36. data/examples/v2/cloud-cost-management/UpdateRuleset.rb +31 -0
  37. data/examples/v2/cloud-cost-management/ValidateQuery.rb +14 -0
  38. data/examples/v2/dora-metrics/DeleteDORADeployment.rb +5 -0
  39. data/examples/v2/dora-metrics/DeleteDORAFailure.rb +5 -0
  40. data/examples/v2/incidents/CreateIncidentImpact.rb +22 -0
  41. data/examples/v2/incidents/DeleteIncidentImpact.rb +12 -0
  42. data/examples/v2/incidents/ListIncidentImpacts.rb +11 -0
  43. data/examples/v2/key-management/GetCurrentUserApplicationKey.rb +4 -1
  44. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_2899714190.rb +68 -0
  45. data/examples/v2/security-monitoring/ValidateSecurityMonitoringRule_4152369508.rb +70 -0
  46. data/lib/datadog_api_client/configuration.rb +3 -0
  47. data/lib/datadog_api_client/inflector.rb +104 -1
  48. data/lib/datadog_api_client/v1/api/synthetics_api.rb +1 -3
  49. data/lib/datadog_api_client/v1/models/formula_and_function_events_data_source.rb +1 -0
  50. data/lib/datadog_api_client/v2/api/aws_integration_api.rb +120 -0
  51. data/lib/datadog_api_client/v2/api/cloud_cost_management_api.rb +1211 -126
  52. data/lib/datadog_api_client/v2/api/dora_metrics_api.rb +130 -0
  53. data/lib/datadog_api_client/v2/api/incidents_api.rb +229 -0
  54. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +2 -0
  55. data/lib/datadog_api_client/v2/models/account_filtering_config.rb +8 -0
  56. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request.rb +105 -0
  57. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data.rb +143 -0
  58. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes.rb +241 -0
  59. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes_costs_to_allocate_items.rb +174 -0
  60. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes_strategy.rb +215 -0
  61. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes_strategy_allocated_by_filters_items.rb +174 -0
  62. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes_strategy_allocated_by_items.rb +146 -0
  63. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes_strategy_allocated_by_items_allocated_tags_items.rb +144 -0
  64. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes_strategy_based_on_costs_items.rb +174 -0
  65. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_attributes_strategy_evaluate_grouped_by_filters_items.rb +174 -0
  66. data/lib/datadog_api_client/v2/models/arbitrary_cost_upsert_request_data_type.rb +26 -0
  67. data/lib/datadog_api_client/v2/models/arbitrary_rule_response.rb +105 -0
  68. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_array.rb +125 -0
  69. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data.rb +143 -0
  70. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes.rb +351 -0
  71. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes_costs_to_allocate_items.rb +174 -0
  72. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes_strategy.rb +215 -0
  73. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes_strategy_allocated_by_filters_items.rb +174 -0
  74. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes_strategy_allocated_by_items.rb +146 -0
  75. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes_strategy_allocated_by_items_allocated_tags_items.rb +144 -0
  76. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes_strategy_based_on_costs_items.rb +174 -0
  77. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes_strategy_evaluate_grouped_by_filters_items.rb +174 -0
  78. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_type.rb +26 -0
  79. data/lib/datadog_api_client/v2/models/aws_cur_config_attributes.rb +8 -0
  80. data/lib/datadog_api_client/v2/models/aws_cur_config_post_data.rb +1 -12
  81. data/lib/datadog_api_client/v2/models/aws_cur_config_response.rb +5 -5
  82. data/lib/datadog_api_client/v2/models/aws_cur_config_response_data.rb +143 -0
  83. data/lib/datadog_api_client/v2/models/aws_cur_config_response_data_attributes.rb +225 -0
  84. data/lib/datadog_api_client/v2/models/aws_cur_config_response_data_attributes_account_filters.rb +137 -0
  85. data/lib/datadog_api_client/v2/models/aws_cur_config_response_data_type.rb +26 -0
  86. data/lib/datadog_api_client/v2/models/aws_cur_configs_response.rb +19 -1
  87. data/lib/datadog_api_client/v2/models/azure_uc_config.rb +9 -1
  88. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_data.rb +1 -12
  89. data/lib/datadog_api_client/v2/models/azure_uc_config_post_data.rb +1 -12
  90. data/lib/datadog_api_client/v2/models/azure_uc_config_post_request_attributes.rb +3 -13
  91. data/lib/datadog_api_client/v2/models/azure_uc_configs_response.rb +19 -1
  92. data/lib/datadog_api_client/v2/models/create_ruleset_request.rb +105 -0
  93. data/lib/datadog_api_client/v2/models/create_ruleset_request_data.rb +143 -0
  94. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_attributes.rb +135 -0
  95. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_attributes_rules_items.rb +195 -0
  96. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_attributes_rules_items_mapping.rb +167 -0
  97. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_attributes_rules_items_query.rb +172 -0
  98. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_attributes_rules_items_query_addition.rb +144 -0
  99. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_attributes_rules_items_reference_table.rb +189 -0
  100. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_attributes_rules_items_reference_table_field_pairs_items.rb +144 -0
  101. data/lib/datadog_api_client/v2/models/create_ruleset_request_data_type.rb +26 -0
  102. data/lib/datadog_api_client/v2/models/datastore_trigger.rb +105 -0
  103. data/lib/datadog_api_client/v2/models/datastore_trigger_wrapper.rb +135 -0
  104. data/lib/datadog_api_client/v2/models/full_api_key_attributes.rb +19 -1
  105. data/lib/datadog_api_client/v2/models/full_application_key_attributes.rb +12 -1
  106. data/lib/datadog_api_client/v2/models/gcp_uc_config_response.rb +105 -0
  107. data/lib/datadog_api_client/v2/models/gcp_uc_config_response_data.rb +143 -0
  108. data/lib/datadog_api_client/v2/models/gcp_uc_config_response_data_attributes.rb +235 -0
  109. data/lib/datadog_api_client/v2/models/gcp_uc_config_response_data_type.rb +26 -0
  110. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config.rb +4 -4
  111. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_attributes.rb +13 -13
  112. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_patch_data.rb +3 -3
  113. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_patch_request.rb +2 -2
  114. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_patch_request_attributes.rb +1 -1
  115. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_patch_request_type.rb +1 -1
  116. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_post_data.rb +4 -15
  117. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_post_request.rb +2 -2
  118. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_post_request_attributes.rb +7 -7
  119. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_post_request_type.rb +1 -1
  120. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_response.rb +2 -2
  121. data/lib/datadog_api_client/v2/models/gcp_usage_cost_config_type.rb +1 -1
  122. data/lib/datadog_api_client/v2/models/gcp_usage_cost_configs_response.rb +21 -3
  123. data/lib/datadog_api_client/v2/models/historical_job_options.rb +11 -1
  124. data/lib/datadog_api_client/v2/models/incident_impact_attributes.rb +203 -0
  125. data/lib/datadog_api_client/v2/models/incident_impact_create_attributes.rb +173 -0
  126. data/lib/datadog_api_client/v2/models/incident_impact_create_data.rb +144 -0
  127. data/lib/datadog_api_client/v2/models/incident_impact_create_request.rb +123 -0
  128. data/lib/datadog_api_client/v2/models/incident_impact_related_object.rb +28 -0
  129. data/lib/datadog_api_client/v2/models/incident_impact_relationships.rb +125 -0
  130. data/lib/datadog_api_client/v2/models/incident_impact_response.rb +135 -0
  131. data/lib/datadog_api_client/v2/models/incident_impact_response_data.rb +164 -0
  132. data/lib/datadog_api_client/v2/models/incident_impact_type.rb +26 -0
  133. data/lib/datadog_api_client/v2/models/incident_impacts_response.rb +137 -0
  134. data/lib/datadog_api_client/v2/models/incident_response_attributes.rb +33 -1
  135. data/lib/datadog_api_client/v2/models/incident_response_relationships.rb +11 -1
  136. data/lib/datadog_api_client/v2/models/observability_pipeline_config_destination_item.rb +2 -1
  137. data/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination.rb +251 -0
  138. data/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination_encoding.rb +27 -0
  139. data/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination_type.rb +26 -0
  140. data/lib/datadog_api_client/v2/models/partial_api_key_attributes.rb +19 -1
  141. data/lib/datadog_api_client/v2/models/partial_application_key_attributes.rb +12 -1
  142. data/lib/datadog_api_client/v2/models/relationship_to_incident.rb +123 -0
  143. data/lib/datadog_api_client/v2/models/relationship_to_incident_data.rb +144 -0
  144. data/lib/datadog_api_client/v2/models/reorder_rule_resource_array.rb +125 -0
  145. data/lib/datadog_api_client/v2/models/reorder_rule_resource_data.rb +133 -0
  146. data/lib/datadog_api_client/v2/models/reorder_rule_resource_data_type.rb +26 -0
  147. data/lib/datadog_api_client/v2/models/reorder_ruleset_resource_array.rb +125 -0
  148. data/lib/datadog_api_client/v2/models/reorder_ruleset_resource_data.rb +133 -0
  149. data/lib/datadog_api_client/v2/models/reorder_ruleset_resource_data_type.rb +26 -0
  150. data/lib/datadog_api_client/v2/models/rules_validate_query_request.rb +105 -0
  151. data/lib/datadog_api_client/v2/models/rules_validate_query_request_data.rb +143 -0
  152. data/lib/datadog_api_client/v2/models/rules_validate_query_request_data_attributes.rb +123 -0
  153. data/lib/datadog_api_client/v2/models/rules_validate_query_request_data_type.rb +26 -0
  154. data/lib/datadog_api_client/v2/models/rules_validate_query_response.rb +105 -0
  155. data/lib/datadog_api_client/v2/models/rules_validate_query_response_data.rb +143 -0
  156. data/lib/datadog_api_client/v2/models/rules_validate_query_response_data_attributes.rb +123 -0
  157. data/lib/datadog_api_client/v2/models/rules_validate_query_response_data_type.rb +26 -0
  158. data/lib/datadog_api_client/v2/models/ruleset_resp.rb +105 -0
  159. data/lib/datadog_api_client/v2/models/ruleset_resp_array.rb +125 -0
  160. data/lib/datadog_api_client/v2/models/ruleset_resp_data.rb +143 -0
  161. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes.rb +276 -0
  162. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_created.rb +133 -0
  163. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_modified.rb +133 -0
  164. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_rules_items.rb +195 -0
  165. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_rules_items_mapping.rb +167 -0
  166. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_rules_items_query.rb +172 -0
  167. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_rules_items_query_addition.rb +144 -0
  168. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_rules_items_reference_table.rb +189 -0
  169. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes_rules_items_reference_table_field_pairs_items.rb +144 -0
  170. data/lib/datadog_api_client/v2/models/ruleset_resp_data_type.rb +26 -0
  171. data/lib/datadog_api_client/v2/models/rum_application_attributes.rb +22 -1
  172. data/lib/datadog_api_client/v2/models/security_monitoring_rule_detection_method.rb +1 -0
  173. data/lib/datadog_api_client/v2/models/security_monitoring_rule_options.rb +11 -1
  174. data/lib/datadog_api_client/v2/models/security_monitoring_rule_sequence_detection_options.rb +119 -0
  175. data/lib/datadog_api_client/v2/models/security_monitoring_rule_sequence_detection_step.rb +126 -0
  176. data/lib/datadog_api_client/v2/models/security_monitoring_rule_sequence_detection_step_transition.rb +126 -0
  177. data/lib/datadog_api_client/v2/models/trigger.rb +1 -0
  178. data/lib/datadog_api_client/v2/models/uc_config_pair.rb +105 -0
  179. data/lib/datadog_api_client/v2/models/uc_config_pair_data.rb +143 -0
  180. data/lib/datadog_api_client/v2/models/uc_config_pair_data_attributes.rb +107 -0
  181. data/lib/datadog_api_client/v2/models/uc_config_pair_data_attributes_configs_items.rb +255 -0
  182. data/lib/datadog_api_client/v2/models/uc_config_pair_data_type.rb +26 -0
  183. data/lib/datadog_api_client/v2/models/update_ruleset_request.rb +105 -0
  184. data/lib/datadog_api_client/v2/models/update_ruleset_request_data.rb +143 -0
  185. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_attributes.rb +156 -0
  186. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_attributes_rules_items.rb +195 -0
  187. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_attributes_rules_items_mapping.rb +167 -0
  188. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_attributes_rules_items_query.rb +172 -0
  189. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_attributes_rules_items_query_addition.rb +144 -0
  190. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_attributes_rules_items_reference_table.rb +189 -0
  191. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_attributes_rules_items_reference_table_field_pairs_items.rb +144 -0
  192. data/lib/datadog_api_client/v2/models/update_ruleset_request_data_type.rb +26 -0
  193. data/lib/datadog_api_client/version.rb +1 -1
  194. metadata +137 -3
  195. data/examples/v1/synthetics/SearchTests_195957771.rb +0 -14
@@ -0,0 +1,5 @@
1
+ # Get AWS integration standard IAM permissions returns "AWS IAM Permissions object" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::AWSIntegrationAPI.new
5
+ p api_instance.get_aws_integration_iam_permissions_standard()
@@ -0,0 +1,63 @@
1
+ # Create arbitrary cost rule returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+
6
+ body = DatadogAPIClient::V2::ArbitraryCostUpsertRequest.new({
7
+ data: DatadogAPIClient::V2::ArbitraryCostUpsertRequestData.new({
8
+ attributes: DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributes.new({
9
+ costs_to_allocate: [
10
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems.new({
11
+ condition: "is",
12
+ tag: "account_id",
13
+ value: "123456789",
14
+ values: [],
15
+ }),
16
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems.new({
17
+ condition: "in",
18
+ tag: "environment",
19
+ value: "",
20
+ values: [
21
+ "production",
22
+ "staging",
23
+ ],
24
+ }),
25
+ ],
26
+ enabled: true,
27
+ order_id: 1,
28
+ provider: [
29
+ "aws",
30
+ "gcp",
31
+ ],
32
+ rule_name: "example-arbitrary-cost-rule",
33
+ strategy: DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesStrategy.new({
34
+ allocated_by_tag_keys: [
35
+ "team",
36
+ "environment",
37
+ ],
38
+ based_on_costs: [
39
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems.new({
40
+ condition: "is",
41
+ tag: "service",
42
+ value: "web-api",
43
+ values: [],
44
+ }),
45
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems.new({
46
+ condition: "not in",
47
+ tag: "team",
48
+ value: "",
49
+ values: [
50
+ "legacy",
51
+ "deprecated",
52
+ ],
53
+ }),
54
+ ],
55
+ granularity: "daily",
56
+ method: "proportional",
57
+ }),
58
+ type: "shared",
59
+ }),
60
+ type: DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataType::UPSERT_ARBITRARY_RULE,
61
+ }),
62
+ })
63
+ p api_instance.create_arbitrary_cost_rule(body)
@@ -20,7 +20,6 @@ body = DatadogAPIClient::V2::AzureUCConfigPostRequest.new({
20
20
  storage_container: "dd-storage-container",
21
21
  }),
22
22
  client_id: "1234abcd-1234-abcd-1234-1234abcd1234",
23
- is_enabled: true,
24
23
  scope: "subscriptions/1234abcd-1234-abcd-1234-1234abcd1234",
25
24
  }),
26
25
  type: DatadogAPIClient::V2::AzureUCConfigPostRequestType::AZURE_UC_CONFIG_POST_REQUEST,
@@ -1,4 +1,4 @@
1
- # Create Cloud Cost Management GCP Usage Cost config returns "OK" response
1
+ # Create Google Cloud Usage Cost config returns "OK" response
2
2
 
3
3
  require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
@@ -0,0 +1,32 @@
1
+ # Create ruleset returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+
6
+ body = DatadogAPIClient::V2::CreateRulesetRequest.new({
7
+ data: DatadogAPIClient::V2::CreateRulesetRequestData.new({
8
+ attributes: DatadogAPIClient::V2::CreateRulesetRequestDataAttributes.new({
9
+ enabled: true,
10
+ rules: [
11
+ DatadogAPIClient::V2::CreateRulesetRequestDataAttributesRulesItems.new({
12
+ enabled: true,
13
+ mapping: nil,
14
+ name: "Add Cost Center Tag",
15
+ query: DatadogAPIClient::V2::CreateRulesetRequestDataAttributesRulesItemsQuery.new({
16
+ addition: DatadogAPIClient::V2::CreateRulesetRequestDataAttributesRulesItemsQueryAddition.new({
17
+ key: "cost_center",
18
+ value: "engineering",
19
+ }),
20
+ case_insensitivity: false,
21
+ if_not_exists: true,
22
+ query: 'account_id:"123456789" AND service:"web-api"',
23
+ }),
24
+ reference_table: nil,
25
+ }),
26
+ ],
27
+ }),
28
+ id: "New Ruleset",
29
+ type: DatadogAPIClient::V2::CreateRulesetRequestDataType::CREATE_RULESET,
30
+ }),
31
+ })
32
+ p api_instance.create_ruleset(body)
@@ -0,0 +1,5 @@
1
+ # Delete arbitrary cost rule returns "No Content" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ api_instance.delete_arbitrary_cost_rule(123456)
@@ -1,4 +1,4 @@
1
- # Delete Cloud Cost Management GCP Usage Cost config returns "No Content" response
1
+ # Delete Google Cloud Usage Cost config returns "No Content" response
2
2
 
3
3
  require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
@@ -0,0 +1,5 @@
1
+ # Delete ruleset returns "No Content" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ api_instance.delete_ruleset("1c5dae14-237d-4b9a-a515-aa55b3939142")
@@ -0,0 +1,5 @@
1
+ # Get arbitrary cost rule returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ p api_instance.get_arbitrary_cost_rule(123456)
@@ -0,0 +1,5 @@
1
+ # Get cost AWS CUR config returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ p api_instance.get_cost_awscur_config(123456)
@@ -0,0 +1,5 @@
1
+ # Get cost Azure UC config returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ p api_instance.get_cost_azure_uc_config(123456)
@@ -0,0 +1,5 @@
1
+ # Get Google Cloud Usage Cost config returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ p api_instance.get_cost_gcp_usage_cost_config(123456)
@@ -0,0 +1,5 @@
1
+ # Get ruleset returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ p api_instance.get_ruleset("da0e30e2-615d-4dae-9a22-38cf86a87dde")
@@ -0,0 +1,5 @@
1
+ # List arbitrary cost rules returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ p api_instance.list_arbitrary_cost_rules()
@@ -1,4 +1,4 @@
1
- # List Cloud Cost Management GCP Usage Cost configs returns "OK" response
1
+ # List Google Cloud Usage Cost configs returns "OK" response
2
2
 
3
3
  require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
@@ -0,0 +1,5 @@
1
+ # List rulesets returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+ p api_instance.list_rulesets()
@@ -0,0 +1,22 @@
1
+ # Reorder arbitrary cost rules returns "Successfully reordered rules" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+
6
+ body = DatadogAPIClient::V2::ReorderRuleResourceArray.new({
7
+ data: [
8
+ DatadogAPIClient::V2::ReorderRuleResourceData.new({
9
+ id: "456",
10
+ type: DatadogAPIClient::V2::ReorderRuleResourceDataType::ARBITRARY_RULE,
11
+ }),
12
+ DatadogAPIClient::V2::ReorderRuleResourceData.new({
13
+ id: "123",
14
+ type: DatadogAPIClient::V2::ReorderRuleResourceDataType::ARBITRARY_RULE,
15
+ }),
16
+ DatadogAPIClient::V2::ReorderRuleResourceData.new({
17
+ id: "789",
18
+ type: DatadogAPIClient::V2::ReorderRuleResourceDataType::ARBITRARY_RULE,
19
+ }),
20
+ ],
21
+ })
22
+ api_instance.reorder_arbitrary_cost_rules(body)
@@ -0,0 +1,13 @@
1
+ # Reorder rulesets returns "Successfully reordered rulesets" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+
6
+ body = DatadogAPIClient::V2::ReorderRulesetResourceArray.new({
7
+ data: [
8
+ DatadogAPIClient::V2::ReorderRulesetResourceData.new({
9
+ type: DatadogAPIClient::V2::ReorderRulesetResourceDataType::RULESET,
10
+ }),
11
+ ],
12
+ })
13
+ api_instance.reorder_rulesets(body)
@@ -0,0 +1,63 @@
1
+ # Update arbitrary cost rule returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+
6
+ body = DatadogAPIClient::V2::ArbitraryCostUpsertRequest.new({
7
+ data: DatadogAPIClient::V2::ArbitraryCostUpsertRequestData.new({
8
+ attributes: DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributes.new({
9
+ costs_to_allocate: [
10
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems.new({
11
+ condition: "is",
12
+ tag: "account_id",
13
+ value: "123456789",
14
+ values: [],
15
+ }),
16
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems.new({
17
+ condition: "in",
18
+ tag: "environment",
19
+ value: "",
20
+ values: [
21
+ "production",
22
+ "staging",
23
+ ],
24
+ }),
25
+ ],
26
+ enabled: true,
27
+ order_id: 1,
28
+ provider: [
29
+ "aws",
30
+ "gcp",
31
+ ],
32
+ rule_name: "example-arbitrary-cost-rule",
33
+ strategy: DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesStrategy.new({
34
+ allocated_by_tag_keys: [
35
+ "team",
36
+ "environment",
37
+ ],
38
+ based_on_costs: [
39
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems.new({
40
+ condition: "is",
41
+ tag: "service",
42
+ value: "web-api",
43
+ values: [],
44
+ }),
45
+ DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems.new({
46
+ condition: "not in",
47
+ tag: "team",
48
+ value: "",
49
+ values: [
50
+ "legacy",
51
+ "deprecated",
52
+ ],
53
+ }),
54
+ ],
55
+ granularity: "daily",
56
+ method: "proportional",
57
+ }),
58
+ type: "shared",
59
+ }),
60
+ type: DatadogAPIClient::V2::ArbitraryCostUpsertRequestDataType::UPSERT_ARBITRARY_RULE,
61
+ }),
62
+ })
63
+ p api_instance.update_arbitrary_cost_rule(123456, body)
@@ -1,4 +1,4 @@
1
- # Update Cloud Cost Management GCP Usage Cost config returns "OK" response
1
+ # Update Google Cloud Usage Cost config returns "OK" response
2
2
 
3
3
  require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
@@ -0,0 +1,31 @@
1
+ # Update ruleset returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+
6
+ body = DatadogAPIClient::V2::UpdateRulesetRequest.new({
7
+ data: DatadogAPIClient::V2::UpdateRulesetRequestData.new({
8
+ attributes: DatadogAPIClient::V2::UpdateRulesetRequestDataAttributes.new({
9
+ enabled: true,
10
+ last_version: 3601919,
11
+ rules: [
12
+ DatadogAPIClient::V2::UpdateRulesetRequestDataAttributesRulesItems.new({
13
+ enabled: true,
14
+ mapping: DatadogAPIClient::V2::UpdateRulesetRequestDataAttributesRulesItemsMapping.new({
15
+ destination_key: "team_owner",
16
+ if_not_exists: true,
17
+ source_keys: [
18
+ "account_name",
19
+ "account_id",
20
+ ],
21
+ }),
22
+ name: "Account Name Mapping",
23
+ query: nil,
24
+ reference_table: nil,
25
+ }),
26
+ ],
27
+ }),
28
+ type: DatadogAPIClient::V2::UpdateRulesetRequestDataType::UPDATE_RULESET,
29
+ }),
30
+ })
31
+ p api_instance.update_ruleset("1c5dae14-237d-4b9a-a515-aa55b3939142", body)
@@ -0,0 +1,14 @@
1
+ # Validate query returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::CloudCostManagementAPI.new
5
+
6
+ body = DatadogAPIClient::V2::RulesValidateQueryRequest.new({
7
+ data: DatadogAPIClient::V2::RulesValidateQueryRequestData.new({
8
+ attributes: DatadogAPIClient::V2::RulesValidateQueryRequestDataAttributes.new({
9
+ query: "example:query AND test:true",
10
+ }),
11
+ type: DatadogAPIClient::V2::RulesValidateQueryRequestDataType::VALIDATE_QUERY,
12
+ }),
13
+ })
14
+ p api_instance.validate_query(body)
@@ -0,0 +1,5 @@
1
+ # Delete a deployment event returns "Accepted" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::DORAMetricsAPI.new
5
+ p api_instance.delete_dora_deployment("NO_VALUE")
@@ -0,0 +1,5 @@
1
+ # Delete a failure event returns "Accepted" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::DORAMetricsAPI.new
5
+ p api_instance.delete_dora_failure("NO_VALUE")
@@ -0,0 +1,22 @@
1
+ # Create an incident impact returns "CREATED" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.create_incident_impact".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::IncidentsAPI.new
8
+
9
+ # there is a valid "incident" in the system
10
+ INCIDENT_DATA_ID = ENV["INCIDENT_DATA_ID"]
11
+
12
+ body = DatadogAPIClient::V2::IncidentImpactCreateRequest.new({
13
+ data: DatadogAPIClient::V2::IncidentImpactCreateData.new({
14
+ type: DatadogAPIClient::V2::IncidentImpactType::INCIDENT_IMPACTS,
15
+ attributes: DatadogAPIClient::V2::IncidentImpactCreateAttributes.new({
16
+ start_at: "2025-09-12T13:50:00.000Z",
17
+ end_at: "2025-09-12T14:50:00.000Z",
18
+ description: "Outage in the us-east-1 region",
19
+ }),
20
+ }),
21
+ })
22
+ p api_instance.create_incident_impact(INCIDENT_DATA_ID, body)
@@ -0,0 +1,12 @@
1
+ # Delete an incident impact returns "No Content" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.delete_incident_impact".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::IncidentsAPI.new
8
+
9
+ # the "incident" has an "incident_impact"
10
+ INCIDENT_IMPACT_DATA_ID = ENV["INCIDENT_IMPACT_DATA_ID"]
11
+ INCIDENT_IMPACT_DATA_RELATIONSHIPS_INCIDENT_DATA_ID = ENV["INCIDENT_IMPACT_DATA_RELATIONSHIPS_INCIDENT_DATA_ID"]
12
+ api_instance.delete_incident_impact(INCIDENT_IMPACT_DATA_RELATIONSHIPS_INCIDENT_DATA_ID, INCIDENT_IMPACT_DATA_ID)
@@ -0,0 +1,11 @@
1
+ # List an incident's impacts returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.list_incident_impacts".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::IncidentsAPI.new
8
+
9
+ # there is a valid "incident" in the system
10
+ INCIDENT_DATA_ID = ENV["INCIDENT_DATA_ID"]
11
+ p api_instance.list_incident_impacts(INCIDENT_DATA_ID)
@@ -2,4 +2,7 @@
2
2
 
3
3
  require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V2::KeyManagementAPI.new
5
- p api_instance.get_current_user_application_key("app_key_id")
5
+
6
+ # there is a valid "application_key" in the system
7
+ APPLICATION_KEY_DATA_ID = ENV["APPLICATION_KEY_DATA_ID"]
8
+ p api_instance.get_current_user_application_key(APPLICATION_KEY_DATA_ID)
@@ -0,0 +1,68 @@
1
+ # Create a detection rule with detection method 'sequence_detection' returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
5
+
6
+ body = DatadogAPIClient::V2::SecurityMonitoringStandardRuleCreatePayload.new({
7
+ name: "Example-Security-Monitoring",
8
+ type: DatadogAPIClient::V2::SecurityMonitoringRuleTypeCreate::LOG_DETECTION,
9
+ is_enabled: true,
10
+ queries: [
11
+ DatadogAPIClient::V2::SecurityMonitoringStandardRuleQuery.new({
12
+ aggregation: DatadogAPIClient::V2::SecurityMonitoringRuleQueryAggregation::COUNT,
13
+ data_source: DatadogAPIClient::V2::SecurityMonitoringStandardDataSource::LOGS,
14
+ distinct_fields: [],
15
+ group_by_fields: [],
16
+ has_optional_group_by_fields: false,
17
+ name: "",
18
+ query: "service:logs-rule-reducer source:paul test2",
19
+ }),
20
+ DatadogAPIClient::V2::SecurityMonitoringStandardRuleQuery.new({
21
+ aggregation: DatadogAPIClient::V2::SecurityMonitoringRuleQueryAggregation::COUNT,
22
+ data_source: DatadogAPIClient::V2::SecurityMonitoringStandardDataSource::LOGS,
23
+ distinct_fields: [],
24
+ group_by_fields: [],
25
+ has_optional_group_by_fields: false,
26
+ name: "",
27
+ query: "service:logs-rule-reducer source:paul test1",
28
+ }),
29
+ ],
30
+ cases: [
31
+ DatadogAPIClient::V2::SecurityMonitoringRuleCaseCreate.new({
32
+ name: "",
33
+ status: DatadogAPIClient::V2::SecurityMonitoringRuleSeverity::INFO,
34
+ notifications: [],
35
+ condition: "step_b > 0",
36
+ }),
37
+ ],
38
+ message: "Logs and signals asdf",
39
+ options: DatadogAPIClient::V2::SecurityMonitoringRuleOptions.new({
40
+ detection_method: DatadogAPIClient::V2::SecurityMonitoringRuleDetectionMethod::SEQUENCE_DETECTION,
41
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::ZERO_MINUTES,
42
+ keep_alive: DatadogAPIClient::V2::SecurityMonitoringRuleKeepAlive::FIVE_MINUTES,
43
+ max_signal_duration: DatadogAPIClient::V2::SecurityMonitoringRuleMaxSignalDuration::TEN_MINUTES,
44
+ sequence_detection_options: DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionOptions.new({
45
+ step_transitions: [
46
+ DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionStepTransition.new({
47
+ child: "step_b",
48
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::FIFTEEN_MINUTES,
49
+ parent: "step_a",
50
+ }),
51
+ ],
52
+ steps: [
53
+ DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionStep.new({
54
+ condition: "a > 0",
55
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::ONE_MINUTE,
56
+ name: "step_a",
57
+ }),
58
+ DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionStep.new({
59
+ condition: "b > 0",
60
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::ONE_MINUTE,
61
+ name: "step_b",
62
+ }),
63
+ ],
64
+ }),
65
+ }),
66
+ tags: [],
67
+ })
68
+ p api_instance.create_security_monitoring_rule(body)
@@ -0,0 +1,70 @@
1
+ # Validate a detection rule with detection method 'sequence_detection' returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
5
+
6
+ body = DatadogAPIClient::V2::SecurityMonitoringStandardRulePayload.new({
7
+ cases: [
8
+ DatadogAPIClient::V2::SecurityMonitoringRuleCaseCreate.new({
9
+ name: "",
10
+ status: DatadogAPIClient::V2::SecurityMonitoringRuleSeverity::INFO,
11
+ notifications: [],
12
+ condition: "step_b > 0",
13
+ }),
14
+ ],
15
+ has_extended_title: true,
16
+ is_enabled: true,
17
+ message: "My security monitoring rule",
18
+ name: "My security monitoring rule",
19
+ options: DatadogAPIClient::V2::SecurityMonitoringRuleOptions.new({
20
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::ZERO_MINUTES,
21
+ keep_alive: DatadogAPIClient::V2::SecurityMonitoringRuleKeepAlive::FIVE_MINUTES,
22
+ max_signal_duration: DatadogAPIClient::V2::SecurityMonitoringRuleMaxSignalDuration::TEN_MINUTES,
23
+ detection_method: DatadogAPIClient::V2::SecurityMonitoringRuleDetectionMethod::SEQUENCE_DETECTION,
24
+ sequence_detection_options: DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionOptions.new({
25
+ step_transitions: [
26
+ DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionStepTransition.new({
27
+ child: "step_b",
28
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::FIFTEEN_MINUTES,
29
+ parent: "step_a",
30
+ }),
31
+ ],
32
+ steps: [
33
+ DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionStep.new({
34
+ condition: "a > 0",
35
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::ONE_MINUTE,
36
+ name: "step_a",
37
+ }),
38
+ DatadogAPIClient::V2::SecurityMonitoringRuleSequenceDetectionStep.new({
39
+ condition: "b > 0",
40
+ evaluation_window: DatadogAPIClient::V2::SecurityMonitoringRuleEvaluationWindow::ONE_MINUTE,
41
+ name: "step_b",
42
+ }),
43
+ ],
44
+ }),
45
+ }),
46
+ queries: [
47
+ DatadogAPIClient::V2::SecurityMonitoringStandardRuleQuery.new({
48
+ query: "source:source_here",
49
+ group_by_fields: [
50
+ "@userIdentity.assumed_role",
51
+ ],
52
+ distinct_fields: [],
53
+ aggregation: DatadogAPIClient::V2::SecurityMonitoringRuleQueryAggregation::COUNT,
54
+ name: "",
55
+ }),
56
+ DatadogAPIClient::V2::SecurityMonitoringStandardRuleQuery.new({
57
+ query: "source:source_here2",
58
+ group_by_fields: [],
59
+ distinct_fields: [],
60
+ aggregation: DatadogAPIClient::V2::SecurityMonitoringRuleQueryAggregation::COUNT,
61
+ name: "",
62
+ }),
63
+ ],
64
+ tags: [
65
+ "env:prod",
66
+ "team:security",
67
+ ],
68
+ type: DatadogAPIClient::V2::SecurityMonitoringRuleTypeCreate::LOG_DETECTION,
69
+ })
70
+ api_instance.validate_security_monitoring_rule(body)
@@ -221,12 +221,14 @@ module DatadogAPIClient
221
221
  "v2.create_data_deletion_request": false,
222
222
  "v2.get_data_deletion_requests": false,
223
223
  "v2.create_incident": false,
224
+ "v2.create_incident_impact": false,
224
225
  "v2.create_incident_integration": false,
225
226
  "v2.create_incident_notification_rule": false,
226
227
  "v2.create_incident_notification_template": false,
227
228
  "v2.create_incident_todo": false,
228
229
  "v2.create_incident_type": false,
229
230
  "v2.delete_incident": false,
231
+ "v2.delete_incident_impact": false,
230
232
  "v2.delete_incident_integration": false,
231
233
  "v2.delete_incident_notification_rule": false,
232
234
  "v2.delete_incident_notification_template": false,
@@ -239,6 +241,7 @@ module DatadogAPIClient
239
241
  "v2.get_incident_todo": false,
240
242
  "v2.get_incident_type": false,
241
243
  "v2.list_incident_attachments": false,
244
+ "v2.list_incident_impacts": false,
242
245
  "v2.list_incident_integrations": false,
243
246
  "v2.list_incident_notification_rules": false,
244
247
  "v2.list_incident_notification_templates": false,