mortar 0.15.33 → 0.15.34

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- M2EzNDc4OGVmZTc1MGE2MWI5MWQ2MjBmZTBmZjBiNzIwMWRiNGQ4Nw==
5
- data.tar.gz: !binary |-
6
- MWY2Yzk3MTkxNzk2MmM3MTg2NjZhODA4YTZmNWQ1Y2QwMTRkNWQyMQ==
2
+ SHA1:
3
+ metadata.gz: eb704f9777ead4b5d30e637fb29c2cd5a26c9db5
4
+ data.tar.gz: 9f9a43b74563afc9e65496e6e7c68d26c9f267db
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- Njg5ZTc0NTQxOTg0NTg2ZWJiZTJjNTg3Njg3OGI2NzU1ZDNjYzdiNTJjNjBi
10
- NzU2MTlhOTJmZWUyN2IyMDE3MzI2YjY5ZWJlNzdiZTU5ZDM4NmExNWNhYmVm
11
- MGZlODNhYzY4ZTNhYjFiOGRmOTUwMTAzM2NmOGYzNzdkMjQwMzU=
12
- data.tar.gz: !binary |-
13
- OTU4YmJiYWUxODhkYjliNDMwNzllNGU3Y2ExNGZjMTRjMzRkNDQ5MjAzNjkw
14
- ZWM2NzdiNjU4ZWRiZWE5OTJkMDRmYjM5MjkxNjczYjQwZWIwMWQ4NWU4NDdl
15
- ZTdhMGUwYTIzZDk5YzExNWU0MzExNmMzYTNlOGRiOTYzMmJmNzc=
6
+ metadata.gz: dcae6766059d62a1a003b63d1c7b8d79a8c1dcad06e6a4392584901fd164dc353484bf959be88098d57c64133664ed779d3f87caf3de185adc734563d45b3b18
7
+ data.tar.gz: 7f779a2568eccce1cf0fe5bb9679a8fbc38d2d13bdbbddce002d3a57657072e468ebe0f139ae258c49895777cfc76f0e6baf2c1d0df4a00c8c33c87460ce7f7f
data/lib/mortar/auth.rb CHANGED
@@ -316,7 +316,7 @@ class Mortar::Auth
316
316
 
317
317
  def default_params
318
318
  full_host = (host =~ /^http/) ? host : "https://api.#{host}"
319
- verify_ssl = ENV['MORTAR_SSL_VERIFY'] != 'disable' && full_host =~ %r|^https://api.mortardata.com|
319
+ verify_ssl = ENV['MORTAR_SSL_VERIFY'] != 'disable' && full_host =~ %r|^https://mdog.datadoghq.com|
320
320
  uri = URI(full_host)
321
321
  {
322
322
  :headers => {
@@ -6,29 +6,29 @@
6
6
  # and store the result in "luigiscripts/client.cfg". You should not check
7
7
  # "luigiscripts/client.cfg" into source control, as it will be generated
8
8
  # on each new run.
9
- #
10
- # In this file, you can reference any internal Mortar configuration variables
9
+ #
10
+ # In this file, you can reference any internal Mortar configuration variables
11
11
  # (e.g. MORTAR_EMAIL, AWS_ACCESS_KEY_ID), or any
12
12
  # project configuration variables you've set with "mortar config:set".
13
- #
13
+ #
14
14
  # Read more at https://help.mortardata.com/technologies/luigi/luigi_configuration
15
15
  #
16
16
 
17
17
 
18
- #
18
+ #
19
19
  # Mortar credentials to run jobs and query for
20
20
  # state from the Mortar API.
21
21
  #
22
22
  [mortar]
23
23
  email: ${MORTAR_EMAIL}
24
24
  api_key: ${MORTAR_API_KEY}
25
- host: api.mortardata.com
25
+ host: mdog.datadoghq.com
26
26
  project_name: ${MORTAR_PROJECT_NAME}
27
27
 
28
- #
28
+ #
29
29
  # AWS credentials to check for completed output
30
30
  # and store job completion tokens in S3 from Luigi.
31
31
  #
32
32
  [s3]
33
33
  aws_access_key_id: ${AWS_ACCESS_KEY_ID}
34
- aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}
34
+ aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}
@@ -16,5 +16,5 @@
16
16
 
17
17
  module Mortar
18
18
  # see http://semver.org/
19
- VERSION = "0.15.33"
19
+ VERSION = "0.15.34"
20
20
  end
@@ -46,7 +46,7 @@ module Mortar
46
46
  FileUtils.mkdir_p(@cli.netrc_path.split("/")[0..-2].join("/"))
47
47
 
48
48
  File.open(@cli.netrc_path, "w") do |file|
49
- file.puts("machine api.mortardata.com\n login user\n password pass\n")
49
+ file.puts("machine mdog.datadoghq.com\n login user\n password pass\n")
50
50
  end
51
51
  end
52
52
 
@@ -174,7 +174,7 @@ no_browser=true
174
174
  write_file(File.join(p.root_path, ".mortar-defaults"), text)
175
175
 
176
176
  describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
177
- describe_url = "https://api.mortardata.com/describe/#{describe_id}"
177
+ describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
178
178
 
179
179
  mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
180
180
  mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
@@ -202,7 +202,7 @@ no_browser=true
202
202
  write_file(File.join(p.root_path, ".mortar-defaults"), text)
203
203
 
204
204
  describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
205
- describe_url = "https://api.mortardata.com/describe/#{describe_id}"
205
+ describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
206
206
 
207
207
  mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
208
208
  mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
@@ -230,7 +230,7 @@ polling_interval=10
230
230
  write_file(File.join(p.root_path, ".mortar-defaults"), text)
231
231
 
232
232
  describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
233
- describe_url = "https://api.mortardata.com/describe/#{describe_id}"
233
+ describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
234
234
 
235
235
  mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.9", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
236
236
  mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
@@ -255,7 +255,7 @@ pigversion=0.12
255
255
  write_file(File.join(p.root_path, "project.properties"), text)
256
256
 
257
257
  describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
258
- describe_url = "https://api.mortardata.com/describe/#{describe_id}"
258
+ describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
259
259
 
260
260
  mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
261
261
  mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
@@ -95,7 +95,7 @@ STDERR
95
95
  with_git_initialized_project do |p|
96
96
  # stub api requests
97
97
  describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
98
- describe_url = "https://api.mortardata.com/describe/#{describe_id}"
98
+ describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
99
99
  parameters = ["name"=>"key", "value"=>"value" ]
100
100
 
101
101
  mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.9", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
@@ -116,7 +116,7 @@ Starting describe... done
116
116
 
117
117
  \r\e[0K[/] Calculating schema for my_alias and ancestors...\r\e[0K[-] Calculating schema for my_alias and ancestors...\r\e[0K[\\] Calculating schema for my_alias and ancestors...\r\e[0K[|] Calculating schema for my_alias and ancestors...
118
118
 
119
- Results available at https://api.mortardata.com/describe/c571a8c7f76a4fd4a67c103d753e2dd5
119
+ Results available at https://mdog.datadoghq.com/describe/c571a8c7f76a4fd4a67c103d753e2dd5
120
120
  Opening web browser to show results... done
121
121
  STDOUT
122
122
  end
@@ -126,7 +126,7 @@ STDOUT
126
126
  with_git_initialized_project do |p|
127
127
  # stub api requests
128
128
  describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
129
- describe_url = "https://api.mortardata.com/describe/#{describe_id}"
129
+ describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
130
130
  parameters = ["name"=>"key", "value"=>"value" ]
131
131
 
132
132
  mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.9", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
@@ -147,7 +147,7 @@ Starting describe... done
147
147
 
148
148
  \r\e[0K[/] Calculating schema for my_alias and ancestors...\r\e[0K[-] Calculating schema for my_alias and ancestors...\r\e[0K[\\] Calculating schema for my_alias and ancestors...\r\e[0K[|] Calculating schema for my_alias and ancestors...
149
149
 
150
- Results available at https://api.mortardata.com/describe/c571a8c7f76a4fd4a67c103d753e2dd5
150
+ Results available at https://mdog.datadoghq.com/describe/c571a8c7f76a4fd4a67c103d753e2dd5
151
151
  Opening web browser to show results... done
152
152
  STDOUT
153
153
  end
@@ -195,7 +195,7 @@ STDERR
195
195
  with_embedded_project do |p|
196
196
  # stub api requests
197
197
  describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
198
- describe_url = "https://api.mortardata.com/describe/#{describe_id}"
198
+ describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
199
199
  parameters = ["name"=>"key", "value"=>"value" ]
200
200
 
201
201
  mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.9", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
@@ -138,7 +138,7 @@ STDOUT
138
138
  with_git_initialized_project do |p|
139
139
  # stub api requests
140
140
  illustrate_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
141
- illustrate_url = "https://api.mortardata.com/illustrates/#{illustrate_id}"
141
+ illustrate_url = "https://mdog.datadoghq.com/illustrates/#{illustrate_id}"
142
142
  parameters = ["name"=>"key", "value"=>"value" ]
143
143
 
144
144
  # These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
@@ -155,7 +155,7 @@ Starting illustrate... done
155
155
 
156
156
  \r\e[0KStatus: Pending... /\r\e[0KStatus: Succeeded
157
157
 
158
- Results available at https://api.mortardata.com/illustrates/c571a8c7f76a4fd4a67c103d753e2dd5
158
+ Results available at https://mdog.datadoghq.com/illustrates/c571a8c7f76a4fd4a67c103d753e2dd5
159
159
  STDOUT
160
160
  end
161
161
  end
@@ -165,7 +165,7 @@ STDOUT
165
165
  with_git_initialized_project do |p|
166
166
  # stub api requests
167
167
  illustrate_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
168
- illustrate_url = "https://api.mortardata.com/illustrates/#{illustrate_id}"
168
+ illustrate_url = "https://mdog.datadoghq.com/illustrates/#{illustrate_id}"
169
169
  parameters = ["name"=>"key", "value"=>"value" ]
170
170
 
171
171
  # These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
@@ -182,7 +182,7 @@ Starting illustrate... done
182
182
 
183
183
  \r\e[0KStatus: Pending... /\r\e[0KStatus: Succeeded
184
184
 
185
- Results available at https://api.mortardata.com/illustrates/c571a8c7f76a4fd4a67c103d753e2dd5
185
+ Results available at https://mdog.datadoghq.com/illustrates/c571a8c7f76a4fd4a67c103d753e2dd5
186
186
  STDOUT
187
187
  end
188
188
  end
@@ -191,7 +191,7 @@ STDOUT
191
191
  with_git_initialized_project do |p|
192
192
  # stub api requests
193
193
  illustrate_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
194
- illustrate_url = "https://api.mortardata.com/illustrates/#{illustrate_id}"
194
+ illustrate_url = "https://mdog.datadoghq.com/illustrates/#{illustrate_id}"
195
195
  parameters = ["name"=>"key", "value"=>"value" ]
196
196
 
197
197
  # These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
@@ -215,7 +215,7 @@ Starting illustrate... done
215
215
 
216
216
  \r\e[0KStatus: Pending... /\r\e[0KStatus: GATEWAY_STARTING... -\r\e[0KStatus: In progress... \\\r\e[0KStatus: Reading data... |\r\e[0KStatus: Pruning data... /\r\e[0KStatus: Succeeded
217
217
 
218
- Results available at https://api.mortardata.com/illustrates/c571a8c7f76a4fd4a67c103d753e2dd5
218
+ Results available at https://mdog.datadoghq.com/illustrates/c571a8c7f76a4fd4a67c103d753e2dd5
219
219
  Opening web browser to show results... done
220
220
  STDOUT
221
221
  end
metadata CHANGED
@@ -1,195 +1,195 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mortar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.33
4
+ version: 0.15.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mortar Data
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-21 00:00:00.000000000 Z
11
+ date: 2015-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 4.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mortar-api-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.8.12
33
+ version: 0.8.13
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.8.12
40
+ version: 0.8.13
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: netrc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0.7'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.7'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: launchy
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: parseconfig
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 1.0.2
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.0.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: aws-sdk
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: nokogiri
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 1.5.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 1.5.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: excon
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0.28'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.28'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: fakefs
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 0.4.2
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.4.2
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: gem-release
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ! '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ~>
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: 10.1.1
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ~>
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 10.1.1
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rr
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ! '>='
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ! '>='
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: rspec
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ~>
185
+ - - "~>"
186
186
  - !ruby/object:Gem::Version
187
187
  version: '2.0'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ~>
192
+ - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: '2.0'
195
195
  description: Client library and command-line tool to interact with the Mortar service.
@@ -355,17 +355,17 @@ require_paths:
355
355
  - lib
356
356
  required_ruby_version: !ruby/object:Gem::Requirement
357
357
  requirements:
358
- - - ! '>='
358
+ - - ">="
359
359
  - !ruby/object:Gem::Version
360
360
  version: 1.8.7
361
361
  required_rubygems_version: !ruby/object:Gem::Requirement
362
362
  requirements:
363
- - - ! '>='
363
+ - - ">="
364
364
  - !ruby/object:Gem::Version
365
365
  version: '0'
366
366
  requirements: []
367
367
  rubyforge_project:
368
- rubygems_version: 2.2.2
368
+ rubygems_version: 2.4.6
369
369
  signing_key:
370
370
  specification_version: 4
371
371
  summary: Client library and CLI to interact with the Mortar service.