datadog_api_client 2.43.0 → 2.44.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 (369) hide show
  1. checksums.yaml +4 -4
  2. data/.generator/schemas/v1/openapi.yaml +263 -29
  3. data/.generator/schemas/v2/openapi.yaml +5051 -432
  4. data/.generator/src/generator/formatter.py +15 -1
  5. data/.generator/src/generator/templates/api.j2 +2 -2
  6. data/.generator/src/generator/templates/model.j2 +1 -1
  7. data/.generator/src/generator/templates/model_generic.j2 +1 -1
  8. data/.generator/tests/test_formatter.rb +69 -0
  9. data/CHANGELOG.md +27 -0
  10. data/examples/v1/logs-pipelines/CreateLogsPipeline.rb +2 -2
  11. data/examples/v1/logs-pipelines/CreateLogsPipeline_1745625064.rb +248 -0
  12. data/examples/v1/logs-pipelines/CreateLogsPipeline_2256674867.rb +248 -0
  13. data/examples/v1/logs-pipelines/CreateLogsPipeline_501419705.rb +236 -0
  14. data/examples/v1/logs-pipelines/UpdateLogsPipeline.rb +2 -2
  15. data/examples/v1/notebooks/CreateNotebook.rb +1 -1
  16. data/examples/v1/notebooks/UpdateNotebook.rb +1 -1
  17. data/examples/v1/synthetics/CreateSyntheticsAPITest.rb +1 -0
  18. data/examples/v1/synthetics/UpdateBrowserTest.rb +1 -0
  19. data/examples/v2/actions-datastores/BulkDeleteDatastoreItems.rb +19 -0
  20. data/examples/v2/agentless-scanning/CreateAwsOnDemandTask.rb +1 -1
  21. data/examples/v2/agentless-scanning/CreateAwsScanOptions.rb +1 -1
  22. data/examples/v2/agentless-scanning/CreateAzureScanOptions.rb +16 -0
  23. data/examples/v2/agentless-scanning/CreateGcpScanOptions.rb +16 -0
  24. data/examples/v2/agentless-scanning/DeleteAwsScanOptions.rb +1 -1
  25. data/examples/v2/agentless-scanning/DeleteAzureScanOptions.rb +5 -0
  26. data/examples/v2/agentless-scanning/DeleteGcpScanOptions.rb +5 -0
  27. data/examples/v2/agentless-scanning/GetAwsOnDemandTask.rb +1 -1
  28. data/examples/v2/agentless-scanning/GetAzureScanOptions.rb +5 -0
  29. data/examples/v2/agentless-scanning/GetGcpScanOptions.rb +5 -0
  30. data/examples/v2/agentless-scanning/ListAwsOnDemandTasks.rb +1 -1
  31. data/examples/v2/agentless-scanning/ListAwsScanOptions.rb +1 -1
  32. data/examples/v2/agentless-scanning/ListAzureScanOptions.rb +5 -0
  33. data/examples/v2/agentless-scanning/ListGcpScanOptions.rb +5 -0
  34. data/examples/v2/agentless-scanning/UpdateAwsScanOptions.rb +1 -1
  35. data/examples/v2/agentless-scanning/UpdateAzureScanOptions.rb +12 -0
  36. data/examples/v2/agentless-scanning/UpdateGcpScanOptions.rb +15 -0
  37. data/examples/v2/case-management/CommentCase.rb +17 -0
  38. data/examples/v2/case-management/CreateCase.rb +1 -1
  39. data/examples/v2/case-management/DeleteCaseComment.rb +11 -0
  40. data/examples/v2/case-management/DeleteCaseCustomAttribute.rb +11 -0
  41. data/examples/v2/case-management/UpdateCaseCustomAttribute.rb +25 -0
  42. data/examples/v2/case-management/UpdateCaseDescription.rb +17 -0
  43. data/examples/v2/case-management/UpdateCaseTitle.rb +17 -0
  44. data/examples/v2/case-management-attribute/CreateCustomAttributeConfig.rb +20 -0
  45. data/examples/v2/case-management-attribute/DeleteCustomAttributeConfig.rb +11 -0
  46. data/examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.rb +8 -0
  47. data/examples/v2/case-management-attribute/GetAllCustomAttributes.rb +5 -0
  48. data/examples/v2/case-management-type/CreateCaseType.rb +16 -0
  49. data/examples/v2/case-management-type/DeleteCaseType.rb +5 -0
  50. data/examples/v2/case-management-type/DeleteCaseType_2790986149.rb +8 -0
  51. data/examples/v2/case-management-type/GetAllCaseTypes.rb +5 -0
  52. data/examples/v2/cloud-cost-management/{UpdateArbitraryCostRule.rb → CreateCustomAllocationRule.rb} +2 -4
  53. data/examples/v2/cloud-cost-management/{CreateRuleset.rb → CreateTagPipelinesRuleset.rb} +2 -2
  54. data/examples/v2/cloud-cost-management/DeleteCustomAllocationRule.rb +5 -0
  55. data/examples/v2/cloud-cost-management/DeleteTagPipelinesRuleset.rb +5 -0
  56. data/examples/v2/cloud-cost-management/GetCustomAllocationRule.rb +5 -0
  57. data/examples/v2/cloud-cost-management/GetTagPipelinesRuleset.rb +5 -0
  58. data/examples/v2/cloud-cost-management/ListCustomAllocationRules.rb +5 -0
  59. data/examples/v2/cloud-cost-management/ListTagPipelinesRulesets.rb +5 -0
  60. data/examples/v2/cloud-cost-management/{ReorderArbitraryCostRules.rb → ReorderCustomAllocationRules.rb} +2 -2
  61. data/examples/v2/cloud-cost-management/ReorderTagPipelinesRulesets.rb +22 -0
  62. data/examples/v2/cloud-cost-management/{CreateArbitraryCostRule.rb → UpdateCustomAllocationRule.rb} +2 -2
  63. data/examples/v2/cloud-cost-management/{UpdateRuleset.rb → UpdateTagPipelinesRuleset.rb} +4 -3
  64. data/examples/v2/csm-threats/CreateCSMThreatsAgentPolicy.rb +1 -1
  65. data/examples/v2/csm-threats/CreateCSMThreatsAgentRule.rb +1 -0
  66. data/examples/v2/csm-threats/CreateCSMThreatsAgentRule_1295653933.rb +1 -0
  67. data/examples/v2/csm-threats/CreateCSMThreatsAgentRule_1363354233.rb +33 -0
  68. data/examples/v2/dora-metrics/CreateDORADeployment.rb +1 -1
  69. data/examples/v2/dora-metrics/CreateDORAFailure.rb +1 -1
  70. data/examples/v2/dora-metrics/CreateDORAIncident.rb +1 -1
  71. data/examples/v2/dora-metrics/{CreateDORAIncident_1768887482.rb → CreateDORAIncident_1101664022.rb} +1 -1
  72. data/examples/v2/error-tracking/DeleteIssueAssignee.rb +8 -0
  73. data/examples/v2/fleet-automation/CancelFleetDeployment.rb +8 -0
  74. data/examples/v2/fleet-automation/CreateFleetDeploymentConfigure.rb +26 -0
  75. data/examples/v2/fleet-automation/GetFleetDeployment.rb +11 -0
  76. data/examples/v2/fleet-automation/ListFleetDeployments.rb +8 -0
  77. data/examples/v2/monitors/CreateMonitorNotificationRule_1181818787.rb +30 -0
  78. data/examples/v2/monitors/UpdateMonitorNotificationRule_1400905713.rb +35 -0
  79. data/examples/v2/reference-tables/CreateReferenceTable.rb +44 -0
  80. data/examples/v2/reference-tables/CreateReferenceTableUpload.rb +21 -0
  81. data/examples/v2/reference-tables/CreateReferenceTable_3196130987.rb +41 -0
  82. data/examples/v2/reference-tables/DeleteTable.rb +5 -0
  83. data/examples/v2/reference-tables/GetRowsByID.rb +5 -0
  84. data/examples/v2/reference-tables/GetTable.rb +5 -0
  85. data/examples/v2/reference-tables/ListTables.rb +5 -0
  86. data/examples/v2/reference-tables/UpdateReferenceTable.rb +44 -0
  87. data/examples/v2/roles/ListRoleTemplates.rb +8 -0
  88. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_868881438.rb +3 -1
  89. data/examples/v2/security-monitoring/ListScannedAssetsMetadata.rb +8 -0
  90. data/examples/v2/static-analysis/CreateSCAResolveVulnerableSymbols.rb +17 -0
  91. data/examples/v2/static-analysis/CreateSCAResult.rb +61 -0
  92. data/examples/v2/test-optimization/SearchFlakyTests.rb +27 -0
  93. data/examples/v2/test-optimization/SearchFlakyTests_1224086727.rb +27 -0
  94. data/examples/v2/test-optimization/SearchFlakyTests_2665223746.rb +26 -0
  95. data/lib/datadog_api_client/configuration.rb +9 -0
  96. data/lib/datadog_api_client/inflector.rb +208 -0
  97. data/lib/datadog_api_client/v1/api/hosts_api.rb +1 -0
  98. data/lib/datadog_api_client/v1/models/logs_processor.rb +2 -1
  99. data/lib/datadog_api_client/v1/models/logs_schema_category_mapper.rb +211 -0
  100. data/lib/datadog_api_client/v1/models/logs_schema_category_mapper_category.rb +165 -0
  101. data/lib/datadog_api_client/v1/models/logs_schema_category_mapper_fallback.rb +115 -0
  102. data/lib/datadog_api_client/v1/models/logs_schema_category_mapper_targets.rb +115 -0
  103. data/lib/datadog_api_client/v1/models/logs_schema_category_mapper_type.rb +26 -0
  104. data/lib/datadog_api_client/v1/models/logs_schema_data.rb +198 -0
  105. data/lib/datadog_api_client/v1/models/logs_schema_mapper.rb +63 -0
  106. data/lib/datadog_api_client/v1/models/logs_schema_processor.rb +198 -0
  107. data/lib/datadog_api_client/v1/models/logs_schema_processor_type.rb +26 -0
  108. data/lib/datadog_api_client/v1/models/logs_schema_remapper.rb +220 -0
  109. data/lib/datadog_api_client/v1/models/logs_schema_remapper_type.rb +26 -0
  110. data/lib/datadog_api_client/v1/models/monitor.rb +0 -1
  111. data/lib/datadog_api_client/v1/models/monitor_update_request.rb +0 -1
  112. data/lib/datadog_api_client/v1/models/synthetics_test_options.rb +13 -1
  113. data/lib/datadog_api_client/v1/models/widget_marker.rb +0 -1
  114. data/lib/datadog_api_client/v2/api/actions_datastores_api.rb +72 -0
  115. data/lib/datadog_api_client/v2/api/agentless_scanning_api.rb +680 -22
  116. data/lib/datadog_api_client/v2/api/api_management_api.rb +0 -2
  117. data/lib/datadog_api_client/v2/api/case_management_api.rb +433 -0
  118. data/lib/datadog_api_client/v2/api/case_management_attribute_api.rb +293 -0
  119. data/lib/datadog_api_client/v2/api/case_management_type_api.rb +218 -0
  120. data/lib/datadog_api_client/v2/api/ci_visibility_pipelines_api.rb +1 -0
  121. data/lib/datadog_api_client/v2/api/cloud_cost_management_api.rb +336 -336
  122. data/lib/datadog_api_client/v2/api/container_images_api.rb +1 -0
  123. data/lib/datadog_api_client/v2/api/dora_metrics_api.rb +9 -9
  124. data/lib/datadog_api_client/v2/api/error_tracking_api.rb +65 -0
  125. data/lib/datadog_api_client/v2/api/fleet_automation_api.rb +318 -0
  126. data/lib/datadog_api_client/v2/api/incidents_api.rb +8 -8
  127. data/lib/datadog_api_client/v2/api/observability_pipelines_api.rb +0 -1
  128. data/lib/datadog_api_client/v2/api/on_call_paging_api.rb +0 -4
  129. data/lib/datadog_api_client/v2/api/reference_tables_api.rb +519 -0
  130. data/lib/datadog_api_client/v2/api/roles_api.rb +66 -0
  131. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +149 -10
  132. data/lib/datadog_api_client/v2/api/static_analysis_api.rb +166 -0
  133. data/lib/datadog_api_client/v2/api/test_optimization_api.rb +116 -0
  134. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_array.rb +13 -3
  135. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_array_meta.rb +105 -0
  136. data/lib/datadog_api_client/v2/models/arbitrary_rule_response_data_attributes.rb +11 -1
  137. data/lib/datadog_api_client/v2/models/azure_scan_options.rb +105 -0
  138. data/lib/datadog_api_client/v2/models/azure_scan_options_array.rb +125 -0
  139. data/lib/datadog_api_client/v2/models/azure_scan_options_data.rb +154 -0
  140. data/lib/datadog_api_client/v2/models/azure_scan_options_data_attributes.rb +115 -0
  141. data/lib/datadog_api_client/v2/models/azure_scan_options_data_type.rb +26 -0
  142. data/lib/datadog_api_client/v2/models/azure_scan_options_input_update.rb +105 -0
  143. data/lib/datadog_api_client/v2/models/azure_scan_options_input_update_data.rb +154 -0
  144. data/lib/datadog_api_client/v2/models/azure_scan_options_input_update_data_attributes.rb +115 -0
  145. data/lib/datadog_api_client/v2/models/azure_scan_options_input_update_data_type.rb +26 -0
  146. data/lib/datadog_api_client/v2/models/bulk_delete_apps_datastore_items_request.rb +105 -0
  147. data/lib/datadog_api_client/v2/models/bulk_delete_apps_datastore_items_request_data.rb +143 -0
  148. data/lib/datadog_api_client/v2/models/bulk_delete_apps_datastore_items_request_data_attributes.rb +125 -0
  149. data/lib/datadog_api_client/v2/models/bulk_delete_apps_datastore_items_request_data_type.rb +26 -0
  150. data/lib/datadog_api_client/v2/models/bulk_mute_findings_request_properties.rb +0 -1
  151. data/lib/datadog_api_client/v2/models/case_attributes.rb +23 -3
  152. data/lib/datadog_api_client/v2/models/case_comment.rb +144 -0
  153. data/lib/datadog_api_client/v2/models/case_comment_attributes.rb +123 -0
  154. data/lib/datadog_api_client/v2/models/case_comment_request.rb +123 -0
  155. data/lib/datadog_api_client/v2/models/case_create_attributes.rb +14 -14
  156. data/lib/datadog_api_client/v2/models/case_type.rb +2 -0
  157. data/lib/datadog_api_client/v2/models/case_type_create.rb +144 -0
  158. data/lib/datadog_api_client/v2/models/case_type_create_request.rb +123 -0
  159. data/lib/datadog_api_client/v2/models/case_type_resource.rb +125 -0
  160. data/lib/datadog_api_client/v2/models/case_type_resource_attributes.rb +161 -0
  161. data/lib/datadog_api_client/v2/models/case_type_resource_type.rb +26 -0
  162. data/lib/datadog_api_client/v2/models/case_type_response.rb +105 -0
  163. data/lib/datadog_api_client/v2/models/case_types_response.rb +107 -0
  164. data/lib/datadog_api_client/v2/models/case_update_custom_attribute.rb +144 -0
  165. data/lib/datadog_api_client/v2/models/case_update_custom_attribute_request.rb +123 -0
  166. data/lib/datadog_api_client/v2/models/case_update_description.rb +144 -0
  167. data/lib/datadog_api_client/v2/models/case_update_description_attributes.rb +123 -0
  168. data/lib/datadog_api_client/v2/models/case_update_description_request.rb +123 -0
  169. data/lib/datadog_api_client/v2/models/case_update_title.rb +144 -0
  170. data/lib/datadog_api_client/v2/models/case_update_title_attributes.rb +123 -0
  171. data/lib/datadog_api_client/v2/models/case_update_title_request.rb +123 -0
  172. data/lib/datadog_api_client/v2/models/cloud_asset_type.rb +28 -0
  173. data/lib/datadog_api_client/v2/models/cloud_configuration_compliance_rule_options.rb +0 -2
  174. data/lib/datadog_api_client/v2/models/cloud_configuration_rule_create_payload.rb +0 -1
  175. data/lib/datadog_api_client/v2/models/cloud_configuration_rule_options.rb +0 -1
  176. data/lib/datadog_api_client/v2/models/cloud_configuration_rule_payload.rb +0 -1
  177. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_policy_attributes.rb +25 -3
  178. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_policy_version.rb +123 -0
  179. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_action_set.rb +35 -5
  180. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_attributes.rb +11 -1
  181. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_create_attributes.rb +30 -10
  182. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_update_attributes.rb +23 -3
  183. data/lib/datadog_api_client/v2/models/create_table_request.rb +105 -0
  184. data/lib/datadog_api_client/v2/models/create_table_request_data.rb +143 -0
  185. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes.rb +197 -0
  186. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_file_metadata.rb +63 -0
  187. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_file_metadata_cloud_storage.rb +119 -0
  188. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_file_metadata_local_file.rb +98 -0
  189. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_file_metadata_one_of_access_details.rb +125 -0
  190. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail.rb +165 -0
  191. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail.rb +207 -0
  192. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail.rb +186 -0
  193. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_schema.rb +148 -0
  194. data/lib/datadog_api_client/v2/models/create_table_request_data_attributes_schema_fields_items.rb +144 -0
  195. data/lib/datadog_api_client/v2/models/create_table_request_data_type.rb +26 -0
  196. data/lib/datadog_api_client/v2/models/create_upload_request.rb +105 -0
  197. data/lib/datadog_api_client/v2/models/create_upload_request_data.rb +143 -0
  198. data/lib/datadog_api_client/v2/models/create_upload_request_data_attributes.rb +192 -0
  199. data/lib/datadog_api_client/v2/models/create_upload_request_data_type.rb +26 -0
  200. data/lib/datadog_api_client/v2/models/create_upload_response.rb +105 -0
  201. data/lib/datadog_api_client/v2/models/create_upload_response_data.rb +143 -0
  202. data/lib/datadog_api_client/v2/models/create_upload_response_data_attributes.rb +107 -0
  203. data/lib/datadog_api_client/v2/models/create_upload_response_data_type.rb +26 -0
  204. data/lib/datadog_api_client/v2/models/custom_attribute_config.rb +125 -0
  205. data/lib/datadog_api_client/v2/models/custom_attribute_config_attributes_create.rb +196 -0
  206. data/lib/datadog_api_client/v2/models/custom_attribute_config_create.rb +144 -0
  207. data/lib/datadog_api_client/v2/models/custom_attribute_config_create_request.rb +123 -0
  208. data/lib/datadog_api_client/v2/models/custom_attribute_config_resource_attributes.rb +217 -0
  209. data/lib/datadog_api_client/v2/models/custom_attribute_config_resource_type.rb +26 -0
  210. data/lib/datadog_api_client/v2/models/custom_attribute_config_response.rb +105 -0
  211. data/lib/datadog_api_client/v2/models/custom_attribute_configs_response.rb +107 -0
  212. data/lib/datadog_api_client/v2/models/custom_attribute_type.rb +28 -0
  213. data/lib/datadog_api_client/v2/models/custom_attribute_value.rb +165 -0
  214. data/lib/datadog_api_client/v2/models/custom_attribute_values_union.rb +65 -0
  215. data/lib/datadog_api_client/v2/models/delete_apps_datastore_item_response_array.rb +125 -0
  216. data/lib/datadog_api_client/v2/models/dora_deployment_request_attributes.rb +1 -1
  217. data/lib/datadog_api_client/v2/models/flaky_test.rb +125 -0
  218. data/lib/datadog_api_client/v2/models/flaky_test_attributes.rb +301 -0
  219. data/lib/datadog_api_client/v2/models/flaky_test_attributes_flaky_state.rb +29 -0
  220. data/lib/datadog_api_client/v2/models/flaky_test_pipeline_stats.rb +124 -0
  221. data/lib/datadog_api_client/v2/models/flaky_test_run_metadata.rb +168 -0
  222. data/lib/datadog_api_client/v2/models/flaky_test_stats.rb +113 -0
  223. data/lib/datadog_api_client/v2/models/flaky_test_type.rb +26 -0
  224. data/lib/datadog_api_client/v2/models/flaky_tests_pagination.rb +113 -0
  225. data/lib/datadog_api_client/v2/models/flaky_tests_search_filter.rb +115 -0
  226. data/lib/datadog_api_client/v2/models/flaky_tests_search_page_options.rb +137 -0
  227. data/lib/datadog_api_client/v2/models/flaky_tests_search_request.rb +105 -0
  228. data/lib/datadog_api_client/v2/models/flaky_tests_search_request_attributes.rb +125 -0
  229. data/lib/datadog_api_client/v2/models/flaky_tests_search_request_data.rb +115 -0
  230. data/lib/datadog_api_client/v2/models/flaky_tests_search_request_data_type.rb +26 -0
  231. data/lib/datadog_api_client/v2/models/flaky_tests_search_response.rb +117 -0
  232. data/lib/datadog_api_client/v2/models/flaky_tests_search_response_meta.rb +105 -0
  233. data/lib/datadog_api_client/v2/models/flaky_tests_search_sort.rb +37 -0
  234. data/lib/datadog_api_client/v2/models/fleet_deployment.rb +165 -0
  235. data/lib/datadog_api_client/v2/models/fleet_deployment_attributes.rb +147 -0
  236. data/lib/datadog_api_client/v2/models/fleet_deployment_configure_attributes.rb +135 -0
  237. data/lib/datadog_api_client/v2/models/fleet_deployment_configure_create.rb +144 -0
  238. data/lib/datadog_api_client/v2/models/fleet_deployment_configure_create_request.rb +123 -0
  239. data/lib/datadog_api_client/v2/models/fleet_deployment_file_op.rb +30 -0
  240. data/lib/datadog_api_client/v2/models/fleet_deployment_operation.rb +161 -0
  241. data/lib/datadog_api_client/v2/models/fleet_deployment_resource_type.rb +26 -0
  242. data/lib/datadog_api_client/v2/models/fleet_deployment_response.rb +105 -0
  243. data/lib/datadog_api_client/v2/models/fleet_deployments_page.rb +105 -0
  244. data/lib/datadog_api_client/v2/models/fleet_deployments_response.rb +135 -0
  245. data/lib/datadog_api_client/v2/models/fleet_deployments_response_meta.rb +105 -0
  246. data/lib/datadog_api_client/v2/models/gcp_scan_options.rb +105 -0
  247. data/lib/datadog_api_client/v2/models/gcp_scan_options_array.rb +125 -0
  248. data/lib/datadog_api_client/v2/models/gcp_scan_options_data.rb +154 -0
  249. data/lib/datadog_api_client/v2/models/gcp_scan_options_data_attributes.rb +115 -0
  250. data/lib/datadog_api_client/v2/models/gcp_scan_options_data_type.rb +26 -0
  251. data/lib/datadog_api_client/v2/models/gcp_scan_options_input_update.rb +105 -0
  252. data/lib/datadog_api_client/v2/models/gcp_scan_options_input_update_data.rb +154 -0
  253. data/lib/datadog_api_client/v2/models/gcp_scan_options_input_update_data_attributes.rb +115 -0
  254. data/lib/datadog_api_client/v2/models/gcp_scan_options_input_update_data_type.rb +26 -0
  255. data/lib/datadog_api_client/v2/models/metric_tag_cardinalities_meta.rb +0 -1
  256. data/lib/datadog_api_client/v2/models/monitor_notification_rule_attributes.rb +15 -9
  257. data/lib/datadog_api_client/v2/models/monitor_notification_rule_condition.rb +162 -0
  258. data/lib/datadog_api_client/v2/models/monitor_notification_rule_conditional_recipients.rb +160 -0
  259. data/lib/datadog_api_client/v2/models/monitor_notification_rule_response_attributes.rb +11 -1
  260. data/lib/datadog_api_client/v2/models/notification_rule_response.rb +0 -1
  261. data/lib/datadog_api_client/v2/models/observability_pipeline_amazon_data_firehose_source.rb +0 -1
  262. data/lib/datadog_api_client/v2/models/observability_pipeline_amazon_open_search_destination.rb +0 -1
  263. data/lib/datadog_api_client/v2/models/observability_pipeline_amazon_s3_destination.rb +0 -1
  264. data/lib/datadog_api_client/v2/models/observability_pipeline_amazon_s3_source.rb +0 -1
  265. data/lib/datadog_api_client/v2/models/observability_pipeline_amazon_security_lake_destination.rb +0 -1
  266. data/lib/datadog_api_client/v2/models/observability_pipeline_google_chronicle_destination.rb +0 -1
  267. data/lib/datadog_api_client/v2/models/observability_pipeline_google_cloud_storage_destination.rb +0 -1
  268. data/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination.rb +0 -1
  269. data/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_source.rb +0 -1
  270. data/lib/datadog_api_client/v2/models/observability_pipeline_parse_grok_processor_rule.rb +0 -2
  271. data/lib/datadog_api_client/v2/models/observability_pipeline_quota_processor.rb +0 -1
  272. data/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_destination.rb +0 -1
  273. data/lib/datadog_api_client/v2/models/patch_table_request.rb +105 -0
  274. data/lib/datadog_api_client/v2/models/patch_table_request_data.rb +143 -0
  275. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes.rb +147 -0
  276. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_file_metadata.rb +63 -0
  277. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_file_metadata_cloud_storage.rb +90 -0
  278. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_file_metadata_local_file.rb +98 -0
  279. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_file_metadata_one_of_access_details.rb +125 -0
  280. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail.rb +125 -0
  281. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail.rb +145 -0
  282. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail.rb +135 -0
  283. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_schema.rb +148 -0
  284. data/lib/datadog_api_client/v2/models/patch_table_request_data_attributes_schema_fields_items.rb +144 -0
  285. data/lib/datadog_api_client/v2/models/patch_table_request_data_type.rb +26 -0
  286. data/lib/datadog_api_client/v2/models/reference_table_create_source_type.rb +29 -0
  287. data/lib/datadog_api_client/v2/models/reference_table_schema_field_type.rb +27 -0
  288. data/lib/datadog_api_client/v2/models/reference_table_sort_type.rb +31 -0
  289. data/lib/datadog_api_client/v2/models/reference_table_source_type.rb +33 -0
  290. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_request.rb +105 -0
  291. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_request_data.rb +143 -0
  292. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_request_data_attributes.rb +107 -0
  293. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_request_data_type.rb +26 -0
  294. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_response.rb +105 -0
  295. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_response_data.rb +143 -0
  296. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_response_data_attributes.rb +107 -0
  297. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_response_data_type.rb +26 -0
  298. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_response_results.rb +117 -0
  299. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_response_results_vulnerable_symbols.rb +117 -0
  300. data/lib/datadog_api_client/v2/models/resolve_vulnerable_symbols_response_results_vulnerable_symbols_symbols.rb +125 -0
  301. data/lib/datadog_api_client/v2/models/role_template_array.rb +125 -0
  302. data/lib/datadog_api_client/v2/models/role_template_data.rb +143 -0
  303. data/lib/datadog_api_client/v2/models/role_template_data_attributes.rb +115 -0
  304. data/lib/datadog_api_client/v2/models/role_template_data_type.rb +26 -0
  305. data/lib/datadog_api_client/v2/models/ruleset_resp_data_attributes.rb +11 -1
  306. data/lib/datadog_api_client/v2/models/sbom_format.rb +27 -0
  307. data/lib/datadog_api_client/v2/models/sca_request.rb +105 -0
  308. data/lib/datadog_api_client/v2/models/sca_request_data.rb +143 -0
  309. data/lib/datadog_api_client/v2/models/sca_request_data_attributes.rb +193 -0
  310. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_commit.rb +165 -0
  311. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_dependencies_items.rb +211 -0
  312. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_dependencies_items_locations_items.rb +135 -0
  313. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_dependencies_items_locations_items_file_position.rb +125 -0
  314. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_dependencies_items_locations_items_position.rb +144 -0
  315. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_dependencies_items_reachable_symbol_properties_items.rb +115 -0
  316. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_files_items.rb +115 -0
  317. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_relations_items.rb +117 -0
  318. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_repository.rb +105 -0
  319. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_vulnerabilities_items.rb +127 -0
  320. data/lib/datadog_api_client/v2/models/sca_request_data_attributes_vulnerabilities_items_affects_items.rb +105 -0
  321. data/lib/datadog_api_client/v2/models/sca_request_data_type.rb +26 -0
  322. data/lib/datadog_api_client/v2/models/scanned_asset_metadata.rb +144 -0
  323. data/lib/datadog_api_client/v2/models/scanned_asset_metadata_asset.rb +144 -0
  324. data/lib/datadog_api_client/v2/models/scanned_asset_metadata_attributes.rb +165 -0
  325. data/lib/datadog_api_client/v2/models/scanned_asset_metadata_last_success.rb +145 -0
  326. data/lib/datadog_api_client/v2/models/scanned_assets_metadata.rb +145 -0
  327. data/lib/datadog_api_client/v2/models/security_monitoring_rule_options.rb +0 -1
  328. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_query.rb +13 -1
  329. data/lib/datadog_api_client/v2/models/table_result_v2.rb +105 -0
  330. data/lib/datadog_api_client/v2/models/table_result_v2_array.rb +125 -0
  331. data/lib/datadog_api_client/v2/models/table_result_v2_data.rb +143 -0
  332. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes.rb +207 -0
  333. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata.rb +63 -0
  334. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata_cloud_storage.rb +145 -0
  335. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata_cloud_storage_error_type.rb +34 -0
  336. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata_local_file.rb +125 -0
  337. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata_one_of_access_details.rb +125 -0
  338. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata_one_of_access_details_aws_detail.rb +125 -0
  339. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata_one_of_access_details_azure_detail.rb +145 -0
  340. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_file_metadata_one_of_access_details_gcp_detail.rb +135 -0
  341. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_schema.rb +148 -0
  342. data/lib/datadog_api_client/v2/models/table_result_v2_data_attributes_schema_fields_items.rb +144 -0
  343. data/lib/datadog_api_client/v2/models/table_result_v2_data_type.rb +26 -0
  344. data/lib/datadog_api_client/v2/models/table_row_resource_array.rb +125 -0
  345. data/lib/datadog_api_client/v2/models/table_row_resource_data.rb +143 -0
  346. data/lib/datadog_api_client/v2/models/table_row_resource_data_attributes.rb +105 -0
  347. data/lib/datadog_api_client/v2/models/table_row_resource_data_type.rb +26 -0
  348. data/lib/datadog_api_client/v2/models/timeline_cell.rb +155 -0
  349. data/lib/datadog_api_client/v2/models/timeline_cell_author.rb +62 -0
  350. data/lib/datadog_api_client/v2/models/timeline_cell_author_user.rb +115 -0
  351. data/lib/datadog_api_client/v2/models/timeline_cell_author_user_content.rb +135 -0
  352. data/lib/datadog_api_client/v2/models/timeline_cell_author_user_type.rb +26 -0
  353. data/lib/datadog_api_client/v2/models/timeline_cell_content.rb +62 -0
  354. data/lib/datadog_api_client/v2/models/timeline_cell_content_comment.rb +105 -0
  355. data/lib/datadog_api_client/v2/models/timeline_cell_resource.rb +165 -0
  356. data/lib/datadog_api_client/v2/models/timeline_cell_resource_type.rb +26 -0
  357. data/lib/datadog_api_client/v2/models/timeline_cell_type.rb +26 -0
  358. data/lib/datadog_api_client/v2/models/timeline_response.rb +107 -0
  359. data/lib/datadog_api_client/v2/models/vulnerability_advisory.rb +143 -0
  360. data/lib/datadog_api_client/v2/models/vulnerability_attributes.rb +11 -1
  361. data/lib/datadog_api_client/version.rb +1 -1
  362. metadata +274 -14
  363. data/examples/v2/cloud-cost-management/DeleteArbitraryCostRule.rb +0 -5
  364. data/examples/v2/cloud-cost-management/DeleteRuleset.rb +0 -5
  365. data/examples/v2/cloud-cost-management/GetArbitraryCostRule.rb +0 -5
  366. data/examples/v2/cloud-cost-management/GetRuleset.rb +0 -5
  367. data/examples/v2/cloud-cost-management/ListArbitraryCostRules.rb +0 -5
  368. data/examples/v2/cloud-cost-management/ListRulesets.rb +0 -5
  369. data/examples/v2/cloud-cost-management/ReorderRulesets.rb +0 -13
@@ -275,6 +275,16 @@ def format_data_with_schema_list(
275
275
  return f"[\n{parameters}]"
276
276
 
277
277
 
278
+ def _is_valid_ruby_symbol(key):
279
+ """Check if a key can be used as a Ruby symbol without quotes."""
280
+ if not key:
281
+ return False
282
+ # Ruby symbols can start with letter or underscore, contain alphanumeric and underscores
283
+ if not (key[0].isalpha() or key[0] == '_'):
284
+ return False
285
+ return all(c.isalnum() or c == '_' for c in key)
286
+
287
+
278
288
  @format_data_with_schema.register(dict)
279
289
  def format_data_with_schema_dict(
280
290
  data,
@@ -318,7 +328,11 @@ def format_data_with_schema_dict(
318
328
  name_prefix=name_prefix,
319
329
  replace_values=replace_values,
320
330
  )
321
- parameters += f"{k}: {value}, "
331
+ # Use hash rocket syntax for keys with special characters
332
+ if _is_valid_ruby_symbol(k):
333
+ parameters += f"{k}: {value}, "
334
+ else:
335
+ parameters += f'"{k}" => {value}, '
322
336
  if not has_properties:
323
337
  name = None
324
338
 
@@ -36,11 +36,11 @@ module {{ module_name }}::{{ version|upper }}
36
36
  #
37
37
  {%- endif %}
38
38
  {%- for name, parameter in operation|parameters if parameter.required %}
39
- # @param {{ name|attribute_name }} [{{ get_type_for_parameter(parameter) }}] {{ parameter.get("description", "").replace('\n', ' ') }}
39
+ # @param {{ name|attribute_name }} [{{ get_type_for_parameter(parameter) }}] {{ (parameter.get("description") or "").replace('\n', ' ') }}
40
40
  {%- endfor %}
41
41
  # @param opts [Hash] the optional parameters
42
42
  {%- for name, parameter in operation|parameters if not parameter.required %}
43
- # @option opts [{{ get_type_for_parameter(parameter) }}] :{{ name|attribute_name }} {{ parameter.get("description", "").replace('\n', ' ') }}{% if "default" in parameter%} (default to {{ parameter.default|json }}) {% endif %}
43
+ # @option opts [{{ get_type_for_parameter(parameter) }}] :{{ name|attribute_name }} {{ (parameter.get("description") or "").replace('\n', ' ') }}{% if "default" in parameter%} (default to {{ parameter.default|json }}) {% endif %}
44
44
  {%- endfor %}
45
45
  # @return [Array<({% if returnType %}{{ returnType }}{% else %}nil{% endif %}, Integer, Hash)>] {% if returnType %}{{ returnType }} data{% else %}nil{% endif %}, response status code and response headers
46
46
  def {{ operation.operationId|snake_case }}_with_http_info({% for name, parameter in operation|parameters if parameter.required %}{{ name|attribute_name }}, {% endfor %}opts = {})
@@ -6,7 +6,7 @@ require 'date'
6
6
  require 'time'
7
7
 
8
8
  module {{ module_name }}::{{ version|upper }}
9
- # {{ model.description.rstrip()|replace('\n', '\n# ')|indent(2) }}
9
+ # {{ (model.description or "").rstrip()|replace('\n', '\n# ')|indent(2) }}
10
10
  {%- if model.deprecated %}
11
11
  #
12
12
  # @deprecated This model is deprecated.
@@ -16,7 +16,7 @@
16
16
  or
17
17
  definition.enum is defined #}
18
18
 
19
- {{ definition.description|block_comment|indent(4) }}
19
+ {{ (definition.description or "")|block_comment|indent(4) }}
20
20
  {%- if has_validation %}
21
21
  attr_reader :{{ attr|attribute_name }}
22
22
  {%- else %}
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def assert(condition, message = "Assertion failed")
4
+ raise message unless condition
5
+ print "."
6
+ end
7
+
8
+ def assert_equal(expected, actual, message = nil)
9
+ msg = message || "Expected #{expected.inspect}, got #{actual.inspect}"
10
+ raise msg unless expected == actual
11
+ print "."
12
+ end
13
+
14
+ def assert_includes(collection, item, message = nil)
15
+ msg = message || "Expected #{collection.inspect} to include #{item.inspect}"
16
+ raise msg unless collection.include?(item)
17
+ print "."
18
+ end
19
+
20
+ test_cases = [
21
+ ['valid_key', true],
22
+ ['_valid_key', true],
23
+ ['ValidKey123', true],
24
+ ['key123', true],
25
+ ['key.with.dots', false],
26
+ ['123invalid', false],
27
+ ['.starts_with_dot', false],
28
+ ['', false],
29
+ ['key-with-dash', false],
30
+ ['key with space', false],
31
+ ['key@special', false]
32
+ ]
33
+
34
+ test_cases.each do |key, expected|
35
+ begin
36
+ eval("{#{key}: 'value'}")
37
+ assert(expected, "Expected '#{key}' to fail but it succeeded")
38
+ rescue SyntaxError
39
+ assert(!expected, "Expected '#{key}' to succeed but it failed")
40
+ end
41
+ end
42
+
43
+ hash = {
44
+ "ocsf.activity_name" => 'Other',
45
+ "ocsf.activity_id" => '99'
46
+ }
47
+
48
+ assert(hash.is_a?(Hash))
49
+ assert_equal('Other', hash["ocsf.activity_name"])
50
+ assert_equal('99', hash["ocsf.activity_id"])
51
+ assert_includes(hash.inspect, '"ocsf.activity_name"=>"Other"')
52
+ assert_includes(hash.inspect, '"ocsf.activity_id"=>"99"')
53
+
54
+ hash = {
55
+ "ocsf.activity_name" => ['eventName']
56
+ }
57
+
58
+ assert(hash.is_a?(Hash))
59
+ assert_equal(['eventName'], hash["ocsf.activity_name"])
60
+ assert_includes(hash.inspect, '"ocsf.activity_name"=>["eventName"]')
61
+
62
+ hash = {
63
+ normal_key: 'value1',
64
+ another_key: 'value2'
65
+ }
66
+
67
+ assert(hash.is_a?(Hash))
68
+ assert_equal('value1', hash[:normal_key])
69
+ assert_equal('value2', hash[:another_key])
data/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.44.0/2025-10-27
4
+
5
+ ### Added
6
+ * Add endpoints for Software Composition Analysis [#2743](https://github.com/DataDog/datadog-api-client-ruby/pull/2743)
7
+ * Add support for `Schema Processor` in `Logs Pipelines` [#2723](https://github.com/DataDog/datadog-api-client-ruby/pull/2723)
8
+ * Add new DeleteAssignee endpoint to Error Tracking APIs [#2717](https://github.com/DataDog/datadog-api-client-ruby/pull/2717)
9
+ * document agentless GCP scan options CRUD endpoints [#2714](https://github.com/DataDog/datadog-api-client-ruby/pull/2714)
10
+ * Document `/api/v2/roles/templates` [#2703](https://github.com/DataDog/datadog-api-client-ruby/pull/2703)
11
+ * Add Reference Tables API spec [#2702](https://github.com/DataDog/datadog-api-client-ruby/pull/2702)
12
+ * Add blockedRequestPatterns to synthetics browser test options [#2696](https://github.com/DataDog/datadog-api-client-ruby/pull/2696)
13
+ * Add `BulkDeleteDatastoreItems` to Datastore API spec [#2695](https://github.com/DataDog/datadog-api-client-ruby/pull/2695)
14
+ * Add some missing Workload Protection agent rule fields [#2694](https://github.com/DataDog/datadog-api-client-ruby/pull/2694)
15
+ * Add AzureScanOptions to agentless scanning API [#2692](https://github.com/DataDog/datadog-api-client-ruby/pull/2692)
16
+ * Add conditional recipients to notification rule [#2688](https://github.com/DataDog/datadog-api-client-ruby/pull/2688)
17
+ * Documenting the new Flaky Test Management API endpoint for public beta [#2665](https://github.com/DataDog/datadog-api-client-ruby/pull/2665)
18
+
19
+ ### Fixed
20
+ * fix edge case with periods in keys [#2722](https://github.com/DataDog/datadog-api-client-ruby/pull/2722)
21
+ * Update the summary name for get a tag pipeline ruleset. [#2718](https://github.com/DataDog/datadog-api-client-ruby/pull/2718)
22
+
23
+ ### Changed
24
+ * Include mention to new scanned-assets-metadata endpoint on container images v1 endpoint [#2721](https://github.com/DataDog/datadog-api-client-ruby/pull/2721)
25
+ * Include mention to new scanned-assets-metadata endpoint on hosts v1 endpoint [#2720](https://github.com/DataDog/datadog-api-client-ruby/pull/2720)
26
+ * security_monitoring - Add indexes to deprecate index in ruleQuery [#2715](https://github.com/DataDog/datadog-api-client-ruby/pull/2715)
27
+ * Add support for vulnerability management - Add ListScannedAssetsMetadata new endpoint and update existing ones [#2713](https://github.com/DataDog/datadog-api-client-ruby/pull/2713)
28
+ * Update description, operationId and examples for tag pipeline and custom allocation rules [#2709](https://github.com/DataDog/datadog-api-client-ruby/pull/2709)
29
+
3
30
  ## 2.43.0/2025-09-30
4
31
 
5
32
  ### Added
@@ -11,8 +11,8 @@ body = DatadogAPIClient::V1::LogsPipeline.new({
11
11
  processors: [
12
12
  DatadogAPIClient::V1::LogsGrokParser.new({
13
13
  grok: DatadogAPIClient::V1::LogsGrokParserRules.new({
14
- match_rules: 'rule_name_1 foo\nrule_name_2 bar\n',
15
- support_rules: 'rule_name_1 foo\nrule_name_2 bar\n',
14
+ match_rules: 'rule_name_1 foo\nrule_name_2 bar',
15
+ support_rules: 'rule_name_1 foo\nrule_name_2 bar',
16
16
  }),
17
17
  is_enabled: false,
18
18
  samples: [],
@@ -0,0 +1,248 @@
1
+ # Create a pipeline with Schema Processor and preserve_source true returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V1::LogsPipelinesAPI.new
5
+
6
+ body = DatadogAPIClient::V1::LogsPipeline.new({
7
+ filter: DatadogAPIClient::V1::LogsFilter.new({
8
+ query: "source:python",
9
+ }),
10
+ name: "testSchemaProcessor",
11
+ processors: [
12
+ DatadogAPIClient::V1::LogsSchemaProcessor.new({
13
+ type: DatadogAPIClient::V1::LogsSchemaProcessorType::SCHEMA_PROCESSOR,
14
+ is_enabled: true,
15
+ name: "Apply OCSF schema for 3001",
16
+ schema: DatadogAPIClient::V1::LogsSchemaData.new({
17
+ schema_type: "ocsf",
18
+ version: "1.5.0",
19
+ class_uid: 3001,
20
+ class_name: "Account Change",
21
+ profiles: [
22
+ "cloud",
23
+ "datetime",
24
+ ],
25
+ }),
26
+ mappers: [
27
+ DatadogAPIClient::V1::LogsSchemaCategoryMapper.new({
28
+ type: DatadogAPIClient::V1::LogsSchemaCategoryMapperType::SCHEMA_CATEGORY_MAPPER,
29
+ name: "activity_id and activity_name",
30
+ categories: [
31
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
32
+ filter: DatadogAPIClient::V1::LogsFilter.new({
33
+ query: "@eventName:(*Create*)",
34
+ }),
35
+ name: "Create",
36
+ id: 1,
37
+ }),
38
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
39
+ filter: DatadogAPIClient::V1::LogsFilter.new({
40
+ query: "@eventName:(ChangePassword OR PasswordUpdated)",
41
+ }),
42
+ name: "Password Change",
43
+ id: 3,
44
+ }),
45
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
46
+ filter: DatadogAPIClient::V1::LogsFilter.new({
47
+ query: "@eventName:(*Attach*)",
48
+ }),
49
+ name: "Attach Policy",
50
+ id: 7,
51
+ }),
52
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
53
+ filter: DatadogAPIClient::V1::LogsFilter.new({
54
+ query: "@eventName:(*Detach* OR *Remove*)",
55
+ }),
56
+ name: "Detach Policy",
57
+ id: 8,
58
+ }),
59
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
60
+ filter: DatadogAPIClient::V1::LogsFilter.new({
61
+ query: "@eventName:(*Delete*)",
62
+ }),
63
+ name: "Delete",
64
+ id: 6,
65
+ }),
66
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
67
+ filter: DatadogAPIClient::V1::LogsFilter.new({
68
+ query: "@eventName:*",
69
+ }),
70
+ name: "Other",
71
+ id: 99,
72
+ }),
73
+ ],
74
+ targets: DatadogAPIClient::V1::LogsSchemaCategoryMapperTargets.new({
75
+ name: "ocsf.activity_name",
76
+ id: "ocsf.activity_id",
77
+ }),
78
+ fallback: DatadogAPIClient::V1::LogsSchemaCategoryMapperFallback.new({
79
+ values: {
80
+ "ocsf.activity_id" => "99", "ocsf.activity_name" => "Other",
81
+ },
82
+ sources: {
83
+ "ocsf.activity_name" => [
84
+ "eventName",
85
+ ],
86
+ },
87
+ }),
88
+ }),
89
+ DatadogAPIClient::V1::LogsSchemaCategoryMapper.new({
90
+ type: DatadogAPIClient::V1::LogsSchemaCategoryMapperType::SCHEMA_CATEGORY_MAPPER,
91
+ name: "status",
92
+ categories: [
93
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
94
+ filter: DatadogAPIClient::V1::LogsFilter.new({
95
+ query: "-@errorCode:*",
96
+ }),
97
+ id: 1,
98
+ name: "Success",
99
+ }),
100
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
101
+ filter: DatadogAPIClient::V1::LogsFilter.new({
102
+ query: "@errorCode:*",
103
+ }),
104
+ id: 2,
105
+ name: "Failure",
106
+ }),
107
+ ],
108
+ targets: DatadogAPIClient::V1::LogsSchemaCategoryMapperTargets.new({
109
+ id: "ocsf.status_id",
110
+ name: "ocsf.status",
111
+ }),
112
+ }),
113
+ DatadogAPIClient::V1::LogsSchemaCategoryMapper.new({
114
+ type: DatadogAPIClient::V1::LogsSchemaCategoryMapperType::SCHEMA_CATEGORY_MAPPER,
115
+ name: "Set default severity",
116
+ categories: [
117
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
118
+ filter: DatadogAPIClient::V1::LogsFilter.new({
119
+ query: "@eventName:*",
120
+ }),
121
+ name: "Informational",
122
+ id: 1,
123
+ }),
124
+ ],
125
+ targets: DatadogAPIClient::V1::LogsSchemaCategoryMapperTargets.new({
126
+ name: "ocsf.severity",
127
+ id: "ocsf.severity_id",
128
+ }),
129
+ }),
130
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
131
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
132
+ name: "Map userIdentity to ocsf.user.uid",
133
+ sources: [
134
+ "userIdentity.principalId",
135
+ "responseElements.role.roleId",
136
+ "responseElements.user.userId",
137
+ ],
138
+ target: "ocsf.user.uid",
139
+ preserve_source: true,
140
+ }),
141
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
142
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
143
+ name: "Map userName to ocsf.user.name",
144
+ sources: [
145
+ "requestParameters.userName",
146
+ "responseElements.role.roleName",
147
+ "requestParameters.roleName",
148
+ "responseElements.user.userName",
149
+ ],
150
+ target: "ocsf.user.name",
151
+ preserve_source: true,
152
+ }),
153
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
154
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
155
+ name: "Map api to ocsf.api",
156
+ sources: [
157
+ "api",
158
+ ],
159
+ target: "ocsf.api",
160
+ preserve_source: true,
161
+ }),
162
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
163
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
164
+ name: "Map user to ocsf.user",
165
+ sources: [
166
+ "user",
167
+ ],
168
+ target: "ocsf.user",
169
+ preserve_source: true,
170
+ }),
171
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
172
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
173
+ name: "Map actor to ocsf.actor",
174
+ sources: [
175
+ "actor",
176
+ ],
177
+ target: "ocsf.actor",
178
+ preserve_source: true,
179
+ }),
180
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
181
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
182
+ name: "Map cloud to ocsf.cloud",
183
+ sources: [
184
+ "cloud",
185
+ ],
186
+ target: "ocsf.cloud",
187
+ preserve_source: true,
188
+ }),
189
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
190
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
191
+ name: "Map http_request to ocsf.http_request",
192
+ sources: [
193
+ "http_request",
194
+ ],
195
+ target: "ocsf.http_request",
196
+ preserve_source: true,
197
+ }),
198
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
199
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
200
+ name: "Map metadata to ocsf.metadata",
201
+ sources: [
202
+ "metadata",
203
+ ],
204
+ target: "ocsf.metadata",
205
+ preserve_source: true,
206
+ }),
207
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
208
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
209
+ name: "Map time to ocsf.time",
210
+ sources: [
211
+ "time",
212
+ ],
213
+ target: "ocsf.time",
214
+ preserve_source: true,
215
+ }),
216
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
217
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
218
+ name: "Map src_endpoint to ocsf.src_endpoint",
219
+ sources: [
220
+ "src_endpoint",
221
+ ],
222
+ target: "ocsf.src_endpoint",
223
+ preserve_source: true,
224
+ }),
225
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
226
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
227
+ name: "Map severity to ocsf.severity",
228
+ sources: [
229
+ "severity",
230
+ ],
231
+ target: "ocsf.severity",
232
+ preserve_source: true,
233
+ }),
234
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
235
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
236
+ name: "Map severity_id to ocsf.severity_id",
237
+ sources: [
238
+ "severity_id",
239
+ ],
240
+ target: "ocsf.severity_id",
241
+ preserve_source: true,
242
+ }),
243
+ ],
244
+ }),
245
+ ],
246
+ tags: [],
247
+ })
248
+ p api_instance.create_logs_pipeline(body)
@@ -0,0 +1,248 @@
1
+ # Create a pipeline with Schema Processor and preserve_source false returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V1::LogsPipelinesAPI.new
5
+
6
+ body = DatadogAPIClient::V1::LogsPipeline.new({
7
+ filter: DatadogAPIClient::V1::LogsFilter.new({
8
+ query: "source:python",
9
+ }),
10
+ name: "testSchemaProcessor",
11
+ processors: [
12
+ DatadogAPIClient::V1::LogsSchemaProcessor.new({
13
+ type: DatadogAPIClient::V1::LogsSchemaProcessorType::SCHEMA_PROCESSOR,
14
+ is_enabled: true,
15
+ name: "Apply OCSF schema for 3001",
16
+ schema: DatadogAPIClient::V1::LogsSchemaData.new({
17
+ schema_type: "ocsf",
18
+ version: "1.5.0",
19
+ class_uid: 3001,
20
+ class_name: "Account Change",
21
+ profiles: [
22
+ "cloud",
23
+ "datetime",
24
+ ],
25
+ }),
26
+ mappers: [
27
+ DatadogAPIClient::V1::LogsSchemaCategoryMapper.new({
28
+ type: DatadogAPIClient::V1::LogsSchemaCategoryMapperType::SCHEMA_CATEGORY_MAPPER,
29
+ name: "activity_id and activity_name",
30
+ categories: [
31
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
32
+ filter: DatadogAPIClient::V1::LogsFilter.new({
33
+ query: "@eventName:(*Create*)",
34
+ }),
35
+ name: "Create",
36
+ id: 1,
37
+ }),
38
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
39
+ filter: DatadogAPIClient::V1::LogsFilter.new({
40
+ query: "@eventName:(ChangePassword OR PasswordUpdated)",
41
+ }),
42
+ name: "Password Change",
43
+ id: 3,
44
+ }),
45
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
46
+ filter: DatadogAPIClient::V1::LogsFilter.new({
47
+ query: "@eventName:(*Attach*)",
48
+ }),
49
+ name: "Attach Policy",
50
+ id: 7,
51
+ }),
52
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
53
+ filter: DatadogAPIClient::V1::LogsFilter.new({
54
+ query: "@eventName:(*Detach* OR *Remove*)",
55
+ }),
56
+ name: "Detach Policy",
57
+ id: 8,
58
+ }),
59
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
60
+ filter: DatadogAPIClient::V1::LogsFilter.new({
61
+ query: "@eventName:(*Delete*)",
62
+ }),
63
+ name: "Delete",
64
+ id: 6,
65
+ }),
66
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
67
+ filter: DatadogAPIClient::V1::LogsFilter.new({
68
+ query: "@eventName:*",
69
+ }),
70
+ name: "Other",
71
+ id: 99,
72
+ }),
73
+ ],
74
+ targets: DatadogAPIClient::V1::LogsSchemaCategoryMapperTargets.new({
75
+ name: "ocsf.activity_name",
76
+ id: "ocsf.activity_id",
77
+ }),
78
+ fallback: DatadogAPIClient::V1::LogsSchemaCategoryMapperFallback.new({
79
+ values: {
80
+ "ocsf.activity_id" => "99", "ocsf.activity_name" => "Other",
81
+ },
82
+ sources: {
83
+ "ocsf.activity_name" => [
84
+ "eventName",
85
+ ],
86
+ },
87
+ }),
88
+ }),
89
+ DatadogAPIClient::V1::LogsSchemaCategoryMapper.new({
90
+ type: DatadogAPIClient::V1::LogsSchemaCategoryMapperType::SCHEMA_CATEGORY_MAPPER,
91
+ name: "status",
92
+ categories: [
93
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
94
+ filter: DatadogAPIClient::V1::LogsFilter.new({
95
+ query: "-@errorCode:*",
96
+ }),
97
+ id: 1,
98
+ name: "Success",
99
+ }),
100
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
101
+ filter: DatadogAPIClient::V1::LogsFilter.new({
102
+ query: "@errorCode:*",
103
+ }),
104
+ id: 2,
105
+ name: "Failure",
106
+ }),
107
+ ],
108
+ targets: DatadogAPIClient::V1::LogsSchemaCategoryMapperTargets.new({
109
+ id: "ocsf.status_id",
110
+ name: "ocsf.status",
111
+ }),
112
+ }),
113
+ DatadogAPIClient::V1::LogsSchemaCategoryMapper.new({
114
+ type: DatadogAPIClient::V1::LogsSchemaCategoryMapperType::SCHEMA_CATEGORY_MAPPER,
115
+ name: "Set default severity",
116
+ categories: [
117
+ DatadogAPIClient::V1::LogsSchemaCategoryMapperCategory.new({
118
+ filter: DatadogAPIClient::V1::LogsFilter.new({
119
+ query: "@eventName:*",
120
+ }),
121
+ name: "Informational",
122
+ id: 1,
123
+ }),
124
+ ],
125
+ targets: DatadogAPIClient::V1::LogsSchemaCategoryMapperTargets.new({
126
+ name: "ocsf.severity",
127
+ id: "ocsf.severity_id",
128
+ }),
129
+ }),
130
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
131
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
132
+ name: "Map userIdentity to ocsf.user.uid",
133
+ sources: [
134
+ "userIdentity.principalId",
135
+ "responseElements.role.roleId",
136
+ "responseElements.user.userId",
137
+ ],
138
+ target: "ocsf.user.uid",
139
+ preserve_source: false,
140
+ }),
141
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
142
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
143
+ name: "Map userName to ocsf.user.name",
144
+ sources: [
145
+ "requestParameters.userName",
146
+ "responseElements.role.roleName",
147
+ "requestParameters.roleName",
148
+ "responseElements.user.userName",
149
+ ],
150
+ target: "ocsf.user.name",
151
+ preserve_source: false,
152
+ }),
153
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
154
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
155
+ name: "Map api to ocsf.api",
156
+ sources: [
157
+ "api",
158
+ ],
159
+ target: "ocsf.api",
160
+ preserve_source: false,
161
+ }),
162
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
163
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
164
+ name: "Map user to ocsf.user",
165
+ sources: [
166
+ "user",
167
+ ],
168
+ target: "ocsf.user",
169
+ preserve_source: false,
170
+ }),
171
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
172
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
173
+ name: "Map actor to ocsf.actor",
174
+ sources: [
175
+ "actor",
176
+ ],
177
+ target: "ocsf.actor",
178
+ preserve_source: false,
179
+ }),
180
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
181
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
182
+ name: "Map cloud to ocsf.cloud",
183
+ sources: [
184
+ "cloud",
185
+ ],
186
+ target: "ocsf.cloud",
187
+ preserve_source: false,
188
+ }),
189
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
190
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
191
+ name: "Map http_request to ocsf.http_request",
192
+ sources: [
193
+ "http_request",
194
+ ],
195
+ target: "ocsf.http_request",
196
+ preserve_source: false,
197
+ }),
198
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
199
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
200
+ name: "Map metadata to ocsf.metadata",
201
+ sources: [
202
+ "metadata",
203
+ ],
204
+ target: "ocsf.metadata",
205
+ preserve_source: false,
206
+ }),
207
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
208
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
209
+ name: "Map time to ocsf.time",
210
+ sources: [
211
+ "time",
212
+ ],
213
+ target: "ocsf.time",
214
+ preserve_source: false,
215
+ }),
216
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
217
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
218
+ name: "Map src_endpoint to ocsf.src_endpoint",
219
+ sources: [
220
+ "src_endpoint",
221
+ ],
222
+ target: "ocsf.src_endpoint",
223
+ preserve_source: false,
224
+ }),
225
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
226
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
227
+ name: "Map severity to ocsf.severity",
228
+ sources: [
229
+ "severity",
230
+ ],
231
+ target: "ocsf.severity",
232
+ preserve_source: false,
233
+ }),
234
+ DatadogAPIClient::V1::LogsSchemaRemapper.new({
235
+ type: DatadogAPIClient::V1::LogsSchemaRemapperType::SCHEMA_REMAPPER,
236
+ name: "Map severity_id to ocsf.severity_id",
237
+ sources: [
238
+ "severity_id",
239
+ ],
240
+ target: "ocsf.severity_id",
241
+ preserve_source: false,
242
+ }),
243
+ ],
244
+ }),
245
+ ],
246
+ tags: [],
247
+ })
248
+ p api_instance.create_logs_pipeline(body)