dogapi 1.37.1 → 1.38.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.
- checksums.yaml +4 -4
- data/.azure-pipelines/all.yml +9 -3
- data/.rubocop_todo.yml +35 -53
- data/CHANGELOG.md +13 -0
- data/Gemfile_1.9 +11 -0
- data/lib/dogapi/common.rb +26 -26
- data/lib/dogapi/facade.rb +114 -3
- data/lib/dogapi/v1.rb +4 -0
- data/lib/dogapi/v1/aws_integration.rb +113 -0
- data/lib/dogapi/v1/aws_logs.rb +103 -0
- data/lib/dogapi/v1/azure_integration.rb +81 -0
- data/lib/dogapi/v1/gcp_integration.rb +72 -0
- data/lib/dogapi/v1/monitor.rb +14 -5
- data/lib/dogapi/version.rb +1 -1
- data/spec/integration/aws_integration_spec.rb +51 -0
- data/spec/integration/aws_logs_spec.rb +55 -0
- data/spec/integration/azure_integration_spec.rb +59 -0
- data/spec/integration/gcp_integration_spec.rb +53 -0
- data/spec/integration/monitor_spec.rb +15 -1
- data/spec/spec_helper.rb +17 -0
- data/spec/unit/common_spec.rb +14 -7
- metadata +15 -2
data/lib/dogapi/v1.rb
CHANGED
@@ -17,3 +17,7 @@ require 'dogapi/v1/user'
|
|
17
17
|
require 'dogapi/v1/hosts'
|
18
18
|
require 'dogapi/v1/integration'
|
19
19
|
require 'dogapi/v1/usage'
|
20
|
+
require 'dogapi/v1/aws_integration'
|
21
|
+
require 'dogapi/v1/aws_logs'
|
22
|
+
require 'dogapi/v1/azure_integration'
|
23
|
+
require 'dogapi/v1/gcp_integration'
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
# AwsIntegrationService for user interaction with AWS configs.
|
7
|
+
class AwsIntegrationService < Dogapi::APIService
|
8
|
+
|
9
|
+
API_VERSION = 'v1'
|
10
|
+
|
11
|
+
# Retrieve AWS integration information
|
12
|
+
def aws_integration_list
|
13
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/integration/aws", nil, nil, false)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Create an AWS integration
|
17
|
+
# :config => Hash: integration config.
|
18
|
+
# config = {
|
19
|
+
# :account_id => '<AWS_ACCOUNT>',
|
20
|
+
# :host_tags => ['api:example'],
|
21
|
+
# :role_name => '<AWS_ROLE_NAME>'
|
22
|
+
# }
|
23
|
+
#
|
24
|
+
# Access Key/Secret Access Key based accounts (GovCloud and China only)
|
25
|
+
#
|
26
|
+
# config = {
|
27
|
+
# :access_key_id => '<AWS_ACCESS_KEY_ID>',
|
28
|
+
# :host_tags => ['api:example'],
|
29
|
+
# :secret_access_key => '<AWS_SECRET_ACCESS_KEY>'
|
30
|
+
# }
|
31
|
+
#
|
32
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
33
|
+
#
|
34
|
+
# puts dog.aws_integration_create(config)
|
35
|
+
def aws_integration_create(config)
|
36
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/aws", nil, config, true)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Delete an integration
|
40
|
+
# :config => Hash: integration config.
|
41
|
+
# config = {
|
42
|
+
# :account_id => '<AWS_ACCOUNT>',
|
43
|
+
# :role_name => '<AWS_ROLE_NAME>'
|
44
|
+
# }
|
45
|
+
# Access Key/Secret Access Key based accounts (GovCloud and China only)
|
46
|
+
#
|
47
|
+
# config = {
|
48
|
+
# :access_key_id => '<AWS_ACCESS_KEY_ID>',
|
49
|
+
# }
|
50
|
+
#
|
51
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
52
|
+
#
|
53
|
+
# puts dog.aws_integration_delete(config)
|
54
|
+
def aws_integration_delete(config)
|
55
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/integration/aws", nil, config, true)
|
56
|
+
end
|
57
|
+
|
58
|
+
# List available AWS namespaces
|
59
|
+
def aws_integration_list_namespaces
|
60
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/integration/aws/available_namespace_rules", nil, nil, false)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Generate new AWS external ID for a specific integrated account
|
64
|
+
# :config => Hash: integration config.
|
65
|
+
# config = {
|
66
|
+
# :account_id => '<AWS_ACCOUNT>',
|
67
|
+
# :role_name => '<AWS_ROLE_NAME>'
|
68
|
+
# }
|
69
|
+
#
|
70
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
71
|
+
#
|
72
|
+
# puts dog.aws_integration_generate_external_id(config)
|
73
|
+
def aws_integration_generate_external_id(config)
|
74
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/integration/aws/generate_new_external_id", nil, config, true)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Update integrated AWS account.
|
78
|
+
# :config => Hash: integration config.
|
79
|
+
# config = {
|
80
|
+
# "account_id": '<EXISTING_AWS_ACCOUNT>',
|
81
|
+
# "role_name": '<EXISTING_AWS_ROLE_NAME>'
|
82
|
+
# }
|
83
|
+
#
|
84
|
+
# new_config = {
|
85
|
+
# "account_id": '<NEW_AWS_ACCOUNT>',
|
86
|
+
# "host_tags": ['tag:example1,tag:example2'],
|
87
|
+
# "filter_tags": ['datadog:true']
|
88
|
+
# }
|
89
|
+
#
|
90
|
+
# Access Key/Secret Access Key based accounts (GovCloud and China only)
|
91
|
+
#
|
92
|
+
# config = {
|
93
|
+
# "access_key_id": '<EXISTING_ACCESS_KEY_ID>',
|
94
|
+
# "secret_access_key": '<EXISTING_SECRET_ACCESS_KEY>'
|
95
|
+
# }
|
96
|
+
#
|
97
|
+
# new_config = {
|
98
|
+
# "access_key_id": '<NEW_ACCESS_KEY_ID>',
|
99
|
+
# "host_tags": ['new:tags'],
|
100
|
+
# "filter_tags": ['datadog:true']
|
101
|
+
# }
|
102
|
+
#
|
103
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
104
|
+
|
105
|
+
# puts dog.aws_integration_update(config, new_config)
|
106
|
+
def aws_integration_update(config, new_config)
|
107
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/integration/aws", config, new_config, true)
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
# AwsLogsService for user interaction with AWS configs.
|
7
|
+
class AwsLogsService < Dogapi::APIService
|
8
|
+
|
9
|
+
API_VERSION = 'v1'
|
10
|
+
|
11
|
+
# Get the list of current AWS services for which Datadog offers automatic log collection.
|
12
|
+
# Use returned service IDs with the services parameter for the Enable
|
13
|
+
# an AWS service log collection API endpoint.
|
14
|
+
def aws_logs_list_services
|
15
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/integration/aws/logs/services", nil, nil, false)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Create an AWS integration
|
19
|
+
# :config => Hash: integration config.
|
20
|
+
# config = {
|
21
|
+
# :account_id => '<AWS_ACCOUNT>',
|
22
|
+
# :lambda_arn => '<LAMBDA_ARN>'
|
23
|
+
# }
|
24
|
+
#
|
25
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
26
|
+
#
|
27
|
+
# puts dog.aws_logs_add_lambda(config)
|
28
|
+
def aws_logs_add_lambda(config)
|
29
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/aws/logs", nil, config, true)
|
30
|
+
end
|
31
|
+
|
32
|
+
# List all Datadog-AWS Logs integrations configured in your Datadog account.
|
33
|
+
def aws_logs_integrations_list
|
34
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/integration/aws/logs", nil, nil, false)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Enable automatic log collection for a list of services.
|
38
|
+
# This should be run after running 'aws_logs_add_lambda' to save the config.
|
39
|
+
# config = {
|
40
|
+
# :account_id => '<AWS_ACCOUNT>',
|
41
|
+
# :services => ['s3', 'elb', 'elbv2', 'cloudfront', 'redshift', 'lambda']
|
42
|
+
# }
|
43
|
+
#
|
44
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
45
|
+
#
|
46
|
+
# puts dog.aws_logs_save_services(config)
|
47
|
+
def aws_logs_save_services(config)
|
48
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/aws/logs/services", nil, config, true)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Delete an AWS Logs integration
|
52
|
+
# :config => Hash: integration config.
|
53
|
+
# config = {
|
54
|
+
# :account_id => '<AWS_ACCOUNT>',
|
55
|
+
# :lambda_arn => '<LAMBDA_ARN>'
|
56
|
+
# }
|
57
|
+
#
|
58
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
59
|
+
#
|
60
|
+
# puts dog.aws_logs_integration_delete(config)
|
61
|
+
def aws_logs_integration_delete(config)
|
62
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/integration/aws/logs", nil, config, true)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Check function to see if a lambda_arn exists within an account.
|
66
|
+
# This sends a job on our side if it does not exist, then immediately returns
|
67
|
+
# the status of that job. Subsequent requests will always repeat the above, so this endpoint
|
68
|
+
# can be polled intermittently instead of blocking.
|
69
|
+
|
70
|
+
# Returns a status of 'created' when it's checking if the Lambda exists in the account.
|
71
|
+
# Returns a status of 'waiting' while checking.
|
72
|
+
# Returns a status of 'checked and ok' if the Lambda exists.
|
73
|
+
# Returns a status of 'error' if the Lambda does not exist.
|
74
|
+
|
75
|
+
# contents of config should be
|
76
|
+
# >>> :account_id => '<AWS_ACCOUNT_ID>'
|
77
|
+
# >>> :lambda_arn => '<AWS_LAMBDA_ARN>'
|
78
|
+
|
79
|
+
def aws_logs_check_lambda(config)
|
80
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/aws/logs/check_async", nil, config, true)
|
81
|
+
end
|
82
|
+
|
83
|
+
# Test if permissions are present to add log-forwarding triggers for the
|
84
|
+
# given services + AWS account. Input is the same as for save_services.
|
85
|
+
# Done async, so can be repeatedly polled in a non-blocking fashion until
|
86
|
+
# the async request completes
|
87
|
+
|
88
|
+
# Returns a status of 'created' when it's checking if the permissions exists in the AWS account.
|
89
|
+
# Returns a status of 'waiting' while checking.
|
90
|
+
# Returns a status of 'checked and ok' if the Lambda exists.
|
91
|
+
# Returns a status of 'error' if the Lambda does not exist.
|
92
|
+
|
93
|
+
# contents of config should be
|
94
|
+
# :account_id => '<AWS_ACCOUNT_ID>'
|
95
|
+
# :services => ['s3', 'elb', 'elbv2', 'cloudfront', 'redshift', 'lambda']
|
96
|
+
def aws_logs_check_services(config)
|
97
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/aws/logs/services_async", nil, config, true)
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
# AzureIntegrationService for user interaction with Azure configs.
|
7
|
+
class AzureIntegrationService < Dogapi::APIService
|
8
|
+
|
9
|
+
API_VERSION = 'v1'
|
10
|
+
|
11
|
+
# Retrieve Azure integration information
|
12
|
+
def azure_integration_list
|
13
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/integration/azure", nil, nil, false)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Delete an Azure integration
|
17
|
+
# :config => Hash: integration config.
|
18
|
+
# config = {
|
19
|
+
# :tenant_name => '<TENANT_NAME>',
|
20
|
+
# :client_id => '<CLIENT_ID>'
|
21
|
+
# }
|
22
|
+
#
|
23
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
24
|
+
#
|
25
|
+
# puts dog.azure_integration_delete(config)
|
26
|
+
def azure_integration_delete(config)
|
27
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/integration/azure", nil, config, true)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Create an Azure integration
|
31
|
+
# :config => Hash: integration config.
|
32
|
+
# config = {
|
33
|
+
# :tenant_name => '<TENANT_NAME>',
|
34
|
+
# :host_filters => 'new:filter',
|
35
|
+
# :client_id => '<CLIENT_ID>',
|
36
|
+
# :client_secret => '<CLIENT_SECRET>'
|
37
|
+
# }
|
38
|
+
#
|
39
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
40
|
+
#
|
41
|
+
# puts dog.azure_integration_create(config)
|
42
|
+
def azure_integration_create(config)
|
43
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/azure", nil, config, true)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Update an Azure integrations host filters
|
47
|
+
# :config => Hash: integration config.
|
48
|
+
# config = {
|
49
|
+
# :tenant_name => '<TENANT_NAME>',
|
50
|
+
# :host_filters => 'new:filter',
|
51
|
+
# :client_id => '<CLIENT_ID>'
|
52
|
+
# }
|
53
|
+
#
|
54
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
55
|
+
#
|
56
|
+
# puts dog.azure_integration_update_host_filters(config)
|
57
|
+
def azure_integration_update_host_filters(config)
|
58
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/azure/host_filters", nil, config, true)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Update a configured Azure account.
|
62
|
+
# :config => Hash: integration config.
|
63
|
+
# config = {
|
64
|
+
# :tenant_name => '<TENANT_NAME>',
|
65
|
+
# :new_tenant_name => '<NEW_TENANT_NAME>',
|
66
|
+
# :host_filters => '<KEY>:<VALUE>,<KEY>:<VALUE>',
|
67
|
+
# :client_id => '<CLIENT_ID>',
|
68
|
+
# :new_client_id => '<NEW_CLIENT_ID>'
|
69
|
+
# }
|
70
|
+
#
|
71
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
72
|
+
#
|
73
|
+
# puts dog.azure_integration_update(config)
|
74
|
+
def azure_integration_update(config)
|
75
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/integration/azure", nil, config, true)
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
# GcpIntegrationService for user interaction with gcp configs.
|
7
|
+
class GcpIntegrationService < Dogapi::APIService
|
8
|
+
|
9
|
+
API_VERSION = 'v1'
|
10
|
+
|
11
|
+
# Retrieve gcp integration information
|
12
|
+
def gcp_integration_list
|
13
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/integration/gcp", nil, nil, false)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Delete an gcp integration
|
17
|
+
# :config => Hash: integration config.
|
18
|
+
# config = {
|
19
|
+
# :project_id => 'datadog-sandbox',
|
20
|
+
# :client_email => 'email@example.com'
|
21
|
+
# }
|
22
|
+
#
|
23
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
24
|
+
#
|
25
|
+
# puts dog.gcp_integration_delete(config)
|
26
|
+
def gcp_integration_delete(config)
|
27
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/integration/gcp", nil, config, true)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Create an gcp integration
|
31
|
+
# :config => Hash: integration config.
|
32
|
+
# config = {
|
33
|
+
# :type => 'service_account',
|
34
|
+
# :project_id => '<PROJECT_ID>',
|
35
|
+
# :private_key_id => '<PRIVATE_KEY_ID>',
|
36
|
+
# :private_key => '<PRIVATE_KEY>',
|
37
|
+
# :client_email => '<CLIENT_EMAIL>',
|
38
|
+
# :client_id => '<CLIENT_ID>',
|
39
|
+
# :auth_uri => '<AUTH_URI>',
|
40
|
+
# :token_uri => '<TOKEN_URI>',
|
41
|
+
# :auth_provider_x509_cert_url => '<AUTH_PROVIDER_X509_CERT_URL>',
|
42
|
+
# :client_x509_cert_url => '<CLIENT_X509_CERT_URL>',
|
43
|
+
# :host_filters => '<KEY>:<VALUE>,<KEY>:<VALUE>,'
|
44
|
+
# }
|
45
|
+
#
|
46
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
47
|
+
#
|
48
|
+
# puts dog.gcp_integration_create(config)
|
49
|
+
def gcp_integration_create(config)
|
50
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/integration/gcp", nil, config, true)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Update a configured gcp account.
|
54
|
+
# :config => Hash: integration config.
|
55
|
+
# config = {
|
56
|
+
# :project_id => '<PROJECT_ID>',
|
57
|
+
# :client_email => '<CLIENT_EMAIL>',
|
58
|
+
# :host_filters => '<KEY>:<VALUE>,<KEY>:<VALUE>,'
|
59
|
+
# :automute => true # takes a boolean and toggles GCE automuting
|
60
|
+
# }
|
61
|
+
#
|
62
|
+
# dog = Dogapi::Client.new(api_key, app_key)
|
63
|
+
#
|
64
|
+
# puts dog.gcp_integration_update(config)
|
65
|
+
def gcp_integration_update(config)
|
66
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/integration/gcp", nil, config, true)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
data/lib/dogapi/v1/monitor.rb
CHANGED
@@ -2,9 +2,7 @@ require 'dogapi'
|
|
2
2
|
|
3
3
|
module Dogapi
|
4
4
|
class V1 # for namespacing
|
5
|
-
|
6
5
|
class MonitorService < Dogapi::APIService
|
7
|
-
|
8
6
|
API_VERSION = 'v1'
|
9
7
|
|
10
8
|
def monitor(type, query, options = {})
|
@@ -42,6 +40,17 @@ module Dogapi
|
|
42
40
|
request(Net::HTTP::Get, "/api/#{API_VERSION}/monitor/#{monitor_id}", extra_params, nil, false)
|
43
41
|
end
|
44
42
|
|
43
|
+
def can_delete_monitors(monitor_ids)
|
44
|
+
extra_params =
|
45
|
+
if monitor_ids.respond_to?(:join)
|
46
|
+
{ "monitor_ids" => monitor_ids.join(",") }
|
47
|
+
else
|
48
|
+
{ "monitor_ids" => monitor_ids }
|
49
|
+
end
|
50
|
+
|
51
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/monitor/can_delete", extra_params, nil, false)
|
52
|
+
end
|
53
|
+
|
45
54
|
def delete_monitor(monitor_id)
|
46
55
|
request(Net::HTTP::Delete, "/api/#{API_VERSION}/monitor/#{monitor_id}", nil, nil, false)
|
47
56
|
end
|
@@ -122,8 +131,8 @@ module Dogapi
|
|
122
131
|
request(Net::HTTP::Put, "/api/#{API_VERSION}/downtime/#{downtime_id}", nil, options, true)
|
123
132
|
end
|
124
133
|
|
125
|
-
def get_downtime(downtime_id)
|
126
|
-
request(Net::HTTP::Get, "/api/#{API_VERSION}/downtime/#{downtime_id}",
|
134
|
+
def get_downtime(downtime_id, options = {})
|
135
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/downtime/#{downtime_id}", options, nil, false)
|
127
136
|
end
|
128
137
|
|
129
138
|
def cancel_downtime(downtime_id)
|
@@ -131,7 +140,7 @@ module Dogapi
|
|
131
140
|
end
|
132
141
|
|
133
142
|
def cancel_downtime_by_scope(scope)
|
134
|
-
request(Net::HTTP::Post, "/api/#{API_VERSION}/downtime/cancel/by_scope", nil, { 'scope' => scope },
|
143
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/downtime/cancel/by_scope", nil, { 'scope' => scope }, true)
|
135
144
|
end
|
136
145
|
|
137
146
|
def get_all_downtimes(options = {})
|
data/lib/dogapi/version.rb
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe Dogapi::Client do
|
4
|
+
CONFIG = {
|
5
|
+
account_id: '123456789101',
|
6
|
+
role_name: 'DatadogApiTestRole'
|
7
|
+
}.freeze
|
8
|
+
|
9
|
+
UPDATE_CONFIG = {
|
10
|
+
account_id: '123456789102',
|
11
|
+
filter_tags: ['datadog:true'],
|
12
|
+
host_tags: ['api:test'],
|
13
|
+
role_name: 'DatadogApiTestRole'
|
14
|
+
}.freeze
|
15
|
+
|
16
|
+
describe '#aws_integration_create' do
|
17
|
+
it_behaves_like 'an api method',
|
18
|
+
:aws_integration_create, [CONFIG],
|
19
|
+
:post, '/integration/aws', CONFIG
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#aws_integration_list' do
|
23
|
+
it_behaves_like 'an api method',
|
24
|
+
:aws_integration_list, nil,
|
25
|
+
:get, '/integration/aws'
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#aws_integration_list_namespaces' do
|
29
|
+
it_behaves_like 'an api method',
|
30
|
+
:aws_integration_list_namespaces, nil,
|
31
|
+
:get, '/integration/aws/available_namespace_rules'
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#aws_integration_generate_external_id' do
|
35
|
+
it_behaves_like 'an api method',
|
36
|
+
:aws_integration_generate_external_id, [CONFIG],
|
37
|
+
:put, '/integration/aws/generate_new_external_id', CONFIG
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#aws_integration_update' do
|
41
|
+
it_behaves_like 'an api method with params and body',
|
42
|
+
:aws_integration_update, [CONFIG, UPDATE_CONFIG],
|
43
|
+
:put, '/integration/aws', CONFIG, UPDATE_CONFIG
|
44
|
+
end
|
45
|
+
|
46
|
+
describe '#aws_integration_delete' do
|
47
|
+
it_behaves_like 'an api method',
|
48
|
+
:aws_integration_delete, [CONFIG],
|
49
|
+
:delete, '/integration/aws', CONFIG
|
50
|
+
end
|
51
|
+
end
|