azure-loganalytics-datacollector-api 0.1.2 → 0.3.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 +5 -5
- data/.gitignore +2 -0
- data/ChangeLog.md +15 -0
- data/README.md +134 -3
- data/SampleCodes.md +12 -0
- data/azure-loganalytics-datacollector-api.gemspec +2 -3
- data/lib/azure/loganalytics/datacollectorapi/client.rb +18 -7
- data/lib/azure/loganalytics/datacollectorapi/version.rb +1 -1
- data/spec/azure/loganalytics/datacollectorapi/client_spec.rb +84 -28
- metadata +9 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8452aaabdb1e4cadea593892598d3618d72d4dc268b73612a8072b98bb144a29
|
4
|
+
data.tar.gz: c095ecb8502f5afcc742e1cfa7da6c5b4d4f59522dab871323761a45ba6f4af3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 710358fb3591f079e96ba0c4e26ba020ee5573dc3c27553883efa80dd62943a3dcde86c7e0dbb1d0ee5d1a20bdf28ea554be8fd2a7df64423088189492f07501
|
7
|
+
data.tar.gz: 523e5be5872c7450e8518835cf18e674043e5578e1b95588ea74070af40dce53418aaa455badeb2b156af9223e97228172bbb3af4e3ec8f4ea9ee2bef411eafd
|
data/.gitignore
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
## 0.3.0
|
2
|
+
* Enhance log type validation: check not only alpha but also numeric, underscore, and character length (may not exceed 100) - [issue #11](https://github.com/yokawasa/azure-log-analytics-data-collector/issues/11)
|
3
|
+
|
4
|
+
## 0.2.0
|
5
|
+
* Support setting the x-ms-AzureResourceId Header - [issue #8](https://github.com/yokawasa/azure-log-analytics-data-collector/issues/8)
|
6
|
+
|
7
|
+
## 0.1.6
|
8
|
+
* fix CVE-2020-8130 - [issue #7](https://github.com/yokawasa/azure-log-analytics-data-collector/issues/7)
|
9
|
+
|
10
|
+
## 0.1.5
|
11
|
+
* Add endpoint parameter with the default value for Azure public - [PR#5](https://github.com/yokawasa/azure-log-analytics-data-collector/pull/5)
|
12
|
+
|
13
|
+
## 0.1.4
|
14
|
+
* Add `set_proxy` method to client - [issue#3](https://github.com/yokawasa/azure-log-analytics-data-collector/issues/3)
|
15
|
+
|
1
16
|
## 0.1.2
|
2
17
|
* fixedup bug - [issue #1](https://github.com/yokawasa/azure-log-analytics-data-collector/issues/1)
|
3
18
|
|
data/README.md
CHANGED
@@ -1,11 +1,143 @@
|
|
1
1
|
# azure-log-analytics-data-collector Ruby Client
|
2
|
-
|
2
|
+
|
3
|
+
[Azure Log Analytics Data Collector API](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api) Client Libraries for Ruby. The repository was originally created for multiple programming languages, but it was refactored as a dedicated one for Ruby client. Python and PHP client libraries were moved to [azure-log-analytics-data-colloector-python](https://github.com/yokawasa/azure-log-analytics-data-collector-python) and [azure-log-analytics-data-colloector-php](https://github.com/yokawasa/azure-log-analytics-data-collector-php) respectively.
|
4
|
+
|
3
5
|
|
4
6
|
## Installation
|
5
|
-
```
|
7
|
+
```bash
|
6
8
|
gem install azure-loganalytics-datacollector-api
|
7
9
|
```
|
8
10
|
|
11
|
+
## Sample code (Ruby Client)
|
12
|
+
### Sample1 - No time_generated_field option
|
13
|
+
```ruby
|
14
|
+
require "azure/loganalytics/datacollectorapi/client"
|
15
|
+
|
16
|
+
customer_id = '<Customer ID aka WorkspaceID String>'
|
17
|
+
shared_key = '<The primary or the secondary Connected Sources client authentication key>'
|
18
|
+
log_type = "MyCustomLog"
|
19
|
+
|
20
|
+
posting_records = []
|
21
|
+
record1= {
|
22
|
+
:string => "MyText1",
|
23
|
+
:boolean => true,
|
24
|
+
:number => 100
|
25
|
+
}
|
26
|
+
record2= {
|
27
|
+
:string => "MyText2",
|
28
|
+
:boolean => false,
|
29
|
+
:number => 200
|
30
|
+
}
|
31
|
+
posting_records.push(record1)
|
32
|
+
posting_records.push(record2)
|
33
|
+
|
34
|
+
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
|
35
|
+
res = client.post_data(log_type, posting_records)
|
36
|
+
puts res
|
37
|
+
puts "res code=#{res.code}"
|
38
|
+
|
39
|
+
if Azure::Loganalytics::Datacollectorapi::Client.is_success(res)
|
40
|
+
puts "operation was succeeded!"
|
41
|
+
else
|
42
|
+
puts "operation was failured!"
|
43
|
+
end
|
44
|
+
```
|
45
|
+
|
46
|
+
### Sample2 - With time_generated_field option
|
47
|
+
```ruby
|
48
|
+
require "azure/loganalytics/datacollectorapi/client"
|
49
|
+
|
50
|
+
customer_id = '<Customer ID aka WorkspaceID String>'
|
51
|
+
shared_key = '<The primary or the secondary Connected Sources client authentication key>'
|
52
|
+
log_type = "MyCustomLog"
|
53
|
+
|
54
|
+
posting_records = []
|
55
|
+
record1= {
|
56
|
+
:string => "MyText1",
|
57
|
+
:boolean => true,
|
58
|
+
:number => 100,
|
59
|
+
:timegen => "2017-11-23T11:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
|
60
|
+
}
|
61
|
+
record2= {
|
62
|
+
:string => "MyText2",
|
63
|
+
:boolean => false,
|
64
|
+
:number => 200,
|
65
|
+
:timegen => "2017-11-23T12:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
|
66
|
+
}
|
67
|
+
posting_records.push(record1)
|
68
|
+
posting_records.push(record2)
|
69
|
+
|
70
|
+
time_generated_field = "timegen"
|
71
|
+
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
|
72
|
+
res = client.post_data(log_type, posting_records, time_generated_field)
|
73
|
+
puts res
|
74
|
+
puts "res code=#{res.code}"
|
75
|
+
|
76
|
+
if Azure::Loganalytics::Datacollectorapi::Client.is_success(res)
|
77
|
+
puts "operation was succeeded!"
|
78
|
+
else
|
79
|
+
puts "operation was failured!"
|
80
|
+
end
|
81
|
+
```
|
82
|
+
|
83
|
+
### Sample3 - With time_generated_field and azure_resource_id option
|
84
|
+
Supported setting azure_resource_id option from version [0.2.0](https://github.com/yokawasa/azure-log-analytics-data-collector/releases/tag/v0.2.0)
|
85
|
+
```ruby
|
86
|
+
require "azure/loganalytics/datacollectorapi/client"
|
87
|
+
|
88
|
+
customer_id = '<Customer ID aka WorkspaceID String>'
|
89
|
+
shared_key = '<The primary or the secondary Connected Sources client authentication key>'
|
90
|
+
log_type = "MyCustomLog"
|
91
|
+
|
92
|
+
posting_records = []
|
93
|
+
record1= {
|
94
|
+
:string => "MyText1",
|
95
|
+
:boolean => true,
|
96
|
+
:number => 100,
|
97
|
+
:timegen => "2017-11-23T11:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
|
98
|
+
}
|
99
|
+
record2= {
|
100
|
+
:string => "MyText2",
|
101
|
+
:boolean => false,
|
102
|
+
:number => 200,
|
103
|
+
:timegen => "2017-11-23T12:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
|
104
|
+
}
|
105
|
+
posting_records.push(record1)
|
106
|
+
posting_records.push(record2)
|
107
|
+
|
108
|
+
time_generated_field = "timegen"
|
109
|
+
|
110
|
+
# Azure Resource ID
|
111
|
+
# [Azure Resource ID Format]
|
112
|
+
# /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
|
113
|
+
azure_resource_id ="/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage"
|
114
|
+
|
115
|
+
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
|
116
|
+
res = client.post_data(log_type, posting_records, time_generated_field, azure_resource_id)
|
117
|
+
puts res
|
118
|
+
puts "res code=#{res.code}"
|
119
|
+
|
120
|
+
if Azure::Loganalytics::Datacollectorapi::Client.is_success(res)
|
121
|
+
puts "operation was succeeded!"
|
122
|
+
else
|
123
|
+
puts "operation was failured!"
|
124
|
+
end
|
125
|
+
```
|
126
|
+
|
127
|
+
### Sample4 - use proxy to access the API
|
128
|
+
```ruby
|
129
|
+
require "azure/loganalytics/datacollectorapi/client"
|
130
|
+
|
131
|
+
...
|
132
|
+
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
|
133
|
+
# client.set_proxy() # ENV['http_proxy'] is set by default
|
134
|
+
client.set_proxy(your_proxy)
|
135
|
+
res = client.post_data(log_type, posting_records, time_generated_field)
|
136
|
+
puts res
|
137
|
+
...
|
138
|
+
```
|
139
|
+
|
140
|
+
|
9
141
|
## Change log
|
10
142
|
|
11
143
|
* [Changelog](ChangeLog.md)
|
@@ -28,4 +160,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/yokawa
|
|
28
160
|
## License
|
29
161
|
|
30
162
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
31
|
-
|
data/SampleCodes.md
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# Sample codes for azure-log-analytics-data-collector
|
2
|
+
[Azure Log Analytics HTTP Data Collecotr API](https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-data-collector-api) Client libraries
|
3
|
+
|
4
|
+
## Client libraries and Sample code
|
5
|
+
|
6
|
+
| Language | Source Code | Project URL |
|
7
|
+
| ------------- | ------------- |------------- |
|
8
|
+
| Ruby | This repository | [Rubygem Package](https://rubygems.org/gems/azure-loganalytics-datacollector-api) |
|
9
|
+
| Python | [Source code](https://github.com/yokawasa/azure-log-analytics-data-collector-python) | [Python Package](https://pypi.python.org/pypi/azure-log-analytics-data-collector-api) |
|
10
|
+
| PHP | [Source code](https://github.com/yokawasa/azure-log-analytics-data-collector-php) | NONE |
|
11
|
+
| CSharp | [Sample Code](https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-data-collector-api#sample-requests) | NONE |
|
12
|
+
| PowerShell | [Sample Code](https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-data-collector-api#sample-requests) | NONE |
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "azure-loganalytics-datacollector-api"
|
8
8
|
spec.version = Azure::Loganalytics::Datacollectorapi::VERSION
|
9
9
|
spec.authors = ["Yoichi Kawasaki"]
|
10
|
-
spec.email = ["
|
10
|
+
spec.email = ["yokawasa@gmail.com"]
|
11
11
|
spec.summary = %q{Azure Log Analytics Data Collector API Ruby Client}
|
12
12
|
spec.description = spec.summary
|
13
13
|
spec.homepage = "https://github.com/yokawasa/azure-log-analytics-data-collector"
|
@@ -20,7 +20,6 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
22
|
spec.add_dependency "rest-client"
|
23
|
-
spec.add_development_dependency "
|
24
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
25
24
|
spec.add_development_dependency "rspec", "~> 3.0"
|
26
25
|
end
|
@@ -8,7 +8,7 @@ module Azure
|
|
8
8
|
|
9
9
|
class Client
|
10
10
|
|
11
|
-
def initialize (customer_id, shared_key)
|
11
|
+
def initialize (customer_id, shared_key, endpoint ='ods.opinsights.azure.com')
|
12
12
|
require 'rest-client'
|
13
13
|
require 'json'
|
14
14
|
require 'openssl'
|
@@ -17,15 +17,17 @@ module Azure
|
|
17
17
|
|
18
18
|
@customer_id = customer_id
|
19
19
|
@shared_key = shared_key
|
20
|
+
@endpoint = endpoint
|
21
|
+
@default_azure_resource_id = ''
|
20
22
|
end
|
21
23
|
|
22
|
-
def post_data(log_type, json_records, record_timestamp ='')
|
24
|
+
def post_data(log_type, json_records, record_timestamp ='', azure_resource_id ='' )
|
23
25
|
raise ConfigError, 'no log_type' if log_type.empty?
|
24
|
-
raise ConfigError, 'log_type must
|
26
|
+
raise ConfigError, 'log_type must only contain alpha numeric and _, and not exceed 100 chars' if not is_valid_log_type(log_type)
|
25
27
|
raise ConfigError, 'no json_records' if json_records.empty?
|
26
28
|
body = json_records.to_json
|
27
|
-
uri = sprintf("https://%s
|
28
|
-
@customer_id, API_VERSION)
|
29
|
+
uri = sprintf("https://%s.%s/api/logs?api-version=%s",
|
30
|
+
@customer_id, @endpoint, API_VERSION)
|
29
31
|
date = rfc1123date()
|
30
32
|
sig = signature(date, body.bytesize)
|
31
33
|
|
@@ -34,6 +36,7 @@ module Azure
|
|
34
36
|
'Authorization' => sig,
|
35
37
|
'Log-Type' => log_type,
|
36
38
|
'x-ms-date' => date,
|
39
|
+
'x-ms-AzureResourceId' => azure_resource_id.empty? ? @default_azure_resource_id : azure_resource_id,
|
37
40
|
'time-generated-field' => record_timestamp
|
38
41
|
}
|
39
42
|
|
@@ -41,14 +44,22 @@ module Azure
|
|
41
44
|
res
|
42
45
|
end
|
43
46
|
|
47
|
+
def set_proxy(proxy='')
|
48
|
+
RestClient.proxy = proxy.empty? ? ENV['http_proxy'] : proxy
|
49
|
+
end
|
50
|
+
|
51
|
+
def set_default_azure_resoruce_id(azure_resource_id)
|
52
|
+
@default_azure_resource_id = azure_resource_id
|
53
|
+
end
|
54
|
+
|
44
55
|
def self.is_success(res)
|
45
56
|
return (res.code == 200) ? true : false
|
46
57
|
end
|
47
58
|
|
48
59
|
private
|
49
60
|
|
50
|
-
def
|
51
|
-
return (s.match(/^[
|
61
|
+
def is_valid_log_type(s)
|
62
|
+
return ( s.match(/^[a-zA-Z0-9_]+$/) && s.length <= 100 ) ? true : false
|
52
63
|
end
|
53
64
|
|
54
65
|
def rfc1123date()
|
@@ -5,39 +5,46 @@ describe Azure::Loganalytics::Datacollectorapi::Client do
|
|
5
5
|
expect(Azure::Loganalytics::Datacollectorapi::VERSION).not_to be nil
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
customer_id = '<Customer ID aka WorkspaceID String>'
|
9
|
+
shared_key = '<Primary Key String>'
|
10
|
+
log_type = "MyCustomLog"
|
11
11
|
|
12
|
-
it "
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
it "log type validation" do
|
13
|
+
json_records = []
|
14
|
+
dummy= {
|
15
|
+
:string => "dummy title",
|
16
|
+
:number => 10
|
17
|
+
}
|
18
|
+
valid_log_type = "abcedefghijklmnopqrstuvwxyz1234567890_"
|
19
|
+
invalid_log_type1 = "*-|[]//"
|
20
|
+
invalid_log_type2 = "abcde__xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
21
|
+
json_records.push(dummy)
|
22
|
+
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
|
16
23
|
|
24
|
+
res = client.post_data(valid_log_type, json_records)
|
25
|
+
expect(Azure::Loganalytics::Datacollectorapi::Client.is_success(res)).to eq(true)
|
26
|
+
|
27
|
+
expect{
|
28
|
+
client.post_data(invalid_log_type1, json_records)
|
29
|
+
}.to raise_error(Exception)
|
30
|
+
|
31
|
+
expect{
|
32
|
+
client.post_data(invalid_log_type2, json_records)
|
33
|
+
}.to raise_error(Exception)
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
it "posting data to datacollector api" do
|
17
38
|
json_records = []
|
18
39
|
record1= {
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:remote => "101.202.74.59",
|
23
|
-
:user => "-",
|
24
|
-
:method => "GET / HTTP/1.1",
|
25
|
-
:status => "304",
|
26
|
-
:size => "-",
|
27
|
-
:referer => "-",
|
28
|
-
:agent => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:27.0) Gecko/20100101 Firefox/27.0"
|
40
|
+
:string => "MyText1",
|
41
|
+
:boolean => true,
|
42
|
+
:number => 100
|
29
43
|
}
|
30
|
-
record2
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:remote => "201.78.74.59",
|
35
|
-
:user => "-",
|
36
|
-
:method => "GET /manager/html HTTP/1.1",
|
37
|
-
:status =>"200",
|
38
|
-
:size => "-",
|
39
|
-
:referer => "-",
|
40
|
-
:agent => "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"
|
44
|
+
record2= {
|
45
|
+
:string => "MyText2",
|
46
|
+
:boolean => false,
|
47
|
+
:number => 200
|
41
48
|
}
|
42
49
|
json_records.push(record1)
|
43
50
|
json_records.push(record2)
|
@@ -47,4 +54,53 @@ describe Azure::Loganalytics::Datacollectorapi::Client do
|
|
47
54
|
expect(Azure::Loganalytics::Datacollectorapi::Client.is_success(res)).to eq(true)
|
48
55
|
end
|
49
56
|
|
57
|
+
it "posting data to datacollector api with time-generated-field" do
|
58
|
+
json_records = []
|
59
|
+
record1= {
|
60
|
+
:string => "MyText1",
|
61
|
+
:boolean => true,
|
62
|
+
:number => 100,
|
63
|
+
:timegen => "2020-05-05T11:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
|
64
|
+
}
|
65
|
+
record2= {
|
66
|
+
:string => "MyText2",
|
67
|
+
:boolean => false,
|
68
|
+
:number => 200,
|
69
|
+
:timegen => "2020-05-05T12:13:35.576Z" # YYYY-MM-DDThh:mm:ssZ
|
70
|
+
}
|
71
|
+
json_records.push(record1)
|
72
|
+
json_records.push(record2)
|
73
|
+
|
74
|
+
time_generated_field = "timegen"
|
75
|
+
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
|
76
|
+
res = client.post_data(log_type, json_records, time_generated_field)
|
77
|
+
expect(Azure::Loganalytics::Datacollectorapi::Client.is_success(res)).to eq(true)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "posting data to datacollector api with azure-resource-id" do
|
81
|
+
json_records = []
|
82
|
+
record1= {
|
83
|
+
:string => "MyText1",
|
84
|
+
:boolean => true,
|
85
|
+
:number => 100
|
86
|
+
}
|
87
|
+
record2= {
|
88
|
+
:string => "MyText2",
|
89
|
+
:boolean => false,
|
90
|
+
:number => 200
|
91
|
+
}
|
92
|
+
json_records.push(record1)
|
93
|
+
json_records.push(record2)
|
94
|
+
|
95
|
+
time_generated_field = ""
|
96
|
+
# Azure Resource ID
|
97
|
+
# https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource#resourceid
|
98
|
+
# /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
|
99
|
+
azure_resource_id ="/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft.Storage/storageAccounts/examplestorage"
|
100
|
+
|
101
|
+
client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
|
102
|
+
res = client.post_data(log_type, json_records, time_generated_field, azure_resource_id)
|
103
|
+
expect(Azure::Loganalytics::Datacollectorapi::Client.is_success(res)).to eq(true)
|
104
|
+
end
|
105
|
+
|
50
106
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: azure-loganalytics-datacollector-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yoichi Kawasaki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -24,34 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: bundler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.13'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.13'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: rake
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
|
-
- - "
|
31
|
+
- - ">="
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
33
|
+
version: 12.3.3
|
48
34
|
type: :development
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
|
-
- - "
|
38
|
+
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
40
|
+
version: 12.3.3
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: rspec
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,7 +54,7 @@ dependencies:
|
|
68
54
|
version: '3.0'
|
69
55
|
description: Azure Log Analytics Data Collector API Ruby Client
|
70
56
|
email:
|
71
|
-
-
|
57
|
+
- yokawasa@gmail.com
|
72
58
|
executables:
|
73
59
|
- console
|
74
60
|
- setup
|
@@ -82,6 +68,7 @@ files:
|
|
82
68
|
- LICENSE.txt
|
83
69
|
- README.md
|
84
70
|
- Rakefile
|
71
|
+
- SampleCodes.md
|
85
72
|
- azure-loganalytics-datacollector-api.gemspec
|
86
73
|
- bin/console
|
87
74
|
- bin/setup
|
@@ -108,8 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
requirements: []
|
111
|
-
|
112
|
-
rubygems_version: 2.6.2
|
98
|
+
rubygems_version: 3.1.3
|
113
99
|
signing_key:
|
114
100
|
specification_version: 4
|
115
101
|
summary: Azure Log Analytics Data Collector API Ruby Client
|