dogapi 1.37.0 → 1.41.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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/.azure-pipelines/all.yml +16 -7
  3. data/.github/CODEOWNERS +10 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +36 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  6. data/.github/PULL_REQUEST_TEMPLATE.md +77 -0
  7. data/.github/labeler.yml +5 -0
  8. data/.github/workflows/labeler.yml +11 -0
  9. data/.github/workflows/stale.yml +39 -0
  10. data/.rubocop_todo.yml +44 -75
  11. data/CHANGELOG.md +39 -1
  12. data/CONTRIBUTING.md +111 -0
  13. data/DEVELOPMENT.md +11 -0
  14. data/Gemfile +2 -0
  15. data/Gemfile_1.9 +13 -0
  16. data/LICENSE +21 -20
  17. data/LICENSE-3rdparty.csv +6 -0
  18. data/README.rdoc +14 -0
  19. data/RELEASING.md +46 -0
  20. data/SUPPORT.md +9 -0
  21. data/dogapi.gemspec +2 -0
  22. data/examples/custom_metric.rb +1 -1
  23. data/lib/capistrano/README.md +4 -1
  24. data/lib/capistrano/datadog.rb +8 -4
  25. data/lib/capistrano/datadog/v2.rb +9 -1
  26. data/lib/capistrano/datadog/v3.rb +10 -1
  27. data/lib/dogapi.rb +4 -0
  28. data/lib/dogapi/common.rb +90 -35
  29. data/lib/dogapi/event.rb +4 -0
  30. data/lib/dogapi/facade.rb +176 -28
  31. data/lib/dogapi/metric.rb +4 -0
  32. data/lib/dogapi/v1.rb +9 -0
  33. data/lib/dogapi/v1/alert.rb +4 -0
  34. data/lib/dogapi/v1/aws_integration.rb +117 -0
  35. data/lib/dogapi/v1/aws_logs.rb +107 -0
  36. data/lib/dogapi/v1/azure_integration.rb +85 -0
  37. data/lib/dogapi/v1/comment.rb +4 -0
  38. data/lib/dogapi/v1/dash.rb +10 -4
  39. data/lib/dogapi/v1/dashboard.rb +4 -0
  40. data/lib/dogapi/v1/dashboard_list.rb +4 -0
  41. data/lib/dogapi/v1/embed.rb +4 -0
  42. data/lib/dogapi/v1/event.rb +4 -0
  43. data/lib/dogapi/v1/gcp_integration.rb +76 -0
  44. data/lib/dogapi/v1/hosts.rb +4 -0
  45. data/lib/dogapi/v1/integration.rb +4 -0
  46. data/lib/dogapi/v1/metadata.rb +4 -0
  47. data/lib/dogapi/v1/metric.rb +4 -0
  48. data/lib/dogapi/v1/monitor.rb +20 -7
  49. data/lib/dogapi/v1/screenboard.rb +4 -0
  50. data/lib/dogapi/v1/search.rb +4 -0
  51. data/lib/dogapi/v1/service_check.rb +4 -0
  52. data/lib/dogapi/v1/service_level_objective.rb +31 -35
  53. data/lib/dogapi/v1/snapshot.rb +4 -0
  54. data/lib/dogapi/v1/synthetics.rb +80 -0
  55. data/lib/dogapi/v1/tag.rb +4 -0
  56. data/lib/dogapi/v1/usage.rb +4 -0
  57. data/lib/dogapi/v1/user.rb +4 -0
  58. data/lib/dogapi/v2.rb +4 -0
  59. data/lib/dogapi/v2/dashboard_list.rb +4 -0
  60. data/lib/dogapi/version.rb +5 -1
  61. data/spec/integration/alert_spec.rb +4 -0
  62. data/spec/integration/aws_integration_spec.rb +55 -0
  63. data/spec/integration/aws_logs_spec.rb +59 -0
  64. data/spec/integration/azure_integration_spec.rb +63 -0
  65. data/spec/integration/comment_spec.rb +5 -0
  66. data/spec/integration/common_spec.rb +4 -0
  67. data/spec/integration/dash_spec.rb +7 -1
  68. data/spec/integration/dashboard_list_spec.rb +4 -0
  69. data/spec/integration/dashboard_spec.rb +4 -0
  70. data/spec/integration/embed_spec.rb +4 -0
  71. data/spec/integration/event_spec.rb +5 -0
  72. data/spec/integration/gcp_integration_spec.rb +57 -0
  73. data/spec/integration/integration_spec.rb +4 -0
  74. data/spec/integration/metadata_spec.rb +4 -0
  75. data/spec/integration/metric_spec.rb +4 -0
  76. data/spec/integration/monitor_spec.rb +30 -1
  77. data/spec/integration/screenboard_spec.rb +4 -0
  78. data/spec/integration/search_spec.rb +4 -0
  79. data/spec/integration/service_check_spec.rb +4 -0
  80. data/spec/integration/service_level_objective_spec.rb +13 -11
  81. data/spec/integration/snapshot_spec.rb +4 -0
  82. data/spec/integration/synthetics_spec.rb +131 -0
  83. data/spec/integration/tag_spec.rb +4 -0
  84. data/spec/integration/usage_spec.rb +4 -0
  85. data/spec/integration/user_spec.rb +4 -0
  86. data/spec/spec_helper.rb +12 -21
  87. data/spec/unit/capistrano_spec.rb +4 -0
  88. data/spec/unit/common_spec.rb +64 -7
  89. data/spec/unit/facade_spec.rb +4 -0
  90. metadata +31 -4
@@ -1,3 +1,7 @@
1
+ # Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
2
+ # This product includes software developed at Datadog (https://www.datadoghq.com/).
3
+ # Copyright 2011-Present Datadog, Inc.
4
+
1
5
  require 'dogapi/common'
2
6
  require 'dogapi/facade'
3
7
  require 'dogapi/event'
@@ -1,5 +1,10 @@
1
+ # Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
2
+ # This product includes software developed at Datadog (https://www.datadoghq.com/).
3
+ # Copyright 2011-Present Datadog, Inc.
4
+
1
5
  require 'cgi'
2
6
  require 'net/https'
7
+ require 'rbconfig'
3
8
  require 'socket'
4
9
  require 'uri'
5
10
  require 'English'
@@ -7,8 +12,18 @@ require 'English'
7
12
  require 'rubygems'
8
13
  require 'multi_json'
9
14
  require 'set'
15
+ require 'open3'
16
+
17
+ require 'dogapi/version'
10
18
 
11
19
  module Dogapi
20
+ USER_AGENT = format(
21
+ 'dogapi-rb/%<version>s (ruby %<ruver>s; os %<os>s; arch %<arch>s)',
22
+ version: VERSION,
23
+ ruver: RUBY_VERSION,
24
+ os: RbConfig::CONFIG['host_os'].downcase,
25
+ arch: RbConfig::CONFIG['host_cpu']
26
+ )
12
27
 
13
28
  # Metadata class to hold the scope of an API call
14
29
  class Scope
@@ -83,13 +98,12 @@ module Dogapi
83
98
  def connect
84
99
  connection = Net::HTTP
85
100
 
86
- # After ruby 2.0 Net::HTTP looks for the env variable but not ruby 1.9
87
- if RUBY_VERSION < '2.0.0'
88
- proxy = ENV['HTTPS_PROXY'] || ENV['https_proxy'] || ENV['HTTP_PROXY'] || ENV['http_proxy']
89
- if proxy
90
- proxy_uri = URI.parse(proxy)
91
- connection = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
92
- end
101
+ # Expose using a proxy without setting the HTTPS_PROXY or HTTP_PROXY variables
102
+ proxy = Dogapi.find_proxy()
103
+
104
+ if proxy
105
+ proxy_uri = URI.parse(proxy)
106
+ connection = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
93
107
  end
94
108
 
95
109
  uri = URI.parse(@api_host)
@@ -118,17 +132,12 @@ module Dogapi
118
132
  resp = nil
119
133
  connect do |conn|
120
134
  begin
121
- current_url = url + prepare_params(extra_params, url, with_app_key)
122
- req = method.new(current_url)
123
- req['DD-API-KEY'] = @api_key
124
- req['DD-APPLICATION-KEY'] = @application_key if with_app_key
125
-
126
- if send_json
127
- req.content_type = 'application/json'
128
- req.body = MultiJson.dump(body)
129
- end
130
-
135
+ params = prepare_params(extra_params, url, with_app_key)
136
+ req = prepare_request(method, url, params, body, send_json, with_app_key)
131
137
  resp = conn.request(req)
138
+ if resp.code.to_i / 100 == 3
139
+ resp = handle_redirect(conn, req, resp)
140
+ end
132
141
  return handle_response(resp)
133
142
  rescue Exception => e
134
143
  suppress_error_if_silent e
@@ -136,29 +145,37 @@ module Dogapi
136
145
  end
137
146
  end
138
147
 
139
- def prepare_params(extra_params, url, with_app_key)
140
- params = set_api_and_app_keys_in_params(url, with_app_key)
141
- params = extra_params.merge params unless extra_params.nil?
142
- qs_params = params.map { |k, v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }
143
- qs = '?' + qs_params.join('&')
144
- qs
148
+ def prepare_request(method, url, params, body, send_json, with_app_key)
149
+ url_with_params = url + params
150
+ req = method.new(url_with_params)
151
+ req['User-Agent'] = USER_AGENT
152
+ unless should_set_api_and_app_keys_in_params?(url)
153
+ req['DD-API-KEY'] = @api_key
154
+ req['DD-APPLICATION-KEY'] = @application_key if with_app_key
155
+ end
156
+ if send_json
157
+ req.content_type = 'application/json'
158
+ req.body = MultiJson.dump(body)
159
+ end
160
+ return req
145
161
  end
146
162
 
147
- def set_api_and_app_keys_in_params(url, with_app_key)
148
- set_of_urls = Set.new ['/api/v1/series',
149
- '/api/v1/check_run',
150
- '/api/v1/events',
151
- '/api/v1/screen']
152
-
153
- include_in_params = set_of_urls.include?(url)
154
-
155
- if include_in_params
163
+ def prepare_params(extra_params, url, with_app_key)
164
+ if should_set_api_and_app_keys_in_params?(url)
156
165
  params = { api_key: @api_key }
157
166
  params[:application_key] = @application_key if with_app_key
158
167
  else
159
168
  params = {}
160
169
  end
161
- return params
170
+ params = extra_params.merge params unless extra_params.nil?
171
+ qs_params = params.map { |k, v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }
172
+ qs = '?' + qs_params.join('&')
173
+ qs
174
+ end
175
+
176
+ def should_set_api_and_app_keys_in_params?(url)
177
+ set_of_urls = Set.new ['/api/v1/series', '/api/v1/check_run', '/api/v1/events', '/api/v1/screen']
178
+ return set_of_urls.include?(url)
162
179
  end
163
180
 
164
181
  def handle_response(resp)
@@ -173,6 +190,15 @@ module Dogapi
173
190
  raise 'Invalid JSON Response: ' + resp.body
174
191
  end
175
192
  end
193
+
194
+ def handle_redirect(conn, req, resp, retries=10)
195
+ req.uri = URI.parse(resp.header['location'])
196
+ new_response = conn.request(req)
197
+ if retries > 1 && new_response.code / 100 == 3
198
+ new_response = handle_redirect(conn, req, new_response, retries - 1)
199
+ end
200
+ new_response
201
+ end
176
202
  end
177
203
 
178
204
  def Dogapi.find_datadog_host
@@ -184,9 +210,38 @@ module Dogapi
184
210
  @@hostname = nil
185
211
 
186
212
  def Dogapi.find_localhost
187
- @@hostname ||= %x[hostname -f].strip
213
+ unless @@hostname
214
+ out, status = Open3.capture2('hostname', '-f', err: File::NULL)
215
+ # Get status to check if the call was successful
216
+ raise SystemCallError, 'Could not get hostname with `hostname -f`' unless status.exitstatus.zero?
217
+ @@hostname = out.strip
218
+ end
188
219
  rescue SystemCallError
189
- raise $ERROR_INFO unless $ERROR_INFO.class.name == 'Errno::ENOENT'
190
220
  @@hostname = Addrinfo.getaddrinfo(Socket.gethostname, nil, nil, nil, nil, Socket::AI_CANONNAME).first.canonname
191
221
  end
222
+
223
+ def Dogapi.find_proxy
224
+ ENV['DD_PROXY_HTTPS'] || ENV['dd_proxy_https'] ||
225
+ ENV['DD_PROXY_HTTP'] || ENV['dd_proxy_http'] ||
226
+ ENV['HTTPS_PROXY'] || ENV['https_proxy'] || ENV['HTTP_PROXY'] || ENV['http_proxy']
227
+ end
228
+
229
+ def Dogapi.validate_tags(tags)
230
+ unless tags.is_a? Array
231
+ raise ArgumentError, "The tags parameter needs to be an array of string. Current value: #{tags}"
232
+ end
233
+ tags.each do |tag|
234
+ raise ArgumentError, "Each tag needs to be a string. Current value: #{tag}" unless tag.is_a? String
235
+ end
236
+ end
237
+
238
+ # Very simplified hash with indifferent access - access to string or symbol
239
+ # keys via symbols. E.g.:
240
+ # my_hash = { 'foo' => 1 }
241
+ # Dogapi.symbolized_access(my_hash)
242
+ # my_hash[:foo] # => 1
243
+ def Dogapi.symbolized_access(hash)
244
+ hash.default_proc = proc { |h, k| h.key?(k.to_s) ? h[k.to_s] : nil }
245
+ hash
246
+ end
192
247
  end
@@ -1,3 +1,7 @@
1
+ # Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
2
+ # This product includes software developed at Datadog (https://www.datadoghq.com/).
3
+ # Copyright 2011-Present Datadog, Inc.
4
+
1
5
  require 'net/http'
2
6
 
3
7
  require 'rubygems'
@@ -1,3 +1,7 @@
1
+ # Unless explicitly stated otherwise all files in this repository are licensed under the BSD-3-Clause License.
2
+ # This product includes software developed at Datadog (https://www.datadoghq.com/).
3
+ # Copyright 2011-Present Datadog, Inc.
4
+
1
5
  require 'time'
2
6
  require 'dogapi/v1'
3
7
  require 'dogapi/v2'
@@ -59,6 +63,7 @@ module Dogapi
59
63
  attr_accessor :v2
60
64
  # Support for API version 2.
61
65
 
66
+ # rubocop:disable Metrics/MethodLength, Metrics/LineLength
62
67
  def initialize(api_key, application_key=nil, host=nil, device=nil, silent=true, timeout=nil, endpoint=nil)
63
68
 
64
69
  if api_key
@@ -89,12 +94,17 @@ module Dogapi
89
94
  @embed_svc = Dogapi::V1::EmbedService.new(@api_key, @application_key, silent, timeout, @datadog_host)
90
95
  @screenboard_svc = Dogapi::V1::ScreenboardService.new(@api_key, @application_key, silent, timeout, @datadog_host)
91
96
  @monitor_svc = Dogapi::V1::MonitorService.new(@api_key, @application_key, silent, timeout, @datadog_host)
97
+ @synthetics_svc = Dogapi::V1::SyntheticsService.new(@api_key, @application_key, silent, timeout, @datadog_host)
92
98
  @service_check_svc = Dogapi::V1::ServiceCheckService.new(@api_key, @application_key, silent, timeout, @datadog_host)
93
99
  @metadata_svc = Dogapi::V1::MetadataService.new(@api_key, @application_key, silent, timeout, @datadog_host)
94
100
  @legacy_event_svc = Dogapi::EventService.new(@datadog_host)
95
101
  @hosts_svc = Dogapi::V1::HostsService.new(@api_key, @application_key, silent, timeout, @datadog_host)
96
102
  @integration_svc = Dogapi::V1::IntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
103
+ @aws_integration_svc = Dogapi::V1::AwsIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
104
+ @aws_logs_svc = Dogapi::V1::AwsLogsService.new(@api_key, @application_key, silent, timeout, @datadog_host)
97
105
  @usage_svc = Dogapi::V1::UsageService.new(@api_key, @application_key, silent, timeout, @datadog_host)
106
+ @azure_integration_svc = Dogapi::V1::AzureIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
107
+ @gcp_integration_svc = Dogapi::V1::GcpIntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
98
108
  @service_level_objective_svc = Dogapi::V1::ServiceLevelObjectiveService.new(@api_key, @application_key, silent,
99
109
  timeout, @datadog_host)
100
110
 
@@ -102,6 +112,7 @@ module Dogapi
102
112
  @v2 = Dogapi::ClientV2.new(@api_key, @application_key, true, true, @datadog_host)
103
113
 
104
114
  end
115
+ # rubocop:enable Metrics/MethodLength, Metrics/LineLength
105
116
 
106
117
  #
107
118
  # METRICS
@@ -114,7 +125,7 @@ module Dogapi
114
125
  # :device => String
115
126
  # :options => Map
116
127
  #
117
- # options[:type] = "counter" to specify a counter metric
128
+ # options[:type] = "count" to specify a counter metric
118
129
  # options[:tags] = ["tag1", "tag2"] to tag the point
119
130
  def emit_point(metric, value, options= {})
120
131
  defaults = { :timestamp => Time.now }
@@ -136,7 +147,7 @@ module Dogapi
136
147
  # :device => String
137
148
  # :options => Map
138
149
  #
139
- # options[:type] = "counter" to specify a counter metric
150
+ # options[:type] = "count" to specify a counter metric
140
151
  # options[:tags] = ["tag1", "tag2"] to tag the point
141
152
  def emit_points(metric, points, options= {})
142
153
  scope = override_scope options
@@ -313,13 +324,13 @@ module Dogapi
313
324
  #
314
325
 
315
326
  # Create a dashboard.
316
- def create_dashboard(title, description, graphs, template_variables=nil)
317
- @dash_service.create_dashboard(title, description, graphs, template_variables)
327
+ def create_dashboard(title, description, graphs, template_variables = nil, read_only = false)
328
+ @dash_service.create_dashboard(title, description, graphs, template_variables, read_only)
318
329
  end
319
330
 
320
331
  # Update a dashboard.
321
- def update_dashboard(dash_id, title, description, graphs, template_variables=nil)
322
- @dash_service.update_dashboard(dash_id, title, description, graphs, template_variables)
332
+ def update_dashboard(dash_id, title, description, graphs, template_variables = nil, read_only = false)
333
+ @dash_service.update_dashboard(dash_id, title, description, graphs, template_variables, read_only)
323
334
  end
324
335
 
325
336
  # Fetch the given dashboard.
@@ -522,6 +533,49 @@ module Dogapi
522
533
  @screenboard_svc.revoke_screenboard(board_id)
523
534
  end
524
535
 
536
+ #
537
+ # SYNTHETICS
538
+ #
539
+ def create_synthetics_test(type, config, options = {})
540
+ @synthetics_svc.create_synthetics_test(type, config, options)
541
+ end
542
+
543
+ def update_synthetics_test(test_id, type, config, options = {})
544
+ @synthetics_svc.update_synthetics_test(test_id, type, config, options)
545
+ end
546
+
547
+ def delete_synthetics_tests(test_ids)
548
+ @synthetics_svc.delete_synthetics_tests(test_ids)
549
+ end
550
+
551
+ def start_pause_synthetics_test(test_id, new_status)
552
+ @synthetics_svc.start_pause_synthetics_test(test_id, new_status)
553
+ end
554
+
555
+ def get_all_synthetics_tests
556
+ @synthetics_svc.get_all_synthetics_tests()
557
+ end
558
+
559
+ def get_synthetics_test(test_id)
560
+ @synthetics_svc.get_synthetics_test(test_id)
561
+ end
562
+
563
+ def get_synthetics_results(test_id)
564
+ @synthetics_svc.get_synthetics_results(test_id)
565
+ end
566
+
567
+ def get_synthetics_result(test_id, result_id)
568
+ @synthetics_svc.get_synthetics_result(test_id, result_id)
569
+ end
570
+
571
+ def get_synthetics_devices
572
+ @synthetics_svc.get_synthetics_devices()
573
+ end
574
+
575
+ def get_synthetics_locations
576
+ @synthetics_svc.get_synthetics_locations()
577
+ end
578
+
525
579
  #
526
580
  # MONITORS
527
581
  #
@@ -538,8 +592,12 @@ module Dogapi
538
592
  @monitor_svc.get_monitor(monitor_id, options)
539
593
  end
540
594
 
541
- def delete_monitor(monitor_id)
542
- @monitor_svc.delete_monitor(monitor_id)
595
+ def can_delete_monitors(monitor_ids)
596
+ @monitor_svc.can_delete_monitors(monitor_ids)
597
+ end
598
+
599
+ def delete_monitor(monitor_id, options = {})
600
+ @monitor_svc.delete_monitor(monitor_id, options)
543
601
  end
544
602
 
545
603
  def get_all_monitors(options= {})
@@ -590,8 +648,8 @@ module Dogapi
590
648
  @monitor_svc.update_downtime(downtime_id, options)
591
649
  end
592
650
 
593
- def get_downtime(downtime_id)
594
- @monitor_svc.get_downtime(downtime_id)
651
+ def get_downtime(downtime_id, options = {})
652
+ @monitor_svc.get_downtime(downtime_id, options)
595
653
  end
596
654
 
597
655
  def cancel_downtime(downtime_id)
@@ -622,23 +680,12 @@ module Dogapi
622
680
  # SERVICE LEVEL OBJECTIVES
623
681
  #
624
682
 
625
- def create_service_level_objective(type: , name: , description: nil, tags: nil, thresholds: nil, numerator: nil,
626
- denominator: nil, monitor_ids: nil, monitor_search: nil, groups: nil)
627
- @service_level_objective_svc.create_service_level_objective(type: type, name: name, description: description,
628
- tags: tags, thresholds: thresholds,
629
- numerator: numerator, denominator: denominator,
630
- monitor_ids: monitor_ids,
631
- monitor_search: monitor_search, groups: groups)
683
+ def create_service_level_objective(type, slo_name, thresholds, options = {})
684
+ @service_level_objective_svc.create_service_level_objective(type, slo_name, thresholds, options)
632
685
  end
633
686
 
634
- def update_service_level_objective(slo_id: , type: , name: nil, description: nil, tags: nil, thresholds: nil,
635
- numerator: nil, denominator: nil, monitor_ids: nil, monitor_search: nil,
636
- groups: nil)
637
- @service_level_objective_svc.update_service_level_objective(slo_id: slo_id, type: type, name: name,
638
- description: description, tags: tags,
639
- thresholds: thresholds, numerator: numerator,
640
- denominator: denominator, monitor_ids: monitor_ids,
641
- monitor_search: monitor_search, groups: groups)
687
+ def update_service_level_objective(slo_id, type, options = {})
688
+ @service_level_objective_svc.update_service_level_objective(slo_id, type, options)
642
689
  end
643
690
 
644
691
  def get_service_level_objective(slo_id)
@@ -649,9 +696,8 @@ module Dogapi
649
696
  @service_level_objective_svc.get_service_level_objective_history(slo_id, from_ts, to_ts)
650
697
  end
651
698
 
652
- def search_service_level_objective(slo_ids: nil, query: nil, offset: nil, limit: nil)
653
- @service_level_objective_svc.search_service_level_objective(slo_ids: slo_ids, query: query, offset: offset,
654
- limit: limit)
699
+ def search_service_level_objective(slo_ids = nil, query = nil, offset = nil, limit = nil)
700
+ @service_level_objective_svc.search_service_level_objective(slo_ids, query, offset, limit)
655
701
  end
656
702
 
657
703
  def can_delete_service_level_objective(slo_ids)
@@ -736,6 +782,108 @@ module Dogapi
736
782
  @integration_svc.delete_integration(source_type_name)
737
783
  end
738
784
 
785
+ #
786
+ # AWS INTEGRATION
787
+ #
788
+ def aws_integration_list
789
+ @aws_integration_svc.aws_integration_list
790
+ end
791
+
792
+ def aws_integration_create(config)
793
+ @aws_integration_svc.aws_integration_create(config)
794
+ end
795
+
796
+ def aws_integration_delete(config)
797
+ @aws_integration_svc.aws_integration_delete(config)
798
+ end
799
+
800
+ def aws_integration_list_namespaces
801
+ @aws_integration_svc.aws_integration_list_namespaces
802
+ end
803
+
804
+ def aws_integration_generate_external_id(config)
805
+ @aws_integration_svc.aws_integration_generate_external_id(config)
806
+ end
807
+
808
+ def aws_integration_update(config, new_config)
809
+ @aws_integration_svc.aws_integration_update(config, new_config)
810
+ end
811
+
812
+ #
813
+ # AWS Logs Integration
814
+ #
815
+
816
+ def aws_logs_add_lambda(config)
817
+ @aws_logs_svc.aws_logs_add_lambda(config)
818
+ end
819
+
820
+ def aws_logs_list_services
821
+ @aws_logs_svc.aws_logs_list_services
822
+ end
823
+
824
+ def aws_logs_save_services(config)
825
+ @aws_logs_svc.aws_logs_save_services(config)
826
+ end
827
+
828
+ def aws_logs_integrations_list
829
+ @aws_logs_svc.aws_logs_integrations_list
830
+ end
831
+
832
+ def aws_logs_integration_delete(config)
833
+ @aws_logs_svc.aws_logs_integration_delete(config)
834
+ end
835
+
836
+ def aws_logs_check_lambda(config)
837
+ @aws_logs_svc.aws_logs_check_lambda(config)
838
+ end
839
+
840
+ def aws_logs_check_services(config)
841
+ @aws_logs_svc.aws_logs_check_services(config)
842
+ end
843
+
844
+ #
845
+ # AZURE INTEGRATION
846
+ #
847
+
848
+ def azure_integration_list
849
+ @azure_integration_svc.azure_integration_list
850
+ end
851
+
852
+ def azure_integration_create(config)
853
+ @azure_integration_svc.azure_integration_create(config)
854
+ end
855
+
856
+ def azure_integration_delete(config)
857
+ @azure_integration_svc.azure_integration_delete(config)
858
+ end
859
+
860
+ def azure_integration_update_host_filters(config)
861
+ @azure_integration_svc.azure_integration_update_host_filters(config)
862
+ end
863
+
864
+ def azure_integration_update(config)
865
+ @azure_integration_svc.azure_integration_update(config)
866
+ end
867
+
868
+ #
869
+ # GCP INTEGRATION
870
+ #
871
+ def gcp_integration_list
872
+ @gcp_integration_svc.gcp_integration_list
873
+ end
874
+
875
+ def gcp_integration_delete(config)
876
+ @gcp_integration_svc.gcp_integration_delete(config)
877
+ end
878
+
879
+ def gcp_integration_create(config)
880
+ @gcp_integration_svc.gcp_integration_create(config)
881
+ end
882
+
883
+ def gcp_integration_update(config)
884
+ @gcp_integration_svc.gcp_integration_update(config)
885
+ end
886
+
739
887
  #
740
888
  # USAGE
741
889
  #