datadog_api_client 2.29.1 → 2.30.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 (325) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/schemas/v1/openapi.yaml +591 -464
  4. data/.generator/schemas/v2/openapi.yaml +4175 -744
  5. data/.github/CODEOWNERS +5 -5
  6. data/.github/workflows/docs.yml +2 -2
  7. data/.github/workflows/prepare_release.yml +1 -1
  8. data/.github/workflows/test.yml +4 -1
  9. data/CHANGELOG.md +42 -0
  10. data/Gemfile +1 -1
  11. data/LICENSE-3rdparty.csv +1 -1
  12. data/RELEASING.md +1 -1
  13. data/examples/v1/azure-integration/UpdateAzureHostFilters.rb +9 -6
  14. data/examples/v1/azure-integration/UpdateAzureIntegration.rb +0 -6
  15. data/examples/v1/logs-pipelines/CreateLogsPipeline.rb +1 -0
  16. data/examples/v1/logs-pipelines/UpdateLogsPipeline.rb +1 -0
  17. data/examples/v1/monitors/CreateMonitor_1303514967.rb +32 -0
  18. data/examples/v1/monitors/ListMonitors.rb +1 -1
  19. data/examples/v1/monitors/{ListMonitors_3448441939.rb → ListMonitors_2154432960.rb} +1 -1
  20. data/examples/v1/monitors/{ListMonitors_2966492814.rb → ListMonitors_463213563.rb} +1 -1
  21. data/examples/v2/action-connection/CreateActionConnection.rb +22 -0
  22. data/examples/v2/action-connection/DeleteActionConnection.rb +5 -0
  23. data/examples/v2/action-connection/DeleteActionConnection_2142905164.rb +8 -0
  24. data/examples/v2/action-connection/GetActionConnection.rb +5 -0
  25. data/examples/v2/action-connection/UpdateActionConnection.rb +22 -0
  26. data/examples/v2/agentless-scanning/ListAwsScanOptions.rb +5 -0
  27. data/examples/v2/{apps → app-builder}/CreateApp.rb +4 -4
  28. data/examples/v2/{apps → app-builder}/DeleteApp.rb +1 -1
  29. data/examples/v2/{apps → app-builder}/DeleteApps.rb +2 -2
  30. data/examples/v2/{apps → app-builder}/GetApp.rb +1 -1
  31. data/examples/v2/{apps → app-builder}/ListApps.rb +1 -1
  32. data/examples/v2/app-builder/PublishApp.rb +11 -0
  33. data/examples/v2/app-builder/UnpublishApp.rb +11 -0
  34. data/examples/v2/{apps → app-builder}/UpdateApp.rb +2 -2
  35. data/examples/v2/ci-visibility-pipelines/CreateCIAppPipelineEvent_819339921.rb +29 -0
  36. data/examples/v2/csm-coverage-analysis/GetCSMCloudAccountsCoverageAnalysis.rb +5 -0
  37. data/examples/v2/csm-coverage-analysis/GetCSMHostsAndContainersCoverageAnalysis.rb +5 -0
  38. data/examples/v2/csm-coverage-analysis/GetCSMServerlessCoverageAnalysis.rb +5 -0
  39. data/examples/v2/data-deletion/CreateDataDeletionRequest.rb +1 -0
  40. data/examples/v2/events/CreateEvent.rb +1 -1
  41. data/examples/v2/logs/ListLogs.rb +12 -6
  42. data/examples/v2/logs/ListLogsGet.rb +1 -1
  43. data/examples/v2/logs/ListLogsGet_175182691.rb +5 -0
  44. data/examples/v2/logs/ListLogs_3400928236.rb +23 -0
  45. data/examples/v2/logs/ListLogs_534975433.rb +29 -0
  46. data/examples/v2/microsoft-teams-integration/CreateWorkflowsWebhookHandle.rb +15 -0
  47. data/examples/v2/microsoft-teams-integration/CreateWorkflowsWebhookHandle_1716851881.rb +15 -0
  48. data/examples/v2/microsoft-teams-integration/DeleteWorkflowsWebhookHandle.rb +5 -0
  49. data/examples/v2/microsoft-teams-integration/DeleteWorkflowsWebhookHandle_107549514.rb +8 -0
  50. data/examples/v2/microsoft-teams-integration/GetWorkflowsWebhookHandle.rb +5 -0
  51. data/examples/v2/microsoft-teams-integration/GetWorkflowsWebhookHandle_3421443805.rb +8 -0
  52. data/examples/v2/microsoft-teams-integration/ListWorkflowsWebhookHandles.rb +5 -0
  53. data/examples/v2/microsoft-teams-integration/ListWorkflowsWebhookHandles_620762083.rb +5 -0
  54. data/examples/v2/microsoft-teams-integration/UpdateWorkflowsWebhookHandle.rb +15 -0
  55. data/examples/v2/microsoft-teams-integration/UpdateWorkflowsWebhookHandle_163189594.rb +18 -0
  56. data/examples/v2/security-monitoring/CreateSecurityMonitoringSuppression.rb +1 -0
  57. data/examples/v2/security-monitoring/CreateSecurityMonitoringSuppression_3192265332.rb +1 -0
  58. data/examples/v2/security-monitoring/CreateSignalNotificationRule.rb +30 -0
  59. data/examples/v2/security-monitoring/CreateVulnerabilityNotificationRule.rb +30 -0
  60. data/examples/v2/security-monitoring/DeleteSignalNotificationRule.rb +8 -0
  61. data/examples/v2/security-monitoring/DeleteVulnerabilityNotificationRule.rb +8 -0
  62. data/examples/v2/security-monitoring/GetSBOM.rb +5 -0
  63. data/examples/v2/security-monitoring/GetSignalNotificationRule.rb +8 -0
  64. data/examples/v2/security-monitoring/GetSignalNotificationRules.rb +5 -0
  65. data/examples/v2/security-monitoring/GetVulnerabilityNotificationRule.rb +8 -0
  66. data/examples/v2/security-monitoring/GetVulnerabilityNotificationRules.rb +5 -0
  67. data/examples/v2/security-monitoring/ListVulnerabilities.rb +10 -0
  68. data/examples/v2/security-monitoring/ListVulnerableAssets.rb +10 -0
  69. data/examples/v2/security-monitoring/PatchSignalNotificationRule.rb +35 -0
  70. data/examples/v2/security-monitoring/PatchVulnerabilityNotificationRule.rb +35 -0
  71. data/examples/v2/security-monitoring/RunHistoricalJob.rb +2 -2
  72. data/examples/v2/usage-metering/GetActiveBillingDimensions.rb +0 -3
  73. data/examples/v2/usage-metering/GetBillingDimensionMapping.rb +0 -3
  74. data/examples/v2/usage-metering/GetMonthlyCostAttribution.rb +0 -3
  75. data/lib/datadog_api_client/configuration.rb +2 -5
  76. data/lib/datadog_api_client/inflector.rb +145 -44
  77. data/lib/datadog_api_client/v1/api/monitors_api.rb +28 -4
  78. data/lib/datadog_api_client/v1/models/azure_account.rb +42 -13
  79. data/lib/datadog_api_client/v1/models/dashboard.rb +0 -2
  80. data/lib/datadog_api_client/v1/models/logs_pipeline.rb +23 -1
  81. data/lib/datadog_api_client/v1/models/monitor_formula_and_function_cost_aggregator.rb +34 -0
  82. data/lib/datadog_api_client/v1/models/monitor_formula_and_function_cost_data_source.rb +28 -0
  83. data/lib/datadog_api_client/v1/models/{azure_account_metrics_config.rb → monitor_formula_and_function_cost_query_definition.rb} +81 -16
  84. data/lib/datadog_api_client/v1/models/monitor_formula_and_function_query_definition.rb +2 -1
  85. data/lib/datadog_api_client/v1/models/monitor_type.rb +1 -0
  86. data/lib/datadog_api_client/v1/models/monitor_update_request.rb +1 -1
  87. data/lib/datadog_api_client/v1/models/resource_provider_config.rb +115 -0
  88. data/lib/datadog_api_client/v1/models/synthetics_step.rb +11 -1
  89. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +184 -4
  90. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +183 -3
  91. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +183 -3
  92. data/lib/datadog_api_client/v2/api/action_connection_api.rb +295 -0
  93. data/lib/datadog_api_client/v2/api/agentless_scanning_api.rb +86 -0
  94. data/lib/datadog_api_client/v2/api/{apps_api.rb → app_builder_api.rb} +184 -38
  95. data/lib/datadog_api_client/v2/api/csm_coverage_analysis_api.rb +212 -0
  96. data/lib/datadog_api_client/v2/api/logs_api.rb +8 -8
  97. data/lib/datadog_api_client/v2/api/metrics_api.rb +1 -1
  98. data/lib/datadog_api_client/v2/api/microsoft_teams_integration_api.rb +331 -0
  99. data/lib/datadog_api_client/v2/api/restriction_policies_api.rb +13 -3
  100. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +1123 -1
  101. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +1 -19
  102. data/lib/datadog_api_client/v2/models/action_connection_attributes.rb +144 -0
  103. data/lib/datadog_api_client/v2/models/{app_builder_error_errors_items.rb → action_connection_attributes_update.rb} +18 -18
  104. data/lib/datadog_api_client/v2/models/action_connection_data.rb +154 -0
  105. data/lib/datadog_api_client/v2/models/{delete_app_response_data_type.rb → action_connection_data_type.rb} +3 -3
  106. data/lib/datadog_api_client/v2/models/action_connection_data_update.rb +144 -0
  107. data/lib/datadog_api_client/v2/models/action_connection_integration.rb +63 -0
  108. data/lib/datadog_api_client/v2/models/action_connection_integration_update.rb +63 -0
  109. data/lib/datadog_api_client/v2/models/advisory.rb +154 -0
  110. data/lib/datadog_api_client/v2/models/app_builder_event.rb +1 -1
  111. data/lib/datadog_api_client/v2/models/{get_app_response_data_type.rb → app_definition_type.rb} +2 -2
  112. data/lib/datadog_api_client/v2/models/{deployment_included_type.rb → app_deployment_type.rb} +2 -2
  113. data/lib/datadog_api_client/v2/models/app_meta.rb +15 -25
  114. data/lib/datadog_api_client/v2/models/{get_app_response_relationship.rb → app_relationship.rb} +5 -5
  115. data/lib/datadog_api_client/v2/models/asset.rb +165 -0
  116. data/lib/datadog_api_client/v2/models/asset_attributes.rb +218 -0
  117. data/lib/datadog_api_client/v2/models/{script_data_type.rb → asset_entity_type.rb} +3 -3
  118. data/lib/datadog_api_client/v2/models/asset_operating_system.rb +133 -0
  119. data/lib/datadog_api_client/v2/models/asset_risks.rb +163 -0
  120. data/lib/datadog_api_client/v2/models/asset_type.rb +30 -0
  121. data/lib/datadog_api_client/v2/models/{disable_app_response_data_attributes.rb → asset_version.rb} +21 -11
  122. data/lib/datadog_api_client/v2/models/aws_assume_role.rb +191 -0
  123. data/lib/datadog_api_client/v2/models/{input_schema_data_type.rb → aws_assume_role_type.rb} +3 -3
  124. data/lib/datadog_api_client/v2/models/aws_assume_role_update.rb +166 -0
  125. data/lib/datadog_api_client/v2/models/aws_credentials.rb +62 -0
  126. data/lib/datadog_api_client/v2/models/aws_credentials_update.rb +62 -0
  127. data/lib/datadog_api_client/v2/models/aws_integration.rb +144 -0
  128. data/lib/datadog_api_client/v2/models/{deploy_app_response_data_type.rb → aws_integration_type.rb} +3 -3
  129. data/lib/datadog_api_client/v2/models/aws_integration_update.rb +133 -0
  130. data/lib/datadog_api_client/v2/models/aws_scan_options_attributes.rb +135 -0
  131. data/lib/datadog_api_client/v2/models/{input_schema_data.rb → aws_scan_options_data.rb} +8 -8
  132. data/lib/datadog_api_client/v2/models/aws_scan_options_response.rb +107 -0
  133. data/lib/datadog_api_client/v2/models/{delete_apps_request_data_items_type.rb → aws_scan_options_type.rb} +3 -3
  134. data/lib/datadog_api_client/v2/models/change_event_custom_attributes.rb +1 -1
  135. data/lib/datadog_api_client/v2/models/change_event_custom_attributes_changed_resource.rb +1 -1
  136. data/lib/datadog_api_client/v2/models/change_event_custom_attributes_changed_resource_type.rb +1 -0
  137. data/lib/datadog_api_client/v2/models/ci_app_create_pipeline_event_request_attributes.rb +11 -1
  138. data/lib/datadog_api_client/v2/models/{deployment_included_meta.rb → code_location.rb} +41 -33
  139. data/lib/datadog_api_client/v2/models/component.rb +6 -6
  140. data/lib/datadog_api_client/v2/models/component_grid.rb +6 -6
  141. data/lib/datadog_api_client/v2/models/component_grid_properties.rb +4 -4
  142. data/lib/datadog_api_client/v2/models/component_grid_properties_is_visible.rb +1 -1
  143. data/lib/datadog_api_client/v2/models/component_grid_type.rb +1 -1
  144. data/lib/datadog_api_client/v2/models/component_properties.rb +3 -3
  145. data/lib/datadog_api_client/v2/models/component_properties_is_visible.rb +1 -1
  146. data/lib/datadog_api_client/v2/models/component_type.rb +1 -1
  147. data/lib/datadog_api_client/v2/models/create_action_connection_request.rb +123 -0
  148. data/lib/datadog_api_client/v2/models/{script.rb → create_action_connection_response.rb} +5 -5
  149. data/lib/datadog_api_client/v2/models/create_app_request.rb +2 -2
  150. data/lib/datadog_api_client/v2/models/create_app_request_data.rb +4 -4
  151. data/lib/datadog_api_client/v2/models/create_app_request_data_attributes.rb +19 -41
  152. data/lib/datadog_api_client/v2/models/create_app_response.rb +2 -2
  153. data/lib/datadog_api_client/v2/models/create_app_response_data.rb +5 -5
  154. data/lib/datadog_api_client/v2/models/create_data_deletion_request_body_data.rb +24 -3
  155. data/lib/datadog_api_client/v2/models/{disable_app_response_data_type.rb → create_data_deletion_request_body_data_type.rb} +3 -3
  156. data/lib/datadog_api_client/v2/models/create_notification_rule_parameters.rb +105 -0
  157. data/lib/datadog_api_client/v2/models/create_notification_rule_parameters_data.rb +144 -0
  158. data/lib/datadog_api_client/v2/models/create_notification_rule_parameters_data_attributes.rb +195 -0
  159. data/lib/datadog_api_client/v2/models/csm_cloud_accounts_coverage_analysis_attributes.rb +145 -0
  160. data/lib/datadog_api_client/v2/models/{disable_app_response_data.rb → csm_cloud_accounts_coverage_analysis_data.rb} +9 -19
  161. data/lib/datadog_api_client/v2/models/csm_cloud_accounts_coverage_analysis_response.rb +105 -0
  162. data/lib/datadog_api_client/v2/models/csm_coverage_analysis.rb +135 -0
  163. data/lib/datadog_api_client/v2/models/csm_hosts_and_containers_coverage_analysis_attributes.rb +145 -0
  164. data/lib/datadog_api_client/v2/models/csm_hosts_and_containers_coverage_analysis_data.rb +125 -0
  165. data/lib/datadog_api_client/v2/models/csm_hosts_and_containers_coverage_analysis_response.rb +105 -0
  166. data/lib/datadog_api_client/v2/models/csm_serverless_coverage_analysis_attributes.rb +125 -0
  167. data/lib/datadog_api_client/v2/models/csm_serverless_coverage_analysis_data.rb +125 -0
  168. data/lib/datadog_api_client/v2/models/csm_serverless_coverage_analysis_response.rb +105 -0
  169. data/lib/datadog_api_client/v2/models/custom_connection.rb +5 -5
  170. data/lib/datadog_api_client/v2/models/custom_connection_attributes.rb +3 -3
  171. data/lib/datadog_api_client/v2/models/custom_connection_attributes_on_prem_runner.rb +3 -3
  172. data/lib/datadog_api_client/v2/models/custom_connection_type.rb +1 -1
  173. data/lib/datadog_api_client/v2/models/cvss.rb +165 -0
  174. data/lib/datadog_api_client/v2/models/delete_app_response.rb +1 -1
  175. data/lib/datadog_api_client/v2/models/delete_app_response_data.rb +4 -4
  176. data/lib/datadog_api_client/v2/models/delete_apps_request.rb +2 -2
  177. data/lib/datadog_api_client/v2/models/delete_apps_request_data_items.rb +5 -5
  178. data/lib/datadog_api_client/v2/models/delete_apps_response.rb +2 -2
  179. data/lib/datadog_api_client/v2/models/delete_apps_response_data_items.rb +5 -5
  180. data/lib/datadog_api_client/v2/models/dependency_location.rb +207 -0
  181. data/lib/datadog_api_client/v2/models/{deploy_app_response_data.rb → deployment.rb} +11 -11
  182. data/lib/datadog_api_client/v2/models/{deploy_app_response_data_attributes.rb → deployment_attributes.rb} +5 -5
  183. data/lib/datadog_api_client/v2/models/{deployment_relationship_meta.rb → deployment_metadata.rb} +9 -9
  184. data/lib/datadog_api_client/v2/models/deployment_relationship.rb +4 -4
  185. data/lib/datadog_api_client/v2/models/deployment_relationship_data.rb +5 -5
  186. data/lib/datadog_api_client/v2/models/entity_v3.rb +2 -1
  187. data/lib/datadog_api_client/v2/models/entity_v3_api.rb +180 -0
  188. data/lib/datadog_api_client/v2/models/entity_v3_api_datadog.rb +126 -0
  189. data/lib/datadog_api_client/v2/models/entity_v3_api_kind.rb +26 -0
  190. data/lib/datadog_api_client/v2/models/entity_v3_api_spec.rb +151 -0
  191. data/lib/datadog_api_client/v2/models/entity_v3_api_spec_interface_definition.rb +80 -0
  192. data/lib/datadog_api_client/v2/models/{entity_v3_metadata_owner.rb → entity_v3_api_spec_interface_file_ref.rb} +12 -12
  193. data/lib/datadog_api_client/v2/models/entity_v3_metadata.rb +1 -1
  194. data/lib/datadog_api_client/v2/models/epss.rb +144 -0
  195. data/lib/datadog_api_client/v2/models/{input_schema.rb → get_action_connection_response.rb} +5 -5
  196. data/lib/datadog_api_client/v2/models/get_app_response.rb +7 -7
  197. data/lib/datadog_api_client/v2/models/get_app_response_data.rb +6 -6
  198. data/lib/datadog_api_client/v2/models/get_app_response_data_attributes.rb +20 -42
  199. data/lib/datadog_api_client/v2/models/get_sbom_response.rb +123 -0
  200. data/lib/datadog_api_client/v2/models/historical_job_options.rb +168 -0
  201. data/lib/datadog_api_client/v2/models/historical_job_query.rb +171 -0
  202. data/lib/datadog_api_client/v2/models/{app_builder_error.rb → http_body.rb} +21 -13
  203. data/lib/datadog_api_client/v2/models/http_credentials.rb +62 -0
  204. data/lib/datadog_api_client/v2/models/http_credentials_update.rb +62 -0
  205. data/lib/datadog_api_client/v2/models/http_header.rb +150 -0
  206. data/lib/datadog_api_client/v2/models/http_header_update.rb +149 -0
  207. data/lib/datadog_api_client/v2/models/http_integration.rb +171 -0
  208. data/lib/datadog_api_client/v2/models/http_integration_type.rb +26 -0
  209. data/lib/datadog_api_client/v2/models/http_integration_update.rb +156 -0
  210. data/lib/datadog_api_client/v2/models/http_token.rb +171 -0
  211. data/lib/datadog_api_client/v2/models/http_token_auth.rb +169 -0
  212. data/lib/datadog_api_client/v2/models/http_token_auth_type.rb +26 -0
  213. data/lib/datadog_api_client/v2/models/http_token_auth_update.rb +169 -0
  214. data/lib/datadog_api_client/v2/models/http_token_update.rb +181 -0
  215. data/lib/datadog_api_client/v2/models/job_definition.rb +6 -18
  216. data/lib/datadog_api_client/v2/models/jsonapi_error_item.rb +21 -1
  217. data/lib/datadog_api_client/v2/models/{app_builder_error_errors_items_source.rb → jsonapi_error_item_source.rb} +16 -6
  218. data/lib/datadog_api_client/v2/models/library.rb +133 -0
  219. data/lib/datadog_api_client/v2/models/links.rb +185 -0
  220. data/lib/datadog_api_client/v2/models/list_apps_response.rb +5 -5
  221. data/lib/datadog_api_client/v2/models/list_apps_response_data_items.rb +8 -8
  222. data/lib/datadog_api_client/v2/models/list_apps_response_data_items_attributes.rb +6 -6
  223. data/lib/datadog_api_client/v2/models/list_apps_response_data_items_relationships.rb +2 -2
  224. data/lib/datadog_api_client/v2/models/list_apps_response_meta.rb +2 -2
  225. data/lib/datadog_api_client/v2/models/list_apps_response_meta_page.rb +3 -3
  226. data/lib/datadog_api_client/v2/models/list_vulnerabilities_response.rb +145 -0
  227. data/lib/datadog_api_client/v2/models/list_vulnerable_assets_response.rb +145 -0
  228. data/lib/datadog_api_client/v2/models/logs_archive_destination_s3.rb +11 -1
  229. data/lib/datadog_api_client/v2/models/logs_archive_encryption_s3.rb +133 -0
  230. data/lib/datadog_api_client/v2/models/logs_archive_encryption_s3_type.rb +28 -0
  231. data/lib/datadog_api_client/v2/models/metadata.rb +165 -0
  232. data/lib/datadog_api_client/v2/models/microsoft_teams_create_workflows_webhook_handle_request.rb +123 -0
  233. data/lib/datadog_api_client/v2/models/microsoft_teams_update_workflows_webhook_handle_request.rb +123 -0
  234. data/lib/datadog_api_client/v2/models/microsoft_teams_update_workflows_webhook_handle_request_data.rb +144 -0
  235. data/lib/datadog_api_client/v2/models/microsoft_teams_workflows_webhook_handle_attributes.rb +144 -0
  236. data/lib/datadog_api_client/v2/models/{input_schema_data_attributes_parameters_items_data_attributes.rb → microsoft_teams_workflows_webhook_handle_request_attributes.rb} +46 -51
  237. data/lib/datadog_api_client/v2/models/microsoft_teams_workflows_webhook_handle_request_data.rb +144 -0
  238. data/lib/datadog_api_client/v2/models/microsoft_teams_workflows_webhook_handle_response.rb +123 -0
  239. data/lib/datadog_api_client/v2/models/microsoft_teams_workflows_webhook_handle_response_data.rb +147 -0
  240. data/lib/datadog_api_client/v2/models/{create_app_response_data_type.rb → microsoft_teams_workflows_webhook_handle_type.rb} +3 -3
  241. data/lib/datadog_api_client/v2/models/microsoft_teams_workflows_webhook_handles_response.rb +125 -0
  242. data/lib/datadog_api_client/v2/models/microsoft_teams_workflows_webhook_response_attributes.rb +123 -0
  243. data/lib/datadog_api_client/v2/models/notification_rule.rb +168 -0
  244. data/lib/datadog_api_client/v2/models/notification_rule_attributes.rb +311 -0
  245. data/lib/datadog_api_client/v2/models/{input_schema_data_attributes_parameters_items.rb → notification_rule_response.rb} +9 -5
  246. data/lib/datadog_api_client/v2/models/{create_app_request_data_type.rb → notification_rules_type.rb} +3 -3
  247. data/lib/datadog_api_client/v2/models/patch_notification_rule_parameters.rb +105 -0
  248. data/lib/datadog_api_client/v2/models/patch_notification_rule_parameters_data.rb +165 -0
  249. data/lib/datadog_api_client/v2/models/patch_notification_rule_parameters_data_attributes.rb +165 -0
  250. data/lib/datadog_api_client/v2/models/{disable_app_response.rb → publish_app_response.rb} +5 -5
  251. data/lib/datadog_api_client/v2/models/query.rb +7 -7
  252. data/lib/datadog_api_client/v2/models/query_type.rb +1 -1
  253. data/lib/datadog_api_client/v2/models/remediation.rb +278 -0
  254. data/lib/datadog_api_client/v2/models/rule_severity.rb +31 -0
  255. data/lib/datadog_api_client/v2/models/rule_types_items.rb +42 -0
  256. data/lib/datadog_api_client/v2/models/{deployment_included_attributes.rb → rule_user.rb} +21 -11
  257. data/lib/datadog_api_client/v2/models/{script_data.rb → sbom.rb} +8 -8
  258. data/lib/datadog_api_client/v2/models/sbom_attributes.rb +230 -0
  259. data/lib/datadog_api_client/v2/models/sbom_component.rb +185 -0
  260. data/lib/datadog_api_client/v2/models/sbom_component_type.rb +37 -0
  261. data/lib/datadog_api_client/v2/models/sbom_metadata.rb +105 -0
  262. data/lib/datadog_api_client/v2/models/{script_data_attributes.rb → sbom_metadata_component.rb} +6 -16
  263. data/lib/datadog_api_client/v2/models/sbom_type.rb +26 -0
  264. data/lib/datadog_api_client/v2/models/security_monitoring_reference_table.rb +2 -2
  265. data/lib/datadog_api_client/v2/models/security_monitoring_rule_case_create.rb +2 -2
  266. data/lib/datadog_api_client/v2/models/security_monitoring_rule_evaluation_window.rb +1 -1
  267. data/lib/datadog_api_client/v2/models/security_monitoring_rule_impossible_travel_options.rb +1 -1
  268. data/lib/datadog_api_client/v2/models/security_monitoring_rule_keep_alive.rb +1 -1
  269. data/lib/datadog_api_client/v2/models/security_monitoring_rule_new_value_options.rb +1 -1
  270. data/lib/datadog_api_client/v2/models/security_monitoring_rule_options.rb +6 -6
  271. data/lib/datadog_api_client/v2/models/security_monitoring_rule_third_party_options.rb +1 -1
  272. data/lib/datadog_api_client/v2/models/security_monitoring_rule_update_payload.rb +1 -1
  273. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_create_payload.rb +1 -1
  274. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_payload.rb +1 -1
  275. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_response.rb +1 -1
  276. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_create_payload.rb +1 -1
  277. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_payload.rb +1 -1
  278. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_response.rb +1 -1
  279. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_test_payload.rb +1 -1
  280. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_attributes.rb +11 -1
  281. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_create_attributes.rb +11 -1
  282. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_update_attributes.rb +12 -1
  283. data/lib/datadog_api_client/v2/models/security_monitoring_third_party_rule_case_create.rb +1 -1
  284. data/lib/datadog_api_client/v2/models/selectors.rb +160 -0
  285. data/lib/datadog_api_client/v2/models/spec_version.rb +31 -0
  286. data/lib/datadog_api_client/v2/models/token_type.rb +26 -0
  287. data/lib/datadog_api_client/v2/models/trigger_source.rb +28 -0
  288. data/lib/datadog_api_client/v2/models/unpublish_app_response.rb +105 -0
  289. data/lib/datadog_api_client/v2/models/update_action_connection_request.rb +123 -0
  290. data/lib/datadog_api_client/v2/models/{deploy_app_response.rb → update_action_connection_response.rb} +5 -5
  291. data/lib/datadog_api_client/v2/models/update_app_request.rb +2 -2
  292. data/lib/datadog_api_client/v2/models/update_app_request_data.rb +6 -6
  293. data/lib/datadog_api_client/v2/models/update_app_request_data_attributes.rb +19 -41
  294. data/lib/datadog_api_client/v2/models/update_app_response.rb +7 -7
  295. data/lib/datadog_api_client/v2/models/update_app_response_data.rb +6 -6
  296. data/lib/datadog_api_client/v2/models/update_app_response_data_attributes.rb +20 -42
  297. data/lib/datadog_api_client/v2/models/url_param.rb +150 -0
  298. data/lib/datadog_api_client/v2/models/url_param_update.rb +149 -0
  299. data/lib/datadog_api_client/v2/models/vulnerabilities_type.rb +26 -0
  300. data/lib/datadog_api_client/v2/models/vulnerability.rb +186 -0
  301. data/lib/datadog_api_client/v2/models/vulnerability_attributes.rb +462 -0
  302. data/lib/datadog_api_client/v2/models/{deployment_meta.rb → vulnerability_cvss.rb} +43 -34
  303. data/lib/datadog_api_client/v2/models/vulnerability_dependency_locations.rb +143 -0
  304. data/lib/datadog_api_client/v2/models/vulnerability_ecosystem.rb +36 -0
  305. data/lib/datadog_api_client/v2/models/vulnerability_relationships.rb +123 -0
  306. data/lib/datadog_api_client/v2/models/vulnerability_relationships_affects.rb +123 -0
  307. data/lib/datadog_api_client/v2/models/{deployment_included.rb → vulnerability_relationships_affects_data.rb} +38 -29
  308. data/lib/datadog_api_client/v2/models/vulnerability_risks.rb +198 -0
  309. data/lib/datadog_api_client/v2/models/vulnerability_severity.rb +31 -0
  310. data/lib/datadog_api_client/v2/models/vulnerability_status.rb +30 -0
  311. data/lib/datadog_api_client/v2/models/vulnerability_tool.rb +28 -0
  312. data/lib/datadog_api_client/v2/models/vulnerability_type.rb +67 -0
  313. data/lib/datadog_api_client/version.rb +1 -1
  314. metadata +194 -56
  315. data/examples/v2/app-deployment/DeployApp.rb +0 -11
  316. data/examples/v2/app-deployment/DisableApp.rb +0 -11
  317. data/lib/datadog_api_client/v2/api/app_deployment_api.rb +0 -168
  318. data/lib/datadog_api_client/v2/models/delete_apps_response_data_items_type.rb +0 -26
  319. data/lib/datadog_api_client/v2/models/deployment_relationship_data_type.rb +0 -26
  320. data/lib/datadog_api_client/v2/models/input_schema_data_attributes.rb +0 -107
  321. data/lib/datadog_api_client/v2/models/input_schema_data_attributes_parameters_items_data.rb +0 -105
  322. data/lib/datadog_api_client/v2/models/list_apps_response_data_items_type.rb +0 -26
  323. data/lib/datadog_api_client/v2/models/update_app_request_data_type.rb +0 -26
  324. data/lib/datadog_api_client/v2/models/update_app_response_data_type.rb +0 -26
  325. data/lib/datadog_api_client/v2/models/update_app_response_relationship.rb +0 -117
@@ -0,0 +1,311 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Attributes of the notification rule.
21
+ class NotificationRuleAttributes
22
+ include BaseGenericModel
23
+
24
+ # Date as Unix timestamp in milliseconds.
25
+ attr_reader :created_at
26
+
27
+ # User creating or modifying a rule.
28
+ attr_reader :created_by
29
+
30
+ # Field used to enable or disable the rule.
31
+ attr_reader :enabled
32
+
33
+ # Date as Unix timestamp in milliseconds.
34
+ attr_reader :modified_at
35
+
36
+ # User creating or modifying a rule.
37
+ attr_reader :modified_by
38
+
39
+ # Name of the notification rule.
40
+ attr_reader :name
41
+
42
+ # Selectors are used to filter security issues for which notifications should be generated.
43
+ # Users can specify rule severities, rule types, a query to filter security issues on tags and attributes, and the trigger source.
44
+ # Only the trigger_source field is required.
45
+ attr_reader :selectors
46
+
47
+ # List of recipients to notify when a notification rule is triggered. Many different target types are supported,
48
+ # such as email addresses, Slack channels, and PagerDuty services.
49
+ # The appropriate integrations need to be properly configured to send notifications to the specified targets.
50
+ attr_reader :targets
51
+
52
+ # Time aggregation period (in seconds) is used to aggregate the results of the notification rule evaluation.
53
+ # Results are aggregated over a selected time frame using a rolling window, which updates with each new evaluation.
54
+ # Notifications are only sent for new issues discovered during the window.
55
+ # Time aggregation is only available for vulnerability-based notification rules. When omitted or set to 0, no aggregation
56
+ # is done.
57
+ attr_accessor :time_aggregation
58
+
59
+ # Version of the notification rule. It is updated when the rule is modified.
60
+ attr_reader :version
61
+
62
+ attr_accessor :additional_properties
63
+
64
+ # Attribute mapping from ruby-style variable name to JSON key.
65
+ # @!visibility private
66
+ def self.attribute_map
67
+ {
68
+ :'created_at' => :'created_at',
69
+ :'created_by' => :'created_by',
70
+ :'enabled' => :'enabled',
71
+ :'modified_at' => :'modified_at',
72
+ :'modified_by' => :'modified_by',
73
+ :'name' => :'name',
74
+ :'selectors' => :'selectors',
75
+ :'targets' => :'targets',
76
+ :'time_aggregation' => :'time_aggregation',
77
+ :'version' => :'version'
78
+ }
79
+ end
80
+
81
+ # Attribute type mapping.
82
+ # @!visibility private
83
+ def self.openapi_types
84
+ {
85
+ :'created_at' => :'Integer',
86
+ :'created_by' => :'RuleUser',
87
+ :'enabled' => :'Boolean',
88
+ :'modified_at' => :'Integer',
89
+ :'modified_by' => :'RuleUser',
90
+ :'name' => :'String',
91
+ :'selectors' => :'Selectors',
92
+ :'targets' => :'Array<String>',
93
+ :'time_aggregation' => :'Integer',
94
+ :'version' => :'Integer'
95
+ }
96
+ end
97
+
98
+ # Initializes the object
99
+ # @param attributes [Hash] Model attributes in the form of hash
100
+ # @!visibility private
101
+ def initialize(attributes = {})
102
+ if (!attributes.is_a?(Hash))
103
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::NotificationRuleAttributes` initialize method"
104
+ end
105
+
106
+ self.additional_properties = {}
107
+ # check to see if the attribute exists and convert string to symbol for hash key
108
+ attributes = attributes.each_with_object({}) { |(k, v), h|
109
+ if (!self.class.attribute_map.key?(k.to_sym))
110
+ self.additional_properties[k.to_sym] = v
111
+ else
112
+ h[k.to_sym] = v
113
+ end
114
+ }
115
+
116
+ if attributes.key?(:'created_at')
117
+ self.created_at = attributes[:'created_at']
118
+ end
119
+
120
+ if attributes.key?(:'created_by')
121
+ self.created_by = attributes[:'created_by']
122
+ end
123
+
124
+ if attributes.key?(:'enabled')
125
+ self.enabled = attributes[:'enabled']
126
+ end
127
+
128
+ if attributes.key?(:'modified_at')
129
+ self.modified_at = attributes[:'modified_at']
130
+ end
131
+
132
+ if attributes.key?(:'modified_by')
133
+ self.modified_by = attributes[:'modified_by']
134
+ end
135
+
136
+ if attributes.key?(:'name')
137
+ self.name = attributes[:'name']
138
+ end
139
+
140
+ if attributes.key?(:'selectors')
141
+ self.selectors = attributes[:'selectors']
142
+ end
143
+
144
+ if attributes.key?(:'targets')
145
+ if (value = attributes[:'targets']).is_a?(Array)
146
+ self.targets = value
147
+ end
148
+ end
149
+
150
+ if attributes.key?(:'time_aggregation')
151
+ self.time_aggregation = attributes[:'time_aggregation']
152
+ end
153
+
154
+ if attributes.key?(:'version')
155
+ self.version = attributes[:'version']
156
+ end
157
+ end
158
+
159
+ # Check to see if the all the properties in the model are valid
160
+ # @return true if the model is valid
161
+ # @!visibility private
162
+ def valid?
163
+ return false if @created_at.nil?
164
+ return false if @created_by.nil?
165
+ return false if @enabled.nil?
166
+ return false if @modified_at.nil?
167
+ return false if @modified_by.nil?
168
+ return false if @name.nil?
169
+ return false if @selectors.nil?
170
+ return false if @targets.nil?
171
+ return false if @version.nil?
172
+ true
173
+ end
174
+
175
+ # Custom attribute writer method with validation
176
+ # @param created_at [Object] Object to be assigned
177
+ # @!visibility private
178
+ def created_at=(created_at)
179
+ if created_at.nil?
180
+ fail ArgumentError, 'invalid value for "created_at", created_at cannot be nil.'
181
+ end
182
+ @created_at = created_at
183
+ end
184
+
185
+ # Custom attribute writer method with validation
186
+ # @param created_by [Object] Object to be assigned
187
+ # @!visibility private
188
+ def created_by=(created_by)
189
+ if created_by.nil?
190
+ fail ArgumentError, 'invalid value for "created_by", created_by cannot be nil.'
191
+ end
192
+ @created_by = created_by
193
+ end
194
+
195
+ # Custom attribute writer method with validation
196
+ # @param enabled [Object] Object to be assigned
197
+ # @!visibility private
198
+ def enabled=(enabled)
199
+ if enabled.nil?
200
+ fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.'
201
+ end
202
+ @enabled = enabled
203
+ end
204
+
205
+ # Custom attribute writer method with validation
206
+ # @param modified_at [Object] Object to be assigned
207
+ # @!visibility private
208
+ def modified_at=(modified_at)
209
+ if modified_at.nil?
210
+ fail ArgumentError, 'invalid value for "modified_at", modified_at cannot be nil.'
211
+ end
212
+ @modified_at = modified_at
213
+ end
214
+
215
+ # Custom attribute writer method with validation
216
+ # @param modified_by [Object] Object to be assigned
217
+ # @!visibility private
218
+ def modified_by=(modified_by)
219
+ if modified_by.nil?
220
+ fail ArgumentError, 'invalid value for "modified_by", modified_by cannot be nil.'
221
+ end
222
+ @modified_by = modified_by
223
+ end
224
+
225
+ # Custom attribute writer method with validation
226
+ # @param name [Object] Object to be assigned
227
+ # @!visibility private
228
+ def name=(name)
229
+ if name.nil?
230
+ fail ArgumentError, 'invalid value for "name", name cannot be nil.'
231
+ end
232
+ @name = name
233
+ end
234
+
235
+ # Custom attribute writer method with validation
236
+ # @param selectors [Object] Object to be assigned
237
+ # @!visibility private
238
+ def selectors=(selectors)
239
+ if selectors.nil?
240
+ fail ArgumentError, 'invalid value for "selectors", selectors cannot be nil.'
241
+ end
242
+ @selectors = selectors
243
+ end
244
+
245
+ # Custom attribute writer method with validation
246
+ # @param targets [Object] Object to be assigned
247
+ # @!visibility private
248
+ def targets=(targets)
249
+ if targets.nil?
250
+ fail ArgumentError, 'invalid value for "targets", targets cannot be nil.'
251
+ end
252
+ @targets = targets
253
+ end
254
+
255
+ # Custom attribute writer method with validation
256
+ # @param version [Object] Object to be assigned
257
+ # @!visibility private
258
+ def version=(version)
259
+ if version.nil?
260
+ fail ArgumentError, 'invalid value for "version", version cannot be nil.'
261
+ end
262
+ @version = version
263
+ end
264
+
265
+ # Returns the object in the form of hash, with additionalProperties support.
266
+ # @return [Hash] Returns the object in the form of hash
267
+ # @!visibility private
268
+ def to_hash
269
+ hash = {}
270
+ self.class.attribute_map.each_pair do |attr, param|
271
+ value = self.send(attr)
272
+ if value.nil?
273
+ is_nullable = self.class.openapi_nullable.include?(attr)
274
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
275
+ end
276
+
277
+ hash[param] = _to_hash(value)
278
+ end
279
+ self.additional_properties.each_pair do |attr, value|
280
+ hash[attr] = value
281
+ end
282
+ hash
283
+ end
284
+
285
+ # Checks equality by comparing each attribute.
286
+ # @param o [Object] Object to be compared
287
+ # @!visibility private
288
+ def ==(o)
289
+ return true if self.equal?(o)
290
+ self.class == o.class &&
291
+ created_at == o.created_at &&
292
+ created_by == o.created_by &&
293
+ enabled == o.enabled &&
294
+ modified_at == o.modified_at &&
295
+ modified_by == o.modified_by &&
296
+ name == o.name &&
297
+ selectors == o.selectors &&
298
+ targets == o.targets &&
299
+ time_aggregation == o.time_aggregation &&
300
+ version == o.version &&
301
+ additional_properties == o.additional_properties
302
+ end
303
+
304
+ # Calculates hash code according to all attributes.
305
+ # @return [Integer] Hash code
306
+ # @!visibility private
307
+ def hash
308
+ [created_at, created_by, enabled, modified_at, modified_by, name, selectors, targets, time_aggregation, version, additional_properties].hash
309
+ end
310
+ end
311
+ end
@@ -17,11 +17,15 @@ require 'date'
17
17
  require 'time'
18
18
 
19
19
  module DatadogAPIClient::V2
20
- # The definition of `InputSchemaDataAttributesParametersItems` object.
21
- class InputSchemaDataAttributesParametersItems
20
+ # Response object which includes a notification rule.
21
+ class NotificationRuleResponse
22
22
  include BaseGenericModel
23
23
 
24
- # The definition of `InputSchemaDataAttributesParametersItemsData` object.
24
+ # Notification rules allow full control over notifications generated by the various Datadog security products.
25
+ # They allow users to define the conditions under which a notification should be generated (based on rule severities,
26
+ # rule types, rule tags, and so on), and the targets to notify.
27
+ # A notification rule is composed of a rule ID, a rule type, and the rule attributes. All fields are required.
28
+ #
25
29
  attr_accessor :data
26
30
 
27
31
  attr_accessor :additional_properties
@@ -38,7 +42,7 @@ module DatadogAPIClient::V2
38
42
  # @!visibility private
39
43
  def self.openapi_types
40
44
  {
41
- :'data' => :'InputSchemaDataAttributesParametersItemsData'
45
+ :'data' => :'NotificationRule'
42
46
  }
43
47
  end
44
48
 
@@ -47,7 +51,7 @@ module DatadogAPIClient::V2
47
51
  # @!visibility private
48
52
  def initialize(attributes = {})
49
53
  if (!attributes.is_a?(Hash))
50
- fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::InputSchemaDataAttributesParametersItems` initialize method"
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::NotificationRuleResponse` initialize method"
51
55
  end
52
56
 
53
57
  self.additional_properties = {}
@@ -17,10 +17,10 @@ require 'date'
17
17
  require 'time'
18
18
 
19
19
  module DatadogAPIClient::V2
20
- # The definition of `CreateAppRequestDataType` object.
21
- class CreateAppRequestDataType
20
+ # The rule type associated to notification rules.
21
+ class NotificationRulesType
22
22
  include BaseEnumModel
23
23
 
24
- APPDEFINITIONS = "appDefinitions".freeze
24
+ NOTIFICATION_RULES = "notification_rules".freeze
25
25
  end
26
26
  end
@@ -0,0 +1,105 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Body of the notification rule patch request.
21
+ class PatchNotificationRuleParameters
22
+ include BaseGenericModel
23
+
24
+ # Data of the notification rule patch request: the rule ID, the rule type, and the rule attributes. All fields are required.
25
+ attr_accessor :data
26
+
27
+ attr_accessor :additional_properties
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ # @!visibility private
31
+ def self.attribute_map
32
+ {
33
+ :'data' => :'data'
34
+ }
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ # @!visibility private
39
+ def self.openapi_types
40
+ {
41
+ :'data' => :'PatchNotificationRuleParametersData'
42
+ }
43
+ end
44
+
45
+ # Initializes the object
46
+ # @param attributes [Hash] Model attributes in the form of hash
47
+ # @!visibility private
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::PatchNotificationRuleParameters` initialize method"
51
+ end
52
+
53
+ self.additional_properties = {}
54
+ # check to see if the attribute exists and convert string to symbol for hash key
55
+ attributes = attributes.each_with_object({}) { |(k, v), h|
56
+ if (!self.class.attribute_map.key?(k.to_sym))
57
+ self.additional_properties[k.to_sym] = v
58
+ else
59
+ h[k.to_sym] = v
60
+ end
61
+ }
62
+
63
+ if attributes.key?(:'data')
64
+ self.data = attributes[:'data']
65
+ end
66
+ end
67
+
68
+ # Returns the object in the form of hash, with additionalProperties support.
69
+ # @return [Hash] Returns the object in the form of hash
70
+ # @!visibility private
71
+ def to_hash
72
+ hash = {}
73
+ self.class.attribute_map.each_pair do |attr, param|
74
+ value = self.send(attr)
75
+ if value.nil?
76
+ is_nullable = self.class.openapi_nullable.include?(attr)
77
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
78
+ end
79
+
80
+ hash[param] = _to_hash(value)
81
+ end
82
+ self.additional_properties.each_pair do |attr, value|
83
+ hash[attr] = value
84
+ end
85
+ hash
86
+ end
87
+
88
+ # Checks equality by comparing each attribute.
89
+ # @param o [Object] Object to be compared
90
+ # @!visibility private
91
+ def ==(o)
92
+ return true if self.equal?(o)
93
+ self.class == o.class &&
94
+ data == o.data &&
95
+ additional_properties == o.additional_properties
96
+ end
97
+
98
+ # Calculates hash code according to all attributes.
99
+ # @return [Integer] Hash code
100
+ # @!visibility private
101
+ def hash
102
+ [data, additional_properties].hash
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,165 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Data of the notification rule patch request: the rule ID, the rule type, and the rule attributes. All fields are required.
21
+ class PatchNotificationRuleParametersData
22
+ include BaseGenericModel
23
+
24
+ # Attributes of the notification rule patch request. It is required to update the version of the rule when patching it.
25
+ attr_reader :attributes
26
+
27
+ # The ID of a notification rule.
28
+ attr_reader :id
29
+
30
+ # The rule type associated to notification rules.
31
+ attr_reader :type
32
+
33
+ attr_accessor :additional_properties
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ # @!visibility private
37
+ def self.attribute_map
38
+ {
39
+ :'attributes' => :'attributes',
40
+ :'id' => :'id',
41
+ :'type' => :'type'
42
+ }
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ # @!visibility private
47
+ def self.openapi_types
48
+ {
49
+ :'attributes' => :'PatchNotificationRuleParametersDataAttributes',
50
+ :'id' => :'String',
51
+ :'type' => :'NotificationRulesType'
52
+ }
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param attributes [Hash] Model attributes in the form of hash
57
+ # @!visibility private
58
+ def initialize(attributes = {})
59
+ if (!attributes.is_a?(Hash))
60
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::PatchNotificationRuleParametersData` initialize method"
61
+ end
62
+
63
+ self.additional_properties = {}
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ attributes = attributes.each_with_object({}) { |(k, v), h|
66
+ if (!self.class.attribute_map.key?(k.to_sym))
67
+ self.additional_properties[k.to_sym] = v
68
+ else
69
+ h[k.to_sym] = v
70
+ end
71
+ }
72
+
73
+ if attributes.key?(:'attributes')
74
+ self.attributes = attributes[:'attributes']
75
+ end
76
+
77
+ if attributes.key?(:'id')
78
+ self.id = attributes[:'id']
79
+ end
80
+
81
+ if attributes.key?(:'type')
82
+ self.type = attributes[:'type']
83
+ end
84
+ end
85
+
86
+ # Check to see if the all the properties in the model are valid
87
+ # @return true if the model is valid
88
+ # @!visibility private
89
+ def valid?
90
+ return false if @attributes.nil?
91
+ return false if @id.nil?
92
+ return false if @type.nil?
93
+ true
94
+ end
95
+
96
+ # Custom attribute writer method with validation
97
+ # @param attributes [Object] Object to be assigned
98
+ # @!visibility private
99
+ def attributes=(attributes)
100
+ if attributes.nil?
101
+ fail ArgumentError, 'invalid value for "attributes", attributes cannot be nil.'
102
+ end
103
+ @attributes = attributes
104
+ end
105
+
106
+ # Custom attribute writer method with validation
107
+ # @param id [Object] Object to be assigned
108
+ # @!visibility private
109
+ def id=(id)
110
+ if id.nil?
111
+ fail ArgumentError, 'invalid value for "id", id cannot be nil.'
112
+ end
113
+ @id = id
114
+ end
115
+
116
+ # Custom attribute writer method with validation
117
+ # @param type [Object] Object to be assigned
118
+ # @!visibility private
119
+ def type=(type)
120
+ if type.nil?
121
+ fail ArgumentError, 'invalid value for "type", type cannot be nil.'
122
+ end
123
+ @type = type
124
+ end
125
+
126
+ # Returns the object in the form of hash, with additionalProperties support.
127
+ # @return [Hash] Returns the object in the form of hash
128
+ # @!visibility private
129
+ def to_hash
130
+ hash = {}
131
+ self.class.attribute_map.each_pair do |attr, param|
132
+ value = self.send(attr)
133
+ if value.nil?
134
+ is_nullable = self.class.openapi_nullable.include?(attr)
135
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
136
+ end
137
+
138
+ hash[param] = _to_hash(value)
139
+ end
140
+ self.additional_properties.each_pair do |attr, value|
141
+ hash[attr] = value
142
+ end
143
+ hash
144
+ end
145
+
146
+ # Checks equality by comparing each attribute.
147
+ # @param o [Object] Object to be compared
148
+ # @!visibility private
149
+ def ==(o)
150
+ return true if self.equal?(o)
151
+ self.class == o.class &&
152
+ attributes == o.attributes &&
153
+ id == o.id &&
154
+ type == o.type &&
155
+ additional_properties == o.additional_properties
156
+ end
157
+
158
+ # Calculates hash code according to all attributes.
159
+ # @return [Integer] Hash code
160
+ # @!visibility private
161
+ def hash
162
+ [attributes, id, type, additional_properties].hash
163
+ end
164
+ end
165
+ end