datadog_api_client 1.11.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/schemas/v1/openapi.yaml +291 -114
  4. data/.generator/schemas/v2/openapi.yaml +1156 -41
  5. data/.generator/src/generator/cli.py +57 -40
  6. data/.generator/src/generator/openapi.py +12 -6
  7. data/.generator/src/generator/templates/api.j2 +14 -13
  8. data/.generator/src/generator/templates/api_client.j2 +63 -11
  9. data/.generator/src/generator/templates/configuration.j2 +12 -8
  10. data/.generator/src/generator/templates/example.j2 +1 -1
  11. data/.generator/src/generator/templates/inflector.j2 +28 -0
  12. data/.generator/src/generator/templates/model_base.j2 +2 -2
  13. data/.generator/src/generator/templates/model_oneof.j2 +1 -1
  14. data/.generator/src/generator/templates/package.j2 +7 -12
  15. data/.github/workflows/approved_status.yml +0 -2
  16. data/.github/workflows/codeql-analysis.yml +49 -0
  17. data/.github/workflows/docs.yml +1 -1
  18. data/.github/workflows/prepare_release.yml +1 -1
  19. data/.github/workflows/publish.yml +1 -1
  20. data/.github/workflows/release.yml +1 -1
  21. data/.github/workflows/test.yml +4 -6
  22. data/.github/workflows/test_integration.yml +1 -1
  23. data/.pre-commit-config.yaml +3 -12
  24. data/CHANGELOG.md +25 -0
  25. data/Gemfile +1 -0
  26. data/Makefile +1 -2
  27. data/datadog_api_client.gemspec +2 -0
  28. data/examples/v1/downtimes/CreateDowntime_1393233946.rb +3 -0
  29. data/examples/v1/downtimes/CreateDowntime_2908359488.rb +3 -0
  30. data/examples/v1/downtimes/CreateDowntime_3059354445.rb +3 -0
  31. data/examples/v1/events/ListEvents.rb +1 -1
  32. data/examples/v1/service-level-objectives/GetSLOHistory.rb +1 -1
  33. data/examples/v1/service-level-objectives/SearchSLO.rb +1 -1
  34. data/examples/v1/synthetics/CreateSyntheticsBrowserTest_2932742688.rb +1 -1
  35. data/examples/v1/synthetics/GetAPITestLatestResults.rb +1 -1
  36. data/examples/v1/synthetics/GetAPITestResult.rb +1 -1
  37. data/examples/v1/synthetics/GetBrowserTestLatestResults.rb +1 -1
  38. data/examples/v1/synthetics/GetBrowserTestResult.rb +1 -1
  39. data/examples/v1/usage-metering/GetDailyCustomReports.rb +1 -1
  40. data/examples/v1/usage-metering/GetHourlyUsageAttribution.rb +0 -3
  41. data/examples/v1/usage-metering/GetMonthlyCustomReports.rb +1 -1
  42. data/examples/v1/usage-metering/GetMonthlyUsageAttribution.rb +0 -3
  43. data/examples/v1/usage-metering/GetSpecifiedDailyCustomReports.rb +1 -1
  44. data/examples/v1/usage-metering/GetSpecifiedMonthlyCustomReports.rb +1 -1
  45. data/examples/v1/usage-metering/GetUsageAttribution.rb +1 -1
  46. data/examples/v1/usage-metering/GetUsageCIApp.rb +2 -5
  47. data/examples/v1/usage-metering/GetUsageCIApp_1064440884.rb +8 -0
  48. data/examples/v1/usage-metering/GetUsageCWS.rb +2 -5
  49. data/examples/v1/usage-metering/GetUsageCWS_736958514.rb +8 -0
  50. data/examples/v1/usage-metering/GetUsageDBM.rb +2 -5
  51. data/examples/v1/usage-metering/GetUsageDBM_3446806203.rb +8 -0
  52. data/examples/v1/usage-metering/GetUsageLambda.rb +2 -5
  53. data/examples/v1/usage-metering/GetUsageLambda_3132428705.rb +8 -0
  54. data/examples/v1/usage-metering/GetUsageLogs.rb +2 -5
  55. data/examples/v1/usage-metering/GetUsageLogsByIndex.rb +2 -5
  56. data/examples/v1/usage-metering/GetUsageLogsByIndex_1025184776.rb +8 -0
  57. data/examples/v1/usage-metering/GetUsageLogs_2562396405.rb +8 -0
  58. data/examples/v1/usage-metering/GetUsageNetworkFlows.rb +2 -5
  59. data/examples/v1/usage-metering/GetUsageNetworkFlows_1239422069.rb +8 -0
  60. data/examples/v1/usage-metering/GetUsageNetworkHosts.rb +2 -5
  61. data/examples/v1/usage-metering/GetUsageNetworkHosts_1249907835.rb +8 -0
  62. data/examples/v1/usage-metering/GetUsageOnlineArchive.rb +2 -5
  63. data/examples/v1/usage-metering/GetUsageOnlineArchive_1501172903.rb +8 -0
  64. data/examples/v1/usage-metering/GetUsageRumSessions.rb +2 -5
  65. data/examples/v1/usage-metering/GetUsageRumSessions_714937291.rb +8 -0
  66. data/examples/v1/usage-metering/GetUsageRumUnits.rb +2 -5
  67. data/examples/v1/usage-metering/GetUsageRumUnits_3959755399.rb +8 -0
  68. data/examples/v1/usage-metering/GetUsageSDS.rb +2 -5
  69. data/examples/v1/usage-metering/GetUsageSDS_271128478.rb +8 -0
  70. data/examples/v1/usage-metering/GetUsageSynthetics.rb +1 -1
  71. data/examples/v1/usage-metering/GetUsageSyntheticsAPI.rb +2 -5
  72. data/examples/v1/usage-metering/GetUsageSyntheticsAPI_4048033529.rb +8 -0
  73. data/examples/v1/usage-metering/GetUsageSyntheticsBrowser.rb +2 -5
  74. data/examples/v1/usage-metering/GetUsageSyntheticsBrowser_1704663299.rb +8 -0
  75. data/examples/v2/events/ListEvents.rb +8 -0
  76. data/examples/v2/events/ListEvents_2663715109.rb +14 -0
  77. data/examples/v2/events/SearchEvents.rb +23 -0
  78. data/examples/v2/incident-services/CreateIncidentService.rb +1 -1
  79. data/examples/v2/incident-services/DeleteIncidentService.rb +1 -1
  80. data/examples/v2/incident-services/GetIncidentService.rb +1 -1
  81. data/examples/v2/incident-services/ListIncidentServices.rb +1 -1
  82. data/examples/v2/incident-services/UpdateIncidentService.rb +1 -1
  83. data/examples/v2/incident-teams/CreateIncidentTeam.rb +1 -1
  84. data/examples/v2/incident-teams/DeleteIncidentTeam.rb +1 -1
  85. data/examples/v2/incident-teams/GetIncidentTeam.rb +1 -1
  86. data/examples/v2/incident-teams/ListIncidentTeams.rb +1 -1
  87. data/examples/v2/incident-teams/UpdateIncidentTeam.rb +1 -1
  88. data/examples/v2/incidents/CreateIncident.rb +1 -1
  89. data/examples/v2/incidents/DeleteIncident.rb +1 -1
  90. data/examples/v2/incidents/GetIncident.rb +1 -1
  91. data/examples/v2/incidents/ListIncidents.rb +1 -1
  92. data/examples/v2/incidents/UpdateIncident.rb +1 -1
  93. data/examples/v2/incidents/UpdateIncident_1009194038.rb +1 -1
  94. data/examples/v2/incidents/UpdateIncident_3369341440.rb +1 -1
  95. data/examples/v2/metrics/SubmitMetrics.rb +6 -0
  96. data/examples/v2/security-monitoring/EditSecurityMonitoringSignalAssignee.rb +15 -0
  97. data/examples/v2/security-monitoring/EditSecurityMonitoringSignalIncidents.rb +15 -0
  98. data/examples/v2/security-monitoring/EditSecurityMonitoringSignalState.rb +14 -0
  99. data/examples/v2/security-monitoring/UpdateSecurityMonitoringRule.rb +1 -0
  100. data/examples/v2/usage-metering/GetEstimatedCostByOrg.rb +5 -2
  101. data/examples/v2/usage-metering/GetEstimatedCostByOrg_2734954020.rb +11 -0
  102. data/examples/v2/usage-metering/GetEstimatedCostByOrg_3186693804.rb +11 -0
  103. data/examples/v2/usage-metering/GetUsageApplicationSecurityMonitoring.rb +2 -5
  104. data/examples/v2/usage-metering/GetUsageApplicationSecurityMonitoring_3959166796.rb +8 -0
  105. data/examples/v2/usage-metering/GetUsageLambdaTracedInvocations.rb +2 -5
  106. data/examples/v2/usage-metering/GetUsageLambdaTracedInvocations_1436752065.rb +8 -0
  107. data/examples/v2/usage-metering/GetUsageObservabilityPipelines.rb +2 -5
  108. data/examples/v2/usage-metering/GetUsageObservabilityPipelines_970725512.rb +8 -0
  109. data/lib/datadog_api_client/{v2/api_client.rb → api_client.rb} +63 -11
  110. data/lib/datadog_api_client/api_key_configuration.rb +1 -18
  111. data/lib/datadog_api_client/{v1/configuration.rb → configuration.rb} +84 -31
  112. data/lib/datadog_api_client/inflector.rb +1293 -0
  113. data/lib/datadog_api_client/models.rb +66 -0
  114. data/lib/datadog_api_client/v1/api/authentication_api.rb +3 -11
  115. data/lib/datadog_api_client/v1/api/aws_integration_api.rb +19 -91
  116. data/lib/datadog_api_client/v1/api/aws_logs_integration_api.rb +15 -71
  117. data/lib/datadog_api_client/v1/api/azure_integration_api.rb +11 -51
  118. data/lib/datadog_api_client/v1/api/dashboard_lists_api.rb +11 -51
  119. data/lib/datadog_api_client/v1/api/dashboards_api.rb +15 -71
  120. data/lib/datadog_api_client/v1/api/downtimes_api.rb +15 -71
  121. data/lib/datadog_api_client/v1/api/events_api.rb +9 -33
  122. data/lib/datadog_api_client/v1/api/gcp_integration_api.rb +9 -41
  123. data/lib/datadog_api_client/v1/api/hosts_api.rb +9 -41
  124. data/lib/datadog_api_client/v1/api/ip_ranges_api.rb +3 -11
  125. data/lib/datadog_api_client/v1/api/key_management_api.rb +21 -101
  126. data/lib/datadog_api_client/v1/api/logs_api.rb +5 -21
  127. data/lib/datadog_api_client/v1/api/logs_indexes_api.rb +13 -61
  128. data/lib/datadog_api_client/v1/api/logs_pipelines_api.rb +15 -71
  129. data/lib/datadog_api_client/v1/api/metrics_api.rb +15 -71
  130. data/lib/datadog_api_client/v1/api/monitors_api.rb +21 -101
  131. data/lib/datadog_api_client/v1/api/notebooks_api.rb +11 -51
  132. data/lib/datadog_api_client/v1/api/organizations_api.rb +13 -61
  133. data/lib/datadog_api_client/v1/api/pager_duty_integration_api.rb +9 -41
  134. data/lib/datadog_api_client/v1/api/security_monitoring_api.rb +8 -32
  135. data/lib/datadog_api_client/v1/api/service_checks_api.rb +3 -11
  136. data/lib/datadog_api_client/v1/api/service_level_objective_corrections_api.rb +11 -51
  137. data/lib/datadog_api_client/v1/api/service_level_objectives_api.rb +31 -99
  138. data/lib/datadog_api_client/v1/api/slack_integration_api.rb +11 -51
  139. data/lib/datadog_api_client/v1/api/snapshots_api.rb +3 -11
  140. data/lib/datadog_api_client/v1/api/synthetics_api.rb +55 -271
  141. data/lib/datadog_api_client/v1/api/tags_api.rb +11 -51
  142. data/lib/datadog_api_client/v1/api/usage_metering_api.rb +171 -418
  143. data/lib/datadog_api_client/v1/api/users_api.rb +11 -51
  144. data/lib/datadog_api_client/v1/api/webhooks_integration_api.rb +17 -81
  145. data/lib/datadog_api_client/v1/model_base.rb +2 -2
  146. data/lib/datadog_api_client/v1/models/distribution_point_item.rb +1 -1
  147. data/lib/datadog_api_client/v1/models/distribution_widget_histogram_request_query.rb +1 -1
  148. data/lib/datadog_api_client/v1/models/formula_and_function_query_definition.rb +1 -1
  149. data/lib/datadog_api_client/v1/models/hourly_usage_attribution_body.rb +5 -1
  150. data/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb +7 -0
  151. data/lib/datadog_api_client/v1/models/logs_processor.rb +1 -1
  152. data/lib/datadog_api_client/v1/models/monitor_formula_and_function_query_definition.rb +1 -1
  153. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_body.rb +6 -2
  154. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb +14 -0
  155. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb +21 -1
  156. data/lib/datadog_api_client/v1/models/notebook_cell_create_request_attributes.rb +1 -1
  157. data/lib/datadog_api_client/v1/models/notebook_cell_response_attributes.rb +1 -1
  158. data/lib/datadog_api_client/v1/models/notebook_cell_time.rb +1 -1
  159. data/lib/datadog_api_client/v1/models/notebook_cell_update_request_attributes.rb +1 -1
  160. data/lib/datadog_api_client/v1/models/notebook_global_time.rb +1 -1
  161. data/lib/datadog_api_client/v1/models/notebook_update_cell.rb +1 -1
  162. data/lib/datadog_api_client/v1/models/sunburst_widget_legend.rb +1 -1
  163. data/lib/datadog_api_client/v1/models/synthetics_assertion.rb +1 -1
  164. data/lib/datadog_api_client/v1/models/synthetics_basic_auth.rb +1 -1
  165. data/lib/datadog_api_client/v1/models/tree_map_color_by.rb +1 -1
  166. data/lib/datadog_api_client/v1/models/tree_map_group_by.rb +1 -1
  167. data/lib/datadog_api_client/v1/models/tree_map_size_by.rb +1 -1
  168. data/lib/datadog_api_client/v1/models/tree_map_widget_definition.rb +28 -6
  169. data/lib/datadog_api_client/v1/models/usage_attribution_body.rb +6 -2
  170. data/lib/datadog_api_client/v1/models/usage_attribution_sort.rb +2 -0
  171. data/lib/datadog_api_client/v1/models/usage_attribution_supported_metrics.rb +2 -0
  172. data/lib/datadog_api_client/v1/models/usage_attribution_values.rb +22 -2
  173. data/lib/datadog_api_client/v1/models/widget_definition.rb +1 -1
  174. data/lib/datadog_api_client/v2/api/audit_api.rb +11 -25
  175. data/lib/datadog_api_client/v2/api/authn_mappings_api.rb +11 -51
  176. data/lib/datadog_api_client/v2/api/cloud_workload_security_api.rb +13 -61
  177. data/lib/datadog_api_client/v2/api/dashboard_lists_api.rb +9 -41
  178. data/lib/datadog_api_client/v2/api/events_api.rb +228 -0
  179. data/lib/datadog_api_client/v2/api/incident_services_api.rb +36 -46
  180. data/lib/datadog_api_client/v2/api/incident_teams_api.rb +36 -46
  181. data/lib/datadog_api_client/v2/api/incidents_api.rb +39 -48
  182. data/lib/datadog_api_client/v2/api/key_management_api.rb +29 -141
  183. data/lib/datadog_api_client/v2/api/logs_api.rb +15 -45
  184. data/lib/datadog_api_client/v2/api/logs_archives_api.rb +21 -101
  185. data/lib/datadog_api_client/v2/api/logs_metrics_api.rb +11 -51
  186. data/lib/datadog_api_client/v2/api/metrics_api.rb +26 -112
  187. data/lib/datadog_api_client/v2/api/opsgenie_integration_api.rb +11 -51
  188. data/lib/datadog_api_client/v2/api/organizations_api.rb +3 -11
  189. data/lib/datadog_api_client/v2/api/processes_api.rb +6 -13
  190. data/lib/datadog_api_client/v2/api/roles_api.rb +27 -131
  191. data/lib/datadog_api_client/v2/api/rum_api.rb +13 -35
  192. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +247 -125
  193. data/lib/datadog_api_client/v2/api/service_accounts_api.rb +11 -51
  194. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +132 -68
  195. data/lib/datadog_api_client/v2/api/users_api.rb +21 -101
  196. data/lib/datadog_api_client/v2/model_base.rb +2 -2
  197. data/lib/datadog_api_client/v2/models/api_key_response_included_item.rb +1 -1
  198. data/lib/datadog_api_client/v2/models/application_key_response_included_item.rb +1 -1
  199. data/lib/datadog_api_client/v2/models/authn_mapping_included.rb +1 -1
  200. data/lib/datadog_api_client/v2/models/event.rb +141 -0
  201. data/lib/datadog_api_client/v2/models/event_attributes.rb +305 -0
  202. data/lib/datadog_api_client/v2/models/event_priority.rb +27 -0
  203. data/lib/datadog_api_client/v2/models/event_response.rb +133 -0
  204. data/lib/datadog_api_client/v2/models/event_response_attributes.rb +133 -0
  205. data/lib/datadog_api_client/v2/models/event_status_type.rb +35 -0
  206. data/lib/datadog_api_client/v2/models/event_type.rb +26 -0
  207. data/lib/datadog_api_client/v2/models/events_list_request.rb +142 -0
  208. data/lib/datadog_api_client/v2/models/events_list_response.rb +133 -0
  209. data/lib/datadog_api_client/v2/models/events_list_response_links.rb +112 -0
  210. data/lib/datadog_api_client/v2/models/events_query_filter.rb +137 -0
  211. data/lib/datadog_api_client/v2/models/events_query_options.rb +124 -0
  212. data/lib/datadog_api_client/v2/models/events_request_page.rb +134 -0
  213. data/lib/datadog_api_client/v2/models/events_response_metadata.rb +144 -0
  214. data/lib/datadog_api_client/v2/models/events_response_metadata_page.rb +112 -0
  215. data/lib/datadog_api_client/v2/models/events_sort.rb +27 -0
  216. data/lib/datadog_api_client/v2/models/events_warning.rb +131 -0
  217. data/lib/datadog_api_client/v2/models/hourly_usage.rb +133 -0
  218. data/lib/datadog_api_client/v2/models/hourly_usage_attributes.rb +163 -0
  219. data/lib/datadog_api_client/v2/models/hourly_usage_measurement.rb +122 -0
  220. data/lib/datadog_api_client/v2/models/hourly_usage_metadata.rb +111 -0
  221. data/lib/datadog_api_client/v2/models/hourly_usage_pagination.rb +112 -0
  222. data/lib/datadog_api_client/v2/models/hourly_usage_response.rb +123 -0
  223. data/lib/datadog_api_client/v2/models/incident_field_attributes.rb +1 -1
  224. data/lib/datadog_api_client/v2/models/incident_response_included_item.rb +1 -1
  225. data/lib/datadog_api_client/v2/models/incident_service_included_items.rb +1 -1
  226. data/lib/datadog_api_client/v2/models/incident_team_included_items.rb +1 -1
  227. data/lib/datadog_api_client/v2/models/incident_timeline_cell_create_attributes.rb +1 -1
  228. data/lib/datadog_api_client/v2/models/logs_aggregate_bucket_value.rb +1 -1
  229. data/lib/datadog_api_client/v2/models/logs_archive_create_request_destination.rb +1 -1
  230. data/lib/datadog_api_client/v2/models/logs_archive_destination.rb +1 -1
  231. data/lib/datadog_api_client/v2/models/logs_group_by_missing.rb +1 -1
  232. data/lib/datadog_api_client/v2/models/logs_group_by_total.rb +1 -1
  233. data/lib/datadog_api_client/v2/models/metric_intake_type.rb +1 -2
  234. data/lib/datadog_api_client/v2/models/metric_resource.rb +2 -2
  235. data/lib/datadog_api_client/v2/models/metric_series.rb +1 -1
  236. data/lib/datadog_api_client/v2/models/metric_volumes.rb +1 -1
  237. data/lib/datadog_api_client/v2/models/metrics_and_metric_tag_configurations.rb +1 -1
  238. data/lib/datadog_api_client/v2/models/monitor_type.rb +215 -0
  239. data/lib/datadog_api_client/v2/models/rum_aggregate_bucket_value.rb +1 -1
  240. data/lib/datadog_api_client/v2/models/rum_group_by_missing.rb +1 -1
  241. data/lib/datadog_api_client/v2/models/rum_group_by_total.rb +1 -1
  242. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query.rb +13 -1
  243. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query_create.rb +13 -1
  244. data/lib/datadog_api_client/v2/models/security_monitoring_signal_archive_reason.rb +29 -0
  245. data/lib/datadog_api_client/v2/models/security_monitoring_signal_assignee_update_attributes.rb +132 -0
  246. data/lib/datadog_api_client/v2/models/security_monitoring_signal_assignee_update_data.rb +122 -0
  247. data/lib/datadog_api_client/v2/models/security_monitoring_signal_assignee_update_request.rb +122 -0
  248. data/lib/datadog_api_client/v2/models/security_monitoring_signal_incidents_update_attributes.rb +134 -0
  249. data/lib/datadog_api_client/v2/models/security_monitoring_signal_incidents_update_data.rb +122 -0
  250. data/lib/datadog_api_client/v2/models/security_monitoring_signal_incidents_update_request.rb +122 -0
  251. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state.rb +28 -0
  252. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state_update_attributes.rb +152 -0
  253. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state_update_data.rb +122 -0
  254. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state_update_request.rb +122 -0
  255. data/lib/datadog_api_client/v2/models/security_monitoring_signal_triage_attributes.rb +248 -0
  256. data/lib/datadog_api_client/v2/models/security_monitoring_signal_triage_update_data.rb +111 -0
  257. data/lib/datadog_api_client/v2/models/security_monitoring_signal_triage_update_response.rb +122 -0
  258. data/lib/datadog_api_client/v2/models/security_monitoring_triage_user.rb +152 -0
  259. data/lib/datadog_api_client/v2/models/user_response_included_item.rb +1 -1
  260. data/lib/datadog_api_client/v2.rb +40 -0
  261. data/lib/datadog_api_client/version.rb +1 -1
  262. data/lib/datadog_api_client.rb +11 -5
  263. data/spec/{v1/api_client_spec.rb → api_client_spec.rb} +29 -29
  264. data/spec/{v1/configuration_spec.rb → configuration_spec.rb} +3 -3
  265. data/spec/spec_helper.rb +1 -3
  266. metadata +97 -21
  267. data/.dockerignore +0 -1
  268. data/.generator/src/generator/templates/api_error.j2 +0 -49
  269. data/examples/v2/usage-metering/GetEstimatedCostByOrg_1171921972.rb +0 -9
  270. data/examples/v2/usage-metering/GetEstimatedCostByOrg_627383212.rb +0 -9
  271. data/lib/datadog_api_client/v1/api_client.rb +0 -453
  272. data/lib/datadog_api_client/v1/api_error.rb +0 -60
  273. data/lib/datadog_api_client/v1.rb +0 -813
  274. data/lib/datadog_api_client/v2/api_error.rb +0 -60
  275. data/lib/datadog_api_client/v2/configuration.rb +0 -420
  276. data/spec/v2/api_client_spec.rb +0 -210
  277. data/spec/v2/configuration_spec.rb +0 -45
@@ -1,60 +0,0 @@
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
- module DatadogAPIClient::V2
17
- class APIError < StandardError
18
- attr_reader :code, :response_headers, :response_body
19
-
20
- # Usage examples:
21
- # APIError.new
22
- # APIError.new("message")
23
- # APIError.new(:code => 500, :response_headers => {}, :response_body => "")
24
- # APIError.new(:code => 404, :message => "Not Found")
25
- def initialize(arg = nil)
26
- if arg.is_a? Hash
27
- if arg.key?(:message) || arg.key?('message')
28
- super(arg[:message] || arg['message'])
29
- else
30
- super arg
31
- end
32
-
33
- arg.each do |k, v|
34
- instance_variable_set "@#{k}", v
35
- end
36
- else
37
- super arg
38
- end
39
- end
40
-
41
- # Override to_s to display a friendly error message
42
- def to_s
43
- message
44
- end
45
-
46
- def message
47
- if @message.nil?
48
- msg = "Error message: the server returns an error"
49
- else
50
- msg = @message
51
- end
52
-
53
- msg += "\nHTTP status code: #{code}" if code
54
- msg += "\nResponse headers: #{response_headers}" if response_headers
55
- msg += "\nResponse body: #{response_body}" if response_body
56
-
57
- msg
58
- end
59
- end
60
- end
@@ -1,420 +0,0 @@
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
- module DatadogAPIClient::V2
17
- class Configuration
18
- # Defines url scheme
19
- attr_accessor :scheme
20
-
21
- # Defines url host
22
- attr_accessor :host
23
-
24
- # Defines url base path
25
- attr_accessor :base_path
26
-
27
- # Define server configuration index
28
- attr_accessor :server_index
29
-
30
- # Define server operation configuration index
31
- attr_accessor :server_operation_index
32
-
33
- # Default server variables
34
- attr_accessor :server_variables
35
-
36
- # Default server operation variables
37
- attr_accessor :server_operation_variables
38
-
39
- # Defines API keys used with API Key authentications.
40
- #
41
- # @return [Hash] key: parameter name, value: parameter value (API key)
42
- #
43
- # @example parameter name is "api_key", API key is "xxx" (e.g. "api_key=xxx" in query string)
44
- # config.api_key['api_key'] = 'xxx'
45
- attr_accessor :api_key
46
-
47
- # Defines API key prefixes used with API Key authentications.
48
- #
49
- # @return [Hash] key: parameter name, value: API key prefix
50
- #
51
- # @example parameter name is "Authorization", API key prefix is "Token" (e.g. "Authorization: Token xxx" in headers)
52
- # config.api_key_prefix['api_key'] = 'Token'
53
- attr_accessor :api_key_prefix
54
-
55
- # Defines the username used with HTTP basic authentication.
56
- #
57
- # @return [String]
58
- attr_accessor :username
59
-
60
- # Defines the password used with HTTP basic authentication.
61
- #
62
- # @return [String]
63
- attr_accessor :password
64
-
65
- # Defines the access token (Bearer) used with OAuth2.
66
- attr_accessor :access_token
67
-
68
- # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
69
- # details will be logged with `logger.debug` (see the `logger` attribute).
70
- # Default to false.
71
- #
72
- # @return [true, false]
73
- attr_accessor :debugging
74
-
75
- # Defines the logger used for debugging.
76
- # Default to `Rails.logger` (when in Rails) or logging to STDOUT.
77
- #
78
- # @return [#debug]
79
- attr_accessor :logger
80
-
81
- # Defines the temporary folder to store downloaded files
82
- # (for API endpoints that have file response).
83
- # Default to use `Tempfile`.
84
- #
85
- # @return [String]
86
- attr_accessor :temp_folder_path
87
-
88
- # The time limit for HTTP request in seconds.
89
- # Default to 0 (never times out).
90
- attr_accessor :timeout
91
-
92
- # Set this to false to skip client side validation in the operation.
93
- # Default to true.
94
- # @return [true, false]
95
- attr_accessor :client_side_validation
96
-
97
- # Keep track of the unstable operations, and if they have been enabled
98
- attr_accessor :unstable_operations
99
-
100
- ### TLS/SSL setting
101
- # Set this to false to skip verifying SSL certificate when calling API from https server.
102
- # Default to true.
103
- #
104
- # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
105
- #
106
- # @return [true, false]
107
- attr_accessor :verify_ssl
108
-
109
- ### TLS/SSL setting
110
- # Set this to false to skip verifying SSL host name
111
- # Default to true.
112
- #
113
- # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
114
- #
115
- # @return [true, false]
116
- attr_accessor :verify_ssl_host
117
-
118
- ### TLS/SSL setting
119
- # Set this to customize the certificate file to verify the peer.
120
- #
121
- # @return [String] the path to the certificate file
122
- attr_accessor :ssl_ca_cert
123
-
124
- ### TLS/SSL setting
125
- # Client certificate file (for client certificate)
126
- attr_accessor :cert_file
127
-
128
- ### TLS/SSL setting
129
- # Client private key file (for client certificate)
130
- attr_accessor :key_file
131
-
132
- attr_accessor :inject_format
133
-
134
- attr_accessor :force_ending_format
135
-
136
- # Set this to add accept encoding header for compression
137
- attr_accessor :compress
138
-
139
- def initialize
140
- @scheme = 'https'
141
- @host = 'api.datadoghq.com'
142
- @base_path = ''
143
- @server_index = 0
144
- @server_operation_index = {}
145
- @server_variables = {}
146
- @server_operation_variables = {}
147
- @api_key = {}
148
- @api_key_prefix = {}
149
- @timeout = nil
150
- @client_side_validation = true
151
- @verify_ssl = true
152
- @verify_ssl_host = true
153
- @cert_file = nil
154
- @key_file = nil
155
- @debugging = false
156
- @inject_format = false
157
- @force_ending_format = false
158
- @compress = true
159
- @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
160
- @unstable_operations = {
161
- list_incidents: false,
162
- create_incident: false,
163
- delete_incident: false,
164
- get_incident: false,
165
- update_incident: false,
166
- list_incident_services: false,
167
- create_incident_service: false,
168
- delete_incident_service: false,
169
- get_incident_service: false,
170
- update_incident_service: false,
171
- list_incident_teams: false,
172
- create_incident_team: false,
173
- delete_incident_team: false,
174
- get_incident_team: false,
175
- update_incident_team: false,
176
- }
177
- @server_variables[:site] = ENV['DD_SITE'] if ENV.key? 'DD_SITE'
178
- @api_key['apiKeyAuth'] = ENV['DD_API_KEY'] if ENV.key? 'DD_API_KEY'
179
- @api_key['appKeyAuth'] = ENV['DD_APP_KEY'] if ENV.key? 'DD_APP_KEY'
180
-
181
- yield(self) if block_given?
182
- end
183
-
184
- # The default Configuration object.
185
- def self.default
186
- @@default ||= Configuration.new
187
- end
188
-
189
- def configure
190
- yield(self) if block_given?
191
- end
192
-
193
- def scheme=(scheme)
194
- # remove :// from scheme
195
- @scheme = scheme.sub(/:\/\//, '')
196
- end
197
-
198
- def host=(host)
199
- # remove http(s):// and anything after a slash
200
- @host = host.sub(/https?:\/\//, '').split('/').first
201
- end
202
-
203
- def base_path=(base_path)
204
- # Add leading and trailing slashes to base_path
205
- @base_path = "/#{base_path}".gsub(/\/+/, '/')
206
- @base_path = '' if @base_path == '/'
207
- end
208
-
209
- # Returns base URL for specified operation based on server settings
210
- def base_url(operation = nil)
211
- index = server_operation_index.fetch(operation, server_index)
212
- return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
213
-
214
- server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
215
- end
216
-
217
- # Gets API key (with prefix if set).
218
- # @param [String] param_name the parameter name of API key auth
219
- def api_key_with_prefix(param_name, param_alias = nil)
220
- key = @api_key[param_name]
221
- key = @api_key.fetch(param_alias, key) unless param_alias.nil?
222
- if @api_key_prefix[param_name]
223
- "#{@api_key_prefix[param_name]} #{key}"
224
- else
225
- key
226
- end
227
- end
228
-
229
- # Gets Basic Auth token string
230
- def basic_auth_token
231
- 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
232
- end
233
-
234
- # Returns Auth Settings hash for api client.
235
- def auth_settings
236
- {
237
- AuthZ:
238
- {
239
- type: 'oauth2',
240
- in: 'header',
241
- key: 'Authorization',
242
- value: "Bearer #{access_token}"
243
- },
244
- apiKeyAuth:
245
- {
246
- type: 'api_key',
247
- in: 'header',
248
- key: 'DD-API-KEY',
249
- value: api_key_with_prefix('apiKeyAuth')
250
- },
251
- appKeyAuth:
252
- {
253
- type: 'api_key',
254
- in: 'header',
255
- key: 'DD-APPLICATION-KEY',
256
- value: api_key_with_prefix('appKeyAuth')
257
- },
258
- }
259
- end
260
-
261
- # Returns an array of Server setting
262
- def server_settings
263
- [
264
- {
265
- url: "https://{subdomain}.{site}",
266
- description: "No description provided",
267
- variables: {
268
- site: {
269
- description: "The regional site for Datadog customers.",
270
- default_value: "datadoghq.com",
271
- enum_values: [
272
- "datadoghq.com",
273
- "us3.datadoghq.com",
274
- "us5.datadoghq.com",
275
- "datadoghq.eu",
276
- "ddog-gov.com"
277
- ]
278
- },
279
- subdomain: {
280
- description: "The subdomain where the API is deployed.",
281
- default_value: "api",
282
- }
283
- }
284
- },
285
- {
286
- url: "{protocol}://{name}",
287
- description: "No description provided",
288
- variables: {
289
- name: {
290
- description: "Full site DNS name.",
291
- default_value: "api.datadoghq.com",
292
- },
293
- protocol: {
294
- description: "The protocol for accessing the API.",
295
- default_value: "https",
296
- }
297
- }
298
- },
299
- {
300
- url: "https://{subdomain}.{site}",
301
- description: "No description provided",
302
- variables: {
303
- site: {
304
- description: "Any Datadog deployment.",
305
- default_value: "datadoghq.com",
306
- },
307
- subdomain: {
308
- description: "The subdomain where the API is deployed.",
309
- default_value: "api",
310
- }
311
- }
312
- }
313
- ]
314
- end
315
-
316
- def operation_server_settings
317
- {
318
- submit_log: [
319
- {
320
- url: "https://{subdomain}.{site}",
321
- description: "No description provided",
322
- variables: {
323
- site: {
324
- description: "The regional site for customers.",
325
- default_value: "datadoghq.com",
326
- enum_values: [
327
- "datadoghq.com",
328
- "us3.datadoghq.com",
329
- "us5.datadoghq.com",
330
- "datadoghq.eu",
331
- "ddog-gov.com"
332
- ]
333
- },
334
- subdomain: {
335
- description: "The subdomain where the API is deployed.",
336
- default_value: "http-intake.logs",
337
- }
338
- }
339
- },
340
- {
341
- url: "{protocol}://{name}",
342
- description: "No description provided",
343
- variables: {
344
- name: {
345
- description: "Full site DNS name.",
346
- default_value: "http-intake.logs.datadoghq.com",
347
- },
348
- protocol: {
349
- description: "The protocol for accessing the API.",
350
- default_value: "https",
351
- }
352
- }
353
- },
354
- {
355
- url: "https://{subdomain}.{site}",
356
- description: "No description provided",
357
- variables: {
358
- site: {
359
- description: "Any Datadog deployment.",
360
- default_value: "datadoghq.com",
361
- },
362
- subdomain: {
363
- description: "The subdomain where the API is deployed.",
364
- default_value: "http-intake.logs",
365
- }
366
- }
367
- }
368
- ],
369
- }
370
- end
371
-
372
- # Returns URL based on server settings
373
- #
374
- # @param index array index of the server settings
375
- # @param variables hash of variable and the corresponding value
376
- def server_url(index, variables = {}, servers = nil)
377
- servers = server_settings if servers == nil
378
-
379
- # check array index out of bound
380
- if (index < 0 || index >= servers.size)
381
- fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
382
- end
383
-
384
- server = servers[index]
385
- url = server[:url]
386
-
387
- return url unless server.key? :variables
388
-
389
- # go through variable and assign a value
390
- server[:variables].each do |name, variable|
391
- if variables.key?(name)
392
- if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
393
- url.gsub! "{" + name.to_s + "}", variables[name]
394
- else
395
- fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
396
- end
397
- else
398
- # use default value
399
- url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
400
- end
401
- end
402
-
403
- url
404
- end
405
- end
406
-
407
- class UnparsedObject
408
- # Defines unparsed object
409
- attr_accessor :data
410
-
411
- def initialize(data)
412
- @data = data
413
- end
414
-
415
- def to_hash
416
- self.data
417
- end
418
- end
419
-
420
- end
@@ -1,210 +0,0 @@
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://openapi-generator.tech
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 'spec_helper'
17
-
18
- describe DatadogAPIClient::V2::APIClient do
19
- context 'initialization' do
20
- context 'URL stuff' do
21
- context 'host' do
22
- it 'removes http from host' do
23
- DatadogAPIClient::V2.configure { |c| c.host = 'http://example.com' }
24
- expect(DatadogAPIClient::V2::Configuration.default.host).to eq('example.com')
25
- end
26
-
27
- it 'removes https from host' do
28
- DatadogAPIClient::V2.configure { |c| c.host = 'https://wookiee.com' }
29
- expect(DatadogAPIClient::V2::APIClient.default.config.host).to eq('wookiee.com')
30
- end
31
-
32
- it 'removes trailing path from host' do
33
- DatadogAPIClient::V2.configure { |c| c.host = 'hobo.com/v4' }
34
- expect(DatadogAPIClient::V2::Configuration.default.host).to eq('hobo.com')
35
- end
36
- end
37
-
38
- context 'base_path' do
39
- it "prepends a slash to base_path" do
40
- DatadogAPIClient::V2.configure { |c| c.base_path = 'v4/dog' }
41
- expect(DatadogAPIClient::V2::Configuration.default.base_path).to eq('/v4/dog')
42
- end
43
-
44
- it "doesn't prepend a slash if one is already there" do
45
- DatadogAPIClient::V2.configure { |c| c.base_path = '/v4/dog' }
46
- expect(DatadogAPIClient::V2::Configuration.default.base_path).to eq('/v4/dog')
47
- end
48
-
49
- it "ends up as a blank string if nil" do
50
- DatadogAPIClient::V2.configure { |c| c.base_path = nil }
51
- expect(DatadogAPIClient::V2::Configuration.default.base_path).to eq('')
52
- end
53
- end
54
- end
55
- end
56
-
57
- describe 'timeout in #build_request' do
58
- let(:config) { DatadogAPIClient::V2::Configuration.new }
59
- let(:api_client) { DatadogAPIClient::V2::APIClient.new(config) }
60
-
61
- it 'defaults to nil' do
62
- expect(DatadogAPIClient::V2::Configuration.default.timeout).to eq(nil)
63
- expect(config.timeout).to eq(nil)
64
-
65
- request = api_client.build_request(Net::HTTP::Get, '/test')
66
- expect(request.options[:timeout]).to eq(nil)
67
- end
68
-
69
- it 'can be customized' do
70
- config.timeout = 100
71
- request = api_client.build_request(Net::HTTP::Get, '/test')
72
- expect(request.options[:timeout]).to eq(100)
73
- end
74
- end
75
-
76
- describe '#deserialize' do
77
- it "handles Array<Integer>" do
78
- api_client = DatadogAPIClient::V2::APIClient.new
79
- headers = { 'Content-Type' => 'application/json' }
80
- response = double('response', headers: headers, body: '[12, 34]')
81
- data = api_client.deserialize(response, 'Array<Integer>')
82
- expect(data).to be_instance_of(Array)
83
- expect(data).to eq([12, 34])
84
- end
85
-
86
- it 'handles Array<Array<Integer>>' do
87
- api_client = DatadogAPIClient::V2::APIClient.new
88
- headers = { 'Content-Type' => 'application/json' }
89
- response = double('response', headers: headers, body: '[[12, 34], [56]]')
90
- data = api_client.deserialize(response, 'Array<Array<Integer>>')
91
- expect(data).to be_instance_of(Array)
92
- expect(data).to eq([[12, 34], [56]])
93
- end
94
-
95
- it 'handles Hash<String, String>' do
96
- api_client = DatadogAPIClient::V2::APIClient.new
97
- headers = { 'Content-Type' => 'application/json' }
98
- response = double('response', headers: headers, body: '{"message": "Hello"}')
99
- data = api_client.deserialize(response, 'Hash<String, String>')
100
- expect(data).to be_instance_of(Hash)
101
- expect(data).to eq(:message => 'Hello')
102
- end
103
- end
104
-
105
- describe "#object_to_hash" do
106
- it 'ignores nils and includes empty arrays' do
107
- # uncomment below to test object_to_hash for model
108
- # api_client = DatadogAPIClient::V2::APIClient.new
109
- # _model = DatadogAPIClient::V2::ModelName.new
110
- # update the model attribute below
111
- # _model.id = 1
112
- # update the expected value (hash) below
113
- # expected = {id: 1, name: '', tags: []}
114
- # expect(api_client.object_to_hash(_model)).to eq(expected)
115
- end
116
- end
117
-
118
- describe '#build_collection_param' do
119
- let(:param) { ['aa', 'bb', 'cc'] }
120
- let(:api_client) { DatadogAPIClient::V2::APIClient.new }
121
-
122
- it 'works for csv' do
123
- expect(api_client.build_collection_param(param, :csv)).to eq('aa,bb,cc')
124
- end
125
-
126
- it 'works for ssv' do
127
- expect(api_client.build_collection_param(param, :ssv)).to eq('aa bb cc')
128
- end
129
-
130
- it 'works for tsv' do
131
- expect(api_client.build_collection_param(param, :tsv)).to eq("aa\tbb\tcc")
132
- end
133
-
134
- it 'works for pipes' do
135
- expect(api_client.build_collection_param(param, :pipes)).to eq('aa|bb|cc')
136
- end
137
-
138
- it 'works for multi' do
139
- expect(api_client.build_collection_param(param, :multi)).to eq(['aa', 'bb', 'cc'])
140
- end
141
-
142
- it 'fails for invalid collection format' do
143
- expect { api_client.build_collection_param(param, :INVALID) }.to raise_error(RuntimeError, 'unknown collection format: :INVALID')
144
- end
145
- end
146
-
147
- describe '#json_mime?' do
148
- let(:api_client) { DatadogAPIClient::V2::APIClient.new }
149
-
150
- it 'works' do
151
- expect(api_client.json_mime?(nil)).to eq false
152
- expect(api_client.json_mime?('')).to eq false
153
-
154
- expect(api_client.json_mime?('application/json')).to eq true
155
- expect(api_client.json_mime?('application/json; charset=UTF8')).to eq true
156
- expect(api_client.json_mime?('APPLICATION/JSON')).to eq true
157
-
158
- expect(api_client.json_mime?('application/xml')).to eq false
159
- expect(api_client.json_mime?('text/plain')).to eq false
160
- expect(api_client.json_mime?('application/jsonp')).to eq false
161
- end
162
- end
163
-
164
- describe '#select_header_accept' do
165
- let(:api_client) { DatadogAPIClient::V2::APIClient.new }
166
-
167
- it 'works' do
168
- expect(api_client.select_header_accept(nil)).to be_nil
169
- expect(api_client.select_header_accept([])).to be_nil
170
-
171
- expect(api_client.select_header_accept(['application/json'])).to eq('application/json')
172
- expect(api_client.select_header_accept(['application/xml', 'application/json; charset=UTF8'])).to eq('application/xml, application/json; charset=UTF8')
173
- expect(api_client.select_header_accept(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON, text/html')
174
-
175
- expect(api_client.select_header_accept(['application/xml'])).to eq('application/xml')
176
- expect(api_client.select_header_accept(['text/html', 'application/xml'])).to eq('text/html, application/xml')
177
- end
178
- end
179
-
180
- describe '#select_header_content_type' do
181
- let(:api_client) { DatadogAPIClient::V2::APIClient.new }
182
-
183
- it 'works' do
184
- expect(api_client.select_header_content_type(nil)).to eq('application/json')
185
- expect(api_client.select_header_content_type([])).to eq('application/json')
186
-
187
- expect(api_client.select_header_content_type(['application/json'])).to eq('application/json')
188
- expect(api_client.select_header_content_type(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
189
- expect(api_client.select_header_content_type(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
190
- expect(api_client.select_header_content_type(['application/xml'])).to eq('application/xml')
191
- expect(api_client.select_header_content_type(['text/plain', 'application/xml'])).to eq('text/plain')
192
- end
193
- end
194
-
195
- describe '#sanitize_filename' do
196
- let(:api_client) { DatadogAPIClient::V2::APIClient.new }
197
-
198
- it 'works' do
199
- expect(api_client.sanitize_filename('sun')).to eq('sun')
200
- expect(api_client.sanitize_filename('sun.gif')).to eq('sun.gif')
201
- expect(api_client.sanitize_filename('../sun.gif')).to eq('sun.gif')
202
- expect(api_client.sanitize_filename('/var/tmp/sun.gif')).to eq('sun.gif')
203
- expect(api_client.sanitize_filename('./sun.gif')).to eq('sun.gif')
204
- expect(api_client.sanitize_filename('..\sun.gif')).to eq('sun.gif')
205
- expect(api_client.sanitize_filename('\var\tmp\sun.gif')).to eq('sun.gif')
206
- expect(api_client.sanitize_filename('c:\var\tmp\sun.gif')).to eq('sun.gif')
207
- expect(api_client.sanitize_filename('.\sun.gif')).to eq('sun.gif')
208
- end
209
- end
210
- end