dogapi 1.33.0 → 1.34.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +1 -0
- data/CHANGELOG.md +6 -0
- data/lib/dogapi/facade.rb +21 -0
- data/lib/dogapi/v1.rb +1 -0
- data/lib/dogapi/v1/integration.rb +45 -0
- data/lib/dogapi/version.rb +1 -1
- data/spec/integration/integration_spec.rb +44 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfe067279d23444bbc1c35c0978cab82aa5f2e24ec4fd989c392855f15063a9e
|
4
|
+
data.tar.gz: b8b74019176e0a732eb6800bb57693c54268f2b82a99acc0185b836d3e7cc379
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4f44f988385adaac78e4dff13d4f9dda996848097cc6ca62f445c87f4c4ce7858dd5164ec01f04bbb08ea4f60b12769187d4f818b6733a74dbae7a407a279eb
|
7
|
+
data.tar.gz: 54d88863dd12a3a1b4e7dd3ddeeb017dd9ba245b1d811c65e041608c7b30917fef333ec08204c8cb6f1f1ee870458c28a5a991594fddb21e721d9ad67b1697ab
|
data/.rubocop_todo.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changes
|
2
2
|
|
3
|
+
## 1.34.0 / 2019-03-08
|
4
|
+
|
5
|
+
* [FEATURE] Add /integration endpoints. See [#170][], thanks [@davidcpell][].
|
6
|
+
|
3
7
|
## 1.33.0 / 2019-02-13
|
4
8
|
|
5
9
|
* [IMPROVEMENT] Add submission types mentioned in the API documentation. See [#165][], thanks [@TaylURRE][]
|
@@ -225,6 +229,7 @@ This is the last release compatible with Ruby 1.8. ([EOL 2013-06-30](https://www
|
|
225
229
|
[#163]: https://github.com/DataDog/dogapi-rb/issues/163
|
226
230
|
[#165]: https://github.com/DataDog/dogapi-rb/issues/165
|
227
231
|
[#167]: https://github.com/DataDog/dogapi-rb/issues/167
|
232
|
+
[#170]: https://github.com/DataDog/dogapi-rb/issues/170
|
228
233
|
[@ArjenSchwarz]: https://github.com/ArjenSchwarz
|
229
234
|
[@Kaixiang]: https://github.com/Kaixiang
|
230
235
|
[@TaylURRE]: https://github.com/TaylURRE
|
@@ -234,6 +239,7 @@ This is the last release compatible with Ruby 1.8. ([EOL 2013-06-30](https://www
|
|
234
239
|
[@blakehilscher]: https://github.com/blakehilscher
|
235
240
|
[@byroot]: https://github.com/byroot
|
236
241
|
[@casperisfine]: https://github.com/casperisfine
|
242
|
+
[@davidcpell]: https://github.com/davidcpell
|
237
243
|
[@edwardkenfox]: https://github.com/edwardkenfox
|
238
244
|
[@enbashi]: https://github.com/enbashi
|
239
245
|
[@haohcraft]: https://github.com/haohcraft
|
data/lib/dogapi/facade.rb
CHANGED
@@ -48,6 +48,7 @@ module Dogapi
|
|
48
48
|
@metadata_svc = Dogapi::V1::MetadataService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
49
49
|
@legacy_event_svc = Dogapi::EventService.new(@datadog_host)
|
50
50
|
@hosts_svc = Dogapi::V1::HostsService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
51
|
+
@integration_svc = Dogapi::V1::IntegrationService.new(@api_key, @application_key, silent, timeout, @datadog_host)
|
51
52
|
end
|
52
53
|
|
53
54
|
#
|
@@ -595,6 +596,26 @@ module Dogapi
|
|
595
596
|
@hosts_svc.totals()
|
596
597
|
end
|
597
598
|
|
599
|
+
#
|
600
|
+
# INTEGRATIONS
|
601
|
+
#
|
602
|
+
|
603
|
+
def create_integration(source_type_name, config)
|
604
|
+
@integration_svc.create_integration(source_type_name, config)
|
605
|
+
end
|
606
|
+
|
607
|
+
def update_integration(source_type_name, config)
|
608
|
+
@integration_svc.update_integration(source_type_name, config)
|
609
|
+
end
|
610
|
+
|
611
|
+
def get_integration(source_type_name)
|
612
|
+
@integration_svc.get_integration(source_type_name)
|
613
|
+
end
|
614
|
+
|
615
|
+
def delete_integration(source_type_name)
|
616
|
+
@integration_svc.delete_integration(source_type_name)
|
617
|
+
end
|
618
|
+
|
598
619
|
private
|
599
620
|
|
600
621
|
def override_scope(options= {})
|
data/lib/dogapi/v1.rb
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
class IntegrationService < Dogapi::APIService
|
7
|
+
|
8
|
+
API_VERSION = 'v1'
|
9
|
+
|
10
|
+
# Create an integration
|
11
|
+
#
|
12
|
+
# :source_type_name => String: the name of an integration source
|
13
|
+
# :config => Hash: integration config that varies based on the source type.
|
14
|
+
# See https://docs.datadoghq.com/api/#integrations.
|
15
|
+
def create_integration(source_type_name, config)
|
16
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/#{source_type_name}", nil, config, true)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Update an integration
|
20
|
+
#
|
21
|
+
# :source_type_name => String: the name of an integration source
|
22
|
+
# :config => Hash: integration config that varies based on the source type.
|
23
|
+
# source type (https://docs.datadoghq.com/api/#integrations)
|
24
|
+
def update_integration(source_type_name, config)
|
25
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/integration/#{source_type_name}", nil, config, true)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Retrieve integration information
|
29
|
+
#
|
30
|
+
# :source_type_name => String: the name of an integration source
|
31
|
+
def get_integration(source_type_name)
|
32
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/integration/#{source_type_name}", nil, nil, false)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Delete an integration
|
36
|
+
#
|
37
|
+
# :source_type_name => String: the name of an integration source
|
38
|
+
def delete_integration(source_type_name)
|
39
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/integration/#{source_type_name}", nil, nil, false)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
data/lib/dogapi/version.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe Dogapi::Client do
|
4
|
+
SOURCE_TYPE_NAME = 'pagerduty'.freeze
|
5
|
+
PAGERDUTY_SERVICES = {
|
6
|
+
services: [
|
7
|
+
{
|
8
|
+
service_name: 'test_00',
|
9
|
+
service_key: '<PAGERDUTY_SERVICE_KEY>'
|
10
|
+
},
|
11
|
+
{
|
12
|
+
service_name: 'test_01',
|
13
|
+
service_key: '<PAGERDUTY_SERVICE_KEY>'
|
14
|
+
}
|
15
|
+
],
|
16
|
+
subdomain: '<PAGERDUTY_SUB_DOMAIN>',
|
17
|
+
schedules: ['<SCHEDULE_1>', '<SCHEDULE_2>'],
|
18
|
+
api_token: '<PAGERDUTY_TOKEN>'
|
19
|
+
}.freeze
|
20
|
+
|
21
|
+
describe '#create_integration' do
|
22
|
+
it_behaves_like 'an api method',
|
23
|
+
:create_integration, [SOURCE_TYPE_NAME, PAGERDUTY_SERVICES],
|
24
|
+
:post, "/integration/#{SOURCE_TYPE_NAME}", PAGERDUTY_SERVICES
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '#get_integration' do
|
28
|
+
it_behaves_like 'an api method',
|
29
|
+
:get_integration, [SOURCE_TYPE_NAME],
|
30
|
+
:get, "/integration/#{SOURCE_TYPE_NAME}"
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '#update_integration' do
|
34
|
+
it_behaves_like 'an api method',
|
35
|
+
:update_integration, [SOURCE_TYPE_NAME, PAGERDUTY_SERVICES],
|
36
|
+
:put, "/integration/#{SOURCE_TYPE_NAME}", PAGERDUTY_SERVICES
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#delete_integration' do
|
40
|
+
it_behaves_like 'an api method',
|
41
|
+
:delete_integration, [SOURCE_TYPE_NAME],
|
42
|
+
:delete, "/integration/#{SOURCE_TYPE_NAME}"
|
43
|
+
end
|
44
|
+
end
|
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.
|
4
|
+
version: 1.34.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- lib/dogapi/v1/embed.rb
|
108
108
|
- lib/dogapi/v1/event.rb
|
109
109
|
- lib/dogapi/v1/hosts.rb
|
110
|
+
- lib/dogapi/v1/integration.rb
|
110
111
|
- lib/dogapi/v1/metadata.rb
|
111
112
|
- lib/dogapi/v1/metric.rb
|
112
113
|
- lib/dogapi/v1/monitor.rb
|
@@ -125,6 +126,7 @@ files:
|
|
125
126
|
- spec/integration/dashboard_spec.rb
|
126
127
|
- spec/integration/embed_spec.rb
|
127
128
|
- spec/integration/event_spec.rb
|
129
|
+
- spec/integration/integration_spec.rb
|
128
130
|
- spec/integration/metadata_spec.rb
|
129
131
|
- spec/integration/metric_spec.rb
|
130
132
|
- spec/integration/monitor_spec.rb
|
@@ -180,6 +182,7 @@ test_files:
|
|
180
182
|
- spec/integration/dashboard_spec.rb
|
181
183
|
- spec/integration/embed_spec.rb
|
182
184
|
- spec/integration/event_spec.rb
|
185
|
+
- spec/integration/integration_spec.rb
|
183
186
|
- spec/integration/metadata_spec.rb
|
184
187
|
- spec/integration/metric_spec.rb
|
185
188
|
- spec/integration/monitor_spec.rb
|