dogapi 1.37.1 → 1.42.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 +51 -71
  11. data/CHANGELOG.md +37 -0
  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 +212 -10
  31. data/lib/dogapi/metric.rb +4 -0
  32. data/lib/dogapi/v1.rb +10 -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 +16 -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 +113 -0
  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 +15 -1
  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 +73 -0
  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 +21 -0
  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 +37 -7
@@ -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_relative '../spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
@@ -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_relative '../spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
@@ -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_relative '../spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
@@ -0,0 +1,73 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe Dogapi::Client do
4
+ SLO_ID = '42424242424242424242424242424242'.freeze
5
+ SLO_TYPE = 'metric'.freeze
6
+ SLO_NAME = 'test slo'.freeze
7
+ SLO_DESCRIPTION = 'test slo description'.freeze
8
+ SLO_QUERY_NUMERATOR = 'sum:test.metric.metric{type:good}.as_count()'.freeze
9
+ SLO_QUERY_DENOMINATOR = 'sum:test.metric.metric{*}.as_count()'.freeze
10
+ SLO_TAGS = ['type:test'].freeze
11
+ SLO_THRESHOLDS = [{ timeframe: '7d', target: 90 }, { timeframe: '30d', target: 95 }].freeze
12
+
13
+ describe '#create_service_level_objective' do
14
+ it_behaves_like 'an api method',
15
+ :create_service_level_objective, [SLO_TYPE, SLO_NAME, SLO_THRESHOLDS, {
16
+ description: SLO_DESCRIPTION,
17
+ tags: SLO_TAGS,
18
+ numerator: SLO_QUERY_NUMERATOR,
19
+ denominator: SLO_QUERY_DENOMINATOR
20
+ }],
21
+ :post, '/slo', 'type' => SLO_TYPE, 'name' => SLO_NAME, 'thresholds' => SLO_THRESHOLDS,
22
+ 'query' => { numerator: SLO_QUERY_NUMERATOR, denominator: SLO_QUERY_DENOMINATOR },
23
+ 'tags' => SLO_TAGS, 'description' => SLO_DESCRIPTION
24
+ end
25
+
26
+ describe '#update_service_level_objective' do
27
+ it_behaves_like 'an api method',
28
+ :update_service_level_objective, [SLO_ID, SLO_TYPE, { name: SLO_NAME }],
29
+ :put, "/slo/#{SLO_ID}", 'type' => SLO_TYPE, 'name' => SLO_NAME
30
+ end
31
+
32
+ describe '#get_service_level_objective' do
33
+ it_behaves_like 'an api method',
34
+ :get_service_level_objective, [SLO_ID],
35
+ :get, "/slo/#{SLO_ID}"
36
+ end
37
+
38
+ describe '#get_service_level_objective_history' do
39
+ it_behaves_like 'an api method with params',
40
+ :get_service_level_objective_history, [SLO_ID],
41
+ :get, "/slo/#{SLO_ID}/history", 'from_ts' => 0, 'to_ts' => 1_000_000
42
+ end
43
+
44
+ describe '#can_delete_service_level_objective' do
45
+ it_behaves_like 'an api method with params',
46
+ :can_delete_service_level_objective, [],
47
+ :get, '/slo/can_delete', 'ids' => [SLO_ID]
48
+ end
49
+
50
+ describe '#search_service_level_objective' do
51
+ it_behaves_like 'an api method with optional params',
52
+ :search_service_level_objective, [[SLO_ID]],
53
+ :get, '/slo/', 'ids' => SLO_ID
54
+ end
55
+
56
+ describe '#delete_service_level_objective' do
57
+ it_behaves_like 'an api method',
58
+ :delete_service_level_objective, [SLO_ID],
59
+ :delete, "/slo/#{SLO_ID}"
60
+ end
61
+
62
+ describe '#delete_many_service_level_objective' do
63
+ it_behaves_like 'an api method',
64
+ :delete_many_service_level_objective, [[SLO_ID]],
65
+ :delete, '/slo/', 'ids' => [SLO_ID]
66
+ end
67
+
68
+ describe '#delete_timeframes_service_level_objective' do
69
+ it_behaves_like 'an api method',
70
+ :delete_timeframes_service_level_objective, [{ SLO_ID => ['7d'] }],
71
+ :post, '/slo/bulk_delete', SLO_ID => ['7d']
72
+ end
73
+ 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_relative '../spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
@@ -0,0 +1,131 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe Dogapi::Client do
4
+ SYNTHETICS_TEST_PUBLIC_ID = '84r-szk-xpt'
5
+ SYNTHETICS_TESTS_PUBLIC_IDS = ['84r-szk-xpt', 'sti-s2m-ciz']
6
+ NEW_STATUS = 'paused'
7
+ SYNTHETICS_RESULT_ID = 123_456
8
+
9
+ SYNTHETICS_TEST_TYPE = 'api'.freeze
10
+ SYNTHETICS_TEST_CONFIG = {
11
+ 'assertions' => [
12
+ {
13
+ 'operator' => 'is',
14
+ 'type' => 'statusCode',
15
+ 'target' => 403
16
+ },
17
+ {
18
+ 'operator' => 'is',
19
+ 'property' => 'content-type',
20
+ 'type' => 'header',
21
+ 'target' => 'text/html'
22
+ },
23
+ {
24
+ 'operator' => 'lessThan',
25
+ 'type' => 'responseTime',
26
+ 'target' => 2000
27
+ }
28
+ ],
29
+ 'request' => {
30
+ 'method' => 'GET',
31
+ 'url' => 'https://datadoghq.com',
32
+ 'timeout' => 30,
33
+ 'headers' => {
34
+ 'header1' => 'value1',
35
+ 'header2' => 'value2'
36
+ },
37
+ 'body' => 'body to send with the request'
38
+ }
39
+ }.freeze
40
+
41
+ SYNTHETICS_TEST_OPTIONS = {
42
+ 'locations' => [
43
+ 'aws:us-east-2',
44
+ 'aws:eu-central-1',
45
+ 'aws:ca-central-1'
46
+ ],
47
+ 'options' => {
48
+ 'tick_every' => 60,
49
+ 'min_failure_duration' => 0,
50
+ 'min_location_failed' => 1,
51
+ 'follow_redirects' => true
52
+ },
53
+ 'message' => 'Test with API',
54
+ 'name' => 'Test with API',
55
+ 'tags' => ['key1:value1', 'key2:value2']
56
+ }.freeze
57
+
58
+ describe '#create_synthetics_test' do
59
+ it 'queries the api' do
60
+ url = api_url + '/synthetics/tests'
61
+ stub_request(:post, /#{url}/).to_return(body: '{}').then.to_raise(StandardError)
62
+ expect(dog.send(:create_synthetics_test, SYNTHETICS_TEST_TYPE, SYNTHETICS_TEST_CONFIG,
63
+ SYNTHETICS_TEST_OPTIONS)).to eq ['200', {}]
64
+
65
+ expect(WebMock).to have_requested(:post, url)
66
+ end
67
+ end
68
+
69
+ describe '#update_synthetics_test' do
70
+ it 'queries the api' do
71
+ url = api_url + "/synthetics/tests/#{SYNTHETICS_TEST_PUBLIC_ID}"
72
+ stub_request(:put, /#{url}/).to_return(body: '{}').then.to_raise(StandardError)
73
+ expect(dog.send(:update_synthetics_test, SYNTHETICS_TEST_PUBLIC_ID, SYNTHETICS_TEST_TYPE,
74
+ SYNTHETICS_TEST_CONFIG, SYNTHETICS_TEST_OPTIONS)).to eq ['200', {}]
75
+
76
+ expect(WebMock).to have_requested(:put, url)
77
+ end
78
+ end
79
+
80
+ describe '#delete_synthetics_tests' do
81
+ it_behaves_like 'an api method',
82
+ :delete_synthetics_tests, [SYNTHETICS_TESTS_PUBLIC_IDS],
83
+ :post, '/synthetics/tests/delete', 'public_ids' => SYNTHETICS_TESTS_PUBLIC_IDS
84
+ end
85
+
86
+ describe '#start_pause_synthetics_test' do
87
+ it_behaves_like 'an api method',
88
+ :start_pause_synthetics_test, [SYNTHETICS_TEST_PUBLIC_ID, NEW_STATUS],
89
+ :put, "/synthetics/tests/#{SYNTHETICS_TEST_PUBLIC_ID}/status", 'new_status' => NEW_STATUS
90
+ end
91
+
92
+ describe '#get_all_synthetics_tests' do
93
+ it_behaves_like 'an api method',
94
+ :get_all_synthetics_tests, [],
95
+ :get, '/synthetics/tests'
96
+ end
97
+
98
+ describe '#get_synthetics_test' do
99
+ it_behaves_like 'an api method',
100
+ :get_synthetics_test, [SYNTHETICS_TEST_PUBLIC_ID],
101
+ :get, "/synthetics/tests/#{SYNTHETICS_TEST_PUBLIC_ID}"
102
+ end
103
+
104
+ describe '#get_synthetics_results' do
105
+ it_behaves_like 'an api method',
106
+ :get_synthetics_results, [SYNTHETICS_TEST_PUBLIC_ID],
107
+ :get, "/synthetics/tests/#{SYNTHETICS_TEST_PUBLIC_ID}/results"
108
+ end
109
+
110
+ describe '#get_synthetics_result' do
111
+ it 'queries the api' do
112
+ url = api_url + "/synthetics/tests/#{SYNTHETICS_TEST_PUBLIC_ID}/results/#{SYNTHETICS_RESULT_ID}"
113
+ stub_request(:get, /#{url}/).to_return(body: '{}').then.to_raise(StandardError)
114
+ expect(dog.send(:get_synthetics_result, SYNTHETICS_TEST_PUBLIC_ID, SYNTHETICS_RESULT_ID)).to eq ['200', {}]
115
+
116
+ expect(WebMock).to have_requested(:get, url)
117
+ end
118
+ end
119
+
120
+ describe '#get_synthetics_devices' do
121
+ it_behaves_like 'an api method',
122
+ :get_synthetics_devices, [],
123
+ :get, '/synthetics/browser/devices'
124
+ end
125
+
126
+ describe '#get_synthetics_locations' do
127
+ it_behaves_like 'an api method',
128
+ :get_synthetics_locations, [],
129
+ :get, '/synthetics/locations'
130
+ end
131
+ 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_relative '../spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
@@ -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_relative '../spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
@@ -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_relative '../spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
@@ -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 'rspec'
2
6
  require 'simplecov'
3
7
  require 'webmock/rspec'
@@ -73,6 +77,23 @@ module SpecDog
73
77
  end
74
78
  end
75
79
 
80
+ shared_examples 'an api method with params and body' do |command, args, request, endpoint, params, body|
81
+ it 'queries the api with params and body' do
82
+ url = api_url + endpoint
83
+ stub_request(request, /#{url}/).to_return(body: '{}').then.to_raise(StandardError)
84
+ expect(dog.send(command, *args)).to eq ['200', {}]
85
+ params.each { |k, v| params[k] = v.join(',') if v.is_a? Array }
86
+ params = params
87
+
88
+ body = MultiJson.dump(body) if body
89
+
90
+ expect(WebMock).to have_requested(request, url).with(
91
+ query: params,
92
+ body: body
93
+ )
94
+ end
95
+ end
96
+
76
97
  shared_examples 'an api method with optional params' do |command, args, request, endpoint, opt_params|
77
98
  include_examples 'an api method', command, args, request, endpoint
78
99
  it 'queries the api with optional params' do
@@ -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 'spec_helper'
2
6
  require 'capistrano/datadog'
3
7
  require 'benchmark'
@@ -1,6 +1,27 @@
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_relative '../spec_helper'
2
6
 
3
7
  describe 'Common' do
8
+ describe 'validate_tags' do
9
+ it 'raises if tags is not an array' do
10
+ tags = 'foo:bar'
11
+ expect { Dogapi.validate_tags(tags) }.to raise_error(ArgumentError)
12
+ tags = nil
13
+ expect { Dogapi.validate_tags(tags) }.to raise_error(ArgumentError)
14
+ end
15
+ it 'raises if elements of tags are not strings' do
16
+ tags = ['toto:tata', { foo: 'bar' }]
17
+ expect { Dogapi.validate_tags(tags) }.to raise_error(ArgumentError)
18
+ end
19
+ it 'passes if tags are correct' do
20
+ tags = ['foo:bar', 'baz']
21
+ Dogapi.validate_tags(tags)
22
+ end
23
+ end
24
+
4
25
  describe Dogapi.find_datadog_host do
5
26
  it 'gives precedence to DATADOG_HOST env var' do
6
27
  allow(ENV).to receive(:[]).with('DATADOG_HOST').and_return('example.com')
@@ -40,6 +61,26 @@ describe 'Common' do
40
61
  ENV['http_proxy'] = nil
41
62
  end
42
63
 
64
+ it 'uses-the dogapi specific proxy if set' do
65
+ service = Dogapi::APIService.new('api_key', 'app_key')
66
+
67
+ service.connect do |conn|
68
+ expect(conn.proxy_address).to be(nil)
69
+ expect(conn.proxy_port).to be(nil)
70
+ end
71
+
72
+ ENV['https_proxy'] = 'https://www.proxy.com:443'
73
+ ENV['dd_proxy_https'] = 'https://www.otherproxy.com:443'
74
+
75
+ service.connect do |conn|
76
+ expect(conn.proxy_address).to eq 'www.otherproxy.com'
77
+ expect(conn.proxy_port).to eq 443
78
+ end
79
+
80
+ ENV['https_proxy'] = nil
81
+ ENV['dd_proxy_https'] = nil
82
+ end
83
+
43
84
  it 'respects the endpoint configuration' do
44
85
  service = Dogapi::APIService.new('api_key', 'app_key', true, nil, 'https://app.example.com')
45
86
 
@@ -65,11 +106,12 @@ describe 'Common' do
65
106
  '/api/v1/screen']
66
107
 
67
108
  urls.each do |url|
68
- params = service.set_api_and_app_keys_in_params(url, true)
69
- expect(params).to have_key(:api_key)
70
- expect(params[:api_key]).to eq service.api_key
71
- expect(params).to have_key(:application_key)
72
- expect(params[:application_key]).to eq service.application_key
109
+ expect(service.should_set_api_and_app_keys_in_params?(url)).to be true
110
+ params = service.prepare_params(nil, url, true)
111
+ expect(params).to eq("?api_key=#{service.api_key}&application_key=#{service.application_key}")
112
+ req = service.prepare_request(Net::HTTP::Get, url, params, nil, false, true)
113
+ expect(req.key?('DD-API-KEY')).to be false
114
+ expect(req.key?('DD-APPLICATION-KEY')).to be false
73
115
  end
74
116
  end
75
117
 
@@ -82,10 +124,25 @@ describe 'Common' do
82
124
  '/api/v2/users']
83
125
 
84
126
  urls.each do |url|
85
- params = service.set_api_and_app_keys_in_params(url, true)
86
- expect(params).to eq({})
127
+ expect(service.should_set_api_and_app_keys_in_params?(url)).to be false
128
+ params = service.prepare_params(nil, url, true)
129
+ expect(params).to eq('?')
130
+ req = service.prepare_request(Net::HTTP::Get, url, params, nil, false, true)
131
+ expect(req.key?('DD-API-KEY')).to be true
132
+ expect(req['DD-API-KEY']).to eq service.api_key
133
+ expect(req.key?('DD-APPLICATION-KEY')).to be true
134
+ expect(req['DD-APPLICATION-KEY']).to eq service.application_key
87
135
  end
88
136
  end
137
+
138
+ it 'properly sets User-Agent header' do
139
+ service = Dogapi::APIService.new('api_key', 'app_key', true, nil, 'https://app.example.com')
140
+ params = service.prepare_params(nil, '/api/v1/validate', true)
141
+ req = service.prepare_request(Net::HTTP::Get, '/api/v1/validate', params, nil, false, true)
142
+
143
+ expect(req.key?('User-Agent')).to be true
144
+ expect(req['User-Agent']).to match(%r{dogapi-rb\/[^\s]+ \(ruby [^\s]+; os [^\s]+; arch [^\s]+\)})
145
+ end
89
146
  end
90
147
  end
91
148
 
@@ -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 'spec_helper'
2
6
 
3
7
  describe Dogapi::Client do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dogapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.37.1
4
+ version: 1.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-05 00:00:00.000000000 Z
11
+ date: 2020-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -75,16 +75,29 @@ extra_rdoc_files:
75
75
  - README.rdoc
76
76
  files:
77
77
  - ".azure-pipelines/all.yml"
78
+ - ".github/CODEOWNERS"
79
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
80
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
81
+ - ".github/PULL_REQUEST_TEMPLATE.md"
82
+ - ".github/labeler.yml"
83
+ - ".github/workflows/labeler.yml"
84
+ - ".github/workflows/stale.yml"
78
85
  - ".gitignore"
79
86
  - ".rspec"
80
87
  - ".rubocop.yml"
81
88
  - ".rubocop_todo.yml"
82
89
  - ".tailor"
83
90
  - CHANGELOG.md
91
+ - CONTRIBUTING.md
92
+ - DEVELOPMENT.md
84
93
  - Gemfile
94
+ - Gemfile_1.9
85
95
  - LICENSE
96
+ - LICENSE-3rdparty.csv
86
97
  - README.rdoc
98
+ - RELEASING.md
87
99
  - Rakefile
100
+ - SUPPORT.md
88
101
  - dogapi.gemspec
89
102
  - examples/Capfile
90
103
  - examples/custom_event.rb
@@ -100,12 +113,16 @@ files:
100
113
  - lib/dogapi/metric.rb
101
114
  - lib/dogapi/v1.rb
102
115
  - lib/dogapi/v1/alert.rb
116
+ - lib/dogapi/v1/aws_integration.rb
117
+ - lib/dogapi/v1/aws_logs.rb
118
+ - lib/dogapi/v1/azure_integration.rb
103
119
  - lib/dogapi/v1/comment.rb
104
120
  - lib/dogapi/v1/dash.rb
105
121
  - lib/dogapi/v1/dashboard.rb
106
122
  - lib/dogapi/v1/dashboard_list.rb
107
123
  - lib/dogapi/v1/embed.rb
108
124
  - lib/dogapi/v1/event.rb
125
+ - lib/dogapi/v1/gcp_integration.rb
109
126
  - lib/dogapi/v1/hosts.rb
110
127
  - lib/dogapi/v1/integration.rb
111
128
  - lib/dogapi/v1/metadata.rb
@@ -114,7 +131,9 @@ files:
114
131
  - lib/dogapi/v1/screenboard.rb
115
132
  - lib/dogapi/v1/search.rb
116
133
  - lib/dogapi/v1/service_check.rb
134
+ - lib/dogapi/v1/service_level_objective.rb
117
135
  - lib/dogapi/v1/snapshot.rb
136
+ - lib/dogapi/v1/synthetics.rb
118
137
  - lib/dogapi/v1/tag.rb
119
138
  - lib/dogapi/v1/usage.rb
120
139
  - lib/dogapi/v1/user.rb
@@ -122,6 +141,9 @@ files:
122
141
  - lib/dogapi/v2/dashboard_list.rb
123
142
  - lib/dogapi/version.rb
124
143
  - spec/integration/alert_spec.rb
144
+ - spec/integration/aws_integration_spec.rb
145
+ - spec/integration/aws_logs_spec.rb
146
+ - spec/integration/azure_integration_spec.rb
125
147
  - spec/integration/comment_spec.rb
126
148
  - spec/integration/common_spec.rb
127
149
  - spec/integration/dash_spec.rb
@@ -129,6 +151,7 @@ files:
129
151
  - spec/integration/dashboard_spec.rb
130
152
  - spec/integration/embed_spec.rb
131
153
  - spec/integration/event_spec.rb
154
+ - spec/integration/gcp_integration_spec.rb
132
155
  - spec/integration/integration_spec.rb
133
156
  - spec/integration/metadata_spec.rb
134
157
  - spec/integration/metric_spec.rb
@@ -136,7 +159,9 @@ files:
136
159
  - spec/integration/screenboard_spec.rb
137
160
  - spec/integration/search_spec.rb
138
161
  - spec/integration/service_check_spec.rb
162
+ - spec/integration/service_level_objective_spec.rb
139
163
  - spec/integration/snapshot_spec.rb
164
+ - spec/integration/synthetics_spec.rb
140
165
  - spec/integration/tag_spec.rb
141
166
  - spec/integration/usage_spec.rb
142
167
  - spec/integration/user_spec.rb
@@ -152,7 +177,7 @@ metadata:
152
177
  changelog_uri: https://github.com/DataDog/dogapi-rb/blob/master/CHANGELOG.md
153
178
  documentation_uri: https://docs.datadoghq.com/api/
154
179
  source_code_uri: https://github.com/DataDog/dogapi-rb
155
- post_install_message:
180
+ post_install_message:
156
181
  rdoc_options:
157
182
  - "--title"
158
183
  - DogAPI -- Datadog Client
@@ -173,13 +198,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
198
  - !ruby/object:Gem::Version
174
199
  version: '0'
175
200
  requirements: []
176
- rubyforge_project:
177
- rubygems_version: 2.7.6
178
- signing_key:
201
+ rubygems_version: 3.1.2
202
+ signing_key:
179
203
  specification_version: 4
180
204
  summary: Ruby bindings for Datadog's API
181
205
  test_files:
182
206
  - spec/integration/alert_spec.rb
207
+ - spec/integration/aws_integration_spec.rb
208
+ - spec/integration/aws_logs_spec.rb
209
+ - spec/integration/azure_integration_spec.rb
183
210
  - spec/integration/comment_spec.rb
184
211
  - spec/integration/common_spec.rb
185
212
  - spec/integration/dash_spec.rb
@@ -187,6 +214,7 @@ test_files:
187
214
  - spec/integration/dashboard_spec.rb
188
215
  - spec/integration/embed_spec.rb
189
216
  - spec/integration/event_spec.rb
217
+ - spec/integration/gcp_integration_spec.rb
190
218
  - spec/integration/integration_spec.rb
191
219
  - spec/integration/metadata_spec.rb
192
220
  - spec/integration/metric_spec.rb
@@ -194,7 +222,9 @@ test_files:
194
222
  - spec/integration/screenboard_spec.rb
195
223
  - spec/integration/search_spec.rb
196
224
  - spec/integration/service_check_spec.rb
225
+ - spec/integration/service_level_objective_spec.rb
197
226
  - spec/integration/snapshot_spec.rb
227
+ - spec/integration/synthetics_spec.rb
198
228
  - spec/integration/tag_spec.rb
199
229
  - spec/integration/usage_spec.rb
200
230
  - spec/integration/user_spec.rb