datadog_api_client 1.9.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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