datadog_api_client 2.16.0 → 2.18.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 (292) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/schemas/v1/openapi.yaml +799 -16
  4. data/.generator/schemas/v2/openapi.yaml +2732 -409
  5. data/.generator/src/generator/cli.py +5 -0
  6. data/.generator/src/generator/formatter.py +4 -0
  7. data/.generator/src/generator/openapi.py +2 -0
  8. data/.generator/src/generator/templates/api_client.j2 +3 -0
  9. data/.generator/src/generator/templates/datadog_api_client.j2 +19 -0
  10. data/.generator/src/generator/templates/inflector.j2 +1 -1
  11. data/.generator/src/generator/templates/model_base.j2 +4 -0
  12. data/.pre-commit-config.yaml +1 -1
  13. data/CHANGELOG.md +54 -0
  14. data/Gemfile +1 -0
  15. data/LICENSE-3rdparty.csv +1 -0
  16. data/datadog_api_client.gemspec +2 -0
  17. data/examples/v1/aws-integration/CreateAWSAccount.rb +2 -2
  18. data/examples/v1/aws-integration/CreateAWSEventBridgeSource.rb +12 -0
  19. data/examples/v1/aws-integration/CreateAWSTagFilter.rb +1 -1
  20. data/examples/v1/aws-integration/CreateNewAWSExternalID.rb +1 -1
  21. data/examples/v1/aws-integration/DeleteAWSAccount.rb +1 -1
  22. data/examples/v1/aws-integration/DeleteAWSEventBridgeSource.rb +11 -0
  23. data/examples/v1/aws-integration/ListAWSEventBridgeSources.rb +5 -0
  24. data/examples/v1/aws-integration/UpdateAWSAccount.rb +6 -6
  25. data/examples/v1/azure-integration/CreateAzureIntegration.rb +2 -0
  26. data/examples/v1/azure-integration/DeleteAzureIntegration.rb +2 -0
  27. data/examples/v1/azure-integration/UpdateAzureHostFilters.rb +2 -0
  28. data/examples/v1/azure-integration/UpdateAzureIntegration.rb +2 -0
  29. data/examples/v1/dashboards/CreateDashboard_1213075383.rb +7 -0
  30. data/examples/v1/dashboards/CreateDashboard_1284514532.rb +3 -0
  31. data/examples/v1/monitors/CreateMonitor_1539578087.rb +0 -1
  32. data/examples/v1/synthetics/PatchTest.rb +22 -0
  33. data/examples/v2/ci-visibility-pipelines/CreateCIAppPipelineEvent.rb +3 -0
  34. data/examples/v2/ci-visibility-pipelines/CreateCIAppPipelineEvent_129899466.rb +3 -0
  35. data/examples/v2/confluent-cloud/DeleteConfluentAccount.rb +4 -1
  36. data/examples/v2/confluent-cloud/DeleteConfluentResource.rb +5 -0
  37. data/examples/v2/container-images/ListContainerImages.rb +0 -3
  38. data/examples/v2/container-images/ListContainerImages_3088586393.rb +0 -3
  39. data/examples/v2/container-images/ListContainerImages_3974828736.rb +0 -3
  40. data/examples/v2/containers/ListContainers.rb +5 -0
  41. data/examples/v2/containers/ListContainers_2175733917.rb +8 -0
  42. data/examples/v2/containers/ListContainers_931009654.rb +8 -0
  43. data/examples/v2/dora-metrics/CreateDORADeployment.rb +23 -0
  44. data/examples/v2/dora-metrics/CreateDORAIncident.rb +25 -0
  45. data/examples/v2/downtimes/ListMonitorDowntimes.rb +1 -1
  46. data/examples/v2/events/ListEvents.rb +0 -3
  47. data/examples/v2/events/ListEvents_1527584014.rb +0 -3
  48. data/examples/v2/events/ListEvents_2663715109.rb +0 -3
  49. data/examples/v2/events/SearchEvents.rb +0 -3
  50. data/examples/v2/events/SearchEvents_3856995058.rb +0 -3
  51. data/examples/v2/key-management/CreateCurrentUserApplicationKey.rb +2 -7
  52. data/examples/v2/key-management/DeleteApplicationKey.rb +4 -1
  53. data/examples/v2/key-management/DeleteCurrentUserApplicationKey.rb +4 -1
  54. data/examples/v2/okta-integration/CreateOktaAccount.rb +19 -0
  55. data/examples/v2/okta-integration/DeleteOktaAccount.rb +5 -0
  56. data/examples/v2/okta-integration/GetOktaAccount.rb +8 -0
  57. data/examples/v2/okta-integration/ListOktaAccounts.rb +5 -0
  58. data/examples/v2/okta-integration/UpdateOktaAccount.rb +20 -0
  59. data/examples/v2/powerpack/CreatePowerpack.rb +1 -0
  60. data/examples/v2/powerpack/UpdatePowerpack.rb +1 -0
  61. data/examples/v2/security-monitoring/MuteFindings.rb +29 -0
  62. data/examples/v2/service-definition/CreateOrUpdateServiceDefinitions.rb +1 -1
  63. data/examples/v2/service-scorecards/CreateScorecardOutcomesBatch.rb +27 -0
  64. data/examples/v2/service-scorecards/CreateScorecardRule.rb +19 -0
  65. data/examples/v2/service-scorecards/DeleteScorecardRule.rb +11 -0
  66. data/examples/v2/service-scorecards/ListScorecardOutcomes.rb +8 -0
  67. data/examples/v2/service-scorecards/ListScorecardOutcomes_2663454275.rb +13 -0
  68. data/examples/v2/service-scorecards/ListScorecardRules.rb +8 -0
  69. data/examples/v2/service-scorecards/ListScorecardRules_4057666343.rb +13 -0
  70. data/examples/v2/synthetics/SetOnDemandConcurrencyCap.rb +3 -1
  71. data/examples/v2/teams/ListTeams_3429963470.rb +12 -0
  72. data/examples/v2/usage-metering/GetActiveBillingDimensions.rb +8 -0
  73. data/examples/v2/usage-metering/GetMonthlyCostAttribution.rb +8 -0
  74. data/examples/v2/usage-metering/GetProjectedCost.rb +8 -0
  75. data/examples/v2/usage-metering/GetUsageApplicationSecurityMonitoring.rb +4 -1
  76. data/examples/v2/usage-metering/GetUsageLambdaTracedInvocations.rb +4 -1
  77. data/examples/v2/usage-metering/GetUsageObservabilityPipelines.rb +4 -1
  78. data/examples/v2/users/GetUser.rb +5 -2
  79. data/lib/datadog_api_client/api_client.rb +3 -0
  80. data/lib/datadog_api_client/configuration.rb +11 -4
  81. data/lib/datadog_api_client/inflector.rb +137 -9
  82. data/lib/datadog_api_client/v1/api/aws_integration_api.rb +194 -0
  83. data/lib/datadog_api_client/v1/api/hosts_api.rb +1 -1
  84. data/lib/datadog_api_client/v1/api/monitors_api.rb +5 -1
  85. data/lib/datadog_api_client/v1/api/synthetics_api.rb +73 -1
  86. data/lib/datadog_api_client/v1/api/usage_metering_api.rb +3 -3
  87. data/lib/datadog_api_client/v1/model_base.rb +4 -0
  88. data/lib/datadog_api_client/v1/models/aws_account.rb +2 -1
  89. data/lib/datadog_api_client/v1/models/aws_event_bridge_account_configuration.rb +105 -0
  90. data/lib/datadog_api_client/v1/models/aws_event_bridge_create_request.rb +112 -0
  91. data/lib/datadog_api_client/v1/models/aws_event_bridge_create_response.rb +110 -0
  92. data/lib/datadog_api_client/v1/models/aws_event_bridge_create_status.rb +26 -0
  93. data/lib/datadog_api_client/v1/models/aws_event_bridge_delete_request.rb +100 -0
  94. data/lib/datadog_api_client/v1/models/aws_event_bridge_delete_response.rb +80 -0
  95. data/lib/datadog_api_client/v1/models/aws_event_bridge_delete_status.rb +26 -0
  96. data/lib/datadog_api_client/v1/models/aws_event_bridge_list_response.rb +92 -0
  97. data/lib/datadog_api_client/v1/models/aws_event_bridge_source.rb +90 -0
  98. data/lib/datadog_api_client/v1/models/azure_account.rb +24 -2
  99. data/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb +21 -0
  100. data/lib/datadog_api_client/v1/models/monitor_options.rb +1 -1
  101. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb +42 -0
  102. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb +421 -1
  103. data/lib/datadog_api_client/v1/models/synthetics_patch_test_body.rb +82 -0
  104. data/lib/datadog_api_client/v1/models/synthetics_patch_test_operation.rb +100 -0
  105. data/lib/datadog_api_client/v1/models/synthetics_patch_test_operation_name.rb +31 -0
  106. data/lib/datadog_api_client/v1/models/toplist_widget_definition.rb +11 -1
  107. data/lib/datadog_api_client/v1/models/toplist_widget_display.rb +63 -0
  108. data/lib/datadog_api_client/v1/models/toplist_widget_flat.rb +98 -0
  109. data/lib/datadog_api_client/v1/models/toplist_widget_flat_type.rb +26 -0
  110. data/lib/datadog_api_client/v1/models/toplist_widget_legend.rb +28 -0
  111. data/lib/datadog_api_client/v1/models/toplist_widget_scaling.rb +27 -0
  112. data/lib/datadog_api_client/v1/models/toplist_widget_stacked.rb +119 -0
  113. data/lib/datadog_api_client/v1/models/toplist_widget_stacked_type.rb +26 -0
  114. data/lib/datadog_api_client/v1/models/toplist_widget_style.rb +90 -0
  115. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +11 -1
  116. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +31 -1
  117. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +31 -1
  118. data/lib/datadog_api_client/v1/models/widget_live_span.rb +2 -0
  119. data/lib/datadog_api_client/v2/api/ci_visibility_pipelines_api.rb +6 -0
  120. data/lib/datadog_api_client/v2/api/container_images_api.rb +0 -6
  121. data/lib/datadog_api_client/v2/api/containers_api.rb +123 -0
  122. data/lib/datadog_api_client/v2/api/dora_metrics_api.rb +181 -0
  123. data/lib/datadog_api_client/v2/api/events_api.rb +0 -12
  124. data/lib/datadog_api_client/v2/api/key_management_api.rb +8 -0
  125. data/lib/datadog_api_client/v2/api/metrics_api.rb +6 -3
  126. data/lib/datadog_api_client/v2/api/okta_integration_api.rb +355 -0
  127. data/lib/datadog_api_client/v2/api/roles_api.rb +2 -0
  128. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +66 -72
  129. data/lib/datadog_api_client/v2/api/service_scorecards_api.rb +457 -0
  130. data/lib/datadog_api_client/v2/api/teams_api.rb +2 -0
  131. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +241 -0
  132. data/lib/datadog_api_client/v2/model_base.rb +4 -0
  133. data/lib/datadog_api_client/v2/models/active_billing_dimensions_attributes.rb +92 -0
  134. data/lib/datadog_api_client/v2/models/active_billing_dimensions_body.rb +100 -0
  135. data/lib/datadog_api_client/v2/models/active_billing_dimensions_response.rb +80 -0
  136. data/lib/datadog_api_client/v2/models/active_billing_dimensions_type.rb +26 -0
  137. data/lib/datadog_api_client/v2/models/api_keys_response.rb +14 -4
  138. data/lib/datadog_api_client/v2/models/api_keys_response_meta.rb +90 -0
  139. data/lib/datadog_api_client/v2/models/api_keys_response_meta_page.rb +80 -0
  140. data/lib/datadog_api_client/v2/models/application_key_response_meta.rb +90 -0
  141. data/lib/datadog_api_client/v2/models/application_key_response_meta_page.rb +80 -0
  142. data/lib/datadog_api_client/v2/models/bulk_mute_findings_request.rb +98 -0
  143. data/lib/datadog_api_client/v2/models/{mute_finding_request_attributes.rb → bulk_mute_findings_request_attributes.rb} +5 -5
  144. data/lib/datadog_api_client/v2/models/bulk_mute_findings_request_data.rb +161 -0
  145. data/lib/datadog_api_client/v2/models/bulk_mute_findings_request_meta.rb +82 -0
  146. data/lib/datadog_api_client/v2/models/bulk_mute_findings_request_meta_findings.rb +80 -0
  147. data/lib/datadog_api_client/v2/models/{mute_finding_request_properties.rb → bulk_mute_findings_request_properties.rb} +6 -6
  148. data/lib/datadog_api_client/v2/models/bulk_mute_findings_response.rb +98 -0
  149. data/lib/datadog_api_client/v2/models/bulk_mute_findings_response_data.rb +90 -0
  150. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_attributes.rb +13 -1
  151. data/lib/datadog_api_client/v2/models/{mute_finding_response_data.rb → container.rb} +9 -9
  152. data/lib/datadog_api_client/v2/models/container_attributes.rb +183 -0
  153. data/lib/datadog_api_client/v2/models/container_group.rb +110 -0
  154. data/lib/datadog_api_client/v2/models/container_group_attributes.rb +90 -0
  155. data/lib/datadog_api_client/v2/models/container_group_relationships.rb +80 -0
  156. data/lib/datadog_api_client/v2/models/container_group_relationships_link.rb +92 -0
  157. data/lib/datadog_api_client/v2/models/container_group_relationships_links.rb +80 -0
  158. data/lib/datadog_api_client/v2/models/container_group_type.rb +26 -0
  159. data/lib/datadog_api_client/v2/models/container_item.rb +63 -0
  160. data/lib/datadog_api_client/v2/models/container_meta.rb +80 -0
  161. data/lib/datadog_api_client/v2/models/container_meta_page.rb +160 -0
  162. data/lib/datadog_api_client/v2/models/container_meta_page_type.rb +26 -0
  163. data/lib/datadog_api_client/v2/models/container_type.rb +26 -0
  164. data/lib/datadog_api_client/v2/models/containers_response.rb +102 -0
  165. data/lib/datadog_api_client/v2/models/containers_response_links.rb +130 -0
  166. data/lib/datadog_api_client/v2/models/cost_attribution_aggregates_body.rb +100 -0
  167. data/lib/datadog_api_client/v2/models/cost_attribution_type.rb +26 -0
  168. data/lib/datadog_api_client/v2/models/create_rule_request.rb +80 -0
  169. data/lib/datadog_api_client/v2/models/create_rule_request_data.rb +90 -0
  170. data/lib/datadog_api_client/v2/models/create_rule_response.rb +80 -0
  171. data/lib/datadog_api_client/v2/models/create_rule_response_data.rb +110 -0
  172. data/lib/datadog_api_client/v2/models/dora_deployment_request.rb +98 -0
  173. data/lib/datadog_api_client/v2/models/dora_deployment_request_attributes.rb +170 -0
  174. data/lib/datadog_api_client/v2/models/dora_deployment_request_data.rb +98 -0
  175. data/lib/datadog_api_client/v2/models/dora_deployment_response.rb +98 -0
  176. data/lib/datadog_api_client/v2/models/dora_deployment_response_data.rb +108 -0
  177. data/lib/datadog_api_client/v2/models/dora_deployment_type.rb +26 -0
  178. data/lib/datadog_api_client/v2/models/dora_git_info.rb +125 -0
  179. data/lib/datadog_api_client/v2/models/{mute_finding_response.rb → dora_incident_request.rb} +6 -6
  180. data/lib/datadog_api_client/v2/models/dora_incident_request_attributes.rb +179 -0
  181. data/lib/datadog_api_client/v2/models/dora_incident_request_data.rb +98 -0
  182. data/lib/datadog_api_client/v2/models/dora_incident_response.rb +98 -0
  183. data/lib/datadog_api_client/v2/models/dora_incident_response_data.rb +108 -0
  184. data/lib/datadog_api_client/v2/models/dora_incident_type.rb +26 -0
  185. data/lib/datadog_api_client/v2/models/full_api_key_attributes.rb +24 -4
  186. data/lib/datadog_api_client/v2/models/incident_attachment_link_attributes.rb +14 -4
  187. data/lib/datadog_api_client/v2/models/incident_create_relationships.rb +9 -19
  188. data/lib/datadog_api_client/v2/models/incident_impacts_type.rb +26 -0
  189. data/lib/datadog_api_client/v2/models/incident_integration_metadata_attributes.rb +21 -1
  190. data/lib/datadog_api_client/v2/models/incident_integration_metadata_response_data.rb +11 -1
  191. data/lib/datadog_api_client/v2/models/incident_integration_relationships.rb +90 -0
  192. data/lib/datadog_api_client/v2/models/incident_non_datadog_creator.rb +90 -0
  193. data/lib/datadog_api_client/v2/models/incident_responders_type.rb +26 -0
  194. data/lib/datadog_api_client/v2/models/incident_response_attributes.rb +69 -4
  195. data/lib/datadog_api_client/v2/models/incident_response_relationships.rb +42 -4
  196. data/lib/datadog_api_client/v2/models/incident_severity.rb +31 -0
  197. data/lib/datadog_api_client/v2/models/incident_todo_attributes.rb +24 -4
  198. data/lib/datadog_api_client/v2/models/incident_todo_relationships.rb +90 -0
  199. data/lib/datadog_api_client/v2/models/incident_todo_response_data.rb +11 -1
  200. data/lib/datadog_api_client/v2/models/incident_update_relationships.rb +8 -0
  201. data/lib/datadog_api_client/v2/models/incident_user_defined_field_type.rb +26 -0
  202. data/lib/datadog_api_client/v2/models/list_application_keys_response.rb +14 -4
  203. data/lib/datadog_api_client/v2/models/list_rules_response.rb +92 -0
  204. data/lib/datadog_api_client/v2/models/list_rules_response_data_item.rb +110 -0
  205. data/lib/datadog_api_client/v2/models/list_rules_response_links.rb +80 -0
  206. data/lib/datadog_api_client/v2/models/metric_bulk_tag_config_create_attributes.rb +13 -1
  207. data/lib/datadog_api_client/v2/models/metric_bulk_tag_config_status_attributes.rb +12 -1
  208. data/lib/datadog_api_client/v2/models/metric_tag_configuration_attributes.rb +13 -1
  209. data/lib/datadog_api_client/v2/models/metric_tag_configuration_create_attributes.rb +13 -1
  210. data/lib/datadog_api_client/v2/models/metric_tag_configuration_update_attributes.rb +13 -1
  211. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_attributes.rb +151 -0
  212. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_body.rb +100 -0
  213. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_meta.rb +92 -0
  214. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_pagination.rb +88 -0
  215. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_response.rb +92 -0
  216. data/lib/datadog_api_client/v2/models/okta_account.rb +129 -0
  217. data/lib/datadog_api_client/v2/models/okta_account_attributes.rb +170 -0
  218. data/lib/datadog_api_client/v2/models/{mute_finding_request.rb → okta_account_request.rb} +6 -6
  219. data/lib/datadog_api_client/v2/models/okta_account_response.rb +80 -0
  220. data/lib/datadog_api_client/v2/models/{mute_finding_request_data.rb → okta_account_response_data.rb} +9 -9
  221. data/lib/datadog_api_client/v2/models/okta_account_type.rb +26 -0
  222. data/lib/datadog_api_client/v2/models/okta_account_update_request.rb +98 -0
  223. data/lib/datadog_api_client/v2/models/okta_account_update_request_attributes.rb +149 -0
  224. data/lib/datadog_api_client/v2/models/okta_account_update_request_data.rb +90 -0
  225. data/lib/datadog_api_client/v2/models/okta_accounts_response.rb +82 -0
  226. data/lib/datadog_api_client/v2/models/outcome_type.rb +26 -0
  227. data/lib/datadog_api_client/v2/models/outcomes_batch_attributes.rb +82 -0
  228. data/lib/datadog_api_client/v2/models/outcomes_batch_request.rb +80 -0
  229. data/lib/datadog_api_client/v2/models/outcomes_batch_request_data.rb +90 -0
  230. data/lib/datadog_api_client/v2/models/outcomes_batch_request_item.rb +150 -0
  231. data/lib/datadog_api_client/v2/models/outcomes_batch_response.rb +121 -0
  232. data/lib/datadog_api_client/v2/models/outcomes_batch_response_attributes.rb +120 -0
  233. data/lib/datadog_api_client/v2/models/outcomes_batch_response_meta.rb +90 -0
  234. data/lib/datadog_api_client/v2/models/outcomes_batch_type.rb +26 -0
  235. data/lib/datadog_api_client/v2/models/outcomes_response.rb +104 -0
  236. data/lib/datadog_api_client/v2/models/outcomes_response_data_item.rb +110 -0
  237. data/lib/datadog_api_client/v2/models/outcomes_response_included_item.rb +100 -0
  238. data/lib/datadog_api_client/v2/models/outcomes_response_included_rule_attributes.rb +90 -0
  239. data/lib/datadog_api_client/v2/models/outcomes_response_links.rb +80 -0
  240. data/lib/datadog_api_client/v2/models/partial_api_key_attributes.rb +24 -4
  241. data/lib/datadog_api_client/v2/models/powerpack_group_widget.rb +14 -4
  242. data/lib/datadog_api_client/v2/models/powerpack_relationships.rb +2 -2
  243. data/lib/datadog_api_client/v2/models/powerpacks_response_meta_pagination.rb +8 -0
  244. data/lib/datadog_api_client/v2/models/projected_cost.rb +100 -0
  245. data/lib/datadog_api_client/v2/models/projected_cost_attributes.rb +132 -0
  246. data/lib/datadog_api_client/v2/models/projected_cost_response.rb +82 -0
  247. data/lib/datadog_api_client/v2/models/projected_cost_type.rb +26 -0
  248. data/lib/datadog_api_client/v2/models/relationship_to_incident_impact_data.rb +119 -0
  249. data/lib/datadog_api_client/v2/models/relationship_to_incident_impacts.rb +100 -0
  250. data/lib/datadog_api_client/v2/models/relationship_to_incident_responder_data.rb +119 -0
  251. data/lib/datadog_api_client/v2/models/relationship_to_incident_responders.rb +100 -0
  252. data/lib/datadog_api_client/v2/models/relationship_to_incident_user_defined_field_data.rb +119 -0
  253. data/lib/datadog_api_client/v2/models/relationship_to_incident_user_defined_fields.rb +100 -0
  254. data/lib/datadog_api_client/v2/models/relationship_to_outcome.rb +80 -0
  255. data/lib/datadog_api_client/v2/models/relationship_to_outcome_data.rb +90 -0
  256. data/lib/datadog_api_client/v2/models/relationship_to_rule.rb +80 -0
  257. data/lib/datadog_api_client/v2/models/relationship_to_rule_data.rb +80 -0
  258. data/lib/datadog_api_client/v2/models/relationship_to_rule_data_object.rb +90 -0
  259. data/lib/datadog_api_client/v2/models/rule_attributes.rb +160 -0
  260. data/lib/datadog_api_client/v2/models/rule_outcome_relationships.rb +80 -0
  261. data/lib/datadog_api_client/v2/models/rule_type.rb +26 -0
  262. data/lib/datadog_api_client/v2/models/scorecard_type.rb +26 -0
  263. data/lib/datadog_api_client/v2/models/security_monitoring_rule_type_create.rb +1 -0
  264. data/lib/datadog_api_client/v2/models/security_monitoring_signal_attributes.rb +7 -7
  265. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_query.rb +11 -1
  266. data/lib/datadog_api_client/v2/models/sensitive_data_scanner_standard_pattern_attributes.rb +13 -1
  267. data/lib/datadog_api_client/v2/models/service_definition_v2_dot2.rb +8 -8
  268. data/lib/datadog_api_client/v2/models/sort_direction.rb +27 -0
  269. data/lib/datadog_api_client/v2/models/state.rb +28 -0
  270. data/lib/datadog_api_client/v2/models/teams_field.rb +40 -0
  271. data/lib/datadog_api_client/v2/models/user_team_permission_attributes.rb +1 -1
  272. data/lib/datadog_api_client/v2/models/widget_live_span.rb +40 -0
  273. data/lib/datadog_api_client/version.rb +1 -1
  274. data/lib/datadog_api_client.rb +16 -1
  275. metadata +186 -25
  276. data/examples/v2/confluent-cloud/DeleteConfluentAccount_2919241291.rb +0 -8
  277. data/examples/v2/downtimes/ListMonitorDowntimes_128979780.rb +0 -5
  278. data/examples/v2/key-management/CreateCurrentUserApplicationKey_1999509896.rb +0 -14
  279. data/examples/v2/key-management/DeleteApplicationKey_771691550.rb +0 -8
  280. data/examples/v2/key-management/DeleteCurrentUserApplicationKey_1266687064.rb +0 -8
  281. data/examples/v2/key-management/GetCurrentUserApplicationKey_1060640890.rb +0 -8
  282. data/examples/v2/key-management/ListApplicationKeys_2237010090.rb +0 -5
  283. data/examples/v2/key-management/ListCurrentUserApplicationKeys_1503860964.rb +0 -5
  284. data/examples/v2/security-monitoring/UpdateFinding.rb +0 -23
  285. data/examples/v2/synthetics/GetOnDemandConcurrencyCap_2633566918.rb +0 -5
  286. data/examples/v2/synthetics/SetOnDemandConcurrencyCap_2850884405.rb +0 -9
  287. data/examples/v2/usage-metering/GetUsageApplicationSecurityMonitoring_3959166796.rb +0 -8
  288. data/examples/v2/usage-metering/GetUsageLambdaTracedInvocations_1436752065.rb +0 -8
  289. data/examples/v2/usage-metering/GetUsageObservabilityPipelines_970725512.rb +0 -8
  290. data/examples/v2/users/GetUser_3047557953.rb +0 -8
  291. data/lib/datadog_api_client/v2/models/mute_finding_response_attributes.rb +0 -191
  292. data/lib/datadog_api_client/v2/models/mute_finding_response_properties.rb +0 -114
@@ -0,0 +1,160 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Paging attributes.
21
+ class ContainerMetaPage
22
+ include BaseGenericModel
23
+
24
+ # The cursor used to get the current results, if any.
25
+ attr_accessor :cursor
26
+
27
+ # Number of results returned
28
+ attr_reader :limit
29
+
30
+ # The cursor used to get the next results, if any.
31
+ attr_accessor :next_cursor
32
+
33
+ # The cursor used to get the previous results, if any.
34
+ attr_accessor :prev_cursor
35
+
36
+ # Total number of records that match the query.
37
+ attr_accessor :total
38
+
39
+ # Type of Container pagination.
40
+ attr_accessor :type
41
+
42
+ # Attribute mapping from ruby-style variable name to JSON key.
43
+ # @!visibility private
44
+ def self.attribute_map
45
+ {
46
+ :'cursor' => :'cursor',
47
+ :'limit' => :'limit',
48
+ :'next_cursor' => :'next_cursor',
49
+ :'prev_cursor' => :'prev_cursor',
50
+ :'total' => :'total',
51
+ :'type' => :'type'
52
+ }
53
+ end
54
+
55
+ # Attribute type mapping.
56
+ # @!visibility private
57
+ def self.openapi_types
58
+ {
59
+ :'cursor' => :'String',
60
+ :'limit' => :'Integer',
61
+ :'next_cursor' => :'String',
62
+ :'prev_cursor' => :'String',
63
+ :'total' => :'Integer',
64
+ :'type' => :'ContainerMetaPageType'
65
+ }
66
+ end
67
+
68
+ # List of attributes with nullable: true
69
+ # @!visibility private
70
+ def self.openapi_nullable
71
+ Set.new([
72
+ :'prev_cursor',
73
+ ])
74
+ end
75
+
76
+ # Initializes the object
77
+ # @param attributes [Hash] Model attributes in the form of hash
78
+ # @!visibility private
79
+ def initialize(attributes = {})
80
+ if (!attributes.is_a?(Hash))
81
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ContainerMetaPage` initialize method"
82
+ end
83
+
84
+ # check to see if the attribute exists and convert string to symbol for hash key
85
+ attributes = attributes.each_with_object({}) { |(k, v), h|
86
+ if (!self.class.attribute_map.key?(k.to_sym))
87
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::ContainerMetaPage`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
88
+ end
89
+ h[k.to_sym] = v
90
+ }
91
+
92
+ if attributes.key?(:'cursor')
93
+ self.cursor = attributes[:'cursor']
94
+ end
95
+
96
+ if attributes.key?(:'limit')
97
+ self.limit = attributes[:'limit']
98
+ end
99
+
100
+ if attributes.key?(:'next_cursor')
101
+ self.next_cursor = attributes[:'next_cursor']
102
+ end
103
+
104
+ if attributes.key?(:'prev_cursor')
105
+ self.prev_cursor = attributes[:'prev_cursor']
106
+ end
107
+
108
+ if attributes.key?(:'total')
109
+ self.total = attributes[:'total']
110
+ end
111
+
112
+ if attributes.key?(:'type')
113
+ self.type = attributes[:'type']
114
+ end
115
+ end
116
+
117
+ # Check to see if the all the properties in the model are valid
118
+ # @return true if the model is valid
119
+ # @!visibility private
120
+ def valid?
121
+ return false if !@limit.nil? && @limit > 10000
122
+ return false if !@limit.nil? && @limit < 0
123
+ true
124
+ end
125
+
126
+ # Custom attribute writer method with validation
127
+ # @param limit [Object] Object to be assigned
128
+ # @!visibility private
129
+ def limit=(limit)
130
+ if !limit.nil? && limit > 10000
131
+ fail ArgumentError, 'invalid value for "limit", must be smaller than or equal to 10000.'
132
+ end
133
+ if !limit.nil? && limit < 0
134
+ fail ArgumentError, 'invalid value for "limit", must be greater than or equal to 0.'
135
+ end
136
+ @limit = limit
137
+ end
138
+
139
+ # Checks equality by comparing each attribute.
140
+ # @param o [Object] Object to be compared
141
+ # @!visibility private
142
+ def ==(o)
143
+ return true if self.equal?(o)
144
+ self.class == o.class &&
145
+ cursor == o.cursor &&
146
+ limit == o.limit &&
147
+ next_cursor == o.next_cursor &&
148
+ prev_cursor == o.prev_cursor &&
149
+ total == o.total &&
150
+ type == o.type
151
+ end
152
+
153
+ # Calculates hash code according to all attributes.
154
+ # @return [Integer] Hash code
155
+ # @!visibility private
156
+ def hash
157
+ [cursor, limit, next_cursor, prev_cursor, total, type].hash
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,26 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Type of Container pagination.
21
+ class ContainerMetaPageType
22
+ include BaseEnumModel
23
+
24
+ CURSOR_LIMIT = "cursor_limit".freeze
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Type of container.
21
+ class ContainerType
22
+ include BaseEnumModel
23
+
24
+ CONTAINER = "container".freeze
25
+ end
26
+ end
@@ -0,0 +1,102 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # List of containers.
21
+ class ContainersResponse
22
+ include BaseGenericModel
23
+
24
+ # Array of Container objects.
25
+ attr_accessor :data
26
+
27
+ # Pagination links.
28
+ attr_accessor :links
29
+
30
+ # Response metadata object.
31
+ attr_accessor :meta
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ # @!visibility private
35
+ def self.attribute_map
36
+ {
37
+ :'data' => :'data',
38
+ :'links' => :'links',
39
+ :'meta' => :'meta'
40
+ }
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ # @!visibility private
45
+ def self.openapi_types
46
+ {
47
+ :'data' => :'Array<ContainerItem>',
48
+ :'links' => :'ContainersResponseLinks',
49
+ :'meta' => :'ContainerMeta'
50
+ }
51
+ end
52
+
53
+ # Initializes the object
54
+ # @param attributes [Hash] Model attributes in the form of hash
55
+ # @!visibility private
56
+ def initialize(attributes = {})
57
+ if (!attributes.is_a?(Hash))
58
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ContainersResponse` initialize method"
59
+ end
60
+
61
+ # check to see if the attribute exists and convert string to symbol for hash key
62
+ attributes = attributes.each_with_object({}) { |(k, v), h|
63
+ if (!self.class.attribute_map.key?(k.to_sym))
64
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::ContainersResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
65
+ end
66
+ h[k.to_sym] = v
67
+ }
68
+
69
+ if attributes.key?(:'data')
70
+ if (value = attributes[:'data']).is_a?(Array)
71
+ self.data = value
72
+ end
73
+ end
74
+
75
+ if attributes.key?(:'links')
76
+ self.links = attributes[:'links']
77
+ end
78
+
79
+ if attributes.key?(:'meta')
80
+ self.meta = attributes[:'meta']
81
+ end
82
+ end
83
+
84
+ # Checks equality by comparing each attribute.
85
+ # @param o [Object] Object to be compared
86
+ # @!visibility private
87
+ def ==(o)
88
+ return true if self.equal?(o)
89
+ self.class == o.class &&
90
+ data == o.data &&
91
+ links == o.links &&
92
+ meta == o.meta
93
+ end
94
+
95
+ # Calculates hash code according to all attributes.
96
+ # @return [Integer] Hash code
97
+ # @!visibility private
98
+ def hash
99
+ [data, links, meta].hash
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,130 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Pagination links.
21
+ class ContainersResponseLinks
22
+ include BaseGenericModel
23
+
24
+ # Link to the first page.
25
+ attr_accessor :first
26
+
27
+ # Link to the last page.
28
+ attr_accessor :last
29
+
30
+ # Link to the next page.
31
+ attr_accessor :_next
32
+
33
+ # Link to previous page.
34
+ attr_accessor :prev
35
+
36
+ # Link to current page.
37
+ attr_accessor :_self
38
+
39
+ # Attribute mapping from ruby-style variable name to JSON key.
40
+ # @!visibility private
41
+ def self.attribute_map
42
+ {
43
+ :'first' => :'first',
44
+ :'last' => :'last',
45
+ :'_next' => :'next',
46
+ :'prev' => :'prev',
47
+ :'_self' => :'self'
48
+ }
49
+ end
50
+
51
+ # Attribute type mapping.
52
+ # @!visibility private
53
+ def self.openapi_types
54
+ {
55
+ :'first' => :'String',
56
+ :'last' => :'String',
57
+ :'_next' => :'String',
58
+ :'prev' => :'String',
59
+ :'_self' => :'String'
60
+ }
61
+ end
62
+
63
+ # List of attributes with nullable: true
64
+ # @!visibility private
65
+ def self.openapi_nullable
66
+ Set.new([
67
+ :'last',
68
+ :'_next',
69
+ :'prev',
70
+ ])
71
+ end
72
+
73
+ # Initializes the object
74
+ # @param attributes [Hash] Model attributes in the form of hash
75
+ # @!visibility private
76
+ def initialize(attributes = {})
77
+ if (!attributes.is_a?(Hash))
78
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ContainersResponseLinks` initialize method"
79
+ end
80
+
81
+ # check to see if the attribute exists and convert string to symbol for hash key
82
+ attributes = attributes.each_with_object({}) { |(k, v), h|
83
+ if (!self.class.attribute_map.key?(k.to_sym))
84
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::ContainersResponseLinks`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
85
+ end
86
+ h[k.to_sym] = v
87
+ }
88
+
89
+ if attributes.key?(:'first')
90
+ self.first = attributes[:'first']
91
+ end
92
+
93
+ if attributes.key?(:'last')
94
+ self.last = attributes[:'last']
95
+ end
96
+
97
+ if attributes.key?(:'_next')
98
+ self._next = attributes[:'_next']
99
+ end
100
+
101
+ if attributes.key?(:'prev')
102
+ self.prev = attributes[:'prev']
103
+ end
104
+
105
+ if attributes.key?(:'_self')
106
+ self._self = attributes[:'_self']
107
+ end
108
+ end
109
+
110
+ # Checks equality by comparing each attribute.
111
+ # @param o [Object] Object to be compared
112
+ # @!visibility private
113
+ def ==(o)
114
+ return true if self.equal?(o)
115
+ self.class == o.class &&
116
+ first == o.first &&
117
+ last == o.last &&
118
+ _next == o._next &&
119
+ prev == o.prev &&
120
+ _self == o._self
121
+ end
122
+
123
+ # Calculates hash code according to all attributes.
124
+ # @return [Integer] Hash code
125
+ # @!visibility private
126
+ def hash
127
+ [first, last, _next, prev, _self].hash
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,100 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # The object containing the aggregates.
21
+ class CostAttributionAggregatesBody
22
+ include BaseGenericModel
23
+
24
+ # The aggregate type.
25
+ attr_accessor :agg_type
26
+
27
+ # The field.
28
+ attr_accessor :field
29
+
30
+ # The value for a given field.
31
+ attr_accessor :value
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ # @!visibility private
35
+ def self.attribute_map
36
+ {
37
+ :'agg_type' => :'agg_type',
38
+ :'field' => :'field',
39
+ :'value' => :'value'
40
+ }
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ # @!visibility private
45
+ def self.openapi_types
46
+ {
47
+ :'agg_type' => :'String',
48
+ :'field' => :'String',
49
+ :'value' => :'Float'
50
+ }
51
+ end
52
+
53
+ # Initializes the object
54
+ # @param attributes [Hash] Model attributes in the form of hash
55
+ # @!visibility private
56
+ def initialize(attributes = {})
57
+ if (!attributes.is_a?(Hash))
58
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::CostAttributionAggregatesBody` initialize method"
59
+ end
60
+
61
+ # check to see if the attribute exists and convert string to symbol for hash key
62
+ attributes = attributes.each_with_object({}) { |(k, v), h|
63
+ if (!self.class.attribute_map.key?(k.to_sym))
64
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::CostAttributionAggregatesBody`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
65
+ end
66
+ h[k.to_sym] = v
67
+ }
68
+
69
+ if attributes.key?(:'agg_type')
70
+ self.agg_type = attributes[:'agg_type']
71
+ end
72
+
73
+ if attributes.key?(:'field')
74
+ self.field = attributes[:'field']
75
+ end
76
+
77
+ if attributes.key?(:'value')
78
+ self.value = attributes[:'value']
79
+ end
80
+ end
81
+
82
+ # Checks equality by comparing each attribute.
83
+ # @param o [Object] Object to be compared
84
+ # @!visibility private
85
+ def ==(o)
86
+ return true if self.equal?(o)
87
+ self.class == o.class &&
88
+ agg_type == o.agg_type &&
89
+ field == o.field &&
90
+ value == o.value
91
+ end
92
+
93
+ # Calculates hash code according to all attributes.
94
+ # @return [Integer] Hash code
95
+ # @!visibility private
96
+ def hash
97
+ [agg_type, field, value].hash
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,26 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Type of cost attribution data.
21
+ class CostAttributionType
22
+ include BaseEnumModel
23
+
24
+ COST_BY_TAG = "cost_by_tag".freeze
25
+ end
26
+ end
@@ -0,0 +1,80 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # Scorecard create rule request.
21
+ class CreateRuleRequest
22
+ include BaseGenericModel
23
+
24
+ # Scorecard create rule request data.
25
+ attr_accessor :data
26
+
27
+ # Attribute mapping from ruby-style variable name to JSON key.
28
+ # @!visibility private
29
+ def self.attribute_map
30
+ {
31
+ :'data' => :'data'
32
+ }
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ # @!visibility private
37
+ def self.openapi_types
38
+ {
39
+ :'data' => :'CreateRuleRequestData'
40
+ }
41
+ end
42
+
43
+ # Initializes the object
44
+ # @param attributes [Hash] Model attributes in the form of hash
45
+ # @!visibility private
46
+ def initialize(attributes = {})
47
+ if (!attributes.is_a?(Hash))
48
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::CreateRuleRequest` initialize method"
49
+ end
50
+
51
+ # check to see if the attribute exists and convert string to symbol for hash key
52
+ attributes = attributes.each_with_object({}) { |(k, v), h|
53
+ if (!self.class.attribute_map.key?(k.to_sym))
54
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::CreateRuleRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
+ end
56
+ h[k.to_sym] = v
57
+ }
58
+
59
+ if attributes.key?(:'data')
60
+ self.data = attributes[:'data']
61
+ end
62
+ end
63
+
64
+ # Checks equality by comparing each attribute.
65
+ # @param o [Object] Object to be compared
66
+ # @!visibility private
67
+ def ==(o)
68
+ return true if self.equal?(o)
69
+ self.class == o.class &&
70
+ data == o.data
71
+ end
72
+
73
+ # Calculates hash code according to all attributes.
74
+ # @return [Integer] Hash code
75
+ # @!visibility private
76
+ def hash
77
+ [data].hash
78
+ end
79
+ end
80
+ end