datadog_api_client 2.39.0 → 2.40.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 (309) hide show
  1. checksums.yaml +4 -4
  2. data/.generated-info +2 -2
  3. data/.generator/schemas/v1/openapi.yaml +208 -30
  4. data/.generator/schemas/v2/openapi.yaml +2921 -243
  5. data/.generator/src/generator/cli.py +1 -0
  6. data/.generator/src/generator/openapi.py +12 -0
  7. data/.generator/src/generator/templates/api.j2 +1 -1
  8. data/CHANGELOG.md +26 -0
  9. data/Gemfile +1 -0
  10. data/examples/v1/logs-pipelines/CreateLogsPipeline_3336967838.rb +24 -0
  11. data/examples/v1/synthetics/CreateSyntheticsAPITest_1072503741.rb +1 -0
  12. data/examples/v1/synthetics/CreateSyntheticsAPITest_1279271422.rb +1 -0
  13. data/examples/v1/synthetics/SearchTests_195957771.rb +1 -0
  14. data/examples/v2/aws-integration/CreateAWSAccount.rb +10 -0
  15. data/examples/v2/aws-integration/CreateAWSAccount_1716720881.rb +10 -0
  16. data/examples/v2/aws-integration/UpdateAWSAccount.rb +10 -0
  17. data/examples/v2/case-management/UpdateAttributes.rb +26 -0
  18. data/examples/v2/cloud-network-monitoring/GetAggregatedConnections.rb +0 -3
  19. data/examples/v2/cloud-network-monitoring/GetAggregatedConnections_3059356111.rb +0 -3
  20. data/examples/v2/cloud-network-monitoring/GetAggregatedDns.rb +5 -0
  21. data/examples/v2/datasets/CreateDataset.rb +7 -6
  22. data/examples/v2/datasets/DeleteDataset.rb +7 -1
  23. data/examples/v2/datasets/GetAllDatasets.rb +3 -0
  24. data/examples/v2/datasets/GetDataset.rb +7 -1
  25. data/examples/v2/datasets/UpdateDataset.rb +31 -0
  26. data/examples/v2/events/GetEvent.rb +5 -0
  27. data/examples/v2/metrics/GetMetricTagCardinalityDetails.rb +5 -0
  28. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_1965169892.rb +6 -0
  29. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_868881438.rb +41 -0
  30. data/lib/datadog_api_client/configuration.rb +9 -1
  31. data/lib/datadog_api_client/inflector.rb +225 -2
  32. data/lib/datadog_api_client/v1/api/logs_api.rb +1 -1
  33. data/lib/datadog_api_client/v1/api/logs_indexes_api.rb +1 -1
  34. data/lib/datadog_api_client/v1/api/security_monitoring_api.rb +8 -2
  35. data/lib/datadog_api_client/v1/api/synthetics_api.rb +3 -1
  36. data/lib/datadog_api_client/v1/models/logs_decoder_processor.rb +229 -0
  37. data/lib/datadog_api_client/v1/models/logs_decoder_processor_binary_to_text_encoding.rb +27 -0
  38. data/lib/datadog_api_client/v1/models/logs_decoder_processor_input_representation.rb +27 -0
  39. data/lib/datadog_api_client/v1/models/logs_decoder_processor_type.rb +26 -0
  40. data/lib/datadog_api_client/v1/models/logs_processor.rb +2 -1
  41. data/lib/datadog_api_client/v1/models/synthetics_test_options.rb +13 -3
  42. data/lib/datadog_api_client/v1/models/synthetics_test_request.rb +11 -1
  43. data/lib/datadog_api_client/v1/models/usage_billable_summary_body.rb +21 -1
  44. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +41 -1
  45. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +41 -1
  46. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +41 -1
  47. data/lib/datadog_api_client/v2/api/case_management_api.rb +72 -0
  48. data/lib/datadog_api_client/v2/api/cloud_network_monitoring_api.rb +80 -10
  49. data/lib/datadog_api_client/v2/api/datasets_api.rb +102 -0
  50. data/lib/datadog_api_client/v2/api/events_api.rb +65 -2
  51. data/lib/datadog_api_client/v2/api/metrics_api.rb +65 -0
  52. data/lib/datadog_api_client/v2/api/monitors_api.rb +8 -8
  53. data/lib/datadog_api_client/v2/api/restriction_policies_api.rb +9 -5
  54. data/lib/datadog_api_client/v2/api/rum_api.rb +3 -3
  55. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +17 -14
  56. data/lib/datadog_api_client/v2/models/action_connection_integration.rb +23 -1
  57. data/lib/datadog_api_client/v2/models/action_connection_integration_update.rb +23 -1
  58. data/lib/datadog_api_client/v2/models/alert_event_attributes.rb +187 -0
  59. data/lib/datadog_api_client/v2/models/alert_event_attributes_links_item.rb +125 -0
  60. data/lib/datadog_api_client/v2/models/alert_event_attributes_links_item_category.rb +28 -0
  61. data/lib/datadog_api_client/v2/models/alert_event_attributes_priority.rb +30 -0
  62. data/lib/datadog_api_client/v2/models/alert_event_attributes_status.rb +28 -0
  63. data/lib/datadog_api_client/v2/models/anthropic_api_key.rb +144 -0
  64. data/lib/datadog_api_client/v2/models/anthropic_api_key_type.rb +26 -0
  65. data/lib/datadog_api_client/v2/models/anthropic_api_key_update.rb +133 -0
  66. data/lib/datadog_api_client/v2/models/anthropic_credentials.rb +62 -0
  67. data/lib/datadog_api_client/v2/models/anthropic_credentials_update.rb +62 -0
  68. data/lib/datadog_api_client/v2/models/anthropic_integration.rb +144 -0
  69. data/lib/datadog_api_client/v2/models/anthropic_integration_type.rb +26 -0
  70. data/lib/datadog_api_client/v2/models/anthropic_integration_update.rb +133 -0
  71. data/lib/datadog_api_client/v2/models/asana_access_token.rb +144 -0
  72. data/lib/datadog_api_client/v2/models/asana_access_token_type.rb +26 -0
  73. data/lib/datadog_api_client/v2/models/asana_access_token_update.rb +133 -0
  74. data/lib/datadog_api_client/v2/models/asana_credentials.rb +62 -0
  75. data/lib/datadog_api_client/v2/models/asana_credentials_update.rb +62 -0
  76. data/lib/datadog_api_client/v2/models/asana_integration.rb +144 -0
  77. data/lib/datadog_api_client/v2/models/asana_integration_type.rb +26 -0
  78. data/lib/datadog_api_client/v2/models/asana_integration_update.rb +133 -0
  79. data/lib/datadog_api_client/v2/models/aws_lambda_forwarder_config.rb +11 -1
  80. data/lib/datadog_api_client/v2/models/aws_lambda_forwarder_config_log_source_config.rb +107 -0
  81. data/lib/datadog_api_client/v2/models/aws_log_source_tag_filter.rb +128 -0
  82. data/lib/datadog_api_client/v2/models/azure_credentials.rb +62 -0
  83. data/lib/datadog_api_client/v2/models/azure_credentials_update.rb +62 -0
  84. data/lib/datadog_api_client/v2/models/azure_integration.rb +144 -0
  85. data/lib/datadog_api_client/v2/models/azure_integration_type.rb +26 -0
  86. data/lib/datadog_api_client/v2/models/azure_integration_update.rb +133 -0
  87. data/lib/datadog_api_client/v2/models/azure_tenant.rb +196 -0
  88. data/lib/datadog_api_client/v2/models/azure_tenant_type.rb +26 -0
  89. data/lib/datadog_api_client/v2/models/azure_tenant_update.rb +163 -0
  90. data/lib/datadog_api_client/v2/models/case.rb +1 -1
  91. data/lib/datadog_api_client/v2/models/case_attributes.rb +12 -2
  92. data/lib/datadog_api_client/v2/models/{dataset.rb → case_update_attributes.rb} +8 -18
  93. data/lib/datadog_api_client/v2/models/case_update_attributes_attributes.rb +123 -0
  94. data/lib/datadog_api_client/v2/models/case_update_attributes_request.rb +123 -0
  95. data/lib/datadog_api_client/v2/models/change_event_attributes.rb +207 -0
  96. data/lib/datadog_api_client/v2/models/change_event_attributes_author.rb +115 -0
  97. data/lib/datadog_api_client/v2/models/change_event_attributes_author_type.rb +29 -0
  98. data/lib/datadog_api_client/v2/models/change_event_attributes_changed_resource.rb +115 -0
  99. data/lib/datadog_api_client/v2/models/change_event_attributes_changed_resource_type.rb +27 -0
  100. data/lib/datadog_api_client/v2/models/change_event_attributes_impacted_resources_item.rb +115 -0
  101. data/lib/datadog_api_client/v2/models/change_event_attributes_impacted_resources_item_type.rb +26 -0
  102. data/lib/datadog_api_client/v2/models/circle_ci_credentials.rb +62 -0
  103. data/lib/datadog_api_client/v2/models/circle_ci_credentials_update.rb +62 -0
  104. data/lib/datadog_api_client/v2/models/circle_ci_integration.rb +144 -0
  105. data/lib/datadog_api_client/v2/models/circle_ci_integration_type.rb +26 -0
  106. data/lib/datadog_api_client/v2/models/circle_ci_integration_update.rb +133 -0
  107. data/lib/datadog_api_client/v2/models/circle_ciapi_key.rb +144 -0
  108. data/lib/datadog_api_client/v2/models/circle_ciapi_key_type.rb +26 -0
  109. data/lib/datadog_api_client/v2/models/circle_ciapi_key_update.rb +133 -0
  110. data/lib/datadog_api_client/v2/models/clickup_api_key.rb +144 -0
  111. data/lib/datadog_api_client/v2/models/clickup_api_key_type.rb +26 -0
  112. data/lib/datadog_api_client/v2/models/clickup_api_key_update.rb +133 -0
  113. data/lib/datadog_api_client/v2/models/clickup_credentials.rb +62 -0
  114. data/lib/datadog_api_client/v2/models/clickup_credentials_update.rb +62 -0
  115. data/lib/datadog_api_client/v2/models/clickup_integration.rb +144 -0
  116. data/lib/datadog_api_client/v2/models/clickup_integration_type.rb +26 -0
  117. data/lib/datadog_api_client/v2/models/clickup_integration_update.rb +133 -0
  118. data/lib/datadog_api_client/v2/models/cloudflare_api_token.rb +144 -0
  119. data/lib/datadog_api_client/v2/models/cloudflare_api_token_type.rb +26 -0
  120. data/lib/datadog_api_client/v2/models/cloudflare_api_token_update.rb +133 -0
  121. data/lib/datadog_api_client/v2/models/cloudflare_credentials.rb +63 -0
  122. data/lib/datadog_api_client/v2/models/cloudflare_credentials_update.rb +63 -0
  123. data/lib/datadog_api_client/v2/models/cloudflare_global_api_token.rb +165 -0
  124. data/lib/datadog_api_client/v2/models/cloudflare_global_api_token_type.rb +26 -0
  125. data/lib/datadog_api_client/v2/models/cloudflare_global_api_token_update.rb +143 -0
  126. data/lib/datadog_api_client/v2/models/cloudflare_integration.rb +144 -0
  127. data/lib/datadog_api_client/v2/models/cloudflare_integration_type.rb +26 -0
  128. data/lib/datadog_api_client/v2/models/cloudflare_integration_update.rb +133 -0
  129. data/lib/datadog_api_client/v2/models/config_cat_credentials.rb +62 -0
  130. data/lib/datadog_api_client/v2/models/config_cat_credentials_update.rb +62 -0
  131. data/lib/datadog_api_client/v2/models/config_cat_integration.rb +144 -0
  132. data/lib/datadog_api_client/v2/models/config_cat_integration_type.rb +26 -0
  133. data/lib/datadog_api_client/v2/models/config_cat_integration_update.rb +133 -0
  134. data/lib/datadog_api_client/v2/models/config_cat_sdk_key.rb +186 -0
  135. data/lib/datadog_api_client/v2/models/config_cat_sdk_key_type.rb +26 -0
  136. data/lib/datadog_api_client/v2/models/config_cat_sdk_key_update.rb +153 -0
  137. data/lib/datadog_api_client/v2/models/datadog_api_key.rb +196 -0
  138. data/lib/datadog_api_client/v2/models/datadog_api_key_type.rb +26 -0
  139. data/lib/datadog_api_client/v2/models/datadog_api_key_update.rb +163 -0
  140. data/lib/datadog_api_client/v2/models/datadog_credentials.rb +62 -0
  141. data/lib/datadog_api_client/v2/models/datadog_credentials_update.rb +62 -0
  142. data/lib/datadog_api_client/v2/models/datadog_integration.rb +144 -0
  143. data/lib/datadog_api_client/v2/models/datadog_integration_type.rb +26 -0
  144. data/lib/datadog_api_client/v2/models/datadog_integration_update.rb +133 -0
  145. data/lib/datadog_api_client/v2/models/{dataset_attributes.rb → dataset_attributes_request.rb} +4 -32
  146. data/lib/datadog_api_client/v2/models/dataset_attributes_response.rb +157 -0
  147. data/lib/datadog_api_client/v2/models/dataset_create_request.rb +12 -2
  148. data/lib/datadog_api_client/v2/models/dataset_request.rb +154 -0
  149. data/lib/datadog_api_client/v2/models/dataset_response.rb +135 -0
  150. data/lib/datadog_api_client/v2/models/dataset_response_multi.rb +2 -20
  151. data/lib/datadog_api_client/v2/models/dataset_response_single.rb +13 -21
  152. data/lib/datadog_api_client/v2/models/dataset_update_request.rb +133 -0
  153. data/lib/datadog_api_client/v2/models/dns_metric_key.rb +35 -0
  154. data/lib/datadog_api_client/v2/models/entity_v3_api.rb +1 -1
  155. data/lib/datadog_api_client/v2/models/entity_v3_api_version.rb +4 -1
  156. data/lib/datadog_api_client/v2/models/entity_v3_datastore.rb +1 -1
  157. data/lib/datadog_api_client/v2/models/entity_v3_queue.rb +1 -1
  158. data/lib/datadog_api_client/v2/models/entity_v3_service.rb +1 -1
  159. data/lib/datadog_api_client/v2/models/entity_v3_system.rb +1 -1
  160. data/lib/datadog_api_client/v2/models/event_system_attributes.rb +145 -0
  161. data/lib/datadog_api_client/v2/models/event_system_attributes_category.rb +27 -0
  162. data/lib/datadog_api_client/v2/models/event_system_attributes_integration_id.rb +26 -0
  163. data/lib/datadog_api_client/v2/models/events_data_source.rb +1 -0
  164. data/lib/datadog_api_client/v2/models/fastly_api_key.rb +144 -0
  165. data/lib/datadog_api_client/v2/models/fastly_api_key_type.rb +26 -0
  166. data/lib/datadog_api_client/v2/models/fastly_api_key_update.rb +133 -0
  167. data/lib/datadog_api_client/v2/models/fastly_credentials.rb +62 -0
  168. data/lib/datadog_api_client/v2/models/fastly_credentials_update.rb +62 -0
  169. data/lib/datadog_api_client/v2/models/fastly_integration.rb +144 -0
  170. data/lib/datadog_api_client/v2/models/fastly_integration_type.rb +26 -0
  171. data/lib/datadog_api_client/v2/models/fastly_integration_update.rb +133 -0
  172. data/lib/datadog_api_client/v2/models/filters_per_product.rb +2 -2
  173. data/lib/datadog_api_client/v2/models/freshservice_api_key.rb +165 -0
  174. data/lib/datadog_api_client/v2/models/freshservice_api_key_type.rb +26 -0
  175. data/lib/datadog_api_client/v2/models/freshservice_api_key_update.rb +143 -0
  176. data/lib/datadog_api_client/v2/models/freshservice_credentials.rb +62 -0
  177. data/lib/datadog_api_client/v2/models/freshservice_credentials_update.rb +62 -0
  178. data/lib/datadog_api_client/v2/models/freshservice_integration.rb +144 -0
  179. data/lib/datadog_api_client/v2/models/freshservice_integration_type.rb +26 -0
  180. data/lib/datadog_api_client/v2/models/freshservice_integration_update.rb +133 -0
  181. data/lib/datadog_api_client/v2/models/gcp_credentials.rb +62 -0
  182. data/lib/datadog_api_client/v2/models/gcp_credentials_update.rb +62 -0
  183. data/lib/datadog_api_client/v2/models/gcp_integration.rb +144 -0
  184. data/lib/datadog_api_client/v2/models/gcp_integration_type.rb +26 -0
  185. data/lib/datadog_api_client/v2/models/gcp_integration_update.rb +133 -0
  186. data/lib/datadog_api_client/v2/models/gcp_service_account.rb +165 -0
  187. data/lib/datadog_api_client/v2/models/gcp_service_account_credential_type.rb +26 -0
  188. data/lib/datadog_api_client/v2/models/gcp_service_account_update.rb +143 -0
  189. data/lib/datadog_api_client/v2/models/gemini_api_key.rb +144 -0
  190. data/lib/datadog_api_client/v2/models/gemini_api_key_type.rb +26 -0
  191. data/lib/datadog_api_client/v2/models/gemini_api_key_update.rb +133 -0
  192. data/lib/datadog_api_client/v2/models/gemini_credentials.rb +62 -0
  193. data/lib/datadog_api_client/v2/models/gemini_credentials_update.rb +62 -0
  194. data/lib/datadog_api_client/v2/models/gemini_integration.rb +144 -0
  195. data/lib/datadog_api_client/v2/models/gemini_integration_type.rb +26 -0
  196. data/lib/datadog_api_client/v2/models/gemini_integration_update.rb +133 -0
  197. data/lib/datadog_api_client/v2/models/gitlab_api_key.rb +144 -0
  198. data/lib/datadog_api_client/v2/models/gitlab_api_key_type.rb +26 -0
  199. data/lib/datadog_api_client/v2/models/gitlab_api_key_update.rb +133 -0
  200. data/lib/datadog_api_client/v2/models/gitlab_credentials.rb +62 -0
  201. data/lib/datadog_api_client/v2/models/gitlab_credentials_update.rb +62 -0
  202. data/lib/datadog_api_client/v2/models/gitlab_integration.rb +144 -0
  203. data/lib/datadog_api_client/v2/models/gitlab_integration_type.rb +26 -0
  204. data/lib/datadog_api_client/v2/models/gitlab_integration_update.rb +133 -0
  205. data/lib/datadog_api_client/v2/models/grey_noise_api_key.rb +144 -0
  206. data/lib/datadog_api_client/v2/models/grey_noise_api_key_type.rb +26 -0
  207. data/lib/datadog_api_client/v2/models/grey_noise_api_key_update.rb +133 -0
  208. data/lib/datadog_api_client/v2/models/grey_noise_credentials.rb +62 -0
  209. data/lib/datadog_api_client/v2/models/grey_noise_credentials_update.rb +62 -0
  210. data/lib/datadog_api_client/v2/models/grey_noise_integration.rb +144 -0
  211. data/lib/datadog_api_client/v2/models/grey_noise_integration_type.rb +26 -0
  212. data/lib/datadog_api_client/v2/models/grey_noise_integration_update.rb +133 -0
  213. data/lib/datadog_api_client/v2/models/launch_darkly_api_key.rb +144 -0
  214. data/lib/datadog_api_client/v2/models/launch_darkly_api_key_type.rb +26 -0
  215. data/lib/datadog_api_client/v2/models/launch_darkly_api_key_update.rb +133 -0
  216. data/lib/datadog_api_client/v2/models/launch_darkly_credentials.rb +62 -0
  217. data/lib/datadog_api_client/v2/models/launch_darkly_credentials_update.rb +62 -0
  218. data/lib/datadog_api_client/v2/models/launch_darkly_integration.rb +144 -0
  219. data/lib/datadog_api_client/v2/models/launch_darkly_integration_type.rb +26 -0
  220. data/lib/datadog_api_client/v2/models/launch_darkly_integration_update.rb +133 -0
  221. data/lib/datadog_api_client/v2/models/metric_asset_attributes.rb +14 -2
  222. data/lib/datadog_api_client/v2/models/metric_dashboard_attributes.rb +13 -1
  223. data/lib/datadog_api_client/v2/models/metric_monitor_asset.rb +1 -1
  224. data/lib/datadog_api_client/v2/models/metric_notebook_asset.rb +1 -1
  225. data/lib/datadog_api_client/v2/models/metric_slo_asset.rb +1 -1
  226. data/lib/datadog_api_client/v2/models/metric_tag_cardinalities_meta.rb +107 -0
  227. data/lib/datadog_api_client/v2/models/metric_tag_cardinalities_response.rb +117 -0
  228. data/lib/datadog_api_client/v2/models/metric_tag_cardinality.rb +125 -0
  229. data/lib/datadog_api_client/v2/models/metric_tag_cardinality_attributes.rb +105 -0
  230. data/lib/datadog_api_client/v2/models/notion_api_key.rb +144 -0
  231. data/lib/datadog_api_client/v2/models/notion_api_key_type.rb +26 -0
  232. data/lib/datadog_api_client/v2/models/notion_api_key_update.rb +133 -0
  233. data/lib/datadog_api_client/v2/models/notion_credentials.rb +62 -0
  234. data/lib/datadog_api_client/v2/models/notion_credentials_update.rb +62 -0
  235. data/lib/datadog_api_client/v2/models/notion_integration.rb +144 -0
  236. data/lib/datadog_api_client/v2/models/notion_integration_type.rb +26 -0
  237. data/lib/datadog_api_client/v2/models/notion_integration_update.rb +133 -0
  238. data/lib/datadog_api_client/v2/models/observability_pipeline_parse_grok_processor_rule.rb +1 -12
  239. data/lib/datadog_api_client/v2/models/okta_api_token.rb +165 -0
  240. data/lib/datadog_api_client/v2/models/okta_api_token_type.rb +26 -0
  241. data/lib/datadog_api_client/v2/models/okta_api_token_update.rb +143 -0
  242. data/lib/datadog_api_client/v2/models/okta_credentials.rb +62 -0
  243. data/lib/datadog_api_client/v2/models/okta_credentials_update.rb +62 -0
  244. data/lib/datadog_api_client/v2/models/okta_integration.rb +144 -0
  245. data/lib/datadog_api_client/v2/models/okta_integration_type.rb +26 -0
  246. data/lib/datadog_api_client/v2/models/okta_integration_update.rb +133 -0
  247. data/lib/datadog_api_client/v2/models/open_ai_credentials.rb +62 -0
  248. data/lib/datadog_api_client/v2/models/open_ai_credentials_update.rb +62 -0
  249. data/lib/datadog_api_client/v2/models/open_ai_integration.rb +144 -0
  250. data/lib/datadog_api_client/v2/models/open_ai_integration_type.rb +26 -0
  251. data/lib/datadog_api_client/v2/models/open_ai_integration_update.rb +133 -0
  252. data/lib/datadog_api_client/v2/models/open_aiapi_key.rb +144 -0
  253. data/lib/datadog_api_client/v2/models/open_aiapi_key_type.rb +26 -0
  254. data/lib/datadog_api_client/v2/models/open_aiapi_key_update.rb +133 -0
  255. data/lib/datadog_api_client/v2/models/rule_types_items.rb +3 -1
  256. data/lib/datadog_api_client/v2/models/security_monitoring_rule_case_action_options.rb +11 -1
  257. data/lib/datadog_api_client/v2/models/security_monitoring_rule_case_action_options_flagged_ip_type.rb +27 -0
  258. data/lib/datadog_api_client/v2/models/security_monitoring_rule_case_action_type.rb +1 -0
  259. data/lib/datadog_api_client/v2/models/security_monitoring_rule_update_payload.rb +31 -1
  260. data/lib/datadog_api_client/v2/models/security_monitoring_scheduling_options.rb +125 -0
  261. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_create_payload.rb +31 -1
  262. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_payload.rb +31 -1
  263. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_query.rb +12 -1
  264. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_response.rb +31 -1
  265. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_test_payload.rb +31 -1
  266. data/lib/datadog_api_client/v2/models/service_now_basic_auth.rb +186 -0
  267. data/lib/datadog_api_client/v2/models/service_now_basic_auth_type.rb +26 -0
  268. data/lib/datadog_api_client/v2/models/service_now_basic_auth_update.rb +153 -0
  269. data/lib/datadog_api_client/v2/models/service_now_credentials.rb +62 -0
  270. data/lib/datadog_api_client/v2/models/service_now_credentials_update.rb +62 -0
  271. data/lib/datadog_api_client/v2/models/service_now_integration.rb +144 -0
  272. data/lib/datadog_api_client/v2/models/service_now_integration_type.rb +26 -0
  273. data/lib/datadog_api_client/v2/models/service_now_integration_update.rb +133 -0
  274. data/lib/datadog_api_client/v2/models/single_aggregated_dns_response_array.rb +107 -0
  275. data/lib/datadog_api_client/v2/models/single_aggregated_dns_response_data.rb +125 -0
  276. data/lib/datadog_api_client/v2/models/single_aggregated_dns_response_data_attributes.rb +119 -0
  277. data/lib/datadog_api_client/v2/models/single_aggregated_dns_response_data_attributes_group_by_items.rb +115 -0
  278. data/lib/datadog_api_client/v2/models/single_aggregated_dns_response_data_attributes_metrics_items.rb +115 -0
  279. data/lib/datadog_api_client/v2/models/single_aggregated_dns_response_data_type.rb +26 -0
  280. data/lib/datadog_api_client/v2/models/split_api_key.rb +144 -0
  281. data/lib/datadog_api_client/v2/models/split_api_key_type.rb +26 -0
  282. data/lib/datadog_api_client/v2/models/split_api_key_update.rb +133 -0
  283. data/lib/datadog_api_client/v2/models/split_credentials.rb +62 -0
  284. data/lib/datadog_api_client/v2/models/split_credentials_update.rb +62 -0
  285. data/lib/datadog_api_client/v2/models/split_integration.rb +144 -0
  286. data/lib/datadog_api_client/v2/models/split_integration_type.rb +26 -0
  287. data/lib/datadog_api_client/v2/models/split_integration_update.rb +133 -0
  288. data/lib/datadog_api_client/v2/models/statsig_api_key.rb +144 -0
  289. data/lib/datadog_api_client/v2/models/statsig_api_key_type.rb +26 -0
  290. data/lib/datadog_api_client/v2/models/statsig_api_key_update.rb +133 -0
  291. data/lib/datadog_api_client/v2/models/statsig_credentials.rb +62 -0
  292. data/lib/datadog_api_client/v2/models/statsig_credentials_update.rb +62 -0
  293. data/lib/datadog_api_client/v2/models/statsig_integration.rb +144 -0
  294. data/lib/datadog_api_client/v2/models/statsig_integration_type.rb +26 -0
  295. data/lib/datadog_api_client/v2/models/statsig_integration_update.rb +133 -0
  296. data/lib/datadog_api_client/v2/models/v2_event.rb +125 -0
  297. data/lib/datadog_api_client/v2/models/v2_event_attributes.rb +137 -0
  298. data/lib/datadog_api_client/v2/models/v2_event_attributes_attributes.rb +63 -0
  299. data/lib/datadog_api_client/v2/models/v2_event_response.rb +105 -0
  300. data/lib/datadog_api_client/v2/models/virus_total_api_key.rb +144 -0
  301. data/lib/datadog_api_client/v2/models/virus_total_api_key_type.rb +26 -0
  302. data/lib/datadog_api_client/v2/models/virus_total_api_key_update.rb +133 -0
  303. data/lib/datadog_api_client/v2/models/virus_total_credentials.rb +62 -0
  304. data/lib/datadog_api_client/v2/models/virus_total_credentials_update.rb +62 -0
  305. data/lib/datadog_api_client/v2/models/virus_total_integration.rb +144 -0
  306. data/lib/datadog_api_client/v2/models/virus_total_integration_type.rb +26 -0
  307. data/lib/datadog_api_client/v2/models/virus_total_integration_update.rb +133 -0
  308. data/lib/datadog_api_client/version.rb +1 -1
  309. metadata +233 -3
@@ -21,6 +21,9 @@ module DatadogAPIClient::V2
21
21
  class SecurityMonitoringStandardRuleTestPayload
22
22
  include BaseGenericModel
23
23
 
24
+ # Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined.
25
+ attr_accessor :calculated_fields
26
+
24
27
  # Cases for generating signals.
25
28
  attr_reader :cases
26
29
 
@@ -51,6 +54,9 @@ module DatadogAPIClient::V2
51
54
  # Reference tables for the rule.
52
55
  attr_accessor :reference_tables
53
56
 
57
+ # Options for scheduled rules. When this field is present, the rule runs based on the schedule. When absent, it runs real-time on ingested logs.
58
+ attr_accessor :scheduling_options
59
+
54
60
  # Tags for generated signals.
55
61
  attr_accessor :tags
56
62
 
@@ -66,6 +72,7 @@ module DatadogAPIClient::V2
66
72
  # @!visibility private
67
73
  def self.attribute_map
68
74
  {
75
+ :'calculated_fields' => :'calculatedFields',
69
76
  :'cases' => :'cases',
70
77
  :'filters' => :'filters',
71
78
  :'group_signals_by' => :'groupSignalsBy',
@@ -76,6 +83,7 @@ module DatadogAPIClient::V2
76
83
  :'options' => :'options',
77
84
  :'queries' => :'queries',
78
85
  :'reference_tables' => :'referenceTables',
86
+ :'scheduling_options' => :'schedulingOptions',
79
87
  :'tags' => :'tags',
80
88
  :'third_party_cases' => :'thirdPartyCases',
81
89
  :'type' => :'type'
@@ -86,6 +94,7 @@ module DatadogAPIClient::V2
86
94
  # @!visibility private
87
95
  def self.openapi_types
88
96
  {
97
+ :'calculated_fields' => :'Array<CalculatedField>',
89
98
  :'cases' => :'Array<SecurityMonitoringRuleCaseCreate>',
90
99
  :'filters' => :'Array<SecurityMonitoringFilter>',
91
100
  :'group_signals_by' => :'Array<String>',
@@ -96,12 +105,21 @@ module DatadogAPIClient::V2
96
105
  :'options' => :'SecurityMonitoringRuleOptions',
97
106
  :'queries' => :'Array<SecurityMonitoringStandardRuleQuery>',
98
107
  :'reference_tables' => :'Array<SecurityMonitoringReferenceTable>',
108
+ :'scheduling_options' => :'SecurityMonitoringSchedulingOptions',
99
109
  :'tags' => :'Array<String>',
100
110
  :'third_party_cases' => :'Array<SecurityMonitoringThirdPartyRuleCaseCreate>',
101
111
  :'type' => :'SecurityMonitoringRuleTypeTest'
102
112
  }
103
113
  end
104
114
 
115
+ # List of attributes with nullable: true
116
+ # @!visibility private
117
+ def self.openapi_nullable
118
+ Set.new([
119
+ :'scheduling_options',
120
+ ])
121
+ end
122
+
105
123
  # Initializes the object
106
124
  # @param attributes [Hash] Model attributes in the form of hash
107
125
  # @!visibility private
@@ -120,6 +138,12 @@ module DatadogAPIClient::V2
120
138
  end
121
139
  }
122
140
 
141
+ if attributes.key?(:'calculated_fields')
142
+ if (value = attributes[:'calculated_fields']).is_a?(Array)
143
+ self.calculated_fields = value
144
+ end
145
+ end
146
+
123
147
  if attributes.key?(:'cases')
124
148
  if (value = attributes[:'cases']).is_a?(Array)
125
149
  self.cases = value
@@ -170,6 +194,10 @@ module DatadogAPIClient::V2
170
194
  end
171
195
  end
172
196
 
197
+ if attributes.key?(:'scheduling_options')
198
+ self.scheduling_options = attributes[:'scheduling_options']
199
+ end
200
+
173
201
  if attributes.key?(:'tags')
174
202
  if (value = attributes[:'tags']).is_a?(Array)
175
203
  self.tags = value
@@ -286,6 +314,7 @@ module DatadogAPIClient::V2
286
314
  def ==(o)
287
315
  return true if self.equal?(o)
288
316
  self.class == o.class &&
317
+ calculated_fields == o.calculated_fields &&
289
318
  cases == o.cases &&
290
319
  filters == o.filters &&
291
320
  group_signals_by == o.group_signals_by &&
@@ -296,6 +325,7 @@ module DatadogAPIClient::V2
296
325
  options == o.options &&
297
326
  queries == o.queries &&
298
327
  reference_tables == o.reference_tables &&
328
+ scheduling_options == o.scheduling_options &&
299
329
  tags == o.tags &&
300
330
  third_party_cases == o.third_party_cases &&
301
331
  type == o.type &&
@@ -306,7 +336,7 @@ module DatadogAPIClient::V2
306
336
  # @return [Integer] Hash code
307
337
  # @!visibility private
308
338
  def hash
309
- [cases, filters, group_signals_by, has_extended_title, is_enabled, message, name, options, queries, reference_tables, tags, third_party_cases, type, additional_properties].hash
339
+ [calculated_fields, cases, filters, group_signals_by, has_extended_title, is_enabled, message, name, options, queries, reference_tables, scheduling_options, tags, third_party_cases, type, additional_properties].hash
310
340
  end
311
341
  end
312
342
  end
@@ -0,0 +1,186 @@
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
+ # The definition of the `ServiceNowBasicAuth` object.
21
+ class ServiceNowBasicAuth
22
+ include BaseGenericModel
23
+
24
+ # The `ServiceNowBasicAuth` `instance`.
25
+ attr_reader :instance
26
+
27
+ # The `ServiceNowBasicAuth` `password`.
28
+ attr_reader :password
29
+
30
+ # The definition of the `ServiceNowBasicAuth` object.
31
+ attr_reader :type
32
+
33
+ # The `ServiceNowBasicAuth` `username`.
34
+ attr_reader :username
35
+
36
+ attr_accessor :additional_properties
37
+
38
+ # Attribute mapping from ruby-style variable name to JSON key.
39
+ # @!visibility private
40
+ def self.attribute_map
41
+ {
42
+ :'instance' => :'instance',
43
+ :'password' => :'password',
44
+ :'type' => :'type',
45
+ :'username' => :'username'
46
+ }
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ # @!visibility private
51
+ def self.openapi_types
52
+ {
53
+ :'instance' => :'String',
54
+ :'password' => :'String',
55
+ :'type' => :'ServiceNowBasicAuthType',
56
+ :'username' => :'String'
57
+ }
58
+ end
59
+
60
+ # Initializes the object
61
+ # @param attributes [Hash] Model attributes in the form of hash
62
+ # @!visibility private
63
+ def initialize(attributes = {})
64
+ if (!attributes.is_a?(Hash))
65
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ServiceNowBasicAuth` initialize method"
66
+ end
67
+
68
+ self.additional_properties = {}
69
+ # check to see if the attribute exists and convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h|
71
+ if (!self.class.attribute_map.key?(k.to_sym))
72
+ self.additional_properties[k.to_sym] = v
73
+ else
74
+ h[k.to_sym] = v
75
+ end
76
+ }
77
+
78
+ if attributes.key?(:'instance')
79
+ self.instance = attributes[:'instance']
80
+ end
81
+
82
+ if attributes.key?(:'password')
83
+ self.password = attributes[:'password']
84
+ end
85
+
86
+ if attributes.key?(:'type')
87
+ self.type = attributes[:'type']
88
+ end
89
+
90
+ if attributes.key?(:'username')
91
+ self.username = attributes[:'username']
92
+ end
93
+ end
94
+
95
+ # Check to see if the all the properties in the model are valid
96
+ # @return true if the model is valid
97
+ # @!visibility private
98
+ def valid?
99
+ return false if @instance.nil?
100
+ return false if @password.nil?
101
+ return false if @type.nil?
102
+ return false if @username.nil?
103
+ true
104
+ end
105
+
106
+ # Custom attribute writer method with validation
107
+ # @param instance [Object] Object to be assigned
108
+ # @!visibility private
109
+ def instance=(instance)
110
+ if instance.nil?
111
+ fail ArgumentError, 'invalid value for "instance", instance cannot be nil.'
112
+ end
113
+ @instance = instance
114
+ end
115
+
116
+ # Custom attribute writer method with validation
117
+ # @param password [Object] Object to be assigned
118
+ # @!visibility private
119
+ def password=(password)
120
+ if password.nil?
121
+ fail ArgumentError, 'invalid value for "password", password cannot be nil.'
122
+ end
123
+ @password = password
124
+ end
125
+
126
+ # Custom attribute writer method with validation
127
+ # @param type [Object] Object to be assigned
128
+ # @!visibility private
129
+ def type=(type)
130
+ if type.nil?
131
+ fail ArgumentError, 'invalid value for "type", type cannot be nil.'
132
+ end
133
+ @type = type
134
+ end
135
+
136
+ # Custom attribute writer method with validation
137
+ # @param username [Object] Object to be assigned
138
+ # @!visibility private
139
+ def username=(username)
140
+ if username.nil?
141
+ fail ArgumentError, 'invalid value for "username", username cannot be nil.'
142
+ end
143
+ @username = username
144
+ end
145
+
146
+ # Returns the object in the form of hash, with additionalProperties support.
147
+ # @return [Hash] Returns the object in the form of hash
148
+ # @!visibility private
149
+ def to_hash
150
+ hash = {}
151
+ self.class.attribute_map.each_pair do |attr, param|
152
+ value = self.send(attr)
153
+ if value.nil?
154
+ is_nullable = self.class.openapi_nullable.include?(attr)
155
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
156
+ end
157
+
158
+ hash[param] = _to_hash(value)
159
+ end
160
+ self.additional_properties.each_pair do |attr, value|
161
+ hash[attr] = value
162
+ end
163
+ hash
164
+ end
165
+
166
+ # Checks equality by comparing each attribute.
167
+ # @param o [Object] Object to be compared
168
+ # @!visibility private
169
+ def ==(o)
170
+ return true if self.equal?(o)
171
+ self.class == o.class &&
172
+ instance == o.instance &&
173
+ password == o.password &&
174
+ type == o.type &&
175
+ username == o.username &&
176
+ additional_properties == o.additional_properties
177
+ end
178
+
179
+ # Calculates hash code according to all attributes.
180
+ # @return [Integer] Hash code
181
+ # @!visibility private
182
+ def hash
183
+ [instance, password, type, username, additional_properties].hash
184
+ end
185
+ end
186
+ end
@@ -0,0 +1,26 @@
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
+ # The definition of the `ServiceNowBasicAuth` object.
21
+ class ServiceNowBasicAuthType
22
+ include BaseEnumModel
23
+
24
+ SERVICENOWBASICAUTH = "ServiceNowBasicAuth".freeze
25
+ end
26
+ end
@@ -0,0 +1,153 @@
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
+ # The definition of the `ServiceNowBasicAuth` object.
21
+ class ServiceNowBasicAuthUpdate
22
+ include BaseGenericModel
23
+
24
+ # The `ServiceNowBasicAuthUpdate` `instance`.
25
+ attr_accessor :instance
26
+
27
+ # The `ServiceNowBasicAuthUpdate` `password`.
28
+ attr_accessor :password
29
+
30
+ # The definition of the `ServiceNowBasicAuth` object.
31
+ attr_reader :type
32
+
33
+ # The `ServiceNowBasicAuthUpdate` `username`.
34
+ attr_accessor :username
35
+
36
+ attr_accessor :additional_properties
37
+
38
+ # Attribute mapping from ruby-style variable name to JSON key.
39
+ # @!visibility private
40
+ def self.attribute_map
41
+ {
42
+ :'instance' => :'instance',
43
+ :'password' => :'password',
44
+ :'type' => :'type',
45
+ :'username' => :'username'
46
+ }
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ # @!visibility private
51
+ def self.openapi_types
52
+ {
53
+ :'instance' => :'String',
54
+ :'password' => :'String',
55
+ :'type' => :'ServiceNowBasicAuthType',
56
+ :'username' => :'String'
57
+ }
58
+ end
59
+
60
+ # Initializes the object
61
+ # @param attributes [Hash] Model attributes in the form of hash
62
+ # @!visibility private
63
+ def initialize(attributes = {})
64
+ if (!attributes.is_a?(Hash))
65
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ServiceNowBasicAuthUpdate` initialize method"
66
+ end
67
+
68
+ self.additional_properties = {}
69
+ # check to see if the attribute exists and convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h|
71
+ if (!self.class.attribute_map.key?(k.to_sym))
72
+ self.additional_properties[k.to_sym] = v
73
+ else
74
+ h[k.to_sym] = v
75
+ end
76
+ }
77
+
78
+ if attributes.key?(:'instance')
79
+ self.instance = attributes[:'instance']
80
+ end
81
+
82
+ if attributes.key?(:'password')
83
+ self.password = attributes[:'password']
84
+ end
85
+
86
+ if attributes.key?(:'type')
87
+ self.type = attributes[:'type']
88
+ end
89
+
90
+ if attributes.key?(:'username')
91
+ self.username = attributes[:'username']
92
+ end
93
+ end
94
+
95
+ # Check to see if the all the properties in the model are valid
96
+ # @return true if the model is valid
97
+ # @!visibility private
98
+ def valid?
99
+ return false if @type.nil?
100
+ true
101
+ end
102
+
103
+ # Custom attribute writer method with validation
104
+ # @param type [Object] Object to be assigned
105
+ # @!visibility private
106
+ def type=(type)
107
+ if type.nil?
108
+ fail ArgumentError, 'invalid value for "type", type cannot be nil.'
109
+ end
110
+ @type = type
111
+ end
112
+
113
+ # Returns the object in the form of hash, with additionalProperties support.
114
+ # @return [Hash] Returns the object in the form of hash
115
+ # @!visibility private
116
+ def to_hash
117
+ hash = {}
118
+ self.class.attribute_map.each_pair do |attr, param|
119
+ value = self.send(attr)
120
+ if value.nil?
121
+ is_nullable = self.class.openapi_nullable.include?(attr)
122
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
123
+ end
124
+
125
+ hash[param] = _to_hash(value)
126
+ end
127
+ self.additional_properties.each_pair do |attr, value|
128
+ hash[attr] = value
129
+ end
130
+ hash
131
+ end
132
+
133
+ # Checks equality by comparing each attribute.
134
+ # @param o [Object] Object to be compared
135
+ # @!visibility private
136
+ def ==(o)
137
+ return true if self.equal?(o)
138
+ self.class == o.class &&
139
+ instance == o.instance &&
140
+ password == o.password &&
141
+ type == o.type &&
142
+ username == o.username &&
143
+ additional_properties == o.additional_properties
144
+ end
145
+
146
+ # Calculates hash code according to all attributes.
147
+ # @return [Integer] Hash code
148
+ # @!visibility private
149
+ def hash
150
+ [instance, password, type, username, additional_properties].hash
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,62 @@
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
+ # The definition of the `ServiceNowCredentials` object.
21
+ module ServiceNowCredentials
22
+ class << self
23
+ include BaseOneOfModel
24
+ include BaseOneOfModelNoDiscriminator
25
+
26
+ # List of class defined in oneOf (OpenAPI v3)
27
+ def openapi_one_of
28
+ [
29
+ :'ServiceNowBasicAuth'
30
+ ]
31
+ end
32
+ # Builds the object
33
+ # @param data [Mixed] Data to be matched against the list of oneOf items
34
+ # @return [Object] Returns the model or the data itself
35
+ def build(data)
36
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
37
+ # Note:
38
+ # - We do not attempt to check whether exactly one item matches.
39
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
40
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
41
+ # - TODO: scalar values are de facto behaving as if they were nullable.
42
+ # - TODO: logging when debugging is set.
43
+ openapi_one_of.each do |klass|
44
+ begin
45
+ next if klass == :AnyType # "nullable: true"
46
+ typed_data = find_and_cast_into_type(klass, data)
47
+ next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed
48
+ return typed_data if typed_data
49
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
50
+ end
51
+ end
52
+
53
+ if openapi_one_of.include?(:AnyType)
54
+ data
55
+ else
56
+ self._unparsed = true
57
+ DatadogAPIClient::UnparsedObject.new(data)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
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
+ # The definition of the `ServiceNowCredentialsUpdate` object.
21
+ module ServiceNowCredentialsUpdate
22
+ class << self
23
+ include BaseOneOfModel
24
+ include BaseOneOfModelNoDiscriminator
25
+
26
+ # List of class defined in oneOf (OpenAPI v3)
27
+ def openapi_one_of
28
+ [
29
+ :'ServiceNowBasicAuthUpdate'
30
+ ]
31
+ end
32
+ # Builds the object
33
+ # @param data [Mixed] Data to be matched against the list of oneOf items
34
+ # @return [Object] Returns the model or the data itself
35
+ def build(data)
36
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
37
+ # Note:
38
+ # - We do not attempt to check whether exactly one item matches.
39
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
40
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
41
+ # - TODO: scalar values are de facto behaving as if they were nullable.
42
+ # - TODO: logging when debugging is set.
43
+ openapi_one_of.each do |klass|
44
+ begin
45
+ next if klass == :AnyType # "nullable: true"
46
+ typed_data = find_and_cast_into_type(klass, data)
47
+ next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed
48
+ return typed_data if typed_data
49
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
50
+ end
51
+ end
52
+
53
+ if openapi_one_of.include?(:AnyType)
54
+ data
55
+ else
56
+ self._unparsed = true
57
+ DatadogAPIClient::UnparsedObject.new(data)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end