datadog_api_client 1.9.0 → 2.0.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 (440) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/schemas/v1/openapi.yaml +1486 -273
  4. data/.generator/schemas/v2/openapi.yaml +2348 -146
  5. data/.generator/src/generator/cli.py +57 -40
  6. data/.generator/src/generator/formatter.py +20 -1
  7. data/.generator/src/generator/openapi.py +15 -9
  8. data/.generator/src/generator/templates/api.j2 +14 -13
  9. data/.generator/src/generator/templates/api_client.j2 +64 -15
  10. data/.generator/src/generator/templates/configuration.j2 +12 -8
  11. data/.generator/src/generator/templates/example.j2 +1 -1
  12. data/.generator/src/generator/templates/inflector.j2 +28 -0
  13. data/.generator/src/generator/templates/model_base.j2 +2 -2
  14. data/.generator/src/generator/templates/model_generic.j2 +42 -3
  15. data/.generator/src/generator/templates/model_oneof.j2 +1 -1
  16. data/.generator/src/generator/templates/package.j2 +7 -12
  17. data/.github/workflows/approved_status.yml +0 -2
  18. data/.github/workflows/codeql-analysis.yml +49 -0
  19. data/.github/workflows/docs.yml +1 -1
  20. data/.github/workflows/prepare_release.yml +16 -4
  21. data/.github/workflows/publish.yml +1 -1
  22. data/.github/workflows/release.yml +1 -1
  23. data/.github/workflows/test.yml +4 -6
  24. data/.github/workflows/test_integration.yml +1 -8
  25. data/.pre-commit-config.yaml +3 -12
  26. data/CHANGELOG.md +91 -0
  27. data/Gemfile +1 -0
  28. data/Makefile +2 -3
  29. data/README.md +16 -0
  30. data/check-examples.sh +0 -2
  31. data/datadog_api_client.gemspec +2 -0
  32. data/examples/v1/aws-integration/UpdateAWSAccount.rb +8 -4
  33. data/examples/v1/dashboards/CreateDashboard_1442588603.rb +61 -0
  34. data/examples/v1/dashboards/CreateDashboard_252716965.rb +52 -0
  35. data/examples/v1/dashboards/CreateDashboard_3882428227.rb +60 -0
  36. data/examples/v1/downtimes/CreateDowntime_1393233946.rb +3 -0
  37. data/examples/v1/downtimes/CreateDowntime_2908359488.rb +4 -0
  38. data/examples/v1/downtimes/CreateDowntime_3059354445.rb +4 -0
  39. data/examples/v1/downtimes/UpdateDowntime.rb +1 -0
  40. data/examples/v1/events/ListEvents.rb +1 -1
  41. data/examples/v1/metrics/SubmitDistributionPoints.rb +22 -0
  42. data/examples/v1/metrics/SubmitDistributionPoints_3109558960.rb +25 -0
  43. data/examples/v1/monitors/CreateMonitor_1969035628.rb +52 -0
  44. data/examples/v1/monitors/CreateMonitor_2520912138.rb +22 -0
  45. data/examples/v1/organizations/DowngradeOrg.rb +5 -0
  46. data/examples/v1/organizations/UpdateOrg.rb +1 -0
  47. data/examples/v1/security-monitoring/AddSecurityMonitoringSignalToIncident.rb +9 -0
  48. data/examples/v1/security-monitoring/EditSecurityMonitoringSignalAssignee.rb +9 -0
  49. data/examples/v1/security-monitoring/EditSecurityMonitoringSignalState.rb +10 -0
  50. data/examples/v1/service-level-objective-corrections/CreateSLOCorrection.rb +0 -3
  51. data/examples/v1/service-level-objective-corrections/CreateSLOCorrection_1326388368.rb +0 -3
  52. data/examples/v1/service-level-objective-corrections/DeleteSLOCorrection.rb +0 -3
  53. data/examples/v1/service-level-objective-corrections/GetSLOCorrection.rb +0 -3
  54. data/examples/v1/service-level-objective-corrections/ListSLOCorrection.rb +0 -3
  55. data/examples/v1/service-level-objective-corrections/UpdateSLOCorrection.rb +0 -3
  56. data/examples/v1/service-level-objectives/GetSLOCorrections.rb +0 -3
  57. data/examples/v1/service-level-objectives/GetSLOHistory.rb +1 -1
  58. data/examples/v1/service-level-objectives/SearchSLO.rb +16 -0
  59. data/examples/v1/snapshots/GetGraphSnapshot.rb +2 -0
  60. data/examples/v1/synthetics/CreateSyntheticsAPITest.rb +8 -0
  61. data/examples/v1/synthetics/CreateSyntheticsAPITest_1402674167.rb +44 -0
  62. data/examples/v1/synthetics/CreateSyntheticsBrowserTest_2932742688.rb +67 -0
  63. data/examples/v1/synthetics/GetAPITestLatestResults.rb +1 -1
  64. data/examples/v1/synthetics/GetAPITestResult.rb +1 -1
  65. data/examples/v1/synthetics/GetBrowserTestLatestResults.rb +1 -1
  66. data/examples/v1/synthetics/GetBrowserTestResult.rb +1 -1
  67. data/examples/v1/synthetics/UpdateBrowserTest.rb +8 -0
  68. data/examples/v1/usage-metering/GetDailyCustomReports.rb +1 -1
  69. data/examples/v1/usage-metering/GetHourlyUsageAttribution.rb +1 -4
  70. data/examples/v1/usage-metering/GetMonthlyCustomReports.rb +1 -1
  71. data/examples/v1/usage-metering/GetMonthlyUsageAttribution.rb +1 -4
  72. data/examples/v1/usage-metering/{GetMonthlyUsageAttribution_3738504447.rb → GetMonthlyUsageAttribution_3849653599.rb} +1 -1
  73. data/examples/v1/usage-metering/GetSpecifiedDailyCustomReports.rb +1 -1
  74. data/examples/v1/usage-metering/GetSpecifiedMonthlyCustomReports.rb +1 -1
  75. data/examples/v1/usage-metering/GetUsageAttribution.rb +2 -2
  76. data/examples/v1/usage-metering/GetUsageCIApp.rb +2 -5
  77. data/examples/v1/usage-metering/GetUsageCIApp_1064440884.rb +8 -0
  78. data/examples/v1/usage-metering/GetUsageCWS.rb +2 -5
  79. data/examples/v1/usage-metering/GetUsageCWS_736958514.rb +8 -0
  80. data/examples/v1/usage-metering/GetUsageDBM.rb +2 -5
  81. data/examples/v1/usage-metering/GetUsageDBM_3446806203.rb +8 -0
  82. data/examples/v1/usage-metering/GetUsageLambda.rb +2 -5
  83. data/examples/v1/usage-metering/GetUsageLambda_3132428705.rb +8 -0
  84. data/examples/v1/usage-metering/GetUsageLogs.rb +2 -5
  85. data/examples/v1/usage-metering/GetUsageLogsByIndex.rb +2 -5
  86. data/examples/v1/usage-metering/GetUsageLogsByIndex_1025184776.rb +8 -0
  87. data/examples/v1/usage-metering/GetUsageLogs_2562396405.rb +8 -0
  88. data/examples/v1/usage-metering/GetUsageNetworkFlows.rb +2 -5
  89. data/examples/v1/usage-metering/GetUsageNetworkFlows_1239422069.rb +8 -0
  90. data/examples/v1/usage-metering/GetUsageNetworkHosts.rb +2 -5
  91. data/examples/v1/usage-metering/GetUsageNetworkHosts_1249907835.rb +8 -0
  92. data/examples/v1/usage-metering/GetUsageOnlineArchive.rb +2 -5
  93. data/examples/v1/usage-metering/GetUsageOnlineArchive_1501172903.rb +8 -0
  94. data/examples/v1/usage-metering/GetUsageRumSessions.rb +2 -5
  95. data/examples/v1/usage-metering/GetUsageRumSessions_3271366243.rb +9 -0
  96. data/examples/v1/usage-metering/GetUsageRumSessions_714937291.rb +8 -0
  97. data/examples/v1/usage-metering/GetUsageRumUnits.rb +2 -5
  98. data/examples/v1/usage-metering/GetUsageRumUnits_3959755399.rb +8 -0
  99. data/examples/v1/usage-metering/GetUsageSDS.rb +2 -5
  100. data/examples/v1/usage-metering/GetUsageSDS_271128478.rb +8 -0
  101. data/examples/v1/usage-metering/GetUsageSynthetics.rb +1 -1
  102. data/examples/v1/usage-metering/GetUsageSyntheticsAPI.rb +2 -5
  103. data/examples/v1/usage-metering/GetUsageSyntheticsAPI_4048033529.rb +8 -0
  104. data/examples/v1/usage-metering/GetUsageSyntheticsBrowser.rb +2 -5
  105. data/examples/v1/usage-metering/GetUsageSyntheticsBrowser_1704663299.rb +8 -0
  106. data/examples/v2/events/ListEvents.rb +8 -0
  107. data/examples/v2/events/ListEvents_2663715109.rb +14 -0
  108. data/examples/v2/events/SearchEvents.rb +23 -0
  109. data/examples/v2/incident-services/CreateIncidentService.rb +1 -1
  110. data/examples/v2/incident-services/DeleteIncidentService.rb +1 -1
  111. data/examples/v2/incident-services/GetIncidentService.rb +1 -1
  112. data/examples/v2/incident-services/ListIncidentServices.rb +1 -1
  113. data/examples/v2/incident-services/UpdateIncidentService.rb +1 -1
  114. data/examples/v2/incident-teams/CreateIncidentTeam.rb +1 -1
  115. data/examples/v2/incident-teams/DeleteIncidentTeam.rb +1 -1
  116. data/examples/v2/incident-teams/GetIncidentTeam.rb +1 -1
  117. data/examples/v2/incident-teams/ListIncidentTeams.rb +1 -1
  118. data/examples/v2/incident-teams/UpdateIncidentTeam.rb +1 -1
  119. data/examples/v2/incidents/CreateIncident.rb +1 -1
  120. data/examples/v2/incidents/DeleteIncident.rb +1 -1
  121. data/examples/v2/incidents/GetIncident.rb +1 -1
  122. data/examples/v2/incidents/ListIncidents.rb +1 -1
  123. data/examples/v2/incidents/UpdateIncident.rb +1 -1
  124. data/examples/v2/incidents/UpdateIncident_1009194038.rb +1 -1
  125. data/examples/v2/incidents/UpdateIncident_3369341440.rb +1 -1
  126. data/examples/v2/logs/SubmitLog.rb +1 -0
  127. data/examples/v2/logs-archives/CreateLogsArchive.rb +1 -0
  128. data/examples/v2/logs-archives/UpdateLogsArchive.rb +1 -0
  129. data/examples/v2/metrics/CreateTagConfiguration.rb +0 -3
  130. data/examples/v2/metrics/DeleteTagConfiguration.rb +0 -3
  131. data/examples/v2/metrics/EstimateMetricsOutputSeries.rb +9 -0
  132. data/examples/v2/metrics/ListTagConfigurationByName.rb +0 -3
  133. data/examples/v2/metrics/ListTagConfigurations.rb +0 -3
  134. data/examples/v2/metrics/ListTagConfigurations_103226315.rb +0 -3
  135. data/examples/v2/metrics/ListTagConfigurations_1799362914.rb +0 -3
  136. data/examples/v2/metrics/SubmitMetrics.rb +26 -0
  137. data/examples/v2/metrics/UpdateTagConfiguration.rb +0 -3
  138. data/examples/v2/opsgenie-integration/CreateOpsgenieService.rb +16 -0
  139. data/examples/v2/opsgenie-integration/DeleteOpsgenieService.rb +8 -0
  140. data/examples/v2/opsgenie-integration/GetOpsgenieService.rb +8 -0
  141. data/examples/v2/opsgenie-integration/ListOpsgenieServices.rb +5 -0
  142. data/examples/v2/opsgenie-integration/UpdateOpsgenieService.rb +21 -0
  143. data/examples/v2/security-monitoring/EditSecurityMonitoringSignalAssignee.rb +15 -0
  144. data/examples/v2/security-monitoring/EditSecurityMonitoringSignalIncidents.rb +15 -0
  145. data/examples/v2/security-monitoring/EditSecurityMonitoringSignalState.rb +14 -0
  146. data/examples/v2/security-monitoring/ListSecurityMonitoringSignals.rb +0 -3
  147. data/examples/v2/security-monitoring/SearchSecurityMonitoringSignals.rb +0 -3
  148. data/examples/v2/security-monitoring/UpdateSecurityMonitoringRule.rb +5 -0
  149. data/examples/v2/usage-metering/GetCostByOrg.rb +5 -0
  150. data/examples/v2/usage-metering/GetEstimatedCostByOrg.rb +8 -0
  151. data/examples/v2/usage-metering/GetEstimatedCostByOrg_2734954020.rb +11 -0
  152. data/examples/v2/usage-metering/GetEstimatedCostByOrg_3186693804.rb +11 -0
  153. data/examples/v2/usage-metering/GetUsageApplicationSecurityMonitoring.rb +5 -0
  154. data/examples/v2/usage-metering/GetUsageApplicationSecurityMonitoring_3959166796.rb +8 -0
  155. data/examples/v2/usage-metering/GetUsageLambdaTracedInvocations.rb +5 -0
  156. data/examples/v2/usage-metering/GetUsageLambdaTracedInvocations_1436752065.rb +8 -0
  157. data/examples/v2/usage-metering/GetUsageObservabilityPipelines.rb +2 -5
  158. data/examples/v2/usage-metering/GetUsageObservabilityPipelines_970725512.rb +8 -0
  159. data/lib/datadog_api_client/{v2/api_client.rb → api_client.rb} +64 -15
  160. data/lib/datadog_api_client/api_key_configuration.rb +1 -18
  161. data/lib/datadog_api_client/{v1/configuration.rb → configuration.rb} +133 -35
  162. data/lib/datadog_api_client/inflector.rb +1293 -0
  163. data/lib/datadog_api_client/models.rb +66 -0
  164. data/lib/datadog_api_client/v1/api/authentication_api.rb +3 -11
  165. data/lib/datadog_api_client/v1/api/aws_integration_api.rb +19 -91
  166. data/lib/datadog_api_client/v1/api/aws_logs_integration_api.rb +15 -71
  167. data/lib/datadog_api_client/v1/api/azure_integration_api.rb +11 -51
  168. data/lib/datadog_api_client/v1/api/dashboard_lists_api.rb +11 -51
  169. data/lib/datadog_api_client/v1/api/dashboards_api.rb +15 -71
  170. data/lib/datadog_api_client/v1/api/downtimes_api.rb +15 -71
  171. data/lib/datadog_api_client/v1/api/events_api.rb +9 -33
  172. data/lib/datadog_api_client/v1/api/gcp_integration_api.rb +9 -41
  173. data/lib/datadog_api_client/v1/api/hosts_api.rb +9 -41
  174. data/lib/datadog_api_client/v1/api/ip_ranges_api.rb +3 -11
  175. data/lib/datadog_api_client/v1/api/key_management_api.rb +21 -101
  176. data/lib/datadog_api_client/v1/api/logs_api.rb +5 -21
  177. data/lib/datadog_api_client/v1/api/logs_indexes_api.rb +13 -61
  178. data/lib/datadog_api_client/v1/api/logs_pipelines_api.rb +15 -71
  179. data/lib/datadog_api_client/v1/api/metrics_api.rb +87 -62
  180. data/lib/datadog_api_client/v1/api/monitors_api.rb +90 -157
  181. data/lib/datadog_api_client/v1/api/notebooks_api.rb +11 -51
  182. data/lib/datadog_api_client/v1/api/organizations_api.rb +77 -52
  183. data/lib/datadog_api_client/v1/api/pager_duty_integration_api.rb +9 -41
  184. data/lib/datadog_api_client/v1/api/security_monitoring_api.rb +242 -0
  185. data/lib/datadog_api_client/v1/api/service_checks_api.rb +3 -11
  186. data/lib/datadog_api_client/v1/api/service_level_objective_corrections_api.rb +12 -52
  187. data/lib/datadog_api_client/v1/api/service_level_objectives_api.rb +100 -94
  188. data/lib/datadog_api_client/v1/api/slack_integration_api.rb +11 -51
  189. data/lib/datadog_api_client/v1/api/snapshots_api.rb +7 -11
  190. data/lib/datadog_api_client/v1/api/synthetics_api.rb +55 -271
  191. data/lib/datadog_api_client/v1/api/tags_api.rb +11 -51
  192. data/lib/datadog_api_client/v1/api/usage_metering_api.rb +184 -427
  193. data/lib/datadog_api_client/v1/api/users_api.rb +11 -51
  194. data/lib/datadog_api_client/v1/api/webhooks_integration_api.rb +17 -81
  195. data/lib/datadog_api_client/v1/model_base.rb +2 -2
  196. data/lib/datadog_api_client/v1/models/add_signal_to_incident_request.rb +142 -0
  197. data/lib/datadog_api_client/v1/models/distribution_point_item.rb +63 -0
  198. data/lib/datadog_api_client/v1/models/distribution_points_content_encoding.rb +26 -0
  199. data/lib/datadog_api_client/v1/models/distribution_points_payload.rb +124 -0
  200. data/lib/datadog_api_client/v1/models/distribution_points_series.rb +179 -0
  201. data/lib/datadog_api_client/v1/models/distribution_points_type.rb +26 -0
  202. data/lib/datadog_api_client/v1/models/distribution_widget_histogram_request_query.rb +64 -0
  203. data/lib/datadog_api_client/v1/models/distribution_widget_histogram_request_type.rb +26 -0
  204. data/lib/datadog_api_client/v1/models/distribution_widget_request.rb +21 -1
  205. data/lib/datadog_api_client/v1/models/downtime.rb +11 -1
  206. data/lib/datadog_api_client/v1/models/downtime_child.rb +11 -1
  207. data/lib/datadog_api_client/v1/models/event.rb +1 -1
  208. data/lib/datadog_api_client/v1/models/formula_and_function_apm_resource_stat_name.rb +1 -0
  209. data/lib/datadog_api_client/v1/models/formula_and_function_query_definition.rb +1 -1
  210. data/lib/datadog_api_client/v1/models/hourly_usage_attribution_body.rb +5 -1
  211. data/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb +9 -0
  212. data/lib/datadog_api_client/v1/models/http_log_item.rb +29 -4
  213. data/lib/datadog_api_client/v1/models/ip_prefixes_synthetics_private_locations.rb +125 -0
  214. data/lib/datadog_api_client/v1/models/ip_ranges.rb +11 -1
  215. data/lib/datadog_api_client/v1/models/logs_category_processor.rb +1 -1
  216. data/lib/datadog_api_client/v1/models/logs_list_request.rb +1 -1
  217. data/lib/datadog_api_client/v1/models/logs_processor.rb +1 -1
  218. data/lib/datadog_api_client/v1/models/logs_sort.rb +1 -1
  219. data/lib/datadog_api_client/v1/models/monitor_formula_and_function_events_data_source.rb +1 -0
  220. data/lib/datadog_api_client/v1/models/monitor_formula_and_function_query_definition.rb +1 -1
  221. data/lib/datadog_api_client/v1/models/monitor_group_search_response_counts.rb +2 -2
  222. data/lib/datadog_api_client/v1/models/{monitor_search_response_counts_tag_item.rb → monitor_search_count_item.rb} +3 -3
  223. data/lib/datadog_api_client/v1/models/monitor_search_response_counts.rb +4 -4
  224. data/lib/datadog_api_client/v1/models/monitor_type.rb +1 -0
  225. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_body.rb +6 -2
  226. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_response.rb +1 -1
  227. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb +18 -0
  228. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb +61 -1
  229. data/lib/datadog_api_client/v1/models/notebook_cell_create_request.rb +146 -0
  230. data/lib/datadog_api_client/v1/models/notebook_cell_create_request_attributes.rb +68 -0
  231. data/lib/datadog_api_client/v1/models/notebook_cell_response_attributes.rb +1 -1
  232. data/lib/datadog_api_client/v1/models/notebook_cell_time.rb +1 -1
  233. data/lib/datadog_api_client/v1/models/notebook_cell_update_request_attributes.rb +1 -1
  234. data/lib/datadog_api_client/v1/models/notebook_global_time.rb +1 -1
  235. data/lib/datadog_api_client/v1/models/notebook_update_cell.rb +1 -1
  236. data/lib/datadog_api_client/v1/models/org_downgraded_response.rb +111 -0
  237. data/lib/datadog_api_client/v1/models/organization.rb +14 -4
  238. data/lib/datadog_api_client/v1/models/search_slo_response.rb +131 -0
  239. data/lib/datadog_api_client/v1/models/{monitor_group_search_response_counts_status_item.rb → search_slo_response_data.rb} +19 -19
  240. data/lib/datadog_api_client/v1/models/{monitor_group_search_response_counts_type_item.rb → search_slo_response_data_attributes.rb} +21 -19
  241. data/lib/datadog_api_client/v1/models/search_slo_response_data_attributes_facets.rb +197 -0
  242. data/lib/datadog_api_client/v1/models/{monitor_search_response_counts_type_item.rb → search_slo_response_data_attributes_facets_object_int.rb} +7 -7
  243. data/lib/datadog_api_client/v1/models/{monitor_search_response_counts_muted_item.rb → search_slo_response_data_attributes_facets_object_string.rb} +7 -7
  244. data/lib/datadog_api_client/v1/models/search_slo_response_links.rb +151 -0
  245. data/lib/datadog_api_client/v1/models/search_slo_response_meta.rb +111 -0
  246. data/lib/datadog_api_client/v1/models/search_slo_response_meta_page.rb +181 -0
  247. data/lib/datadog_api_client/v1/models/series.rb +2 -2
  248. data/lib/datadog_api_client/v1/models/service_level_objective.rb +3 -3
  249. data/lib/datadog_api_client/v1/models/service_level_objective_query.rb +1 -1
  250. data/lib/datadog_api_client/v1/models/service_level_objective_request.rb +3 -3
  251. data/lib/datadog_api_client/v1/models/signal_archive_reason.rb +29 -0
  252. data/lib/datadog_api_client/v1/models/signal_assignee_update_request.rb +132 -0
  253. data/lib/datadog_api_client/v1/models/signal_state_update_request.rb +152 -0
  254. data/lib/datadog_api_client/v1/models/signal_triage_state.rb +28 -0
  255. data/lib/datadog_api_client/v1/models/slo_correction_create_request_attributes.rb +1 -1
  256. data/lib/datadog_api_client/v1/models/slo_correction_response_attributes.rb +4 -4
  257. data/lib/datadog_api_client/v1/models/slo_correction_update_request_attributes.rb +1 -1
  258. data/lib/datadog_api_client/v1/models/slo_history_metrics.rb +1 -1
  259. data/lib/datadog_api_client/v1/models/slo_response_data.rb +1 -1
  260. data/lib/datadog_api_client/v1/models/successful_signal_update_response.rb +111 -0
  261. data/lib/datadog_api_client/v1/models/sunburst_widget_legend.rb +1 -1
  262. data/lib/datadog_api_client/v1/models/synthetics_api_test.rb +12 -1
  263. data/lib/datadog_api_client/v1/models/synthetics_assertion.rb +1 -1
  264. data/lib/datadog_api_client/v1/models/synthetics_assertion_type.rb +2 -0
  265. data/lib/datadog_api_client/v1/models/synthetics_basic_auth.rb +1 -1
  266. data/lib/datadog_api_client/v1/models/synthetics_browser_test.rb +11 -0
  267. data/lib/datadog_api_client/v1/models/synthetics_browser_test_rum_settings.rb +152 -0
  268. data/lib/datadog_api_client/v1/models/synthetics_core_web_vitals.rb +2 -2
  269. data/lib/datadog_api_client/v1/models/synthetics_test_ci_options.rb +111 -0
  270. data/lib/datadog_api_client/v1/models/synthetics_test_details.rb +1 -1
  271. data/lib/datadog_api_client/v1/models/synthetics_test_details_sub_type.rb +2 -1
  272. data/lib/datadog_api_client/v1/models/synthetics_test_options.rb +31 -1
  273. data/lib/datadog_api_client/v1/models/synthetics_test_request.rb +21 -1
  274. data/lib/datadog_api_client/v1/models/tree_map_color_by.rb +1 -1
  275. data/lib/datadog_api_client/v1/models/tree_map_group_by.rb +1 -1
  276. data/lib/datadog_api_client/v1/models/tree_map_size_by.rb +1 -1
  277. data/lib/datadog_api_client/v1/models/tree_map_widget_definition.rb +28 -6
  278. data/lib/datadog_api_client/v1/models/usage_attribution_body.rb +6 -2
  279. data/lib/datadog_api_client/v1/models/usage_attribution_response.rb +1 -1
  280. data/lib/datadog_api_client/v1/models/usage_attribution_sort.rb +6 -0
  281. data/lib/datadog_api_client/v1/models/usage_attribution_supported_metrics.rb +6 -0
  282. data/lib/datadog_api_client/v1/models/usage_attribution_values.rb +61 -1
  283. data/lib/datadog_api_client/v1/models/usage_billable_summary_keys.rb +474 -4
  284. data/lib/datadog_api_client/v1/models/usage_rum_sessions_hour.rb +18 -4
  285. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +11 -1
  286. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +11 -1
  287. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +11 -1
  288. data/lib/datadog_api_client/v1/models/widget_definition.rb +1 -1
  289. data/lib/datadog_api_client/v2/api/audit_api.rb +11 -25
  290. data/lib/datadog_api_client/v2/api/authn_mappings_api.rb +11 -53
  291. data/lib/datadog_api_client/v2/api/cloud_workload_security_api.rb +14 -62
  292. data/lib/datadog_api_client/v2/api/dashboard_lists_api.rb +9 -41
  293. data/lib/datadog_api_client/v2/api/events_api.rb +228 -0
  294. data/lib/datadog_api_client/v2/api/incident_services_api.rb +36 -46
  295. data/lib/datadog_api_client/v2/api/incident_teams_api.rb +36 -46
  296. data/lib/datadog_api_client/v2/api/incidents_api.rb +39 -48
  297. data/lib/datadog_api_client/v2/api/key_management_api.rb +29 -141
  298. data/lib/datadog_api_client/v2/api/logs_api.rb +15 -45
  299. data/lib/datadog_api_client/v2/api/logs_archives_api.rb +21 -101
  300. data/lib/datadog_api_client/v2/api/logs_metrics_api.rb +11 -51
  301. data/lib/datadog_api_client/v2/api/metrics_api.rb +179 -94
  302. data/lib/datadog_api_client/v2/api/opsgenie_integration_api.rb +355 -0
  303. data/lib/datadog_api_client/v2/api/organizations_api.rb +3 -11
  304. data/lib/datadog_api_client/v2/api/processes_api.rb +6 -13
  305. data/lib/datadog_api_client/v2/api/roles_api.rb +27 -131
  306. data/lib/datadog_api_client/v2/api/rum_api.rb +13 -35
  307. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +247 -125
  308. data/lib/datadog_api_client/v2/api/service_accounts_api.rb +11 -51
  309. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +382 -14
  310. data/lib/datadog_api_client/v2/api/users_api.rb +21 -101
  311. data/lib/datadog_api_client/v2/model_base.rb +2 -2
  312. data/lib/datadog_api_client/v2/models/api_key_response_included_item.rb +1 -1
  313. data/lib/datadog_api_client/v2/models/application_key_response_included_item.rb +1 -1
  314. data/lib/datadog_api_client/v2/models/authn_mapping.rb +1 -13
  315. data/lib/datadog_api_client/v2/models/authn_mapping_attributes.rb +1 -12
  316. data/lib/datadog_api_client/v2/models/authn_mapping_included.rb +1 -1
  317. data/lib/datadog_api_client/v2/models/authn_mapping_response.rb +16 -4
  318. data/lib/datadog_api_client/v2/models/authn_mappings_response.rb +13 -1
  319. data/lib/datadog_api_client/v2/models/chargeback_breakdown.rb +131 -0
  320. data/lib/datadog_api_client/v2/models/cost_by_org.rb +133 -0
  321. data/lib/datadog_api_client/v2/models/cost_by_org_attributes.rb +153 -0
  322. data/lib/datadog_api_client/v2/models/cost_by_org_response.rb +113 -0
  323. data/lib/datadog_api_client/v2/models/cost_by_org_type.rb +26 -0
  324. data/lib/datadog_api_client/v2/models/event.rb +141 -0
  325. data/lib/datadog_api_client/v2/models/event_attributes.rb +305 -0
  326. data/lib/datadog_api_client/v2/models/event_priority.rb +27 -0
  327. data/lib/datadog_api_client/v2/models/event_response.rb +133 -0
  328. data/lib/datadog_api_client/v2/models/event_response_attributes.rb +133 -0
  329. data/lib/datadog_api_client/v2/models/event_status_type.rb +35 -0
  330. data/lib/datadog_api_client/v2/models/event_type.rb +26 -0
  331. data/lib/datadog_api_client/v2/models/events_list_request.rb +142 -0
  332. data/lib/datadog_api_client/v2/models/events_list_response.rb +133 -0
  333. data/lib/datadog_api_client/v2/models/events_list_response_links.rb +112 -0
  334. data/lib/datadog_api_client/v2/models/events_query_filter.rb +137 -0
  335. data/lib/datadog_api_client/v2/models/events_query_options.rb +124 -0
  336. data/lib/datadog_api_client/v2/models/events_request_page.rb +134 -0
  337. data/lib/datadog_api_client/v2/models/events_response_metadata.rb +144 -0
  338. data/lib/datadog_api_client/v2/models/events_response_metadata_page.rb +112 -0
  339. data/lib/datadog_api_client/v2/models/events_sort.rb +27 -0
  340. data/lib/datadog_api_client/v2/models/events_warning.rb +131 -0
  341. data/lib/datadog_api_client/v2/models/hourly_usage.rb +133 -0
  342. data/lib/datadog_api_client/v2/models/hourly_usage_attributes.rb +163 -0
  343. data/lib/datadog_api_client/v2/models/hourly_usage_measurement.rb +122 -0
  344. data/lib/datadog_api_client/v2/models/hourly_usage_metadata.rb +111 -0
  345. data/lib/datadog_api_client/v2/models/hourly_usage_pagination.rb +112 -0
  346. data/lib/datadog_api_client/v2/models/hourly_usage_response.rb +123 -0
  347. data/lib/datadog_api_client/v2/models/hourly_usage_type.rb +2 -0
  348. data/lib/datadog_api_client/v2/models/http_log_item.rb +40 -4
  349. data/lib/datadog_api_client/v2/models/incident_field_attributes.rb +1 -1
  350. data/lib/datadog_api_client/v2/models/incident_response_included_item.rb +1 -1
  351. data/lib/datadog_api_client/v2/models/incident_service_included_items.rb +1 -1
  352. data/lib/datadog_api_client/v2/models/incident_team_included_items.rb +1 -1
  353. data/lib/datadog_api_client/v2/models/incident_timeline_cell_create_attributes.rb +1 -1
  354. data/lib/datadog_api_client/v2/models/intake_payload_accepted.rb +113 -0
  355. data/lib/datadog_api_client/v2/models/logs_aggregate_bucket_value.rb +1 -1
  356. data/lib/datadog_api_client/v2/models/logs_archive_attributes.rb +12 -1
  357. data/lib/datadog_api_client/v2/models/logs_archive_create_request_attributes.rb +12 -1
  358. data/lib/datadog_api_client/v2/models/logs_archive_create_request_destination.rb +1 -1
  359. data/lib/datadog_api_client/v2/models/logs_archive_destination.rb +1 -1
  360. data/lib/datadog_api_client/v2/models/logs_group_by_missing.rb +1 -1
  361. data/lib/datadog_api_client/v2/models/logs_group_by_total.rb +1 -1
  362. data/lib/datadog_api_client/v2/models/metric_content_encoding.rb +26 -0
  363. data/lib/datadog_api_client/v2/models/metric_estimate.rb +133 -0
  364. data/lib/datadog_api_client/v2/models/metric_estimate_attributes.rb +133 -0
  365. data/lib/datadog_api_client/v2/models/metric_estimate_resource_type.rb +26 -0
  366. data/lib/datadog_api_client/v2/models/metric_estimate_response.rb +111 -0
  367. data/lib/datadog_api_client/v2/models/metric_estimate_type.rb +28 -0
  368. data/lib/datadog_api_client/v2/models/metric_intake_type.rb +29 -0
  369. data/lib/datadog_api_client/v2/models/metric_metadata.rb +111 -0
  370. data/lib/datadog_api_client/v2/models/metric_origin.rb +170 -0
  371. data/lib/datadog_api_client/v2/models/metric_payload.rb +124 -0
  372. data/lib/datadog_api_client/v2/models/metric_point.rb +122 -0
  373. data/lib/datadog_api_client/{v1/models/monitor_search_response_counts_status_item.rb → v2/models/metric_resource.rb} +21 -21
  374. data/lib/datadog_api_client/v2/models/metric_series.rb +220 -0
  375. data/lib/datadog_api_client/v2/models/metric_tag_configuration_create_attributes.rb +0 -2
  376. data/lib/datadog_api_client/v2/models/metric_tag_configuration_update_attributes.rb +0 -2
  377. data/lib/datadog_api_client/v2/models/metric_volumes.rb +1 -1
  378. data/lib/datadog_api_client/v2/models/metrics_and_metric_tag_configurations.rb +1 -1
  379. data/lib/datadog_api_client/v2/models/monitor_type.rb +215 -0
  380. data/lib/datadog_api_client/v2/models/opsgenie_service_create_attributes.rb +174 -0
  381. data/lib/datadog_api_client/v2/models/opsgenie_service_create_data.rb +145 -0
  382. data/lib/datadog_api_client/v2/models/opsgenie_service_create_request.rb +122 -0
  383. data/lib/datadog_api_client/v2/models/opsgenie_service_region_type.rb +28 -0
  384. data/lib/datadog_api_client/v2/models/opsgenie_service_response.rb +122 -0
  385. data/lib/datadog_api_client/v2/models/opsgenie_service_response_attributes.rb +132 -0
  386. data/lib/datadog_api_client/v2/models/opsgenie_service_response_data.rb +166 -0
  387. data/lib/datadog_api_client/v2/models/opsgenie_service_type.rb +26 -0
  388. data/lib/datadog_api_client/v2/models/opsgenie_service_update_attributes.rb +142 -0
  389. data/lib/datadog_api_client/v2/models/opsgenie_service_update_data.rb +166 -0
  390. data/lib/datadog_api_client/v2/models/opsgenie_service_update_request.rb +122 -0
  391. data/lib/datadog_api_client/v2/models/opsgenie_services_response.rb +124 -0
  392. data/lib/datadog_api_client/v2/models/relationship_to_saml_assertion_attribute_data.rb +1 -5
  393. data/lib/datadog_api_client/v2/models/rum_aggregate_bucket_value.rb +1 -1
  394. data/lib/datadog_api_client/v2/models/rum_group_by_missing.rb +1 -1
  395. data/lib/datadog_api_client/v2/models/rum_group_by_total.rb +1 -1
  396. data/lib/datadog_api_client/v2/models/saml_assertion_attribute.rb +1 -5
  397. data/lib/datadog_api_client/v2/models/security_monitoring_rule_detection_method.rb +1 -0
  398. data/lib/datadog_api_client/v2/models/security_monitoring_rule_hardcoded_evaluator_type.rb +26 -0
  399. data/lib/datadog_api_client/v2/models/security_monitoring_rule_new_value_options.rb +30 -4
  400. data/lib/datadog_api_client/v2/models/security_monitoring_rule_new_value_options_learning_method.rb +27 -0
  401. data/lib/datadog_api_client/v2/models/security_monitoring_rule_new_value_options_learning_threshold.rb +27 -0
  402. data/lib/datadog_api_client/v2/models/security_monitoring_rule_options.rb +23 -1
  403. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query.rb +13 -1
  404. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query_create.rb +13 -1
  405. data/lib/datadog_api_client/v2/models/security_monitoring_signal_archive_reason.rb +29 -0
  406. data/lib/datadog_api_client/v2/models/security_monitoring_signal_assignee_update_attributes.rb +132 -0
  407. data/lib/datadog_api_client/v2/models/security_monitoring_signal_assignee_update_data.rb +122 -0
  408. data/lib/datadog_api_client/v2/models/security_monitoring_signal_assignee_update_request.rb +122 -0
  409. data/lib/datadog_api_client/v2/models/security_monitoring_signal_incidents_update_attributes.rb +134 -0
  410. data/lib/datadog_api_client/v2/models/security_monitoring_signal_incidents_update_data.rb +122 -0
  411. data/lib/datadog_api_client/v2/models/security_monitoring_signal_incidents_update_request.rb +122 -0
  412. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state.rb +28 -0
  413. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state_update_attributes.rb +152 -0
  414. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state_update_data.rb +122 -0
  415. data/lib/datadog_api_client/v2/models/security_monitoring_signal_state_update_request.rb +122 -0
  416. data/lib/datadog_api_client/v2/models/security_monitoring_signal_triage_attributes.rb +248 -0
  417. data/lib/datadog_api_client/v2/models/security_monitoring_signal_triage_update_data.rb +111 -0
  418. data/lib/datadog_api_client/v2/models/security_monitoring_signal_triage_update_response.rb +122 -0
  419. data/lib/datadog_api_client/v2/models/security_monitoring_triage_user.rb +152 -0
  420. data/lib/datadog_api_client/v2/models/usage_application_security_monitoring_response.rb +113 -0
  421. data/lib/datadog_api_client/v2/models/usage_lambda_traced_invocations_response.rb +113 -0
  422. data/lib/datadog_api_client/v2/models/user_response_included_item.rb +1 -1
  423. data/lib/datadog_api_client/v2.rb +77 -0
  424. data/lib/datadog_api_client/version.rb +1 -1
  425. data/lib/datadog_api_client.rb +11 -5
  426. data/spec/{v1/api_client_spec.rb → api_client_spec.rb} +32 -32
  427. data/spec/{v1/configuration_spec.rb → configuration_spec.rb} +3 -3
  428. data/spec/spec_helper.rb +1 -3
  429. metadata +191 -28
  430. data/.dockerignore +0 -1
  431. data/.generator/src/generator/templates/api_error.j2 +0 -49
  432. data/extract-code-blocks.awk +0 -81
  433. data/extract-code-blocks.sh +0 -3
  434. data/lib/datadog_api_client/v1/api_client.rb +0 -456
  435. data/lib/datadog_api_client/v1/api_error.rb +0 -60
  436. data/lib/datadog_api_client/v1.rb +0 -789
  437. data/lib/datadog_api_client/v2/api_error.rb +0 -60
  438. data/lib/datadog_api_client/v2/configuration.rb +0 -427
  439. data/spec/v2/api_client_spec.rb +0 -210
  440. data/spec/v2/configuration_spec.rb +0 -45
@@ -1,49 +0,0 @@
1
- =begin
2
- {% include "api_info.j2" %}
3
- =end
4
-
5
- module {{ module_name }}::{{ version|upper }}
6
- class APIError < StandardError
7
- attr_reader :code, :response_headers, :response_body
8
-
9
- # Usage examples:
10
- # APIError.new
11
- # APIError.new("message")
12
- # APIError.new(:code => 500, :response_headers => {}, :response_body => "")
13
- # APIError.new(:code => 404, :message => "Not Found")
14
- def initialize(arg = nil)
15
- if arg.is_a? Hash
16
- if arg.key?(:message) || arg.key?('message')
17
- super(arg[:message] || arg['message'])
18
- else
19
- super arg
20
- end
21
-
22
- arg.each do |k, v|
23
- instance_variable_set "@#{k}", v
24
- end
25
- else
26
- super arg
27
- end
28
- end
29
-
30
- # Override to_s to display a friendly error message
31
- def to_s
32
- message
33
- end
34
-
35
- def message
36
- if @message.nil?
37
- msg = "Error message: the server returns an error"
38
- else
39
- msg = @message
40
- end
41
-
42
- msg += "\nHTTP status code: #{code}" if code
43
- msg += "\nResponse headers: #{response_headers}" if response_headers
44
- msg += "\nResponse body: #{response_body}" if response_body
45
-
46
- msg
47
- end
48
- end
49
- end
@@ -1,81 +0,0 @@
1
- #!/usr/bin/env -S awk -f
2
- # SPDX-License-Identifier: Apache-2.0 OR MIT
3
- # Based on https://codereview.stackexchange.com/questions/194986/print-code-fenced-sections-of-a-markdown-document/195030#195030
4
- BEGIN {
5
- in_code_block = 0;
6
- tag = "";
7
- operation_id = "";
8
- }
9
-
10
- function slug(value) {
11
- head = "";
12
- tail = value;
13
- while ( match(tail,/[[:upper:]][[:lower:]]/) ) {
14
- tgt = substr(tail,RSTART,1);
15
- if ( substr(tail,RSTART-1,1) ~ /[[:lower:]]/ || RSTART > 1 ) {
16
- tgt = "-" tolower(tgt);
17
- }
18
- head = head substr(tail,1,RSTART-1) tgt;
19
- tail = substr(tail,RSTART+1);
20
- }
21
- return tolower(head) tail;
22
- }
23
-
24
- function camel(value) {
25
- gsub("_ip_", "_iP_", value);
26
- gsub("_id_", "_iD_", value);
27
-
28
- head = toupper(substr(value,0,1)) substr(value,2);
29
- while ( match(head, /_([a-z])/) ) {
30
- head = substr(head,0,RSTART-1) toupper(substr(head,RSTART+1, 1)) substr(head,RSTART+2)
31
- }
32
- # NOTE special cases for all caps groups which we can't handle otherwise
33
- gsub("Aws", "AWS", head);
34
- gsub("Gcp", "GCP", head);
35
- gsub("Slo", "SLO", head);
36
- return head;
37
- }
38
-
39
- /^# DatadogAPIClient::V[0-9]*::(.+)API/ {
40
- tag = tolower(slug(substr($2, 23, length($2)-25)));
41
- }
42
- /^## (.+)/ {
43
- operation_id = camel($2);
44
- }
45
- /^```ruby/ {
46
- if (operation_id == "") {
47
- # Filter out with_http_info examples
48
- next;
49
- }
50
- if (in_code_block == 0) {
51
- in_code_block = 1;
52
- if (out_file) {
53
- close(out_file);
54
- }
55
- system("mkdir -p " output "/" tag);
56
- out_file=output "/" tag "/" operation_id ".rb";
57
- if (system("[ -f " out_file " ]") == 0) {
58
- printf "skipped: "
59
- in_code_block = 0;
60
- }
61
- print out_file;
62
- } else {
63
- print "Can't parse " FILENAME > "/dev/stderr"
64
- exit 1
65
- }
66
- next;
67
- }
68
- /^```/ {
69
- in_code_block = 0;
70
- operation_id = "";
71
- }
72
-
73
- in_code_block {
74
- # Make sure that the file is newly created
75
- if (in_code_block == 1) {
76
- in_code_block = 2;
77
- print > out_file;
78
- } else {
79
- print >> out_file;
80
- }
81
- }
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- echo "[DEPRECATED] Do not use $0"
@@ -1,456 +0,0 @@
1
- =begin
2
- #Datadog API V1 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 'json'
18
- require 'logger'
19
- require 'tempfile'
20
- require 'time'
21
- require 'httparty'
22
-
23
- module DatadogAPIClient::V1
24
- class APIClient
25
- # The Configuration object holding settings to be used in the API client.
26
- attr_accessor :config
27
-
28
- # Defines the headers to be used in HTTP requests of all API calls by default.
29
- #
30
- # @return [Hash]
31
- attr_accessor :default_headers
32
-
33
- # Initializes the APIClient
34
- # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
35
- def initialize(config = Configuration.default)
36
- @config = config
37
- @user_agent = "#{DatadogAPIClient::USER_AGENT}"
38
- @default_headers = {
39
- 'Content-Type' => 'application/json',
40
- 'User-Agent' => @user_agent
41
- }
42
- @default_headers['Accept-Encoding'] = 'gzip' if @config.compress
43
- end
44
-
45
- def self.default
46
- @@default ||= APIClient.new
47
- end
48
-
49
- # Call an API with given options.
50
- #
51
- # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
52
- # the data deserialized from response body (could be nil), response status code and response headers.
53
- def call_api(http_method, path, opts = {})
54
- request = build_request(http_method, path, opts)
55
- if opts[:stream_body]
56
- tempfile = nil
57
- encoding = nil
58
-
59
- response = request.perform do | chunk |
60
- unless tempfile
61
- content_disposition = chunk.http_response.header['Content-Disposition']
62
- if content_disposition && content_disposition =~ /filename=/i
63
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
64
- prefix = sanitize_filename(filename)
65
- else
66
- prefix = 'download-'
67
- end
68
- prefix = prefix + '-' unless prefix.end_with?('-')
69
- unless encoding
70
- encoding = chunk.encoding
71
- end
72
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
73
- @tempfile = tempfile
74
- end
75
- chunk.force_encoding(encoding)
76
- tempfile.write(chunk)
77
- end
78
- if tempfile
79
- tempfile.close
80
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
81
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
82
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
83
- "explicitly with `tempfile.delete`"
84
- end
85
- else
86
- response = request.perform
87
- end
88
-
89
- if @config.debugging
90
- @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
91
- end
92
-
93
- unless response.success?
94
- if response.request_timeout?
95
- fail APIError.new('Connection timed out')
96
- elsif response.code == 0
97
- # Errors from libcurl will be made visible here
98
- fail APIError.new(:code => 0,
99
- :message => response.return_message)
100
- else
101
- body = response.body
102
- if response.headers['Content-Encoding'].eql?('gzip') && !(body.nil? || body.empty?) then
103
- gzip = Zlib::Inflate.new(Zlib::MAX_WBITS + 16)
104
- body = gzip.inflate(body)
105
- gzip.close
106
- end
107
- fail APIError.new(:code => response.code,
108
- :response_headers => response.headers,
109
- :response_body => body),
110
- response.message
111
- end
112
- end
113
-
114
- if opts[:return_type]
115
- data = deserialize(response, opts[:return_type])
116
- else
117
- data = nil
118
- end
119
- return data, response.code, response.headers
120
- end
121
-
122
- # Build the HTTP request
123
- #
124
- # @param [String] http_method HTTP method/verb (e.g. POST)
125
- # @param [String] path URL path (e.g. /account/new)
126
- # @option opts [Hash] :header_params Header parameters
127
- # @option opts [Hash] :query_params Query parameters
128
- # @option opts [Hash] :form_params Query parameters
129
- # @option opts [Object] :body HTTP body (JSON/XML)
130
- # @return [HTTParty::Request] A httparty Request
131
- def build_request(http_method, path, opts = {})
132
- url = build_request_url(path, opts)
133
- header_params = @default_headers.merge(opts[:header_params] || {})
134
- query_params = opts[:query_params] || {}
135
- form_params = opts[:form_params] || {}
136
-
137
- update_params_for_auth! header_params, query_params, opts[:auth_names]
138
-
139
- # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
140
- _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
141
-
142
- req_opts = {
143
- :method => http_method,
144
- :headers => header_params,
145
- :query => query_params,
146
- :timeout => @config.timeout,
147
- :verify_peer => @config.verify_ssl,
148
- :verify => _verify_ssl_host,
149
- :verbose => @config.debugging
150
- }
151
-
152
- req_opts[:pem] = File.read(@config.cert_file) if @config.cert_file
153
- req_opts[:pem_password] = File.read(@config.key_file) if @config.key_file
154
-
155
- opts[:stream_body] = true if opts[:return_type] == 'File'
156
-
157
- # set custom cert, if provided
158
- req_opts[:ssl_ca_file] = File.read(@config.ssl_ca_cert) if @config.ssl_ca_cert
159
-
160
- if ["POST", "PATCH", "PUT", "DELETE"].include?(http_method.const_get(:METHOD))
161
- req_body = build_request_body(header_params, form_params, opts[:body])
162
- req_opts.update :body => req_body
163
- if @config.debugging
164
- @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
165
- end
166
- end
167
-
168
- HTTParty::Request.new(http_method, url, req_opts)
169
- end
170
-
171
- # Build the HTTP request body
172
- #
173
- # @param [Hash] header_params Header parameters
174
- # @param [Hash] form_params Query parameters
175
- # @param [Object] body HTTP body (JSON/XML)
176
- # @return [String] HTTP body data in the form of string
177
- def build_request_body(header_params, form_params, body)
178
- # http form
179
- if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
180
- header_params['Content-Type'] == 'multipart/form-data'
181
- data = {}
182
- form_params.each do |key, value|
183
- case value
184
- when ::File, ::Array, nil
185
- # let httparty handle File, Array and nil parameters
186
- data[key] = value
187
- else
188
- data[key] = value.to_s
189
- end
190
- end
191
- elsif body
192
- data = body.is_a?(String) ? body : body.to_json
193
- else
194
- data = nil
195
- end
196
- if header_params['Content-Encoding'] == 'gzip'
197
- gzip = Zlib::Deflate.new(nil, Zlib::MAX_WBITS + 16)
198
- data = gzip.deflate(data, Zlib::FINISH)
199
- gzip.close
200
- elsif header_params['Content-Encoding'] == 'deflate'
201
- data = Zlib::deflate(data)
202
- end
203
- data
204
- end
205
-
206
- # Check if the given MIME is a JSON MIME.
207
- # JSON MIME examples:
208
- # application/json
209
- # application/json; charset=UTF8
210
- # APPLICATION/JSON
211
- # */*
212
- # @param [String] mime MIME
213
- # @return [Boolean] True if the MIME is application/json
214
- def json_mime?(mime)
215
- (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil? || (mime == 'text/json')
216
- end
217
-
218
- # Deserialize the response to the given return type.
219
- #
220
- # @param [Response] response HTTP response
221
- # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
222
- def deserialize(response, return_type)
223
- body = response.body
224
-
225
- # handle file downloading - return the File instance processed in request callbacks
226
- # note that response body is empty when the file is written in chunks in request on_body callback
227
- return @tempfile if return_type == 'File'
228
-
229
- return nil if body.nil? || body.empty?
230
-
231
- if response.headers['Content-Encoding'].eql?('gzip') then
232
- gzip = Zlib::Inflate.new(Zlib::MAX_WBITS + 16)
233
- body = gzip.inflate(body)
234
- gzip.close
235
- end
236
-
237
- # return response body directly for String return type
238
- return body if return_type == 'String'
239
-
240
- # ensuring a default content type
241
- content_type = response.headers['Content-Type'] || 'application/json'
242
-
243
- fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
244
-
245
- begin
246
- data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
247
- rescue JSON::ParserError => e
248
- if %w(String Date Time).include?(return_type)
249
- data = body
250
- else
251
- raise e
252
- end
253
- end
254
-
255
- convert_to_type data, return_type
256
- end
257
-
258
- # Convert data to the given return type.
259
- # @param [Object] data Data to be converted
260
- # @param [String] return_type Return type
261
- # @return [Mixed] Data in a particular type
262
- def convert_to_type(data, return_type)
263
- return nil if data.nil?
264
- case return_type
265
- when 'String'
266
- data.to_s
267
- when 'Integer'
268
- data.to_i
269
- when 'Float'
270
- data.to_f
271
- when 'Boolean'
272
- data == true
273
- when 'Time'
274
- # parse date time (expecting ISO 8601 format)
275
- Time.parse data
276
- when 'Date'
277
- # parse date time (expecting ISO 8601 format)
278
- Date.parse data
279
- when 'Object'
280
- # generic object (usually a Hash), return directly
281
- data
282
- when /\AArray<(.+)>\z/
283
- # e.g. Array<Pet>
284
- sub_type = $1
285
- data.map { |item| convert_to_type(item, sub_type) }
286
- when /\AHash\<String, (.+)\>\z/
287
- # e.g. Hash<String, Integer>
288
- sub_type = $1
289
- {}.tap do |hash|
290
- data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
291
- end
292
- else
293
- # models (e.g. Pet) or oneOf
294
- klass = DatadogAPIClient::V1.const_get(return_type)
295
- klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
296
- end
297
- end
298
-
299
- # Sanitize filename by removing path.
300
- # e.g. ../../sun.gif becomes sun.gif
301
- #
302
- # @param [String] filename the filename to be sanitized
303
- # @return [String] the sanitized filename
304
- def sanitize_filename(filename)
305
- filename.gsub(/.*[\/\\]/, '')
306
- end
307
-
308
- def build_request_url(path, opts = {})
309
- # Add leading and trailing slashes to path
310
- path = "/#{path}".gsub(/\/+/, '/')
311
- @config.base_url(opts[:operation]) + path
312
- end
313
-
314
- # Update header and query params based on authentication settings.
315
- #
316
- # @param [Hash] header_params Header parameters
317
- # @param [Hash] query_params Query parameters
318
- # @param [String] auth_names Authentication scheme name
319
- def update_params_for_auth!(header_params, query_params, auth_names)
320
- Array(auth_names).each do |auth_name|
321
- auth_setting = @config.auth_settings[auth_name]
322
- next unless auth_setting
323
- case auth_setting[:in]
324
- when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
325
- when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
326
- else fail ArgumentError, 'Authentication token must be in `query` or `header`'
327
- end
328
- end
329
- end
330
-
331
- # Sets user agent in HTTP header
332
- #
333
- # @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
334
- def user_agent=(user_agent)
335
- @user_agent = user_agent
336
- @default_headers['User-Agent'] = @user_agent
337
- end
338
-
339
- # Return Accept header based on an array of accepts provided.
340
- # @param [Array] accepts array for Accept
341
- # @return [String] the Accept header (e.g. application/json)
342
- def select_header_accept(accepts)
343
- return nil if accepts.nil? || accepts.empty?
344
- # use JSON when present, otherwise use all of the provided
345
- json_accept = accepts.find { |s| json_mime?(s) }
346
- json_accept || accepts.join(',')
347
- end
348
-
349
- # Return Content-Type header based on an array of content types provided.
350
- # @param [Array] content_types array for Content-Type
351
- # @return [String] the Content-Type header (e.g. application/json)
352
- def select_header_content_type(content_types)
353
- # use application/json by default
354
- return 'application/json' if content_types.nil? || content_types.empty?
355
- # use JSON when present, otherwise use the first one
356
- json_content_type = content_types.find { |s| json_mime?(s) }
357
- json_content_type || content_types.first
358
- end
359
-
360
- # Convert object (array, hash, object, etc) to JSON string.
361
- # @param [Object] model object to be converted into JSON string
362
- # @return [String] JSON string representation of the object
363
- def object_to_http_body(model)
364
- return model if model.nil? || model.is_a?(String)
365
- local_body = nil
366
- if model.is_a?(Array)
367
- local_body = model.map { |m| object_to_hash(m) }
368
- else
369
- local_body = object_to_hash(model)
370
- end
371
- local_body.to_json
372
- end
373
-
374
- # Convert object(non-array) to hash.
375
- # @param [Object] obj object to be converted into JSON string
376
- # @return [String] JSON string representation of the object
377
- def object_to_hash(obj)
378
- if obj.respond_to?(:to_hash)
379
- obj.to_hash
380
- else
381
- obj
382
- end
383
- end
384
-
385
- # Build parameter value according to the given collection format.
386
- # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
387
- def build_collection_param(param, collection_format)
388
- case collection_format
389
- when :csv
390
- param.join(',')
391
- when :ssv
392
- param.join(' ')
393
- when :tsv
394
- param.join("\t")
395
- when :pipes
396
- param.join('|')
397
- when :multi
398
- # return the array directly as httparty will handle it as expected
399
- param
400
- else
401
- fail "unknown collection format: #{collection_format.inspect}"
402
- end
403
- end
404
-
405
-
406
- # Retrieve an attribute from a path specification.
407
- #
408
- # @param [Object] obj The source object
409
- # @param [String] attribute_path The path spefication, separated by "."
410
- # @param [Object] default The default value, if not found
411
- # @return [Object] The value found, or default
412
- # @!visibility private
413
- def get_attribute_from_path(obj, attribute_path, default=nil)
414
- for attr in attribute_path.split(".") do
415
- case obj
416
- when Hash
417
- obj = !obj[attr.to_sym].nil? ? obj[attr.to_sym] : obj[attr]
418
- else
419
- obj = obj.send(attr)
420
- end
421
- return default if obj.nil?
422
- end
423
- obj
424
- end
425
-
426
- # Set an attribute at the given path
427
- #
428
- # @param [Object] obj The source object
429
- # @param [String] attribute_path The path spefication, separated by "."
430
- # @param [Object] builder The class matching the top level attribute
431
- # @param [Object] value The value to set
432
- # @!visibility private
433
- def set_attribute_from_path(obj, attribute_path, builder, value)
434
- attrs = attribute_path.split(".")
435
- last = attrs.pop
436
- i = 0
437
- for attr in attrs do
438
- case obj
439
- when Hash
440
- obj = !obj[attr.to_sym].nil? ? obj[attr.to_sym] : obj[attr]
441
- else
442
- obj = obj.send(attr)
443
- end
444
- builder = DatadogAPIClient::V2.const_get(builder.openapi_types[attr.to_sym]) if i > 0
445
- obj = builder.new if obj.nil?
446
- i += 1
447
- end
448
- case obj
449
- when Hash
450
- obj[last.to_sym] = value
451
- else
452
- obj.send(last + "=", value)
453
- end
454
- end
455
- end
456
- end
@@ -1,60 +0,0 @@
1
- =begin
2
- #Datadog API V1 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::V1
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