heroku-api 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile 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