heroku-api 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/stubs/cache/get_addons.json", 'w') do |file|
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
@@ -1,3 +1,9 @@
1
+ 0.1.2 04/10/2012
2
+ ================
3
+
4
+ less aggressive gzip usage (checks content-encoding)
5
+ update cache
6
+
1
7
  0.1.1 04/06/2012
2
8
  ================
3
9
 
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.body = Zlib::GzipReader.new(StringIO.new(response.body)).read
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
@@ -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::Mock::json_gzip({
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::Mock.json_gzip({'error' => "The add-on #{addon} is not installed for this app. Did you mean:\n\t#{addon_names.join("\n\t")}"}),
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::Mock.json_gzip({'error' => "Could not find add-on #{addon}. Did you mean:\n\t#{addon_names.join("\n\t")}"}),
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 => Heroku::API::Mock.gzip(File.read("#{File.dirname(__FILE__)}/cache/get_addons.json")),
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::Mock.json_gzip(mock_data[:addons][app].map {|addon| addon['configured'] = true; addon}),
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::Mock.json_gzip({
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::Mock.json_gzip({'error' => "Add-on already installed."}),
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::Mock.json_gzip({'error' => "#{app_addon_type_data['name']} add-on already added.\nTo upgrade, use addons:upgrade instead.\n"}),
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::Mock.json_gzip({'error' => "Add-on not found."}),
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::Mock.json_gzip({
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::Mock.json_gzip({'error' => "Add-on already installed."}),
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::Mock.json_gzip({'error' => "Can't upgrade, no #{addon.split(':').join(' ')} add-on has been added.\nTo add, use addons:add instead.\n"}),
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::Mock.json_gzip({'error' => "Add-on not found."}),
144
+ :body => Heroku::API::OkJson.encode({'error' => "Add-on not found."}),
145
145
  :status => 422
146
146
  }
147
147
  end
@@ -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::Mock.json_gzip({}),
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::Mock.json_gzip(mock_data[:apps]),
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::Mock.json_gzip(app_data),
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::Mock.json_gzip('error' => 'Name is already taken'),
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::Mock.json_gzip(app_data),
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::Mock.json_gzip('error' => 'Only existing collaborators can receive ownership for an app'),
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::Mock.json_gzip('name' => app_data['name']),
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::Mock.json_gzip({}),
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 => Heroku::API::Mock.gzip("#{email} has been removed as collaborator on #{app}"),
13
+ :body => "#{email} has been removed as collaborator on #{app}",
14
14
  :status => 200
15
15
  }
16
16
  else
17
- { :body => Heroku::API::Mock.gzip('User not found.'), :status => 404 }
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::Mock.json_gzip(mock_data[:collaborators][app]),
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 => Heroku::API::Mock.gzip("#{email} added as a collaborator on #{app}."),
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::Mock.json_gzip(mock_data[:config_vars][app]),
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::Mock.json_gzip(mock_data[:config_vars][app]),
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::Mock.json_gzip(mock_data[:config_vars][app]),
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::Mock.json_gzip(mock_data[:domains][app]),
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::Mock.json_gzip('domain' => domain),
57
+ :body => Heroku::API::OkJson.encode('domain' => domain),
58
58
  :status => 201
59
59
  }
60
60
  else
61
61
  {
62
- :body => Heroku::API::Mock.json_gzip([["base","Please install the Custom Domains addon before adding domains to your app"]]),
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
@@ -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::Mock.json_gzip(mock_data[:keys]),
29
+ :body => Heroku::API::OkJson.encode(mock_data[:keys]),
30
30
  :status => 200
31
31
  }
32
32
  end
@@ -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 => Heroku::API::Mock.gzip("https://logplex.heroku.com/sessions/#{uuid}?srv=#{Time.now.to_i}"),
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::Mock.json_gzip(get_mock_processes(mock_data, app)),
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::Mock.json_gzip(data),
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 => Heroku::API::Mock.gzip('ok'),
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 => Heroku::API::Mock.gzip(qty.to_s),
108
+ :body => qty.to_s,
109
109
  :status => 200
110
110
  }
111
111
  else
112
112
  {
113
- :body => Heroku::API::Mock.json_gzip('error' => "No such type as #{type}") ,
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::Mock.json_gzip('error' => "That feature is not available on this app's stack"),
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::Mock.json_gzip({'error' => 'Missing process argument'}),
135
+ :body => Heroku::API::OkJson.encode({'error' => 'Missing process argument'}),
136
136
  :status => 422
137
137
  }
138
138
  else
139
139
  {
140
- :body => Heroku::API::Mock.gzip('ok'),
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::Mock.json_gzip({'name' => app, 'dynos' => dynos}),
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::Mock.json_gzip({'error' => "For Cedar apps, use `heroku scale web=#{dynos}`"}),
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::Mock.json_gzip({'name' => app, 'workers' => workers}),
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::Mock.json_gzip({'error' => "For Cedar apps, use `heroku scale worker=#{workers}`"}),
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::Mock.json_gzip(mock_data[:releases][app][-2..-1]),
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::Mock.json_gzip(mock_data[:releases][app]),
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::Mock.json_gzip({'error' => 'Please install the Release Management add-on to access release history'}),
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::Mock.json_gzip(release_data),
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::Mock.json_gzip({'error' => 'Please install the Release Management add-on to access release history'}),
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 => Heroku::API::Mock.gzip(release_data['name']),
98
+ :body => release_data['name'],
99
99
  :status => 200
100
100
  }
101
101
  else
102
102
  {
103
- :body => Heroku::API::Mock.json_gzip({'error' => 'Cannot rollback to a release that had a different set of addons installed'}),
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 => Heroku::API::Mock.gzip('Record not found.'),
109
+ :body => 'Record not found.',
110
110
  :status => 404
111
111
  }
112
112
  end
113
113
  else
114
114
  {
115
- :body => Heroku::API::Mock.json_gzip({'error' => 'Please install the Release Management add-on to access release history'}),
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::Mock.json_gzip(stack_data),
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 => Heroku::API::Mock.gzip(<<-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::Mock.json_gzip('error' => 'Stack not found'),
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::Mock.json_gzip('error' => 'Stack migration to/from Cedar is not available. Create a new app with --stack cedar instead.'),
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
@@ -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 => Heroku::API::Mock.gzip(File.read("#{File.dirname(__FILE__)}/cache/get_user.json")),
9
+ :body => File.read("#{File.dirname(__FILE__)}/cache/get_user.json"),
10
10
  :status => 200
11
11
  }
12
12
  end
@@ -1,5 +1,5 @@
1
1
  module Heroku
2
2
  class API
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
data/test/test_addons.rb CHANGED
@@ -58,7 +58,7 @@ class TestAddons < MiniTest::Unit::TestCase
58
58
  'description' => 'Logging Basic',
59
59
  'name' => 'logging:basic',
60
60
  'url' => 'https://addons.heroku.com/addons/logging:basic',
61
- 'state' => 'public'
61
+ 'state' => 'disabled'
62
62
  },
63
63
  {
64
64
  'beta' => false,
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.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-06 00:00:00.000000000 Z
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: &70165346157020 !ruby/object:Gem::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: *70165346157020
24
+ version_requirements: *70252964835500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitest
27
- requirement: &70165346156220 !ruby/object:Gem::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: *70165346156220
35
+ version_requirements: *70252964834300
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70165346155400 !ruby/object:Gem::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: *70165346155400
46
+ version_requirements: *70252964833580
47
47
  description: Ruby Client for the Heroku API
48
48
  email:
49
49
  - wesley@heroku.com