heroku-api 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/changelog.txt +6 -0
- data/lib/heroku/api.rb +3 -1
- data/lib/heroku/api/mock.rb +0 -12
- data/lib/heroku/api/mock/addons.rb +13 -13
- data/lib/heroku/api/mock/apps.rb +8 -8
- data/lib/heroku/api/mock/cache/get_addons.json +1 -1
- data/lib/heroku/api/mock/collaborators.rb +4 -4
- data/lib/heroku/api/mock/config_vars.rb +3 -3
- data/lib/heroku/api/mock/domains.rb +3 -3
- data/lib/heroku/api/mock/keys.rb +1 -1
- data/lib/heroku/api/mock/logs.rb +1 -1
- data/lib/heroku/api/mock/processes.rb +12 -12
- data/lib/heroku/api/mock/releases.rb +9 -9
- data/lib/heroku/api/mock/stacks.rb +4 -4
- data/lib/heroku/api/mock/user.rb +1 -1
- data/lib/heroku/api/version.rb +1 -1
- data/test/test_addons.rb +1 -1
- metadata +8 -8
data/Rakefile
CHANGED
@@ -16,7 +16,7 @@ task :cache, [:api_key] do |task, args|
|
|
16
16
|
require "#{File.dirname(__FILE__)}/lib/heroku/api"
|
17
17
|
heroku = Heroku::API.new(:api_key => args.api_key)
|
18
18
|
data = Heroku::API::OkJson.encode(heroku.get_addons.body)
|
19
|
-
File.open("#{File.dirname(__FILE__)}/lib/heroku/
|
19
|
+
File.open("#{File.dirname(__FILE__)}/lib/heroku/api/mock/cache/get_addons.json", 'w') do |file|
|
20
20
|
file.write(data)
|
21
21
|
end
|
22
22
|
end
|
data/changelog.txt
CHANGED
data/lib/heroku/api.rb
CHANGED
@@ -68,7 +68,9 @@ module Heroku
|
|
68
68
|
end
|
69
69
|
|
70
70
|
if response.body && !response.body.empty?
|
71
|
-
response.
|
71
|
+
if response.headers['Content-Encoding'] == 'gzip'
|
72
|
+
response.body = Zlib::GzipReader.new(StringIO.new(response.body)).read
|
73
|
+
end
|
72
74
|
begin
|
73
75
|
response.body = Heroku::API::OkJson.decode(response.body)
|
74
76
|
rescue
|
data/lib/heroku/api/mock.rb
CHANGED
@@ -122,18 +122,6 @@ module Heroku
|
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
|
-
def self.gzip(string)
|
126
|
-
io = StringIO.new
|
127
|
-
gzip = Zlib::GzipWriter.new(io)
|
128
|
-
gzip.write(string)
|
129
|
-
gzip.close
|
130
|
-
io.string
|
131
|
-
end
|
132
|
-
|
133
|
-
def self.json_gzip(string)
|
134
|
-
gzip(Heroku::API::OkJson.encode(string))
|
135
|
-
end
|
136
|
-
|
137
125
|
def self.parse_stub_params(params)
|
138
126
|
api_key = Base64.decode64(params[:headers]['Authorization']).split(':').last
|
139
127
|
|
@@ -14,7 +14,7 @@ module Heroku
|
|
14
14
|
# addon is currently installed
|
15
15
|
remove_mock_app_addon(mock_data, app, addon)
|
16
16
|
{
|
17
|
-
:body => Heroku::API::
|
17
|
+
:body => Heroku::API::OkJson.encode({
|
18
18
|
"message" => nil,
|
19
19
|
"price" => get_mock_addon_price(mock_data, addon),
|
20
20
|
"status" => 'Uninstalled'
|
@@ -24,14 +24,14 @@ module Heroku
|
|
24
24
|
else
|
25
25
|
# addon is not currently installed
|
26
26
|
{
|
27
|
-
:body => Heroku::API::
|
27
|
+
:body => Heroku::API::OkJson.encode({'error' => "The add-on #{addon} is not installed for this app. Did you mean:\n\t#{addon_names.join("\n\t")}"}),
|
28
28
|
:status => 422
|
29
29
|
}
|
30
30
|
end
|
31
31
|
else
|
32
32
|
# addon does not exist
|
33
33
|
{
|
34
|
-
:body => Heroku::API::
|
34
|
+
:body => Heroku::API::OkJson.encode({'error' => "Could not find add-on #{addon}. Did you mean:\n\t#{addon_names.join("\n\t")}"}),
|
35
35
|
:status => 422
|
36
36
|
}
|
37
37
|
end
|
@@ -42,7 +42,7 @@ module Heroku
|
|
42
42
|
Excon.stub(:expects => 200, :method => :get, :path => "/addons") do |params|
|
43
43
|
request_params, mock_data = parse_stub_params(params)
|
44
44
|
{
|
45
|
-
:body =>
|
45
|
+
:body => File.read("#{File.dirname(__FILE__)}/cache/get_addons.json"),
|
46
46
|
:status => 200
|
47
47
|
}
|
48
48
|
end
|
@@ -53,7 +53,7 @@ module Heroku
|
|
53
53
|
app, _ = request_params[:captures][:path]
|
54
54
|
with_mock_app(mock_data, app) do
|
55
55
|
{
|
56
|
-
:body => Heroku::API::
|
56
|
+
:body => Heroku::API::OkJson.encode(mock_data[:addons][app].map {|addon| addon['configured'] = true; addon}),
|
57
57
|
:status => 200
|
58
58
|
}
|
59
59
|
end
|
@@ -72,7 +72,7 @@ module Heroku
|
|
72
72
|
# addon is not currently installed
|
73
73
|
add_mock_app_addon(mock_data, app, addon)
|
74
74
|
{
|
75
|
-
:body => Heroku::API::
|
75
|
+
:body => Heroku::API::OkJson.encode({
|
76
76
|
"message" => nil,
|
77
77
|
"price" => get_mock_addon_price(mock_data, addon),
|
78
78
|
"status" => 'Installed'
|
@@ -82,21 +82,21 @@ module Heroku
|
|
82
82
|
else
|
83
83
|
# addon is currently installed
|
84
84
|
{
|
85
|
-
:body => Heroku::API::
|
85
|
+
:body => Heroku::API::OkJson.encode({'error' => "Add-on already installed."}),
|
86
86
|
:status => 422
|
87
87
|
}
|
88
88
|
end
|
89
89
|
else
|
90
90
|
# addon of same type exists
|
91
91
|
{
|
92
|
-
:body => Heroku::API::
|
92
|
+
:body => Heroku::API::OkJson.encode({'error' => "#{app_addon_type_data['name']} add-on already added.\nTo upgrade, use addons:upgrade instead.\n"}),
|
93
93
|
:status => 422
|
94
94
|
}
|
95
95
|
end
|
96
96
|
else
|
97
97
|
# addon does not exist
|
98
98
|
{
|
99
|
-
:body => Heroku::API::
|
99
|
+
:body => Heroku::API::OkJson.encode({'error' => "Add-on not found."}),
|
100
100
|
:status => 422
|
101
101
|
}
|
102
102
|
end
|
@@ -117,7 +117,7 @@ module Heroku
|
|
117
117
|
mock_data[:addons][app].delete(app_addon_data)
|
118
118
|
add_mock_app_addon(mock_data, app, addon)
|
119
119
|
{
|
120
|
-
:body => Heroku::API::
|
120
|
+
:body => Heroku::API::OkJson.encode({
|
121
121
|
"message" => nil,
|
122
122
|
"price" => get_mock_addon_price(mock_data, addon),
|
123
123
|
"status" => 'Updated'
|
@@ -127,21 +127,21 @@ module Heroku
|
|
127
127
|
else
|
128
128
|
# addon is currently installed
|
129
129
|
{
|
130
|
-
:body => Heroku::API::
|
130
|
+
:body => Heroku::API::OkJson.encode({'error' => "Add-on already installed."}),
|
131
131
|
:status => 422
|
132
132
|
}
|
133
133
|
end
|
134
134
|
else
|
135
135
|
# addon of same type not installed
|
136
136
|
{
|
137
|
-
:body => Heroku::API::
|
137
|
+
:body => Heroku::API::OkJson.encode({'error' => "Can't upgrade, no #{addon.split(':').join(' ')} add-on has been added.\nTo add, use addons:add instead.\n"}),
|
138
138
|
:status => 422
|
139
139
|
}
|
140
140
|
end
|
141
141
|
else
|
142
142
|
# addon does not exist
|
143
143
|
{
|
144
|
-
:body => Heroku::API::
|
144
|
+
:body => Heroku::API::OkJson.encode({'error' => "Add-on not found."}),
|
145
145
|
:status => 422
|
146
146
|
}
|
147
147
|
end
|
data/lib/heroku/api/mock/apps.rb
CHANGED
@@ -15,7 +15,7 @@ module Heroku
|
|
15
15
|
mock_data[:ps].delete(app)
|
16
16
|
mock_data[:releases].delete(app)
|
17
17
|
{
|
18
|
-
:body => Heroku::API::
|
18
|
+
:body => Heroku::API::OkJson.encode({}),
|
19
19
|
:status => 200
|
20
20
|
}
|
21
21
|
end
|
@@ -25,7 +25,7 @@ module Heroku
|
|
25
25
|
Excon.stub(:expects => 200, :method => :get, :path => '/apps') do |params|
|
26
26
|
request_params, mock_data = parse_stub_params(params)
|
27
27
|
{
|
28
|
-
:body => Heroku::API::
|
28
|
+
:body => Heroku::API::OkJson.encode(mock_data[:apps]),
|
29
29
|
:status => 200
|
30
30
|
}
|
31
31
|
end
|
@@ -36,7 +36,7 @@ module Heroku
|
|
36
36
|
app, _ = request_params[:captures][:path]
|
37
37
|
with_mock_app(mock_data, app) do |app_data|
|
38
38
|
{
|
39
|
-
:body => Heroku::API::
|
39
|
+
:body => Heroku::API::OkJson.encode(app_data),
|
40
40
|
:status => 200
|
41
41
|
}
|
42
42
|
end
|
@@ -49,7 +49,7 @@ module Heroku
|
|
49
49
|
|
50
50
|
if get_mock_app(mock_data, app)
|
51
51
|
{
|
52
|
-
:body => Heroku::API::
|
52
|
+
:body => Heroku::API::OkJson.encode('error' => 'Name is already taken'),
|
53
53
|
:status => 422
|
54
54
|
}
|
55
55
|
else
|
@@ -112,7 +112,7 @@ module Heroku
|
|
112
112
|
end
|
113
113
|
|
114
114
|
{
|
115
|
-
:body => Heroku::API::
|
115
|
+
:body => Heroku::API::OkJson.encode(app_data),
|
116
116
|
:status => 202
|
117
117
|
}
|
118
118
|
end
|
@@ -154,12 +154,12 @@ module Heroku
|
|
154
154
|
end
|
155
155
|
if email && !collaborator
|
156
156
|
{
|
157
|
-
:body => Heroku::API::
|
157
|
+
:body => Heroku::API::OkJson.encode('error' => 'Only existing collaborators can receive ownership for an app'),
|
158
158
|
:status => 422
|
159
159
|
}
|
160
160
|
else
|
161
161
|
{
|
162
|
-
:body => Heroku::API::
|
162
|
+
:body => Heroku::API::OkJson.encode('name' => app_data['name']),
|
163
163
|
:status => 200
|
164
164
|
}
|
165
165
|
end
|
@@ -173,7 +173,7 @@ module Heroku
|
|
173
173
|
|
174
174
|
with_mock_app(mock_data, app) do |app_data|
|
175
175
|
{
|
176
|
-
:body => Heroku::API::
|
176
|
+
:body => Heroku::API::OkJson.encode({}),
|
177
177
|
:status => 201
|
178
178
|
}
|
179
179
|
end
|
@@ -1 +1 @@
|
|
1
|
-
[{"price_unit":"month","url":"https://addons.heroku.com/addons/logentries:test","state":"beta","beta":false,"name":"logentries:test","id":"https://addons.heroku.com/addons/logentries:test","description":"Logentries Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/pgbackups:auto-year","state":"beta","beta":false,"name":"pgbackups:auto-year","id":"https://addons.heroku.com/addons/pgbackups:auto-year","description":"PG Backups Auto - One Year Retention","price_cents":10000},{"state":"public","url":null,"beta":false,"name":"shared-database:5mb","description":"Shared Database 5MB"},{"price_unit":"month","url":"https://addons.heroku.com/addons/sendgrid:platinum","state":"public","beta":false,"name":"sendgrid:platinum","id":"https://addons.heroku.com/addons/sendgrid:platinum","description":"SendGrid Platinum","price_cents":39995},{"price_unit":"month","url":"https://addons.heroku.com/addons/redistogo:medium","state":"public","beta":false,"name":"redistogo:medium","id":"https://addons.heroku.com/addons/redistogo:medium","description":"Redis To Go Medium","price_cents":11000},{"price_unit":"month","url":"https://addons.heroku.com/addons/justonedb:lambda","state":"public","beta":false,"name":"justonedb:lambda","id":"https://addons.heroku.com/addons/justonedb:lambda","description":"JustOneDB - NewSQL Cloud Database Lambda","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/zerigo_dns:basic","state":"public","beta":false,"name":"zerigo_dns:basic","id":"https://addons.heroku.com/addons/zerigo_dns:basic","description":"Zerigo DNS Zerigo Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongolab:starter","state":"public","beta":false,"name":"mongolab:starter","id":"https://addons.heroku.com/addons/mongolab:starter","description":"MongoLab Starter","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/moonshadosms:max","state":"public","beta":false,"name":"moonshadosms:max","id":"https://addons.heroku.com/addons/moonshadosms:max","description":"Moonshado SMS Max","price_cents":35000},{"price_unit":"month","url":"https://addons.heroku.com/addons/heroku-postgresql:mecha","state":"public","beta":false,"name":"heroku-postgresql:mecha","id":"https://addons.heroku.com/addons/heroku-postgresql:mecha","description":"Heroku Postgres Mecha","price_cents":640000},{"price_unit":"month","url":"https://addons.heroku.com/addons/flying_sphinx:ceramic","state":"public","beta":false,"name":"flying_sphinx:ceramic","id":"https://addons.heroku.com/addons/flying_sphinx:ceramic","description":"Flying Sphinx Ceramic","price_cents":5500},{"price_unit":"month","url":"https://addons.heroku.com/addons/loggly:capybara","state":"public","beta":false,"name":"loggly:capybara","id":"https://addons.heroku.com/addons/loggly:capybara","description":"Loggly Capybara","price_cents":59900},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudant:oxygen","state":"public","beta":false,"name":"cloudant:oxygen","id":"https://addons.heroku.com/addons/cloudant:oxygen","description":"Cloudant Oxygen","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/rabbitmq:test","state":"beta","beta":false,"name":"rabbitmq:test","id":"https://addons.heroku.com/addons/rabbitmq:test","description":"RabbitMQ Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/statsmix:basic","state":"public","beta":false,"name":"statsmix:basic","id":"https://addons.heroku.com/addons/statsmix:basic","description":"StatsMix Basic","price_cents":1900},{"price_unit":"month","url":"https://addons.heroku.com/addons/moonshadosms:plus","state":"public","beta":false,"name":"moonshadosms:plus","id":"https://addons.heroku.com/addons/moonshadosms:plus","description":"Moonshado SMS Plus","price_cents":2000},{"price_unit":"month","url":"https://addons.heroku.com/addons/justonedb:double_charmed_xi","state":"public","beta":false,"name":"justonedb:double_charmed_xi","id":"https://addons.heroku.com/addons/justonedb:double_charmed_xi","description":"JustOneDB - NewSQL Cloud Database Double Charmed Xi","price_cents":49900},{"price_unit":"month","url":"https://addons.heroku.com/addons/custom_domains:basic","state":"public","beta":false,"name":"custom_domains:basic","id":"https://addons.heroku.com/addons/custom_domains:basic","description":"Custom Domains Custom Domain","price_cents":0},{"state":"public","url":null,"beta":false,"name":"flying_sphinx:marble","description":"Flying Sphinx Marble"},{"price_unit":"month","url":"https://addons.heroku.com/addons/justonedb:charmed_xi","state":"public","beta":false,"name":"justonedb:charmed_xi","id":"https://addons.heroku.com/addons/justonedb:charmed_xi","description":"JustOneDB - NewSQL Cloud Database Charmed Xi","price_cents":34900},{"price_unit":"month","url":"https://addons.heroku.com/addons/hoptoad:plus","state":"public","beta":false,"name":"hoptoad:plus","id":"https://addons.heroku.com/addons/hoptoad:plus","description":"Airbrake Plus","price_cents":700},{"state":"public","url":null,"beta":false,"name":"newrelic:silver","description":"New Relic RPM Silver"},{"price_unit":"month","url":"https://addons.heroku.com/addons/mwiki:test","state":"beta","beta":false,"name":"mwiki:test","id":"https://addons.heroku.com/addons/mwiki:test","description":"mWiki Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:dev","state":"public","beta":false,"name":"zencoder:dev","id":"https://addons.heroku.com/addons/zencoder:dev","description":"Zencoder Developer","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/treasure-data:test","state":"public","beta":true,"name":"treasure-data:test","id":"https://addons.heroku.com/addons/treasure-data:test","description":"Treasure Data Hadoop Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/stackmob:gold","state":"public","beta":false,"name":"stackmob:gold","id":"https://addons.heroku.com/addons/stackmob:gold","description":"Stackmob Gold","price_cents":8900},{"price_unit":"month","url":"https://addons.heroku.com/addons/moonshadosms:free","state":"public","beta":false,"name":"moonshadosms:free","id":"https://addons.heroku.com/addons/moonshadosms:free","description":"Moonshado SMS Free","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/memcache:5mb","state":"public","beta":false,"name":"memcache:5mb","id":"https://addons.heroku.com/addons/memcache:5mb","description":"Memcache 5 MB","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/dbinsights:basic","state":"public","beta":false,"name":"dbinsights:basic","id":"https://addons.heroku.com/addons/dbinsights:basic","description":"DbInsights Basic","price_cents":2000},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_worker:venti","state":"public","beta":false,"name":"iron_worker:venti","id":"https://addons.heroku.com/addons/iron_worker:venti","description":"IronWorker Venti","price_cents":10800},{"price_unit":"month","url":"https://addons.heroku.com/addons/hoptoad:basic","state":"public","beta":false,"name":"hoptoad:basic","id":"https://addons.heroku.com/addons/hoptoad:basic","description":"Airbrake Basic","price_cents":200},{"price_unit":"month","url":"https://addons.heroku.com/addons/flying_sphinx:granite","state":"public","beta":false,"name":"flying_sphinx:granite","id":"https://addons.heroku.com/addons/flying_sphinx:granite","description":"Flying Sphinx Granite","price_cents":15000},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_mq:cast","state":"public","beta":false,"name":"iron_mq:cast","id":"https://addons.heroku.com/addons/iron_mq:cast","description":"IronMQ Cast","price_cents":4999},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:20k","state":"public","beta":false,"name":"zencoder:20k","id":"https://addons.heroku.com/addons/zencoder:20k","description":"Zencoder 20,000 Minutes","price_cents":60000},{"price_unit":"month","url":"https://addons.heroku.com/addons/tddium:standard","state":"public","beta":false,"name":"tddium:standard","id":"https://addons.heroku.com/addons/tddium:standard","description":"Tddium Standard","price_cents":5000},{"price_unit":"month","url":"https://addons.heroku.com/addons/rhoconnect:basic","state":"public","beta":false,"name":"rhoconnect:basic","id":"https://addons.heroku.com/addons/rhoconnect:basic","description":"RhoConnect Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/pandastream:sandbox","state":"public","beta":false,"name":"pandastream:sandbox","id":"https://addons.heroku.com/addons/pandastream:sandbox","description":"Panda Stream Sandbox","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/memcache:250mb","state":"public","beta":false,"name":"memcache:250mb","id":"https://addons.heroku.com/addons/memcache:250mb","description":"Memcache 250 MB","price_cents":4000},{"price_unit":"month","url":"https://addons.heroku.com/addons/justonedb:xi","state":"public","beta":false,"name":"justonedb:xi","id":"https://addons.heroku.com/addons/justonedb:xi","description":"JustOneDB - NewSQL Cloud Database Xi","price_cents":19900},{"price_unit":"month","url":"https://addons.heroku.com/addons/cron:daily","state":"public","beta":false,"name":"cron:daily","id":"https://addons.heroku.com/addons/cron:daily","description":"Cron Daily Cron","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/tripwire:test","state":"beta","beta":false,"name":"tripwire:test","id":"https://addons.heroku.com/addons/tripwire:test","description":"Tripwire Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:1k","state":"public","beta":false,"name":"zencoder:1k","id":"https://addons.heroku.com/addons/zencoder:1k","description":"Zencoder 1,000 Minutes","price_cents":4000},{"state":"public","url":null,"beta":false,"name":"simple_worker:grande","description":"Appoxy SimpleWorker Grande"},{"price_unit":"month","url":"https://addons.heroku.com/addons/pusher:bootstrap","state":"public","beta":false,"name":"pusher:bootstrap","id":"https://addons.heroku.com/addons/pusher:bootstrap","description":"Pusher Bootstrap","price_cents":1900},{"price_unit":"month","url":"https://addons.heroku.com/addons/pandastream:quad","state":"public","beta":false,"name":"pandastream:quad","id":"https://addons.heroku.com/addons/pandastream:quad","description":"Panda Stream Quad","price_cents":39600},{"state":"public","url":"https://addons.heroku.com/bundles","beta":false,"name":"bundles:single","description":"Single Bundle"},{"price_unit":"month","url":"https://addons.heroku.com/addons/memcache:10gb","state":"pass_only","beta":false,"name":"memcache:10gb","id":"https://addons.heroku.com/addons/memcache:10gb","description":"Memcache 10 GB","price_cents":80000},{"price_unit":"month","url":"https://addons.heroku.com/addons/moonshadosms:basic","state":"public","beta":false,"name":"moonshadosms:basic","id":"https://addons.heroku.com/addons/moonshadosms:basic","description":"Moonshado SMS Basic","price_cents":500},{"price_unit":"month","url":"https://addons.heroku.com/addons/loggly:beaver","state":"public","beta":false,"name":"loggly:beaver","id":"https://addons.heroku.com/addons/loggly:beaver","description":"Loggly Beaver","price_cents":29900},{"price_unit":"month","url":"https://addons.heroku.com/addons/cleardb:drift","state":"public","beta":false,"name":"cleardb:drift","id":"https://addons.heroku.com/addons/cleardb:drift","description":"ClearDB MySQL Database Drift","price_cents":4999},{"price_unit":"month","url":"https://addons.heroku.com/addons/custom_error_pages","state":"public","beta":true,"name":"custom_error_pages","id":"https://addons.heroku.com/addons/custom_error_pages","description":"Custom Error Pages Custom Error Pages","price_cents":10000},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:40k","state":"public","beta":false,"name":"zencoder:40k","id":"https://addons.heroku.com/addons/zencoder:40k","description":"Zencoder 40,000 Minutes","price_cents":120000},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:4k","state":"public","beta":false,"name":"zencoder:4k","id":"https://addons.heroku.com/addons/zencoder:4k","description":"Zencoder 4,000 Minutes","price_cents":12000},{"price_unit":"month","url":"https://addons.heroku.com/addons/websolr:palladium","state":"public","beta":false,"name":"websolr:palladium","id":"https://addons.heroku.com/addons/websolr:palladium","description":"Websolr Palladium","price_cents":20000},{"state":"public","url":null,"beta":false,"name":"simple_worker:tall","description":"Appoxy SimpleWorker Tall"},{"price_unit":"month","url":"https://addons.heroku.com/addons/sendgrid:bronze","state":"public","beta":false,"name":"sendgrid:bronze","id":"https://addons.heroku.com/addons/sendgrid:bronze","description":"SendGrid Bronze","price_cents":995},{"price_unit":"month","url":"https://addons.heroku.com/addons/newrelic:standard","state":"public","beta":false,"name":"newrelic:standard","id":"https://addons.heroku.com/addons/newrelic:standard","description":"New Relic Standard","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_worker:grande","state":"public","beta":false,"name":"iron_worker:grande","id":"https://addons.heroku.com/addons/iron_worker:grande","description":"IronWorker Grande","price_cents":7200},{"price_unit":"month","url":"https://addons.heroku.com/addons/deployhooks:basecamp","state":"public","beta":false,"name":"deployhooks:basecamp","id":"https://addons.heroku.com/addons/deployhooks:basecamp","description":"Deploy Hooks Basecamp Hook","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/statsmix:developer","state":"public","beta":false,"name":"statsmix:developer","id":"https://addons.heroku.com/addons/statsmix:developer","description":"StatsMix Developer","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/custom_domains:wildcard","state":"public","beta":false,"name":"custom_domains:wildcard","id":"https://addons.heroku.com/addons/custom_domains:wildcard","description":"Custom Domains Wildcard domains","price_cents":500},{"price_unit":"month","url":"https://addons.heroku.com/addons/releases:advanced","state":"beta","beta":false,"name":"releases:advanced","id":"https://addons.heroku.com/addons/releases:advanced","description":"Release Management Advanced","price_cents":10000},{"price_unit":"month","url":"https://addons.heroku.com/addons/pubnub:popular","state":"public","beta":false,"name":"pubnub:popular","id":"https://addons.heroku.com/addons/pubnub:popular","description":"PubNub Popular","price_cents":24999},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudmailin:professional","state":"public","beta":false,"name":"cloudmailin:professional","id":"https://addons.heroku.com/addons/cloudmailin:professional","description":"CloudMailIn Professional","price_cents":4500},{"state":"public","url":null,"beta":false,"name":"legacy-database:ronin","description":"Legacy Database Ronin"},{"state":"public","url":null,"beta":false,"name":"legacy-database:fugu","description":"Legacy Database Fugu"},{"price_unit":"month","url":"https://addons.heroku.com/addons/logging:expanded","state":"public","beta":false,"name":"logging:expanded","id":"https://addons.heroku.com/addons/logging:expanded","description":"Logging Expanded","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/restful_metrics:test","state":"public","beta":true,"name":"restful_metrics:test","id":"https://addons.heroku.com/addons/restful_metrics:test","description":"RESTful Metrics Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/logging:advanced","state":"public","beta":false,"name":"logging:advanced","id":"https://addons.heroku.com/addons/logging:advanced","description":"Logging Advanced","price_cents":10000},{"price_unit":"month","url":"https://addons.heroku.com/addons/zerigo_dns:tier1","state":"public","beta":false,"name":"zerigo_dns:tier1","id":"https://addons.heroku.com/addons/zerigo_dns:tier1","description":"Zerigo DNS Zerigo Tier 1","price_cents":700},{"price_unit":"month","url":"https://addons.heroku.com/addons/ssl:sni","state":"public","beta":false,"name":"ssl:sni","id":"https://addons.heroku.com/addons/ssl:sni","description":"SSL SNI SSL","price_cents":500},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudmailin:microplus","state":"public","beta":false,"name":"cloudmailin:microplus","id":"https://addons.heroku.com/addons/cloudmailin:microplus","description":"CloudMailIn Micro Plus","price_cents":1700},{"price_unit":"month","url":"https://addons.heroku.com/addons/rhoconnect:enterprise","state":"public","beta":false,"name":"rhoconnect:enterprise","id":"https://addons.heroku.com/addons/rhoconnect:enterprise","description":"RhoConnect Enterprise","price_cents":49900},{"price_unit":"month","url":"https://addons.heroku.com/addons/redistogo:small","state":"public","beta":false,"name":"redistogo:small","id":"https://addons.heroku.com/addons/redistogo:small","description":"Redis To Go Small","price_cents":2500},{"price_unit":"month","url":"https://addons.heroku.com/addons/mailgun:basic","state":"public","beta":false,"name":"mailgun:basic","id":"https://addons.heroku.com/addons/mailgun:basic","description":"Mailgun Basic","price_cents":1900},{"price_unit":"month","url":"https://addons.heroku.com/addons/zerigo_dns:tier2","state":"public","beta":false,"name":"zerigo_dns:tier2","id":"https://addons.heroku.com/addons/zerigo_dns:tier2","description":"Zerigo DNS Zerigo Tier 2","price_cents":2000},{"price_unit":"month","url":"https://addons.heroku.com/addons/loggly:mole","state":"public","beta":false,"name":"loggly:mole","id":"https://addons.heroku.com/addons/loggly:mole","description":"Loggly Mole","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/chargify:start","state":"public","beta":false,"name":"chargify:start","id":"https://addons.heroku.com/addons/chargify:start","description":"Chargify Start","price_cents":9900},{"price_unit":"month","url":"https://addons.heroku.com/addons/blitline:test","state":"beta","beta":false,"name":"blitline:test","id":"https://addons.heroku.com/addons/blitline:test","description":"Blitline Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/tddium:starter","state":"public","beta":false,"name":"tddium:starter","id":"https://addons.heroku.com/addons/tddium:starter","description":"Tddium Starter","price_cents":700},{"price_unit":"month","url":"https://addons.heroku.com/addons/heroku-postgresql:ronin","state":"public","beta":false,"name":"heroku-postgresql:ronin","id":"https://addons.heroku.com/addons/heroku-postgresql:ronin","description":"Heroku Postgres Ronin","price_cents":20000},{"state":"public","url":"https://addons.heroku.com/bundles","beta":false,"name":"bundles:unlimited","description":"Unlimited Bundles"},{"price_unit":"month","url":"https://addons.heroku.com/addons/mailgun:pro","state":"public","beta":false,"name":"mailgun:pro","id":"https://addons.heroku.com/addons/mailgun:pro","description":"Mailgun Pro","price_cents":7900},{"price_unit":"month","url":"https://addons.heroku.com/addons/tddium:plus","state":"public","beta":false,"name":"tddium:plus","id":"https://addons.heroku.com/addons/tddium:plus","description":"Tddium Plus","price_cents":8000},{"state":"public","url":null,"beta":false,"name":"simple_worker:starter","description":"Appoxy SimpleWorker Starter"},{"price_unit":"month","url":"https://addons.heroku.com/addons/redistogo:mini","state":"public","beta":false,"name":"redistogo:mini","id":"https://addons.heroku.com/addons/redistogo:mini","description":"Redis To Go Mini","price_cents":500},{"state":"public","url":null,"beta":false,"name":"redistogo:rho.small.vm","description":"Redis To Go Rho Mobile Small VM"},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudmailin:micro","state":"public","beta":false,"name":"cloudmailin:micro","id":"https://addons.heroku.com/addons/cloudmailin:micro","description":"CloudMailIn Micro","price_cents":900},{"price_unit":"month","url":"https://addons.heroku.com/addons/loggly:gopher","state":"public","beta":false,"name":"loggly:gopher","id":"https://addons.heroku.com/addons/loggly:gopher","description":"Loggly Gopher","price_cents":9900},{"price_unit":"month","url":"https://addons.heroku.com/addons/cron:hourly","state":"public","beta":false,"name":"cron:hourly","id":"https://addons.heroku.com/addons/cron:hourly","description":"Cron Hourly Cron","price_cents":300},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongohq:free","state":"public","beta":false,"name":"mongohq:free","id":"https://addons.heroku.com/addons/mongohq:free","description":"MongoHQ MongoHQ Free","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/memcache:50gb","state":"pass_only","beta":false,"name":"memcache:50gb","id":"https://addons.heroku.com/addons/memcache:50gb","description":"Memcache 50 GB","price_cents":350000},{"price_unit":"month","url":"https://addons.heroku.com/addons/pandastream:solo","state":"public","beta":false,"name":"pandastream:solo","id":"https://addons.heroku.com/addons/pandastream:solo","description":"Panda Stream Solo","price_cents":9900},{"price_unit":"month","url":"https://addons.heroku.com/addons/neo4j:test","state":"public","beta":true,"name":"neo4j:test","id":"https://addons.heroku.com/addons/neo4j:test","description":"Neo4j Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/deployhooks:http","state":"public","beta":false,"name":"deployhooks:http","id":"https://addons.heroku.com/addons/deployhooks:http","description":"Deploy Hooks HTTP Post Hook","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/chargify:max","state":"public","beta":false,"name":"chargify:max","id":"https://addons.heroku.com/addons/chargify:max","description":"Chargify Max","price_cents":99900},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongohq:small","state":"public","beta":false,"name":"mongohq:small","id":"https://addons.heroku.com/addons/mongohq:small","description":"MongoHQ MongoHQ Small","price_cents":1500},{"price_unit":"month","url":"https://addons.heroku.com/addons/papertrail:test","state":"beta","beta":false,"name":"papertrail:test","id":"https://addons.heroku.com/addons/papertrail:test","description":"Papertrail Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/framey:test","state":"beta","beta":false,"name":"framey:test","id":"https://addons.heroku.com/addons/framey:test","description":"Framey Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/redistogo:super","state":"pass_only","beta":false,"name":"redistogo:super","id":"https://addons.heroku.com/addons/redistogo:super","description":"Redis To Go Super","price_cents":100000},{"price_unit":"month","url":"https://addons.heroku.com/addons/websolr:platinum","state":"public","beta":false,"name":"websolr:platinum","id":"https://addons.heroku.com/addons/websolr:platinum","description":"Websolr Platinum","price_cents":10000},{"price_unit":"month","url":"https://addons.heroku.com/addons/tddium:pro","state":"public","beta":false,"name":"tddium:pro","id":"https://addons.heroku.com/addons/tddium:pro","description":"Tddium Pro","price_cents":15000},{"price_unit":"month","url":"https://addons.heroku.com/addons/scheduler:standard","state":"public","beta":false,"name":"scheduler:standard","id":"https://addons.heroku.com/addons/scheduler:standard","description":"Heroku Scheduler Standard","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/pusher:sandbox","state":"public","beta":false,"name":"pusher:sandbox","id":"https://addons.heroku.com/addons/pusher:sandbox","description":"Pusher Sandbox","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/pandastream:duo","state":"public","beta":false,"name":"pandastream:duo","id":"https://addons.heroku.com/addons/pandastream:duo","description":"Panda Stream Duo","price_cents":19800},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudant:helium","state":"public","beta":false,"name":"cloudant:helium","id":"https://addons.heroku.com/addons/cloudant:helium","description":"Cloudant Helium","price_cents":11900},{"price_unit":"month","url":"https://addons.heroku.com/addons/dyn:lite10","state":"public","beta":false,"name":"dyn:lite10","id":"https://addons.heroku.com/addons/dyn:lite10","description":"DynECT Managed DNS Lite 10","price_cents":3000},{"price_unit":"month","url":"https://addons.heroku.com/addons/pubnub:minimal","state":"public","beta":false,"name":"pubnub:minimal","id":"https://addons.heroku.com/addons/pubnub:minimal","description":"PubNub Minimal","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/heroku-postgresql:ika","state":"public","beta":false,"name":"heroku-postgresql:ika","id":"https://addons.heroku.com/addons/heroku-postgresql:ika","description":"Heroku Postgres Ika","price_cents":80000},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudmailin:premium","state":"public","beta":false,"name":"cloudmailin:premium","id":"https://addons.heroku.com/addons/cloudmailin:premium","description":"CloudMailIn Premium","price_cents":8500},{"price_unit":"month","url":"https://addons.heroku.com/addons/securekey:fortnightly","state":"beta","beta":false,"name":"securekey:fortnightly","id":"https://addons.heroku.com/addons/securekey:fortnightly","description":"Secure Key Fortnightly","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:2k","state":"public","beta":false,"name":"zencoder:2k","id":"https://addons.heroku.com/addons/zencoder:2k","description":"Zencoder 2,000 Minutes","price_cents":8000},{"price_unit":"month","url":"https://addons.heroku.com/addons/websolr:tungsten","state":"public","beta":false,"name":"websolr:tungsten","id":"https://addons.heroku.com/addons/websolr:tungsten","description":"Websolr Tungsten","price_cents":40000},{"price_unit":"month","url":"https://addons.heroku.com/addons/rhoconnect:premium","state":"public","beta":false,"name":"rhoconnect:premium","id":"https://addons.heroku.com/addons/rhoconnect:premium","description":"RhoConnect Premium","price_cents":9900},{"price_unit":"month","url":"https://addons.heroku.com/addons/ranger:recon","state":"public","beta":false,"name":"ranger:recon","id":"https://addons.heroku.com/addons/ranger:recon","description":"Ranger Recon","price_cents":500},{"price_unit":"month","url":"https://addons.heroku.com/addons/apigee:basic","state":"public","beta":false,"name":"apigee:basic","id":"https://addons.heroku.com/addons/apigee:basic","description":"Apigee For Twitter Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/docraptor:test","state":"public","beta":true,"name":"docraptor:test","id":"https://addons.heroku.com/addons/docraptor:test","description":"DocRaptor Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudmailin:developer","state":"public","beta":false,"name":"cloudmailin:developer","id":"https://addons.heroku.com/addons/cloudmailin:developer","description":"CloudMailIn Developer","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudant:argon","state":"public","beta":false,"name":"cloudant:argon","id":"https://addons.heroku.com/addons/cloudant:argon","description":"Cloudant Argon","price_cents":1500},{"price_unit":"month","url":"https://addons.heroku.com/addons/redistogo:mega","state":"pass_only","beta":false,"name":"redistogo:mega","id":"https://addons.heroku.com/addons/redistogo:mega","description":"Redis To Go Mega","price_cents":400000},{"price_unit":"month","url":"https://addons.heroku.com/addons/stillalive:plus","state":"public","beta":false,"name":"stillalive:plus","id":"https://addons.heroku.com/addons/stillalive:plus","description":"StillAlive Plus","price_cents":2500},{"price_unit":"month","url":"https://addons.heroku.com/addons/sendgrid:gold","state":"public","beta":false,"name":"sendgrid:gold","id":"https://addons.heroku.com/addons/sendgrid:gold","description":"SendGrid Gold","price_cents":19995},{"price_unit":"month","url":"https://addons.heroku.com/addons/pgbackups:auto-month","state":"public","beta":false,"name":"pgbackups:auto-month","id":"https://addons.heroku.com/addons/pgbackups:auto-month","description":"PG Backups Auto - One Month Retention","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/blitz:1000","state":"public","beta":false,"name":"blitz:1000","id":"https://addons.heroku.com/addons/blitz:1000","description":"Blitz 1000","price_cents":79900},{"price_unit":"month","url":"https://addons.heroku.com/addons/justonedb:sigma","state":"public","beta":false,"name":"justonedb:sigma","id":"https://addons.heroku.com/addons/justonedb:sigma","description":"JustOneDB - NewSQL Cloud Database Sigma","price_cents":1900},{"price_unit":"month","url":"https://addons.heroku.com/addons/boxcar:test","state":"beta","beta":false,"name":"boxcar:test","id":"https://addons.heroku.com/addons/boxcar:test","description":"Boxcar Push Notifications Test","price_cents":0},{"state":"public","url":null,"beta":false,"name":"shared-database:20gb","description":"Shared Database 20GB"},{"price_unit":"month","url":"https://addons.heroku.com/addons/pusher:bigboy","state":"public","beta":false,"name":"pusher:bigboy","id":"https://addons.heroku.com/addons/pusher:bigboy","description":"Pusher Big Boy","price_cents":19900},{"price_unit":"month","url":"https://addons.heroku.com/addons/dbinsights:standard","state":"public","beta":false,"name":"dbinsights:standard","id":"https://addons.heroku.com/addons/dbinsights:standard","description":"DbInsights Standard","price_cents":4000},{"price_unit":"month","url":"https://addons.heroku.com/addons/loggly:squirrel","state":"public","beta":false,"name":"loggly:squirrel","id":"https://addons.heroku.com/addons/loggly:squirrel","description":"Loggly Squirrel","price_cents":4900},{"price_unit":"month","url":"https://addons.heroku.com/addons/ssl:piggyback","state":"public","beta":false,"name":"ssl:piggyback","id":"https://addons.heroku.com/addons/ssl:piggyback","description":"SSL Piggyback SSL","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/loggly:woodchuck","state":"public","beta":false,"name":"loggly:woodchuck","id":"https://addons.heroku.com/addons/loggly:woodchuck","description":"Loggly Woodchuck","price_cents":14900},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_mq:steel","state":"public","beta":false,"name":"iron_mq:steel","id":"https://addons.heroku.com/addons/iron_mq:steel","description":"IronMQ Steel","price_cents":14999},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongolab:small","state":"public","beta":false,"name":"mongolab:small","id":"https://addons.heroku.com/addons/mongolab:small","description":"MongoLab Small","price_cents":1000},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:10k","state":"public","beta":false,"name":"zencoder:10k","id":"https://addons.heroku.com/addons/zencoder:10k","description":"Zencoder 10,000 Minutes","price_cents":30000},{"price_unit":"month","url":"https://addons.heroku.com/addons/tddium:mega","state":"public","beta":false,"name":"tddium:mega","id":"https://addons.heroku.com/addons/tddium:mega","description":"Tddium Mega","price_cents":30000},{"price_unit":"month","url":"https://addons.heroku.com/addons/stillalive:basic","state":"public","beta":false,"name":"stillalive:basic","id":"https://addons.heroku.com/addons/stillalive:basic","description":"StillAlive Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/redistogo:large","state":"public","beta":false,"name":"redistogo:large","id":"https://addons.heroku.com/addons/redistogo:large","description":"Redis To Go Large","price_cents":30000},{"state":"public","url":"http://getexceptional.com/","beta":false,"name":"exceptional:basic","description":"Exceptional Basic"},{"price_unit":"month","url":"https://addons.heroku.com/addons/heroku-postgresql:fugu","state":"public","beta":false,"name":"heroku-postgresql:fugu","id":"https://addons.heroku.com/addons/heroku-postgresql:fugu","description":"Heroku Postgres Fugu","price_cents":40000},{"state":"public","url":null,"beta":false,"name":"redistogo:rho.large.vm","description":"Redis To Go Rho Mobile Large VM"},{"state":"public","url":null,"beta":false,"name":"legacy-database:zilla","description":"Legacy Database Zilla"},{"price_unit":"dyno_hour","url":"https://addons.heroku.com/addons/newrelic:professional","state":"public","beta":false,"name":"newrelic:professional","id":"https://addons.heroku.com/addons/newrelic:professional","description":"New Relic Professional","price_cents":6},{"price_unit":"month","url":"https://addons.heroku.com/addons/exceptional:premium","state":"public","beta":false,"name":"exceptional:premium","id":"https://addons.heroku.com/addons/exceptional:premium","description":"Exceptional Exceptional Premium","price_cents":900},{"price_unit":"month","url":"https://addons.heroku.com/addons/parse:test","state":"beta","beta":false,"name":"parse:test","id":"https://addons.heroku.com/addons/parse:test","description":"Parse Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/statsmix:pro","state":"public","beta":false,"name":"statsmix:pro","id":"https://addons.heroku.com/addons/statsmix:pro","description":"StatsMix Pro","price_cents":9900},{"price_unit":"month","url":"https://addons.heroku.com/addons/stackmob:bronze","state":"public","beta":false,"name":"stackmob:bronze","id":"https://addons.heroku.com/addons/stackmob:bronze","description":"Stackmob Bronze","price_cents":500},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudmailin:starter","state":"public","beta":false,"name":"cloudmailin:starter","id":"https://addons.heroku.com/addons/cloudmailin:starter","description":"CloudMailIn Starter","price_cents":2500},{"price_unit":"month","url":"https://addons.heroku.com/addons/apigee_facebook:basic","state":"public","beta":true,"name":"apigee_facebook:basic","id":"https://addons.heroku.com/addons/apigee_facebook:basic","description":"Apigee for Facebook Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/websolr:chromium","state":"public","beta":false,"name":"websolr:chromium","id":"https://addons.heroku.com/addons/websolr:chromium","description":"Websolr Chromium","price_cents":5000},{"price_unit":"month","url":"https://addons.heroku.com/addons/pgbackups:plus","state":"public","beta":false,"name":"pgbackups:plus","id":"https://addons.heroku.com/addons/pgbackups:plus","description":"PG Backups Plus","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/pgbackups:auto-week","state":"public","beta":false,"name":"pgbackups:auto-week","id":"https://addons.heroku.com/addons/pgbackups:auto-week","description":"PG Backups Auto - One Week Retention","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/chargify:developer","state":"public","beta":false,"name":"chargify:developer","id":"https://addons.heroku.com/addons/chargify:developer","description":"Chargify Developer","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongohq:large","state":"public","beta":false,"name":"mongohq:large","id":"https://addons.heroku.com/addons/mongohq:large","description":"MongoHQ MongoHQ Large","price_cents":4900},{"price_unit":"month","url":"https://addons.heroku.com/addons/flying_sphinx:wooden","state":"public","beta":false,"name":"flying_sphinx:wooden","id":"https://addons.heroku.com/addons/flying_sphinx:wooden","description":"Flying Sphinx Wooden","price_cents":1200},{"price_unit":"month","url":"https://addons.heroku.com/addons/deployhooks:campfire","state":"public","beta":false,"name":"deployhooks:campfire","id":"https://addons.heroku.com/addons/deployhooks:campfire","description":"Deploy Hooks Campfire Hook","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/raydash:test","state":"beta","beta":false,"name":"raydash:test","id":"https://addons.heroku.com/addons/raydash:test","description":"Raydash Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/websolr:titanium","state":"public","beta":false,"name":"websolr:titanium","id":"https://addons.heroku.com/addons/websolr:titanium","description":"Websolr Titanium","price_cents":80000},{"price_unit":"month","url":"https://addons.heroku.com/addons/sendgrid:silver","state":"public","beta":false,"name":"sendgrid:silver","id":"https://addons.heroku.com/addons/sendgrid:silver","description":"SendGrid Silver","price_cents":7995},{"price_unit":"month","url":"https://addons.heroku.com/addons/heroku-postgresql:zilla","state":"public","beta":false,"name":"heroku-postgresql:zilla","id":"https://addons.heroku.com/addons/heroku-postgresql:zilla","description":"Heroku Postgres Zilla","price_cents":160000},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongohq:micro","state":"public","beta":false,"name":"mongohq:micro","id":"https://addons.heroku.com/addons/mongohq:micro","description":"MongoHQ MongoHQ Micro","price_cents":500},{"price_unit":"month","url":"https://addons.heroku.com/addons/logging:basic","state":"public","beta":false,"name":"logging:basic","id":"https://addons.heroku.com/addons/logging:basic","description":"Logging Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/spacialdb:test","state":"beta","beta":false,"name":"spacialdb:test","id":"https://addons.heroku.com/addons/spacialdb:test","description":"SpacialDB Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/stackmob:iron","state":"public","beta":false,"name":"stackmob:iron","id":"https://addons.heroku.com/addons/stackmob:iron","description":"Stackmob Iron","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/pubnub:common","state":"public","beta":false,"name":"pubnub:common","id":"https://addons.heroku.com/addons/pubnub:common","description":"PubNub Common","price_cents":8999},{"price_unit":"month","url":"https://addons.heroku.com/addons/pubnub:starter","state":"public","beta":false,"name":"pubnub:starter","id":"https://addons.heroku.com/addons/pubnub:starter","description":"PubNub Starter","price_cents":4999},{"price_unit":"month","url":"https://addons.heroku.com/addons/progstr:test","state":"public","beta":true,"name":"progstr:test","id":"https://addons.heroku.com/addons/progstr:test","description":"Progstr Logger Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudant:krypton","state":"public","beta":false,"name":"cloudant:krypton","id":"https://addons.heroku.com/addons/cloudant:krypton","description":"Cloudant Krypton","price_cents":39900},{"price_unit":"month","url":"https://addons.heroku.com/addons/cleardb:ignite","state":"public","beta":false,"name":"cleardb:ignite","id":"https://addons.heroku.com/addons/cleardb:ignite","description":"ClearDB MySQL Database Ignite","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/ticketly:test","state":"beta","beta":false,"name":"ticketly:test","id":"https://addons.heroku.com/addons/ticketly:test","description":"Ticketly Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/websolr:cobalt","state":"public","beta":false,"name":"websolr:cobalt","id":"https://addons.heroku.com/addons/websolr:cobalt","description":"Websolr Cobalt","price_cents":2000},{"price_unit":"month","url":"https://addons.heroku.com/addons/stackmob:silver","state":"public","beta":false,"name":"stackmob:silver","id":"https://addons.heroku.com/addons/stackmob:silver","description":"Stackmob Silver","price_cents":1900},{"price_unit":"month","url":"https://addons.heroku.com/addons/pusher:startup","state":"public","beta":false,"name":"pusher:startup","id":"https://addons.heroku.com/addons/pusher:startup","description":"Pusher Startup","price_cents":4900},{"price_unit":"month","url":"https://addons.heroku.com/addons/chargify:grow","state":"public","beta":false,"name":"chargify:grow","id":"https://addons.heroku.com/addons/chargify:grow","description":"Chargify Grow","price_cents":34900},{"price_unit":"month","url":"https://addons.heroku.com/addons/blitz:250","state":"public","beta":false,"name":"blitz:250","id":"https://addons.heroku.com/addons/blitz:250","description":"Blitz 250","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongolab:medium","state":"public","beta":false,"name":"mongolab:medium","id":"https://addons.heroku.com/addons/mongolab:medium","description":"MongoLab Medium","price_cents":2000},{"state":"public","url":null,"beta":false,"name":"simple_worker:venti","description":"Appoxy SimpleWorker Venti"},{"price_unit":"month","url":"https://addons.heroku.com/addons/sendgrid:starter","state":"public","beta":false,"name":"sendgrid:starter","id":"https://addons.heroku.com/addons/sendgrid:starter","description":"SendGrid Starter","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_worker:starter","state":"public","beta":false,"name":"iron_worker:starter","id":"https://addons.heroku.com/addons/iron_worker:starter","description":"IronWorker Starter","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_mq:ore","state":"public","beta":false,"name":"iron_mq:ore","id":"https://addons.heroku.com/addons/iron_mq:ore","description":"IronMQ Ore","price_cents":999},{"price_unit":"month","url":"https://addons.heroku.com/addons/deployhooks:irc","state":"public","beta":false,"name":"deployhooks:irc","id":"https://addons.heroku.com/addons/deployhooks:irc","description":"Deploy Hooks IRC Hook","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/releases:basic","state":"public","beta":true,"name":"releases:basic","id":"https://addons.heroku.com/addons/releases:basic","description":"Release Management Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/cleardb:punch","state":"public","beta":false,"name":"cleardb:punch","id":"https://addons.heroku.com/addons/cleardb:punch","description":"ClearDB MySQL Database Punch","price_cents":999},{"price_unit":"month","url":"https://addons.heroku.com/addons/ssl:ip","state":"public","beta":false,"name":"ssl:ip","id":"https://addons.heroku.com/addons/ssl:ip","description":"SSL IP Based Custom SSL","price_cents":10000},{"price_unit":"month","url":"https://addons.heroku.com/addons/stillalive:starter","state":"public","beta":false,"name":"stillalive:starter","id":"https://addons.heroku.com/addons/stillalive:starter","description":"StillAlive Starter","price_cents":700},{"price_unit":"month","url":"https://addons.heroku.com/addons/moonshadosms:premium","state":"public","beta":false,"name":"moonshadosms:premium","id":"https://addons.heroku.com/addons/moonshadosms:premium","description":"Moonshado SMS Premium","price_cents":10000},{"price_unit":"month","url":"https://addons.heroku.com/addons/cloudant:neon","state":"public","beta":false,"name":"cloudant:neon","id":"https://addons.heroku.com/addons/cloudant:neon","description":"Cloudant Neon","price_cents":3900},{"price_unit":"month","url":"https://addons.heroku.com/addons/memcache:1gb","state":"pass_only","beta":false,"name":"memcache:1gb","id":"https://addons.heroku.com/addons/memcache:1gb","description":"Memcache 1 GB","price_cents":9000},{"price_unit":"month","url":"https://addons.heroku.com/addons/dbinsights:starter","state":"public","beta":false,"name":"dbinsights:starter","id":"https://addons.heroku.com/addons/dbinsights:starter","description":"DbInsights Starter","price_cents":500},{"price_unit":"month","url":"https://addons.heroku.com/addons/blitz:5000","state":"public","beta":false,"name":"blitz:5000","id":"https://addons.heroku.com/addons/blitz:5000","description":"Blitz 5000","price_cents":129900},{"price_unit":"month","url":"https://addons.heroku.com/addons/xeround:500mb","state":"public","beta":false,"name":"xeround:500mb","id":"https://addons.heroku.com/addons/xeround:500mb","description":"Xeround Cloud DB 500MB","price_cents":7000},{"state":"public","url":null,"beta":false,"name":"pusher:custom_10k","description":"Pusher Custom_10K"},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_worker:tall","state":"public","beta":false,"name":"iron_worker:tall","id":"https://addons.heroku.com/addons/iron_worker:tall","description":"IronWorker Tall","price_cents":3600},{"price_unit":"month","url":"https://addons.heroku.com/addons/mailgun:starter","state":"public","beta":false,"name":"mailgun:starter","id":"https://addons.heroku.com/addons/mailgun:starter","description":"Mailgun Starter","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongolab:large","state":"public","beta":false,"name":"mongolab:large","id":"https://addons.heroku.com/addons/mongolab:large","description":"MongoLab Large","price_cents":4000},{"price_unit":"month","url":"https://addons.heroku.com/addons/zencoder:100k","state":"public","beta":false,"name":"zencoder:100k","id":"https://addons.heroku.com/addons/zencoder:100k","description":"Zencoder 100,000 Minutes","price_cents":200000},{"price_unit":"month","url":"https://addons.heroku.com/addons/redistogo:nano","state":"public","beta":false,"name":"redistogo:nano","id":"https://addons.heroku.com/addons/redistogo:nano","description":"Redis To Go Nano","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/pgbackups:basic","state":"public","beta":false,"name":"pgbackups:basic","id":"https://addons.heroku.com/addons/pgbackups:basic","description":"PG Backups Basic","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/chargify:launch","state":"public","beta":false,"name":"chargify:launch","id":"https://addons.heroku.com/addons/chargify:launch","description":"Chargify Launch","price_cents":3900},{"price_unit":"month","url":"https://addons.heroku.com/addons/cleardb:scream","state":"public","beta":false,"name":"cleardb:scream","id":"https://addons.heroku.com/addons/cleardb:scream","description":"ClearDB MySQL Database Scream","price_cents":9999},{"price_unit":"month","url":"https://addons.heroku.com/addons/iron_mq:rust","state":"public","beta":false,"name":"iron_mq:rust","id":"https://addons.heroku.com/addons/iron_mq:rust","description":"IronMQ Rust","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/dyn:lite50","state":"public","beta":false,"name":"dyn:lite50","id":"https://addons.heroku.com/addons/dyn:lite50","description":"DynECT Managed DNS Lite 50","price_cents":9500},{"price_unit":"month","url":"https://addons.heroku.com/addons/mongolab:x-large","state":"public","beta":false,"name":"mongolab:x-large","id":"https://addons.heroku.com/addons/mongolab:x-large","description":"MongoLab X-Large","price_cents":6500},{"price_unit":"month","url":"https://addons.heroku.com/addons/amazon_rds","state":"public","beta":false,"name":"amazon_rds","id":"https://addons.heroku.com/addons/amazon_rds","description":"Amazon RDS Amazon RDS Integration","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/mailgun:hv","state":"public","beta":false,"name":"mailgun:hv","id":"https://addons.heroku.com/addons/mailgun:hv","description":"Mailgun Pro High Volume","price_cents":19900},{"price_unit":"month","url":"https://addons.heroku.com/addons/eshq:test","state":"beta","beta":false,"name":"eshq:test","id":"https://addons.heroku.com/addons/eshq:test","description":"EventSource HQ Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/tddium:basic","state":"public","beta":false,"name":"tddium:basic","id":"https://addons.heroku.com/addons/tddium:basic","description":"Tddium Basic","price_cents":2000},{"price_unit":"month","url":"https://addons.heroku.com/addons/ssl:hostname","state":"public","beta":false,"name":"ssl:hostname","id":"https://addons.heroku.com/addons/ssl:hostname","description":"SSL Hostname Based SSL","price_cents":2000},{"price_unit":"month","url":"https://addons.heroku.com/addons/deployhooks:email","state":"public","beta":false,"name":"deployhooks:email","id":"https://addons.heroku.com/addons/deployhooks:email","description":"Deploy Hooks Email Hook","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/heroku-postgresql:baku","state":"public","beta":false,"name":"heroku-postgresql:baku","id":"https://addons.heroku.com/addons/heroku-postgresql:baku","description":"Heroku Postgres Baku","price_cents":320000},{"price_unit":"month","url":"https://addons.heroku.com/addons/tronprint:test","state":"public","beta":true,"name":"tronprint:test","id":"https://addons.heroku.com/addons/tronprint:test","description":"Tronprint Test","price_cents":0},{"price_unit":"month","url":"https://addons.heroku.com/addons/statsmix:standard","state":"public","beta":false,"name":"statsmix:standard","id":"https://addons.heroku.com/addons/statsmix:standard","description":"StatsMix Standard","price_cents":4900},{"price_unit":"month","url":"https://addons.heroku.com/addons/ranger:elite","state":"public","beta":false,"name":"ranger:elite","id":"https://addons.heroku.com/addons/ranger:elite","description":"Ranger Elite","price_cents":2500},{"price_unit":"month","url":"https://addons.heroku.com/addons/memcache:100mb","state":"public","beta":false,"name":"memcache:100mb","id":"https://addons.heroku.com/addons/memcache:100mb","description":"Memcache 100 MB","price_cents":2000},{"price_unit":"month","url":"https://addons.heroku.com/addons/dyn:lite25","state":"public","beta":false,"name":"dyn:lite25","id":"https://addons.heroku.com/addons/dyn:lite25","description":"DynECT Managed DNS Lite 25","price_cents":6000},{"state":"public","url":null,"beta":false,"name":"legacy-database:ninja","description":"Legacy Database Ninja"}]
|
1
|
+
[{"state":"public","url":null,"beta":false,"name":"heroku-shared-postgresql:devcloud","description":"Heroku Shared PostgreSQL Devcloud"},{"url":"https://addons.heroku.com/addons/logentries:proto","state":"public","name":"logentries:proto","beta":false,"price_cents":1000,"id":"https://addons.heroku.com/addons/logentries:proto","description":"Logentries Proto","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"shared-database:5mb","description":"Shared Database 5MB"},{"url":"https://addons.heroku.com/addons/chargify:launch","state":"public","name":"chargify:launch","beta":false,"price_cents":3900,"id":"https://addons.heroku.com/addons/chargify:launch","description":"Chargify Launch","price_unit":"month"},{"url":"https://addons.heroku.com/addons/blitz:5000","state":"public","name":"blitz:5000","beta":false,"price_cents":129900,"id":"https://addons.heroku.com/addons/blitz:5000","description":"Blitz 5000","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"shared-database:20gb","description":"Shared Database 20GB"},{"url":"https://addons.heroku.com/addons/custom_domains:basic","state":"disabled","name":"custom_domains:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/custom_domains:basic","description":"Custom Domains Custom Domain","price_unit":"month"},{"url":"https://addons.heroku.com/addons/statsmix:basic","state":"public","name":"statsmix:basic","beta":false,"price_cents":1900,"id":"https://addons.heroku.com/addons/statsmix:basic","description":"StatsMix Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sentry:developer","state":"public","name":"sentry:developer","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/sentry:developer","description":"Sentry Developer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:production","state":"public","name":"logentries:production","beta":false,"price_cents":25000,"id":"https://addons.heroku.com/addons/logentries:production","description":"Logentries Production","price_unit":"month"},{"url":"https://addons.heroku.com/addons/parse:test","state":"beta","name":"parse:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/parse:test","description":"Parse Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_mq:steel","state":"public","name":"iron_mq:steel","beta":false,"price_cents":14999,"id":"https://addons.heroku.com/addons/iron_mq:steel","description":"IronMQ Steel","price_unit":"month"},{"url":"https://addons.heroku.com/addons/redistogo:mini","state":"public","name":"redistogo:mini","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/redistogo:mini","description":"Redis To Go Mini","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudant:oxygen","state":"public","name":"cloudant:oxygen","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/cloudant:oxygen","description":"Cloudant Oxygen","price_unit":"month"},{"url":"https://addons.heroku.com/addons/stackmob:bronze","state":"public","name":"stackmob:bronze","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/stackmob:bronze","description":"Stackmob Bronze","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sendgrid:gold","state":"public","name":"sendgrid:gold","beta":false,"price_cents":19995,"id":"https://addons.heroku.com/addons/sendgrid:gold","description":"SendGrid Gold","price_unit":"month"},{"state":"public","url":"https://addons.heroku.com/bundles","beta":false,"name":"bundles:unlimited","description":"Unlimited Bundles"},{"url":"https://addons.heroku.com/addons/memcache:5mb","state":"public","name":"memcache:5mb","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/memcache:5mb","description":"Memcache 5 MB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/restful_metrics:medium","state":"public","name":"restful_metrics:medium","beta":false,"price_cents":7900,"id":"https://addons.heroku.com/addons/restful_metrics:medium","description":"RESTful Metrics Medium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/redistogo:nano","state":"public","name":"redistogo:nano","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/redistogo:nano","description":"Redis To Go Nano","price_unit":"month"},{"url":"https://addons.heroku.com/addons/releases:basic","state":"disabled","name":"releases:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/releases:basic","description":"Release Management Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/loggly:squirrel","state":"public","name":"loggly:squirrel","beta":false,"price_cents":4900,"id":"https://addons.heroku.com/addons/loggly:squirrel","description":"Loggly Squirrel","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pgbackups:auto-month","state":"public","name":"pgbackups:auto-month","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/pgbackups:auto-month","description":"PG Backups Auto - One Month Retention","price_unit":"month"},{"url":"https://addons.heroku.com/addons/moonshadosms:max","state":"public","name":"moonshadosms:max","beta":false,"price_cents":35000,"id":"https://addons.heroku.com/addons/moonshadosms:max","description":"Moonshado SMS Max","price_unit":"month"},{"url":"https://addons.heroku.com/addons/treasure-data:test","state":"public","name":"treasure-data:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/treasure-data:test","description":"Treasure Data Hadoop Test","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"legacy-database:ninja","description":"Legacy Database Ninja"},{"url":"https://addons.heroku.com/addons/ssl:hostname","state":"public","name":"ssl:hostname","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/ssl:hostname","description":"SSL Hostname Based SSL","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongolab:large","state":"public","name":"mongolab:large","beta":false,"price_cents":4000,"id":"https://addons.heroku.com/addons/mongolab:large","description":"MongoLab Large","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_mq:ore","state":"public","name":"iron_mq:ore","beta":false,"price_cents":999,"id":"https://addons.heroku.com/addons/iron_mq:ore","description":"IronMQ Ore","price_unit":"month"},{"url":"https://addons.heroku.com/addons/heroku-postgresql:fugu","state":"public","name":"heroku-postgresql:fugu","beta":false,"price_cents":40000,"id":"https://addons.heroku.com/addons/heroku-postgresql:fugu","description":"Heroku Postgres Fugu","price_unit":"month"},{"url":"https://addons.heroku.com/addons/redistogo:small","state":"public","name":"redistogo:small","beta":false,"price_cents":2500,"id":"https://addons.heroku.com/addons/redistogo:small","description":"Redis To Go Small","price_unit":"month"},{"url":"https://addons.heroku.com/addons/eshq:test","state":"beta","name":"eshq:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/eshq:test","description":"EventSource HQ Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/stillalive:starter","state":"public","name":"stillalive:starter","beta":false,"price_cents":700,"id":"https://addons.heroku.com/addons/stillalive:starter","description":"StillAlive Starter","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"redistogo:rho.large.vm","description":"Redis To Go Rho Mobile Large VM"},{"url":"https://addons.heroku.com/addons/websolr:platinum","state":"public","name":"websolr:platinum","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/websolr:platinum","description":"Websolr Platinum","price_unit":"month"},{"url":"https://addons.heroku.com/addons/chargify:max","state":"public","name":"chargify:max","beta":false,"price_cents":99900,"id":"https://addons.heroku.com/addons/chargify:max","description":"Chargify Max","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongohq:small","state":"public","name":"mongohq:small","beta":false,"price_cents":1500,"id":"https://addons.heroku.com/addons/mongohq:small","description":"MongoHQ MongoHQ Small","price_unit":"month"},{"url":"https://addons.heroku.com/addons/stackmob:gold","state":"public","name":"stackmob:gold","beta":false,"price_cents":8900,"id":"https://addons.heroku.com/addons/stackmob:gold","description":"Stackmob Gold","price_unit":"month"},{"url":"https://addons.heroku.com/addons/justonedb:double_charmed_xi","state":"public","name":"justonedb:double_charmed_xi","beta":false,"price_cents":49900,"id":"https://addons.heroku.com/addons/justonedb:double_charmed_xi","description":"JustOneDB - NewSQL Cloud Database Double Charmed Xi","price_unit":"month"},{"url":"https://addons.heroku.com/addons/adminium:test","state":"beta","name":"adminium:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/adminium:test","description":"Adminium Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logging:basic","state":"disabled","name":"logging:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/logging:basic","description":"Logging Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sendgrid:silver","state":"public","name":"sendgrid:silver","beta":false,"price_cents":7995,"id":"https://addons.heroku.com/addons/sendgrid:silver","description":"SendGrid Silver","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudmailin:developer","state":"public","name":"cloudmailin:developer","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/cloudmailin:developer","description":"CloudMailIn Developer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sentry:enterprise","state":"public","name":"sentry:enterprise","beta":false,"price_cents":9900,"id":"https://addons.heroku.com/addons/sentry:enterprise","description":"Sentry Enterprise","price_unit":"month"},{"url":"https://addons.heroku.com/addons/neo4j:test","state":"public","name":"neo4j:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/neo4j:test","description":"Neo4j Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/restful_metrics:x-large","state":"public","name":"restful_metrics:x-large","beta":false,"price_cents":99900,"id":"https://addons.heroku.com/addons/restful_metrics:x-large","description":"RESTful Metrics X-Large","price_unit":"month"},{"url":"https://addons.heroku.com/addons/websolr:titanium","state":"public","name":"websolr:titanium","beta":false,"price_cents":80000,"id":"https://addons.heroku.com/addons/websolr:titanium","description":"Websolr Titanium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongolab:x-large","state":"public","name":"mongolab:x-large","beta":false,"price_cents":6500,"id":"https://addons.heroku.com/addons/mongolab:x-large","description":"MongoLab X-Large","price_unit":"month"},{"url":"https://addons.heroku.com/addons/statsmix:pro","state":"public","name":"statsmix:pro","beta":false,"price_cents":9900,"id":"https://addons.heroku.com/addons/statsmix:pro","description":"StatsMix Pro","price_unit":"month"},{"url":"https://addons.heroku.com/addons/stillalive:plus","state":"public","name":"stillalive:plus","beta":false,"price_cents":2500,"id":"https://addons.heroku.com/addons/stillalive:plus","description":"StillAlive Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tddium:plus","state":"public","name":"tddium:plus","beta":false,"price_cents":8000,"id":"https://addons.heroku.com/addons/tddium:plus","description":"Tddium Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mwiki:test","state":"public","name":"mwiki:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/mwiki:test","description":"mWiki Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/rhoconnect:premium","state":"public","name":"rhoconnect:premium","beta":false,"price_cents":9900,"id":"https://addons.heroku.com/addons/rhoconnect:premium","description":"RhoConnect Premium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pgbackups:auto-year","state":"beta","name":"pgbackups:auto-year","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/pgbackups:auto-year","description":"PG Backups Auto - One Year Retention","price_unit":"month"},{"url":"https://addons.heroku.com/addons/restful_metrics:small","state":"public","name":"restful_metrics:small","beta":false,"price_cents":2900,"id":"https://addons.heroku.com/addons/restful_metrics:small","description":"RESTful Metrics Small","price_unit":"month"},{"url":"https://addons.heroku.com/addons/airbrake:production","state":"public","name":"airbrake:production","beta":false,"price_cents":1900,"id":"https://addons.heroku.com/addons/airbrake:production","description":"Airbrake Production","price_unit":"month"},{"url":"https://addons.heroku.com/addons/justonedb:lambda","state":"public","name":"justonedb:lambda","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/justonedb:lambda","description":"JustOneDB - NewSQL Cloud Database Lambda","price_unit":"month"},{"url":"https://addons.heroku.com/addons/statsmix:standard","state":"public","name":"statsmix:standard","beta":false,"price_cents":4900,"id":"https://addons.heroku.com/addons/statsmix:standard","description":"StatsMix Standard","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_mq:rust","state":"public","name":"iron_mq:rust","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/iron_mq:rust","description":"IronMQ Rust","price_unit":"month"},{"url":"https://addons.heroku.com/addons/justonedb:sigma","state":"public","name":"justonedb:sigma","beta":false,"price_cents":1900,"id":"https://addons.heroku.com/addons/justonedb:sigma","description":"JustOneDB - NewSQL Cloud Database Sigma","price_unit":"month"},{"url":"https://addons.heroku.com/addons/heroku-postgresql:mecha","state":"public","name":"heroku-postgresql:mecha","beta":false,"price_cents":640000,"id":"https://addons.heroku.com/addons/heroku-postgresql:mecha","description":"Heroku Postgres Mecha","price_unit":"month"},{"url":"https://addons.heroku.com/addons/xeround:basic250","state":"public","name":"xeround:basic250","beta":false,"price_cents":3300,"id":"https://addons.heroku.com/addons/xeround:basic250","description":"Xeround Cloud Database Basic 250MB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/flying_sphinx:wooden","state":"public","name":"flying_sphinx:wooden","beta":false,"price_cents":1200,"id":"https://addons.heroku.com/addons/flying_sphinx:wooden","description":"Flying Sphinx Wooden","price_unit":"month"},{"url":"https://addons.heroku.com/addons/loggly:woodchuck","state":"public","name":"loggly:woodchuck","beta":false,"price_cents":14900,"id":"https://addons.heroku.com/addons/loggly:woodchuck","description":"Loggly Woodchuck","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sendgrid:bronze","state":"public","name":"sendgrid:bronze","beta":false,"price_cents":995,"id":"https://addons.heroku.com/addons/sendgrid:bronze","description":"SendGrid Bronze","price_unit":"month"},{"url":"https://addons.heroku.com/addons/securekey:fortnightly","state":"beta","name":"securekey:fortnightly","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/securekey:fortnightly","description":"Secure Key Fortnightly","price_unit":"month"},{"url":"https://addons.heroku.com/addons/progstr-filer:test","state":"public","name":"progstr-filer:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/progstr-filer:test","description":"Progstr Filer Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/deployhooks:email","state":"public","name":"deployhooks:email","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/deployhooks:email","description":"Deploy Hooks Email Hook","price_unit":"month"},{"url":"https://addons.heroku.com/addons/websolr:chromium","state":"public","name":"websolr:chromium","beta":false,"price_cents":5000,"id":"https://addons.heroku.com/addons/websolr:chromium","description":"Websolr Chromium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tddium:standard","state":"public","name":"tddium:standard","beta":false,"price_cents":5000,"id":"https://addons.heroku.com/addons/tddium:standard","description":"Tddium Standard","price_unit":"month"},{"url":"https://addons.heroku.com/addons/blitline:producer","state":"public","name":"blitline:producer","beta":false,"price_cents":3599,"id":"https://addons.heroku.com/addons/blitline:producer","description":"Blitline Producer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudmailin:starter","state":"public","name":"cloudmailin:starter","beta":false,"price_cents":2500,"id":"https://addons.heroku.com/addons/cloudmailin:starter","description":"CloudMailIn Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/bonsai:test","state":"public","name":"bonsai:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/bonsai:test","description":"Bonsai ElasticSearch Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudmailin:microplus","state":"public","name":"cloudmailin:microplus","beta":false,"price_cents":1700,"id":"https://addons.heroku.com/addons/cloudmailin:microplus","description":"CloudMailIn Micro Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zencoder:dev","state":"public","name":"zencoder:dev","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/zencoder:dev","description":"Zencoder Developer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:ops","state":"public","name":"logentries:ops","beta":false,"price_cents":5000,"id":"https://addons.heroku.com/addons/logentries:ops","description":"Logentries Ops","price_unit":"month"},{"url":"https://addons.heroku.com/addons/airbrake:enterprise_production","state":"public","name":"airbrake:enterprise_production","beta":false,"price_cents":49900,"id":"https://addons.heroku.com/addons/airbrake:enterprise_production","description":"Airbrake Enterprise Production","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudmailin:professional","state":"public","name":"cloudmailin:professional","beta":false,"price_cents":4500,"id":"https://addons.heroku.com/addons/cloudmailin:professional","description":"CloudMailIn Professional","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pandastream:quad","state":"public","name":"pandastream:quad","beta":false,"price_cents":39600,"id":"https://addons.heroku.com/addons/pandastream:quad","description":"Panda Stream Quad","price_unit":"month"},{"url":"https://addons.heroku.com/addons/xeround:pro512","state":"public","name":"xeround:pro512","beta":false,"price_cents":9500,"id":"https://addons.heroku.com/addons/xeround:pro512","description":"Xeround Cloud Database Pro 0.5GB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongohq:rs_small","state":"public","name":"mongohq:rs_small","beta":false,"price_cents":14900,"id":"https://addons.heroku.com/addons/mongohq:rs_small","description":"MongoHQ Replica Set Small","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pubnub:starter","state":"public","name":"pubnub:starter","beta":false,"price_cents":4999,"id":"https://addons.heroku.com/addons/pubnub:starter","description":"PubNub Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/stackmob:iron","state":"public","name":"stackmob:iron","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/stackmob:iron","description":"Stackmob Iron","price_unit":"month"},{"url":"https://addons.heroku.com/addons/memcachier:test","state":"public","name":"memcachier:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/memcachier:test","description":"MemCachier Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zerigo_dns:basic","state":"public","name":"zerigo_dns:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/zerigo_dns:basic","description":"Zerigo DNS Zerigo Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/xeround:starter","state":"public","name":"xeround:starter","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/xeround:starter","description":"Xeround Cloud Database Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/ranger:elite","state":"public","name":"ranger:elite","beta":false,"price_cents":2500,"id":"https://addons.heroku.com/addons/ranger:elite","description":"Ranger Elite","price_unit":"month"},{"url":"https://addons.heroku.com/addons/deployhooks:campfire","state":"public","name":"deployhooks:campfire","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/deployhooks:campfire","description":"Deploy Hooks Campfire Hook","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"legacy-database:zilla","description":"Legacy Database Zilla"},{"url":"https://addons.heroku.com/addons/ssl:piggyback","state":"disabled","name":"ssl:piggyback","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/ssl:piggyback","description":"SSL Piggyback SSL","price_unit":"month"},{"url":"https://addons.heroku.com/addons/ranger:recon","state":"public","name":"ranger:recon","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/ranger:recon","description":"Ranger Recon","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cleardb:punch","state":"public","name":"cleardb:punch","beta":false,"price_cents":999,"id":"https://addons.heroku.com/addons/cleardb:punch","description":"ClearDB MySQL Database Punch","price_unit":"month"},{"url":"https://addons.heroku.com/addons/chargify:developer","state":"public","name":"chargify:developer","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/chargify:developer","description":"Chargify Developer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sentry:pro","state":"public","name":"sentry:pro","beta":false,"price_cents":700,"id":"https://addons.heroku.com/addons/sentry:pro","description":"Sentry Pro","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudmailin:micro","state":"public","name":"cloudmailin:micro","beta":false,"price_cents":900,"id":"https://addons.heroku.com/addons/cloudmailin:micro","description":"CloudMailIn Micro","price_unit":"month"},{"url":"https://addons.heroku.com/addons/loggly:beaver","state":"public","name":"loggly:beaver","beta":false,"price_cents":29900,"id":"https://addons.heroku.com/addons/loggly:beaver","description":"Loggly Beaver","price_unit":"month"},{"url":"https://addons.heroku.com/addons/justonedb:charmed_xi","state":"public","name":"justonedb:charmed_xi","beta":false,"price_cents":34900,"id":"https://addons.heroku.com/addons/justonedb:charmed_xi","description":"JustOneDB - NewSQL Cloud Database Charmed Xi","price_unit":"month"},{"url":"https://addons.heroku.com/addons/boxcar:test","state":"beta","name":"boxcar:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/boxcar:test","description":"Boxcar Push Notifications Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tddium:mega","state":"public","name":"tddium:mega","beta":false,"price_cents":30000,"id":"https://addons.heroku.com/addons/tddium:mega","description":"Tddium Mega","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logging:advanced","state":"disabled","name":"logging:advanced","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/logging:advanced","description":"Logging Advanced","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"legacy-database:ronin","description":"Legacy Database Ronin"},{"url":"https://addons.heroku.com/addons/zencoder:100k","state":"public","name":"zencoder:100k","beta":false,"price_cents":200000,"id":"https://addons.heroku.com/addons/zencoder:100k","description":"Zencoder 100,000 Minutes","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongohq:micro","state":"public","name":"mongohq:micro","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/mongohq:micro","description":"MongoHQ MongoHQ Micro","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pandastream:duo","state":"public","name":"pandastream:duo","beta":false,"price_cents":19800,"id":"https://addons.heroku.com/addons/pandastream:duo","description":"Panda Stream Duo","price_unit":"month"},{"url":"https://addons.heroku.com/addons/moonshadosms:plus","state":"public","name":"moonshadosms:plus","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/moonshadosms:plus","description":"Moonshado SMS Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudant:helium","state":"public","name":"cloudant:helium","beta":false,"price_cents":11900,"id":"https://addons.heroku.com/addons/cloudant:helium","description":"Cloudant Helium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/heroku-postgresql:baku","state":"public","name":"heroku-postgresql:baku","beta":false,"price_cents":320000,"id":"https://addons.heroku.com/addons/heroku-postgresql:baku","description":"Heroku Postgres Baku","price_unit":"month"},{"url":"https://addons.heroku.com/addons/ssl:ip","state":"public","name":"ssl:ip","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/ssl:ip","description":"SSL IP Based Custom SSL","price_unit":"month"},{"url":"https://addons.heroku.com/addons/newrelic:professional","state":"public","name":"newrelic:professional","beta":false,"price_cents":6,"id":"https://addons.heroku.com/addons/newrelic:professional","description":"New Relic Professional","price_unit":"dyno_hour"},{"url":"https://addons.heroku.com/addons/searchify:starter","state":"public","name":"searchify:starter","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/searchify:starter","description":"Searchify IndexTank Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pubnub:popular","state":"public","name":"pubnub:popular","beta":false,"price_cents":24999,"id":"https://addons.heroku.com/addons/pubnub:popular","description":"PubNub Popular","price_unit":"month"},{"url":"https://addons.heroku.com/addons/docraptor:basic","state":"public","name":"docraptor:basic","beta":false,"price_cents":1900,"id":"https://addons.heroku.com/addons/docraptor:basic","description":"DocRaptor Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/dbinsights:basic","state":"public","name":"dbinsights:basic","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/dbinsights:basic","description":"DbInsights Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/memcache:100mb","state":"public","name":"memcache:100mb","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/memcache:100mb","description":"Memcache 100 MB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tddium:basic","state":"public","name":"tddium:basic","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/tddium:basic","description":"Tddium Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/amazon_rds","state":"public","name":"amazon_rds","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/amazon_rds","description":"Amazon RDS Amazon RDS Integration","price_unit":"month"},{"url":"https://addons.heroku.com/addons/chargify:grow","state":"public","name":"chargify:grow","beta":false,"price_cents":34900,"id":"https://addons.heroku.com/addons/chargify:grow","description":"Chargify Grow","price_unit":"month"},{"url":"https://addons.heroku.com/addons/stillalive:basic","state":"public","name":"stillalive:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/stillalive:basic","description":"StillAlive Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cleardb:ignite","state":"public","name":"cleardb:ignite","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/cleardb:ignite","description":"ClearDB MySQL Database Ignite","price_unit":"month"},{"url":"https://addons.heroku.com/addons/searchify:plus","state":"public","name":"searchify:plus","beta":false,"price_cents":4900,"id":"https://addons.heroku.com/addons/searchify:plus","description":"Searchify IndexTank Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/xeround:basic100","state":"public","name":"xeround:basic100","beta":false,"price_cents":1700,"id":"https://addons.heroku.com/addons/xeround:basic100","description":"Xeround Cloud Database Basic 100MB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tronprint:test","state":"public","name":"tronprint:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/tronprint:test","description":"Tronprint Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/blitline:rockstar","state":"public","name":"blitline:rockstar","beta":false,"price_cents":6599,"id":"https://addons.heroku.com/addons/blitline:rockstar","description":"Blitline Rockstar","price_unit":"month"},{"url":"https://addons.heroku.com/addons/loggly:mole","state":"public","name":"loggly:mole","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/loggly:mole","description":"Loggly Mole","price_unit":"month"},{"url":"https://addons.heroku.com/addons/airbrake:production_pro_plus","state":"public","name":"airbrake:production_pro_plus","beta":false,"price_cents":19900,"id":"https://addons.heroku.com/addons/airbrake:production_pro_plus","description":"Airbrake Production Pro Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/flying_sphinx:ceramic","state":"public","name":"flying_sphinx:ceramic","beta":false,"price_cents":5500,"id":"https://addons.heroku.com/addons/flying_sphinx:ceramic","description":"Flying Sphinx Ceramic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/loggly:capybara","state":"public","name":"loggly:capybara","beta":false,"price_cents":59900,"id":"https://addons.heroku.com/addons/loggly:capybara","description":"Loggly Capybara","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zencoder:10k","state":"public","name":"zencoder:10k","beta":false,"price_cents":30000,"id":"https://addons.heroku.com/addons/zencoder:10k","description":"Zencoder 10,000 Minutes","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongolab:medium","state":"public","name":"mongolab:medium","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/mongolab:medium","description":"MongoLab Medium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/progstr:test","state":"public","name":"progstr:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/progstr:test","description":"Progstr Logger Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cassandraio:test","state":"public","name":"cassandraio:test","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/cassandraio:test","description":"Cassandra.io Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/database-com:test","state":"beta","name":"database-com:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/database-com:test","description":"database.com Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zencoder:2k","state":"public","name":"zencoder:2k","beta":false,"price_cents":8000,"id":"https://addons.heroku.com/addons/zencoder:2k","description":"Zencoder 2,000 Minutes","price_unit":"month"},{"url":"https://addons.heroku.com/addons/heroku-shared-postgresql:basic","state":"public","name":"heroku-shared-postgresql:basic","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/heroku-shared-postgresql:basic","description":"Heroku Shared PostgreSQL Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudant:krypton","state":"public","name":"cloudant:krypton","beta":false,"price_cents":39900,"id":"https://addons.heroku.com/addons/cloudant:krypton","description":"Cloudant Krypton","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pgbackups:auto-week","state":"public","name":"pgbackups:auto-week","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/pgbackups:auto-week","description":"PG Backups Auto - One Week Retention","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_worker:titanium","state":"public","name":"iron_worker:titanium","beta":false,"price_cents":99900,"id":"https://addons.heroku.com/addons/iron_worker:titanium","description":"IronWorker Titanium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/loggly:gopher","state":"public","name":"loggly:gopher","beta":false,"price_cents":9900,"id":"https://addons.heroku.com/addons/loggly:gopher","description":"Loggly Gopher","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:tryit","state":"public","name":"logentries:tryit","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/logentries:tryit","description":"Logentries TryIt","price_unit":"month"},{"url":"https://addons.heroku.com/addons/deployhooks:basecamp","state":"public","name":"deployhooks:basecamp","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/deployhooks:basecamp","description":"Deploy Hooks Basecamp Hook","price_unit":"month"},{"url":"https://addons.heroku.com/addons/blitz:250","state":"public","name":"blitz:250","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/blitz:250","description":"Blitz 250","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logging:expanded","state":"disabled","name":"logging:expanded","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/logging:expanded","description":"Logging Expanded","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"flying_sphinx:marble","description":"Flying Sphinx Marble"},{"url":"https://addons.heroku.com/addons/mailgun:starter","state":"public","name":"mailgun:starter","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/mailgun:starter","description":"Mailgun Starter","price_unit":"month"},{"state":"public","url":"http://getexceptional.com/","beta":false,"name":"exceptional:basic","description":"Exceptional Basic"},{"url":"https://addons.heroku.com/addons/pandastream:sandbox","state":"public","name":"pandastream:sandbox","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/pandastream:sandbox","description":"Panda Stream Sandbox","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongolab:starter","state":"public","name":"mongolab:starter","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/mongolab:starter","description":"MongoLab Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/redistogo:medium","state":"public","name":"redistogo:medium","beta":false,"price_cents":11000,"id":"https://addons.heroku.com/addons/redistogo:medium","description":"Redis To Go Medium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_worker:starter","state":"public","name":"iron_worker:starter","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/iron_worker:starter","description":"IronWorker Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/blitline:deployer","state":"public","name":"blitline:deployer","beta":false,"price_cents":1299,"id":"https://addons.heroku.com/addons/blitline:deployer","description":"Blitline Deployer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/docraptor:max","state":"public","name":"docraptor:max","beta":false,"price_cents":18900,"id":"https://addons.heroku.com/addons/docraptor:max","description":"DocRaptor Max","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zencoder:40k","state":"public","name":"zencoder:40k","beta":false,"price_cents":120000,"id":"https://addons.heroku.com/addons/zencoder:40k","description":"Zencoder 40,000 Minutes","price_unit":"month"},{"url":"https://addons.heroku.com/addons/memcache:1gb","state":"public","name":"memcache:1gb","beta":false,"price_cents":9000,"id":"https://addons.heroku.com/addons/memcache:1gb","description":"Memcache 1 GB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/apigee_facebook:basic","state":"public","name":"apigee_facebook:basic","beta":true,"price_cents":0,"id":"https://addons.heroku.com/addons/apigee_facebook:basic","description":"Apigee for Facebook Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pandastream:solo","state":"public","name":"pandastream:solo","beta":false,"price_cents":9900,"id":"https://addons.heroku.com/addons/pandastream:solo","description":"Panda Stream Solo","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:concept","state":"public","name":"logentries:concept","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/logentries:concept","description":"Logentries Concept","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zerigo_dns:tier1","state":"public","name":"zerigo_dns:tier1","beta":false,"price_cents":700,"id":"https://addons.heroku.com/addons/zerigo_dns:tier1","description":"Zerigo DNS Zerigo Tier 1","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cron:daily","state":"public","name":"cron:daily","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/cron:daily","description":"Cron Daily Cron","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zerigo_dns:tier2","state":"public","name":"zerigo_dns:tier2","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/zerigo_dns:tier2","description":"Zerigo DNS Zerigo Tier 2","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pusher:bootstrap","state":"public","name":"pusher:bootstrap","beta":false,"price_cents":1900,"id":"https://addons.heroku.com/addons/pusher:bootstrap","description":"Pusher Bootstrap","price_unit":"month"},{"url":"https://addons.heroku.com/addons/flying_sphinx:granite","state":"public","name":"flying_sphinx:granite","beta":false,"price_cents":15000,"id":"https://addons.heroku.com/addons/flying_sphinx:granite","description":"Flying Sphinx Granite","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:mega","state":"public","name":"logentries:mega","beta":false,"price_cents":500000,"id":"https://addons.heroku.com/addons/logentries:mega","description":"Logentries Mega","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mailgun:hv","state":"public","name":"mailgun:hv","beta":false,"price_cents":19900,"id":"https://addons.heroku.com/addons/mailgun:hv","description":"Mailgun Pro High Volume","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cleardb:scream","state":"public","name":"cleardb:scream","beta":false,"price_cents":9999,"id":"https://addons.heroku.com/addons/cleardb:scream","description":"ClearDB MySQL Database Scream","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sendgrid:starter","state":"public","name":"sendgrid:starter","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/sendgrid:starter","description":"SendGrid Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/websolr:cobalt","state":"public","name":"websolr:cobalt","beta":false,"price_cents":2000,"id":"https://addons.heroku.com/addons/websolr:cobalt","description":"Websolr Cobalt","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongolab:small","state":"public","name":"mongolab:small","beta":false,"price_cents":1000,"id":"https://addons.heroku.com/addons/mongolab:small","description":"MongoLab Small","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudant:argon","state":"public","name":"cloudant:argon","beta":false,"price_cents":1500,"id":"https://addons.heroku.com/addons/cloudant:argon","description":"Cloudant Argon","price_unit":"month"},{"url":"https://addons.heroku.com/addons/heroku-postgresql:ika","state":"public","name":"heroku-postgresql:ika","beta":false,"price_cents":80000,"id":"https://addons.heroku.com/addons/heroku-postgresql:ika","description":"Heroku Postgres Ika","price_unit":"month"},{"url":"https://addons.heroku.com/addons/rhoconnect:enterprise","state":"public","name":"rhoconnect:enterprise","beta":false,"price_cents":49900,"id":"https://addons.heroku.com/addons/rhoconnect:enterprise","description":"RhoConnect Enterprise","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_worker:venti","state":"public","name":"iron_worker:venti","beta":false,"price_cents":10800,"id":"https://addons.heroku.com/addons/iron_worker:venti","description":"IronWorker Venti","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudamqp:test","state":"beta","name":"cloudamqp:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/cloudamqp:test","description":"CloudAMQP Test","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"pusher:custom_10k","description":"Pusher Custom_10K"},{"url":"https://addons.heroku.com/addons/dbinsights:starter","state":"public","name":"dbinsights:starter","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/dbinsights:starter","description":"DbInsights Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pusher:startup","state":"public","name":"pusher:startup","beta":false,"price_cents":4900,"id":"https://addons.heroku.com/addons/pusher:startup","description":"Pusher Startup","price_unit":"month"},{"url":"https://addons.heroku.com/addons/scheduler:standard","state":"public","name":"scheduler:standard","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/scheduler:standard","description":"Heroku Scheduler Standard","price_unit":"month"},{"state":"public","url":"http://devcenter.heroku.com/articles/custom-error-pages","beta":false,"name":"custom_error_pages","description":"Custom Error Pages"},{"url":"https://addons.heroku.com/addons/spreedlycore:test","state":"beta","name":"spreedlycore:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/spreedlycore:test","description":"Spreedly Core Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudant:neon","state":"public","name":"cloudant:neon","beta":false,"price_cents":3900,"id":"https://addons.heroku.com/addons/cloudant:neon","description":"Cloudant Neon","price_unit":"month"},{"url":"https://addons.heroku.com/addons/deployhooks:irc","state":"public","name":"deployhooks:irc","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/deployhooks:irc","description":"Deploy Hooks IRC Hook","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cron:hourly","state":"public","name":"cron:hourly","beta":false,"price_cents":300,"id":"https://addons.heroku.com/addons/cron:hourly","description":"Cron Hourly Cron","price_unit":"month"},{"url":"https://addons.heroku.com/addons/exceptional:premium","state":"public","name":"exceptional:premium","beta":false,"price_cents":900,"id":"https://addons.heroku.com/addons/exceptional:premium","description":"Exceptional Exceptional Premium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/newrelic:standard","state":"public","name":"newrelic:standard","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/newrelic:standard","description":"New Relic Standard","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pubnub:minimal","state":"public","name":"pubnub:minimal","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/pubnub:minimal","description":"PubNub Minimal","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pusher:sandbox","state":"public","name":"pusher:sandbox","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/pusher:sandbox","description":"Pusher Sandbox","price_unit":"month"},{"url":"https://addons.heroku.com/addons/docraptor:premium","state":"public","name":"docraptor:premium","beta":false,"price_cents":9500,"id":"https://addons.heroku.com/addons/docraptor:premium","description":"DocRaptor Premium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tddium:starter","state":"public","name":"tddium:starter","beta":false,"price_cents":700,"id":"https://addons.heroku.com/addons/tddium:starter","description":"Tddium Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/chargify:start","state":"public","name":"chargify:start","beta":false,"price_cents":9900,"id":"https://addons.heroku.com/addons/chargify:start","description":"Chargify Start","price_unit":"month"},{"url":"https://addons.heroku.com/addons/redistogo:super","state":"public","name":"redistogo:super","beta":false,"price_cents":100000,"id":"https://addons.heroku.com/addons/redistogo:super","description":"Redis To Go Super","price_unit":"month"},{"url":"https://addons.heroku.com/addons/moonshadosms:premium","state":"public","name":"moonshadosms:premium","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/moonshadosms:premium","description":"Moonshado SMS Premium","price_unit":"month"},{"state":"public","url":"https://addons.heroku.com/bundles","beta":false,"name":"bundles:single","description":"Single Bundle"},{"url":"https://addons.heroku.com/addons/iron_worker:tall","state":"public","name":"iron_worker:tall","beta":false,"price_cents":3600,"id":"https://addons.heroku.com/addons/iron_worker:tall","description":"IronWorker Tall","price_unit":"month"},{"url":"https://addons.heroku.com/addons/redistogo:large","state":"public","name":"redistogo:large","beta":false,"price_cents":30000,"id":"https://addons.heroku.com/addons/redistogo:large","description":"Redis To Go Large","price_unit":"month"},{"url":"https://addons.heroku.com/addons/moonshadosms:basic","state":"public","name":"moonshadosms:basic","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/moonshadosms:basic","description":"Moonshado SMS Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/redistogo:mega","state":"public","name":"redistogo:mega","beta":false,"price_cents":400000,"id":"https://addons.heroku.com/addons/redistogo:mega","description":"Redis To Go Mega","price_unit":"month"},{"url":"https://addons.heroku.com/addons/heroku-postgresql:zilla","state":"public","name":"heroku-postgresql:zilla","beta":false,"price_cents":160000,"id":"https://addons.heroku.com/addons/heroku-postgresql:zilla","description":"Heroku Postgres Zilla","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongohq:large","state":"public","name":"mongohq:large","beta":false,"price_cents":4900,"id":"https://addons.heroku.com/addons/mongohq:large","description":"MongoHQ MongoHQ Large","price_unit":"month"},{"url":"https://addons.heroku.com/addons/blitz:1000","state":"public","name":"blitz:1000","beta":false,"price_cents":79900,"id":"https://addons.heroku.com/addons/blitz:1000","description":"Blitz 1000","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"legacy-database:fugu","description":"Legacy Database Fugu"},{"url":"https://addons.heroku.com/addons/memcache:250mb","state":"public","name":"memcache:250mb","beta":false,"price_cents":4000,"id":"https://addons.heroku.com/addons/memcache:250mb","description":"Memcache 250 MB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/docraptor:starter","state":"public","name":"docraptor:starter","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/docraptor:starter","description":"DocRaptor Starter","price_unit":"month"},{"url":"https://addons.heroku.com/addons/dyn:lite50","state":"public","name":"dyn:lite50","beta":false,"price_cents":9500,"id":"https://addons.heroku.com/addons/dyn:lite50","description":"DynECT Managed DNS Lite 50","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_mq:titanium","state":"public","name":"iron_mq:titanium","beta":false,"price_cents":99900,"id":"https://addons.heroku.com/addons/iron_mq:titanium","description":"IronMQ Titanium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sourceninja:test","state":"beta","name":"sourceninja:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/sourceninja:test","description":"SourceNinja Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/dyn:lite25","state":"public","name":"dyn:lite25","beta":false,"price_cents":6000,"id":"https://addons.heroku.com/addons/dyn:lite25","description":"DynECT Managed DNS Lite 25","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"redistogo:rho.small.vm","description":"Redis To Go Rho Mobile Small VM"},{"url":"https://addons.heroku.com/addons/heroku-postgresql:ronin","state":"public","name":"heroku-postgresql:ronin","beta":false,"price_cents":20000,"id":"https://addons.heroku.com/addons/heroku-postgresql:ronin","description":"Heroku Postgres Ronin","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pgbackups:basic","state":"public","name":"pgbackups:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/pgbackups:basic","description":"PG Backups Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/memcache:10gb","state":"public","name":"memcache:10gb","beta":false,"price_cents":80000,"id":"https://addons.heroku.com/addons/memcache:10gb","description":"Memcache 10 GB","price_unit":"month"},{"url":"https://addons.heroku.com/addons/rhoconnect:basic","state":"public","name":"rhoconnect:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/rhoconnect:basic","description":"RhoConnect Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/websolr:palladium","state":"public","name":"websolr:palladium","beta":false,"price_cents":20000,"id":"https://addons.heroku.com/addons/websolr:palladium","description":"Websolr Palladium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/stackmob:silver","state":"public","name":"stackmob:silver","beta":false,"price_cents":1900,"id":"https://addons.heroku.com/addons/stackmob:silver","description":"Stackmob Silver","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zencoder:1k","state":"public","name":"zencoder:1k","beta":false,"price_cents":4000,"id":"https://addons.heroku.com/addons/zencoder:1k","description":"Zencoder 1,000 Minutes","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"newrelic:silver","description":"New Relic RPM Silver"},{"url":"https://addons.heroku.com/addons/restful_metrics:large","state":"public","name":"restful_metrics:large","beta":false,"price_cents":29900,"id":"https://addons.heroku.com/addons/restful_metrics:large","description":"RESTful Metrics Large","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:heavy","state":"public","name":"logentries:heavy","beta":false,"price_cents":100000,"id":"https://addons.heroku.com/addons/logentries:heavy","description":"Logentries Heavy","price_unit":"month"},{"state":"public","url":null,"beta":false,"name":"ssl:endpoint","description":"SSL Endpoint"},{"url":"https://addons.heroku.com/addons/blitline:developer","state":"public","name":"blitline:developer","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/blitline:developer","description":"Blitline Developer Package","price_unit":"month"},{"url":"https://addons.heroku.com/addons/moonshadosms:free","state":"public","name":"moonshadosms:free","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/moonshadosms:free","description":"Moonshado SMS Free","price_unit":"month"},{"url":"https://addons.heroku.com/addons/sendgrid:platinum","state":"public","name":"sendgrid:platinum","beta":false,"price_cents":39995,"id":"https://addons.heroku.com/addons/sendgrid:platinum","description":"SendGrid Platinum","price_unit":"month"},{"url":"https://addons.heroku.com/addons/framey:test","state":"beta","name":"framey:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/framey:test","description":"Framey Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/robowhois:test","state":"beta","name":"robowhois:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/robowhois:test","description":"RoboWhois Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zencoder:20k","state":"public","name":"zencoder:20k","beta":false,"price_cents":60000,"id":"https://addons.heroku.com/addons/zencoder:20k","description":"Zencoder 20,000 Minutes","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tddium:pro","state":"public","name":"tddium:pro","beta":false,"price_cents":15000,"id":"https://addons.heroku.com/addons/tddium:pro","description":"Tddium Pro","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pubnub:common","state":"public","name":"pubnub:common","beta":false,"price_cents":8999,"id":"https://addons.heroku.com/addons/pubnub:common","description":"PubNub Common","price_unit":"month"},{"url":"https://addons.heroku.com/addons/dbinsights:standard","state":"public","name":"dbinsights:standard","beta":false,"price_cents":4000,"id":"https://addons.heroku.com/addons/dbinsights:standard","description":"DbInsights Standard","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:dev","state":"public","name":"logentries:dev","beta":false,"price_cents":2500,"id":"https://addons.heroku.com/addons/logentries:dev","description":"Logentries Dev","price_unit":"month"},{"url":"https://addons.heroku.com/addons/airbrake:production_pro","state":"public","name":"airbrake:production_pro","beta":false,"price_cents":9900,"id":"https://addons.heroku.com/addons/airbrake:production_pro","description":"Airbrake Production Pro","price_unit":"month"},{"url":"https://addons.heroku.com/addons/releases:advanced","state":"disabled","name":"releases:advanced","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/releases:advanced","description":"Release Management Advanced","price_unit":"month"},{"url":"https://addons.heroku.com/addons/zencoder:4k","state":"public","name":"zencoder:4k","beta":false,"price_cents":12000,"id":"https://addons.heroku.com/addons/zencoder:4k","description":"Zencoder 4,000 Minutes","price_unit":"month"},{"url":"https://addons.heroku.com/addons/airbrake:developer","state":"public","name":"airbrake:developer","beta":false,"price_cents":700,"id":"https://addons.heroku.com/addons/airbrake:developer","description":"Airbrake Developer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pusher:bigboy","state":"public","name":"pusher:bigboy","beta":false,"price_cents":19900,"id":"https://addons.heroku.com/addons/pusher:bigboy","description":"Pusher Big Boy","price_unit":"month"},{"url":"https://addons.heroku.com/addons/airbrake:developer_plus","state":"public","name":"airbrake:developer_plus","beta":false,"price_cents":1400,"id":"https://addons.heroku.com/addons/airbrake:developer_plus","description":"Airbrake Developer Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/websolr:tungsten","state":"public","name":"websolr:tungsten","beta":false,"price_cents":40000,"id":"https://addons.heroku.com/addons/websolr:tungsten","description":"Websolr Tungsten","price_unit":"month"},{"url":"https://addons.heroku.com/addons/pgbackups:plus","state":"public","name":"pgbackups:plus","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/pgbackups:plus","description":"PG Backups Plus","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongohq:rs_large","state":"public","name":"mongohq:rs_large","beta":false,"price_cents":30000,"id":"https://addons.heroku.com/addons/mongohq:rs_large","description":"MongoHQ Replica Set Large","price_unit":"month"},{"url":"https://addons.heroku.com/addons/apigee:basic","state":"public","name":"apigee:basic","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/apigee:basic","description":"Apigee For Twitter Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cloudmailin:premium","state":"public","name":"cloudmailin:premium","beta":false,"price_cents":8500,"id":"https://addons.heroku.com/addons/cloudmailin:premium","description":"CloudMailIn Premium","price_unit":"month"},{"url":"https://addons.heroku.com/addons/restful_metrics:developer","state":"public","name":"restful_metrics:developer","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/restful_metrics:developer","description":"RESTful Metrics Developer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/superfeedr:test","state":"beta","name":"superfeedr:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/superfeedr:test","description":"Superfeedr Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/papertrail:test","state":"beta","name":"papertrail:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/papertrail:test","description":"Papertrail Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:staging","state":"public","name":"logentries:staging","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/logentries:staging","description":"Logentries Staging","price_unit":"month"},{"url":"https://addons.heroku.com/addons/spacialdb:test","state":"beta","name":"spacialdb:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/spacialdb:test","description":"SpacialDB Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/custom_domains:wildcard","state":"disabled","name":"custom_domains:wildcard","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/custom_domains:wildcard","description":"Custom Domains Wildcard domains","price_unit":"month"},{"url":"https://addons.heroku.com/addons/docraptor:professional","state":"public","name":"docraptor:professional","beta":false,"price_cents":3700,"id":"https://addons.heroku.com/addons/docraptor:professional","description":"DocRaptor Professional","price_unit":"month"},{"url":"https://addons.heroku.com/addons/custom_error_pages:standard","state":"disabled","name":"custom_error_pages:standard","beta":false,"price_cents":10000,"id":"https://addons.heroku.com/addons/custom_error_pages:standard","description":"Custom Error Pages Custom Error Pages","price_unit":"month"},{"url":"https://addons.heroku.com/addons/ticketly:test","state":"beta","name":"ticketly:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/ticketly:test","description":"Ticketly Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_worker:grande","state":"public","name":"iron_worker:grande","beta":false,"price_cents":7200,"id":"https://addons.heroku.com/addons/iron_worker:grande","description":"IronWorker Grande","price_unit":"month"},{"url":"https://addons.heroku.com/addons/raydash:test","state":"beta","name":"raydash:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/raydash:test","description":"Raydash Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/rabbitmq:test","state":"beta","name":"rabbitmq:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/rabbitmq:test","description":"RabbitMQ Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/iron_mq:cast","state":"public","name":"iron_mq:cast","beta":false,"price_cents":4999,"id":"https://addons.heroku.com/addons/iron_mq:cast","description":"IronMQ Cast","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:high","state":"public","name":"logentries:high","beta":false,"price_cents":50000,"id":"https://addons.heroku.com/addons/logentries:high","description":"Logentries High","price_unit":"month"},{"url":"https://addons.heroku.com/addons/logentries:super","state":"public","name":"logentries:super","beta":false,"price_cents":250000,"id":"https://addons.heroku.com/addons/logentries:super","description":"Logentries Super","price_unit":"month"},{"url":"https://addons.heroku.com/addons/tripwire:test","state":"beta","name":"tripwire:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/tripwire:test","description":"Tripwire Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/dyn:lite10","state":"public","name":"dyn:lite10","beta":false,"price_cents":3000,"id":"https://addons.heroku.com/addons/dyn:lite10","description":"DynECT Managed DNS Lite 10","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mongohq:free","state":"public","name":"mongohq:free","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/mongohq:free","description":"MongoHQ MongoHQ Free","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mailgun:pro","state":"public","name":"mailgun:pro","beta":false,"price_cents":7900,"id":"https://addons.heroku.com/addons/mailgun:pro","description":"Mailgun Pro","price_unit":"month"},{"url":"https://addons.heroku.com/addons/mailgun:basic","state":"public","name":"mailgun:basic","beta":false,"price_cents":1900,"id":"https://addons.heroku.com/addons/mailgun:basic","description":"Mailgun Basic","price_unit":"month"},{"url":"https://addons.heroku.com/addons/ssl:sni","state":"public","name":"ssl:sni","beta":false,"price_cents":500,"id":"https://addons.heroku.com/addons/ssl:sni","description":"SSL SNI SSL","price_unit":"month"},{"url":"https://addons.heroku.com/addons/statsmix:developer","state":"public","name":"statsmix:developer","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/statsmix:developer","description":"StatsMix Developer","price_unit":"month"},{"url":"https://addons.heroku.com/addons/cleardb:drift","state":"public","name":"cleardb:drift","beta":false,"price_cents":4999,"id":"https://addons.heroku.com/addons/cleardb:drift","description":"ClearDB MySQL Database Drift","price_unit":"month"},{"url":"https://addons.heroku.com/addons/justonedb:xi","state":"public","name":"justonedb:xi","beta":false,"price_cents":19900,"id":"https://addons.heroku.com/addons/justonedb:xi","description":"JustOneDB - NewSQL Cloud Database Xi","price_unit":"month"},{"url":"https://addons.heroku.com/addons/foundelasticsearch:test","state":"beta","name":"foundelasticsearch:test","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/foundelasticsearch:test","description":"Found ElasticSearch Test","price_unit":"month"},{"url":"https://addons.heroku.com/addons/deployhooks:http","state":"public","name":"deployhooks:http","beta":false,"price_cents":0,"id":"https://addons.heroku.com/addons/deployhooks:http","description":"Deploy Hooks HTTP Post Hook","price_unit":"month"},{"url":"https://addons.heroku.com/addons/memcache:50gb","state":"public","name":"memcache:50gb","beta":false,"price_cents":350000,"id":"https://addons.heroku.com/addons/memcache:50gb","description":"Memcache 50 GB","price_unit":"month"}]
|
@@ -10,11 +10,11 @@ module Heroku
|
|
10
10
|
if collaborator_data = get_mock_collaborator(mock_data, app, email)
|
11
11
|
mock_data[:collaborators][app].delete(collaborator_data)
|
12
12
|
{
|
13
|
-
:body
|
13
|
+
:body => "#{email} has been removed as collaborator on #{app}",
|
14
14
|
:status => 200
|
15
15
|
}
|
16
16
|
else
|
17
|
-
{ :body =>
|
17
|
+
{ :body => 'User not found.', :status => 404 }
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -25,7 +25,7 @@ module Heroku
|
|
25
25
|
app, _ = request_params[:captures][:path]
|
26
26
|
with_mock_app(mock_data, app) do
|
27
27
|
{
|
28
|
-
:body => Heroku::API::
|
28
|
+
:body => Heroku::API::OkJson.encode(mock_data[:collaborators][app]),
|
29
29
|
:status => 200
|
30
30
|
}
|
31
31
|
end
|
@@ -39,7 +39,7 @@ module Heroku
|
|
39
39
|
with_mock_app(mock_data, app) do
|
40
40
|
mock_data[:collaborators][app] |= [{'access' => 'edit', 'email' => email}]
|
41
41
|
{
|
42
|
-
:body =>
|
42
|
+
:body => "#{email} added as a collaborator on #{app}.",
|
43
43
|
:status => 200
|
44
44
|
}
|
45
45
|
# Existing user response
|
@@ -9,7 +9,7 @@ module Heroku
|
|
9
9
|
with_mock_app(mock_data, app) do
|
10
10
|
mock_data[:config_vars][app].delete(key)
|
11
11
|
{
|
12
|
-
:body => Heroku::API::
|
12
|
+
:body => Heroku::API::OkJson.encode(mock_data[:config_vars][app]),
|
13
13
|
:status => 200
|
14
14
|
}
|
15
15
|
end
|
@@ -21,7 +21,7 @@ module Heroku
|
|
21
21
|
app, _ = request_params[:captures][:path]
|
22
22
|
with_mock_app(mock_data, app) do
|
23
23
|
{
|
24
|
-
:body => Heroku::API::
|
24
|
+
:body => Heroku::API::OkJson.encode(mock_data[:config_vars][app]),
|
25
25
|
:status => 200
|
26
26
|
}
|
27
27
|
end
|
@@ -35,7 +35,7 @@ module Heroku
|
|
35
35
|
new_config_vars = request_params[:body]
|
36
36
|
mock_data[:config_vars][app].merge!(new_config_vars)
|
37
37
|
{
|
38
|
-
:body => Heroku::API::
|
38
|
+
:body => Heroku::API::OkJson.encode(mock_data[:config_vars][app]),
|
39
39
|
:status => 200
|
40
40
|
}
|
41
41
|
end
|
@@ -29,7 +29,7 @@ module Heroku
|
|
29
29
|
app, _ = request_params[:captures][:path]
|
30
30
|
with_mock_app(mock_data, app) do |app_data|
|
31
31
|
{
|
32
|
-
:body => Heroku::API::
|
32
|
+
:body => Heroku::API::OkJson.encode(mock_data[:domains][app]),
|
33
33
|
:status => 200
|
34
34
|
}
|
35
35
|
end
|
@@ -54,12 +54,12 @@ module Heroku
|
|
54
54
|
}
|
55
55
|
end
|
56
56
|
{
|
57
|
-
:body => Heroku::API::
|
57
|
+
:body => Heroku::API::OkJson.encode('domain' => domain),
|
58
58
|
:status => 201
|
59
59
|
}
|
60
60
|
else
|
61
61
|
{
|
62
|
-
:body => Heroku::API::
|
62
|
+
:body => Heroku::API::OkJson.encode([["base","Please install the Custom Domains addon before adding domains to your app"]]),
|
63
63
|
:status => 422
|
64
64
|
}
|
65
65
|
end
|
data/lib/heroku/api/mock/keys.rb
CHANGED
@@ -26,7 +26,7 @@ module Heroku
|
|
26
26
|
Excon.stub(:expects => 200, :method => :get, :path => %r{^/user/keys}) do |params|
|
27
27
|
request_params, mock_data = parse_stub_params(params)
|
28
28
|
{
|
29
|
-
:body => Heroku::API::
|
29
|
+
:body => Heroku::API::OkJson.encode(mock_data[:keys]),
|
30
30
|
:status => 200
|
31
31
|
}
|
32
32
|
end
|
data/lib/heroku/api/mock/logs.rb
CHANGED
@@ -9,7 +9,7 @@ module Heroku
|
|
9
9
|
with_mock_app(mock_data, app) do
|
10
10
|
uuid = [SecureRandom.hex(4), SecureRandom.hex(2), SecureRandom.hex(2), SecureRandom.hex(2), SecureRandom.hex(6)].join('-')
|
11
11
|
{
|
12
|
-
:body =>
|
12
|
+
:body => "https://logplex.heroku.com/sessions/#{uuid}?srv=#{Time.now.to_i}",
|
13
13
|
:status => 200
|
14
14
|
}
|
15
15
|
end
|
@@ -8,7 +8,7 @@ module Heroku
|
|
8
8
|
app, _ = request_params[:captures][:path]
|
9
9
|
with_mock_app(mock_data, app) do |app_data|
|
10
10
|
{
|
11
|
-
:body => Heroku::API::
|
11
|
+
:body => Heroku::API::OkJson.encode(get_mock_processes(mock_data, app)),
|
12
12
|
:status => 200
|
13
13
|
}
|
14
14
|
end
|
@@ -41,7 +41,7 @@ module Heroku
|
|
41
41
|
}
|
42
42
|
mock_data[:ps][app] << data
|
43
43
|
{
|
44
|
-
:body => Heroku::API::
|
44
|
+
:body => Heroku::API::OkJson.encode(data),
|
45
45
|
:status => 200,
|
46
46
|
}
|
47
47
|
end
|
@@ -68,7 +68,7 @@ module Heroku
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
{
|
71
|
-
:body =>
|
71
|
+
:body => 'ok',
|
72
72
|
:status => 200
|
73
73
|
}
|
74
74
|
end
|
@@ -105,18 +105,18 @@ module Heroku
|
|
105
105
|
end
|
106
106
|
end
|
107
107
|
{
|
108
|
-
:body =>
|
108
|
+
:body => qty.to_s,
|
109
109
|
:status => 200
|
110
110
|
}
|
111
111
|
else
|
112
112
|
{
|
113
|
-
:body => Heroku::API::
|
113
|
+
:body => Heroku::API::OkJson.encode('error' => "No such type as #{type}") ,
|
114
114
|
:status => 422
|
115
115
|
}
|
116
116
|
end
|
117
117
|
else
|
118
118
|
{
|
119
|
-
:body => Heroku::API::
|
119
|
+
:body => Heroku::API::OkJson.encode('error' => "That feature is not available on this app's stack"),
|
120
120
|
:status => 422
|
121
121
|
}
|
122
122
|
end
|
@@ -132,12 +132,12 @@ module Heroku
|
|
132
132
|
type = request_params[:query].has_key?('type') && request_params[:query]['type']
|
133
133
|
if !ps && !type
|
134
134
|
{
|
135
|
-
:body => Heroku::API::
|
135
|
+
:body => Heroku::API::OkJson.encode({'error' => 'Missing process argument'}),
|
136
136
|
:status => 422
|
137
137
|
}
|
138
138
|
else
|
139
139
|
{
|
140
|
-
:body =>
|
140
|
+
:body => 'ok',
|
141
141
|
:status => 200
|
142
142
|
}
|
143
143
|
end
|
@@ -153,12 +153,12 @@ module Heroku
|
|
153
153
|
unless app_data['stack'] == 'cedar'
|
154
154
|
app_data['dynos'] = dynos
|
155
155
|
{
|
156
|
-
:body => Heroku::API::
|
156
|
+
:body => Heroku::API::OkJson.encode({'name' => app, 'dynos' => dynos}),
|
157
157
|
:status => 200
|
158
158
|
}
|
159
159
|
else
|
160
160
|
{
|
161
|
-
:body => Heroku::API::
|
161
|
+
:body => Heroku::API::OkJson.encode({'error' => "For Cedar apps, use `heroku scale web=#{dynos}`"}),
|
162
162
|
:status => 422
|
163
163
|
}
|
164
164
|
end
|
@@ -174,12 +174,12 @@ module Heroku
|
|
174
174
|
unless app_data['stack'] == 'cedar'
|
175
175
|
app_data['workers'] = workers
|
176
176
|
{
|
177
|
-
:body => Heroku::API::
|
177
|
+
:body => Heroku::API::OkJson.encode({'name' => app, 'workers' => workers}),
|
178
178
|
:status => 200
|
179
179
|
}
|
180
180
|
else
|
181
181
|
{
|
182
|
-
:body => Heroku::API::
|
182
|
+
:body => Heroku::API::OkJson.encode({'error' => "For Cedar apps, use `heroku scale worker=#{workers}`"}),
|
183
183
|
:status => 422
|
184
184
|
}
|
185
185
|
end
|
@@ -9,17 +9,17 @@ module Heroku
|
|
9
9
|
with_mock_app(mock_data, app) do |app_data|
|
10
10
|
if get_mock_app_addon(mock_data, app, 'releases:basic')
|
11
11
|
{
|
12
|
-
:body => Heroku::API::
|
12
|
+
:body => Heroku::API::OkJson.encode(mock_data[:releases][app][-2..-1]),
|
13
13
|
:status => 200
|
14
14
|
}
|
15
15
|
elsif get_mock_app_addon(mock_data, app, 'releases:advanced')
|
16
16
|
{
|
17
|
-
:body => Heroku::API::
|
17
|
+
:body => Heroku::API::OkJson.encode(mock_data[:releases][app]),
|
18
18
|
:status => 200
|
19
19
|
}
|
20
20
|
else
|
21
21
|
{
|
22
|
-
:body => Heroku::API::
|
22
|
+
:body => Heroku::API::OkJson.encode({'error' => 'Please install the Release Management add-on to access release history'}),
|
23
23
|
:status => 422
|
24
24
|
}
|
25
25
|
end
|
@@ -39,7 +39,7 @@ module Heroku
|
|
39
39
|
end
|
40
40
|
if release_data = releases.detect {|release| release['name'] == release_name}
|
41
41
|
{
|
42
|
-
:body => Heroku::API::
|
42
|
+
:body => Heroku::API::OkJson.encode(release_data),
|
43
43
|
:status => 200
|
44
44
|
}
|
45
45
|
else
|
@@ -50,7 +50,7 @@ module Heroku
|
|
50
50
|
end
|
51
51
|
else
|
52
52
|
{
|
53
|
-
:body => Heroku::API::
|
53
|
+
:body => Heroku::API::OkJson.encode({'error' => 'Please install the Release Management add-on to access release history'}),
|
54
54
|
:status => 422
|
55
55
|
}
|
56
56
|
end
|
@@ -95,24 +95,24 @@ module Heroku
|
|
95
95
|
}
|
96
96
|
|
97
97
|
{
|
98
|
-
:body =>
|
98
|
+
:body => release_data['name'],
|
99
99
|
:status => 200
|
100
100
|
}
|
101
101
|
else
|
102
102
|
{
|
103
|
-
:body => Heroku::API::
|
103
|
+
:body => Heroku::API::OkJson.encode({'error' => 'Cannot rollback to a release that had a different set of addons installed'}),
|
104
104
|
:status => 422
|
105
105
|
}
|
106
106
|
end
|
107
107
|
else
|
108
108
|
{
|
109
|
-
:body =>
|
109
|
+
:body => 'Record not found.',
|
110
110
|
:status => 404
|
111
111
|
}
|
112
112
|
end
|
113
113
|
else
|
114
114
|
{
|
115
|
-
:body => Heroku::API::
|
115
|
+
:body => Heroku::API::OkJson.encode({'error' => 'Please install the Release Management add-on to access release history'}),
|
116
116
|
:status => 422
|
117
117
|
}
|
118
118
|
end
|
@@ -37,7 +37,7 @@ module Heroku
|
|
37
37
|
stack_data = Marshal::load(Marshal.dump(STACKS))
|
38
38
|
stack_data.detect {|stack| stack['name'] == app_data['stack']}['current'] = true
|
39
39
|
{
|
40
|
-
:body => Heroku::API::
|
40
|
+
:body => Heroku::API::OkJson.encode(stack_data),
|
41
41
|
:status => 200
|
42
42
|
}
|
43
43
|
end
|
@@ -52,7 +52,7 @@ module Heroku
|
|
52
52
|
if app_data['stack'] != 'cedar' && stack != 'cedar'
|
53
53
|
if STACKS.map {|stack_data| stack_data['name']}.include?(stack)
|
54
54
|
{
|
55
|
-
:body =>
|
55
|
+
:body => <<-BODY,
|
56
56
|
HTTP/1.1 200 OK
|
57
57
|
-----> Preparing to migrate #{app}
|
58
58
|
#{app_data['stack']} -> #{stack}
|
@@ -66,13 +66,13 @@ BODY
|
|
66
66
|
}
|
67
67
|
else
|
68
68
|
{
|
69
|
-
:body => Heroku::API::
|
69
|
+
:body => Heroku::API::OkJson.encode('error' => 'Stack not found'),
|
70
70
|
:status => 404
|
71
71
|
}
|
72
72
|
end
|
73
73
|
else
|
74
74
|
{
|
75
|
-
:body => Heroku::API::
|
75
|
+
:body => Heroku::API::OkJson.encode('error' => 'Stack migration to/from Cedar is not available. Create a new app with --stack cedar instead.'),
|
76
76
|
:status => 422
|
77
77
|
}
|
78
78
|
end
|
data/lib/heroku/api/mock/user.rb
CHANGED
@@ -6,7 +6,7 @@ module Heroku
|
|
6
6
|
Excon.stub(:expects => 200, :method => :get, :path => %r{^/user}) do |params|
|
7
7
|
request_params, mock_data = parse_stub_params(params)
|
8
8
|
{
|
9
|
-
:body =>
|
9
|
+
:body => File.read("#{File.dirname(__FILE__)}/cache/get_user.json"),
|
10
10
|
:status => 200
|
11
11
|
}
|
12
12
|
end
|
data/lib/heroku/api/version.rb
CHANGED
data/test/test_addons.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroku-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: excon
|
16
|
-
requirement: &
|
16
|
+
requirement: &70252964835500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.13.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70252964835500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: minitest
|
27
|
-
requirement: &
|
27
|
+
requirement: &70252964834300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70252964834300
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70252964833580 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70252964833580
|
47
47
|
description: Ruby Client for the Heroku API
|
48
48
|
email:
|
49
49
|
- wesley@heroku.com
|