platform-api 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a78e13c36bd7bf365dd1c6b6823d55a4a85a6c7
4
- data.tar.gz: 966c898d38642740cef7bf868911a7e482b9529b
3
+ metadata.gz: d997d15d28ef441e5b6e3b5d5ca17aea3fac9655
4
+ data.tar.gz: 0b4a59e87f19010eff3e81ac54d969fcf5af6a19
5
5
  SHA512:
6
- metadata.gz: 5b8fddb05489640e17f52ada11ae82843900a2c23f8920ccfd336c386dd9dd6b01ec1f5595b9046192d351ca460b9aa9daee69d02d487db4058f39bc33957b83
7
- data.tar.gz: b8437b8519459f7d9b394a7b3fb03c1c43d64d27a42626366c6cf980c88230d52acba00f353825c386c1aa4ea80a2d34d6d9672b3b0c0ddedc435c1e92cf6181
6
+ metadata.gz: 76577694a950cce7212f25578fb7988228bd04388f0d7a3f5870caaa30a4478f0221acb9e90d732cf3c7156790998cf498d3dd8f3d4beffb336a6a336a4724c0
7
+ data.tar.gz: 29694f29444a12859cbed8e92bf0ef1dbff8bd654cc8a0a4862fa8a3d0cd8ed0bb1f0da6afdd5b12b1568839fe67d98ece950851662e8220cf8e9105b48f667a
@@ -0,0 +1,18 @@
1
+ ## Getting Involved
2
+
3
+ New contributors are always welcome, when it doubt please ask questions. We strive to be an open and welcoming community. Please be nice to one another.
4
+
5
+ ### Coding
6
+
7
+ * Pick a task:
8
+ * Offer feedback on open [pull requests](https://github.com/heroku/platform/pulls).
9
+ * Review open [issues](https://github.com/heroku/platform/issues) for things to help on.
10
+ * [Create an issue](https://github.com/heroku/platform/issues/new) to start a discussion on additions or features.
11
+ * Fork the project, add your changes and tests to cover them in a topic branch.
12
+ * Commit your changes and rebase against `heroku/platform` to ensure everything is up to date.
13
+ * [Submit a pull request](https://github.com/heroku/platform/compare/).
14
+
15
+ ### Non-Coding
16
+
17
+ * Offer feedback on open [issues](https://github.com/heroku/platform/issues).
18
+ * Organize or volunteer at events.
@@ -0,0 +1,10 @@
1
+ * Albert Peng <albert.peng@cureus.com>
2
+ * Brandur <brandur@heroku.com>
3
+ * David Fernandez <dev@10io.net>
4
+ * Jamu Kakar <jkakar@kakar.ca>
5
+ * Mark Pundsack <mp@heroku.com>
6
+ * Matt Gauger <mathias@heroku.com>
7
+ * Owen Jacobson <owen@heroku.com>
8
+ * Paul Sadauskas <psadauskas@gmail.com>
9
+ * Wesley Beary <geemus@gmail.com>
10
+ * geemus <geemus@gmail.com>
@@ -1,22 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- platform-api (0.7.0)
5
- heroics
4
+ platform-api (0.8.0)
5
+ heroics (~> 0.0.17)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  erubis (2.7.0)
11
11
  excon (0.49.0)
12
- heroics (0.0.16)
12
+ heroics (0.0.17)
13
13
  erubis (~> 2.0)
14
14
  excon
15
15
  moneta
16
16
  multi_json (>= 1.9.2)
17
17
  netrc
18
18
  moneta (0.8.0)
19
- multi_json (1.11.2)
19
+ multi_json (1.12.1)
20
20
  netrc (0.11.0)
21
21
  rake (10.5.0)
22
22
  yard (0.8.7.6)
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014-2016 [CONTRIBUTORS.md](https://github.com/heroku/platform/blob/master/CONTRIBUTORS.md)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -24,7 +24,7 @@ gem install platform-api
24
24
 
25
25
  ## API documentation
26
26
 
27
- Jump right to the [API documentation](http://heroku.github.io/platform-api/)
27
+ Jump right to the [API documentation](http://heroku.github.io/platform-api/_index.html)
28
28
  for the nitty gritty details.
29
29
 
30
30
  ## Usage guide
@@ -49,13 +49,13 @@ For example, to get information about the `web` formation on the `sushi` app
49
49
  you'd invoke `heroku.formation.info('sushi', 'web')` and it would return a
50
50
  Ruby object that matches the one given in the [response example](https://devcenter.heroku.com/articles/platform-api-reference#formation-info).
51
51
 
52
- The [API documentation] contains a description of all available resources and
53
- methods.
52
+ The [API documentation](http://heroku.github.io/platform-api/_index.html) contains a
53
+ description of all available resources and methods.
54
54
 
55
55
  ### Handling errors
56
56
 
57
57
  The client uses [Excon](https://github.com/geemus/excon) under the hood and
58
- raises `Excon::Error` exceptions when errors occur. You can catch specific
58
+ raises `Excon::Errors::Error` exceptions when errors occur. You can catch specific
59
59
  [Excon error types](https://github.com/geemus/excon/blob/master/lib/excon/errors.rb) if you want.
60
60
 
61
61
  ### A real world example
@@ -87,7 +87,7 @@ create tokens with specific scopes.
87
87
  Now let's create an app:
88
88
 
89
89
  ```ruby
90
- heroku.app.create
90
+ heroku.app.create({})
91
91
  => {"id"=>22979756,
92
92
  "name"=>"floating-retreat-4255",
93
93
  "dynos"=>0,
@@ -310,12 +310,10 @@ Remember to commit and push the changes to Github.
310
310
 
311
311
  ### Release a new gem
312
312
 
313
- Bump the version in `lib/platform-api/version.rb` and push a new release to
314
- Rubygems:
315
-
316
- ```
317
- rake release
318
- ```
313
+ * Bump the version in `lib/platform-api/version.rb`
314
+ * `bundle install` to update Gemfile.lock
315
+ * `git commit -m 'vX.Y.Z' to stage the version and Gemfile.lock changes
316
+ * `rake release` to push git changes and to release to Rubygems
319
317
 
320
318
  ### Building API documentation
321
319
 
@@ -11,19 +11,27 @@ require 'heroics'
11
11
  require 'uri'
12
12
 
13
13
  module PlatformAPI
14
- # Get a Client configured to use HTTP Basic authentication.
14
+ # Get a Client configured to use HTTP Basic or header-based authentication.
15
15
  #
16
16
  # @param api_key [String] The API key to use when connecting.
17
17
  # @param options [Hash<Symbol,String>] Optionally, custom settings
18
18
  # to use with the client. Allowed options are `default_headers`,
19
19
  # `cache`, `user` and `url`.
20
20
  # @return [Client] A client configured to use the API with HTTP Basic
21
- # authentication.
21
+ # or header-based authentication.
22
22
  def self.connect(api_key, options=nil)
23
23
  options = custom_options(options)
24
24
  uri = URI.parse(options[:url])
25
- uri.user = URI.encode_www_form_component options.fetch(:user, 'user')
26
- uri.password = api_key
25
+
26
+ if options[:user]
27
+ uri.user = URI.encode_www_form_component options[:user]
28
+ end
29
+
30
+ if api_key
31
+ uri.user ||= 'user'
32
+ uri.password = api_key
33
+ end
34
+
27
35
  client = Heroics.client_from_schema(SCHEMA, uri.to_s, options)
28
36
  Client.new(client)
29
37
  end
@@ -117,6 +125,13 @@ module PlatformAPI
117
125
  @addon_attachment_resource ||= AddonAttachment.new(@client)
118
126
  end
119
127
 
128
+ # Configuration of an Add-on
129
+ #
130
+ # @return [AddonConfig]
131
+ def addon_config
132
+ @addon_config_resource ||= AddonConfig.new(@client)
133
+ end
134
+
120
135
  # Add-on region capabilities represent the relationship between an Add-on Service and a specific Region
121
136
  #
122
137
  # @return [AddonRegionCapability]
@@ -390,6 +405,13 @@ module PlatformAPI
390
405
  @otp_secret_resource ||= OtpSecret.new(@client)
391
406
  end
392
407
 
408
+ # An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with.
409
+ #
410
+ # @return [OutboundRuleset]
411
+ def outbound_ruleset
412
+ @outbound_ruleset_resource ||= OutboundRuleset.new(@client)
413
+ end
414
+
393
415
  # A password reset represents a in-process password reset attempt.
394
416
  #
395
417
  # @return [PasswordReset]
@@ -569,7 +591,7 @@ module PlatformAPI
569
591
  #
570
592
  # @param account_feature_id_or_account_feature_name: unique identifier of account feature or unique name of account feature
571
593
  # @param body: the object to pass as the request payload
572
- def update(account_feature_id_or_account_feature_name, body)
594
+ def update(account_feature_id_or_account_feature_name, body = {})
573
595
  @client.account_feature.update(account_feature_id_or_account_feature_name, body)
574
596
  end
575
597
  end
@@ -591,7 +613,7 @@ module PlatformAPI
591
613
  #
592
614
  # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user
593
615
  # @param body: the object to pass as the request payload
594
- def update(account_email_or_account_id_or_account_self, body)
616
+ def update(account_email_or_account_id_or_account_self, body = {})
595
617
  @client.account.update(account_email_or_account_id_or_account_self, body)
596
618
  end
597
619
 
@@ -599,7 +621,7 @@ module PlatformAPI
599
621
  #
600
622
  # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user
601
623
  # @param body: the object to pass as the request payload
602
- def change_email(account_email_or_account_id_or_account_self, body)
624
+ def change_email(account_email_or_account_id_or_account_self, body = {})
603
625
  @client.account.change_email(account_email_or_account_id_or_account_self, body)
604
626
  end
605
627
 
@@ -607,7 +629,7 @@ module PlatformAPI
607
629
  #
608
630
  # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user
609
631
  # @param body: the object to pass as the request payload
610
- def change_password(account_email_or_account_id_or_account_self, body)
632
+ def change_password(account_email_or_account_id_or_account_self, body = {})
611
633
  @client.account.change_password(account_email_or_account_id_or_account_self, body)
612
634
  end
613
635
 
@@ -635,7 +657,7 @@ module PlatformAPI
635
657
  # Create a new add-on attachment.
636
658
  #
637
659
  # @param body: the object to pass as the request payload
638
- def create(body)
660
+ def create(body = {})
639
661
  @client.addon_attachment.create(body)
640
662
  end
641
663
 
@@ -681,6 +703,28 @@ module PlatformAPI
681
703
  end
682
704
  end
683
705
 
706
+ # Configuration of an Add-on
707
+ class AddonConfig
708
+ def initialize(client)
709
+ @client = client
710
+ end
711
+
712
+ # Get an add-on's config
713
+ #
714
+ # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on
715
+ def list(addon_id_or_addon_name)
716
+ @client.addon_config.list(addon_id_or_addon_name)
717
+ end
718
+
719
+ # Update an add-on's config.
720
+ #
721
+ # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on
722
+ # @param body: the object to pass as the request payload
723
+ def update(addon_id_or_addon_name, body = {})
724
+ @client.addon_config.update(addon_id_or_addon_name, body)
725
+ end
726
+ end
727
+
684
728
  # Add-on region capabilities represent the relationship between an Add-on Service and a specific Region
685
729
  class AddonRegionCapability
686
730
  def initialize(client)
@@ -731,7 +775,7 @@ module PlatformAPI
731
775
  #
732
776
  # @param app_id_or_app_name: unique identifier of app or unique name of app
733
777
  # @param body: the object to pass as the request payload
734
- def create(app_id_or_app_name, body)
778
+ def create(app_id_or_app_name, body = {})
735
779
  @client.addon.create(app_id_or_app_name, body)
736
780
  end
737
781
 
@@ -767,7 +811,7 @@ module PlatformAPI
767
811
  # @param app_id_or_app_name: unique identifier of app or unique name of app
768
812
  # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on
769
813
  # @param body: the object to pass as the request payload
770
- def update(app_id_or_app_name, addon_id_or_addon_name, body)
814
+ def update(app_id_or_app_name, addon_id_or_addon_name, body = {})
771
815
  @client.addon.update(app_id_or_app_name, addon_id_or_addon_name, body)
772
816
  end
773
817
  end
@@ -798,7 +842,7 @@ module PlatformAPI
798
842
  # @param app_id_or_app_name: unique identifier of app or unique name of app
799
843
  # @param app_feature_id_or_app_feature_name: unique identifier of app feature or unique name of app feature
800
844
  # @param body: the object to pass as the request payload
801
- def update(app_id_or_app_name, app_feature_id_or_app_feature_name, body)
845
+ def update(app_id_or_app_name, app_feature_id_or_app_feature_name, body = {})
802
846
  @client.app_feature.update(app_id_or_app_name, app_feature_id_or_app_feature_name, body)
803
847
  end
804
848
  end
@@ -812,7 +856,7 @@ module PlatformAPI
812
856
  # Create a new app setup from a gzipped tar archive containing an app.json manifest file.
813
857
  #
814
858
  # @param body: the object to pass as the request payload
815
- def create(body)
859
+ def create(body = {})
816
860
  @client.app_setup.create(body)
817
861
  end
818
862
 
@@ -833,7 +877,7 @@ module PlatformAPI
833
877
  # Create a new app transfer.
834
878
  #
835
879
  # @param body: the object to pass as the request payload
836
- def create(body)
880
+ def create(body = {})
837
881
  @client.app_transfer.create(body)
838
882
  end
839
883
 
@@ -860,7 +904,7 @@ module PlatformAPI
860
904
  #
861
905
  # @param app_transfer_id_or_app_name: unique identifier of app transfer or unique name of app
862
906
  # @param body: the object to pass as the request payload
863
- def update(app_transfer_id_or_app_name, body)
907
+ def update(app_transfer_id_or_app_name, body = {})
864
908
  @client.app_transfer.update(app_transfer_id_or_app_name, body)
865
909
  end
866
910
  end
@@ -874,7 +918,7 @@ module PlatformAPI
874
918
  # Create a new app.
875
919
  #
876
920
  # @param body: the object to pass as the request payload
877
- def create(body)
921
+ def create(body = {})
878
922
  @client.app.create(body)
879
923
  end
880
924
 
@@ -908,7 +952,7 @@ module PlatformAPI
908
952
  #
909
953
  # @param app_id_or_app_name: unique identifier of app or unique name of app
910
954
  # @param body: the object to pass as the request payload
911
- def update(app_id_or_app_name, body)
955
+ def update(app_id_or_app_name, body = {})
912
956
  @client.app.update(app_id_or_app_name, body)
913
957
  end
914
958
  end
@@ -938,7 +982,7 @@ module PlatformAPI
938
982
  #
939
983
  # @param app_id_or_app_name: unique identifier of app or unique name of app
940
984
  # @param body: the object to pass as the request payload
941
- def create(app_id_or_app_name, body)
985
+ def create(app_id_or_app_name, body = {})
942
986
  @client.build.create(app_id_or_app_name, body)
943
987
  end
944
988
 
@@ -968,7 +1012,7 @@ module PlatformAPI
968
1012
  #
969
1013
  # @param app_id_or_app_name: unique identifier of app or unique name of app
970
1014
  # @param body: the object to pass as the request payload
971
- def update(app_id_or_app_name, body)
1015
+ def update(app_id_or_app_name, body = {})
972
1016
  @client.buildpack_installation.update(app_id_or_app_name, body)
973
1017
  end
974
1018
 
@@ -990,7 +1034,7 @@ module PlatformAPI
990
1034
  #
991
1035
  # @param app_id_or_app_name: unique identifier of app or unique name of app
992
1036
  # @param body: the object to pass as the request payload
993
- def create(app_id_or_app_name, body)
1037
+ def create(app_id_or_app_name, body = {})
994
1038
  @client.collaborator.create(app_id_or_app_name, body)
995
1039
  end
996
1040
 
@@ -1031,11 +1075,11 @@ module PlatformAPI
1031
1075
  @client.config_var.info(app_id_or_app_name)
1032
1076
  end
1033
1077
 
1034
- # Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `NULL`.
1078
+ # Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `null`.
1035
1079
  #
1036
1080
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1037
1081
  # @param body: the object to pass as the request payload
1038
- def update(app_id_or_app_name, body)
1082
+ def update(app_id_or_app_name, body = {})
1039
1083
  @client.config_var.update(app_id_or_app_name, body)
1040
1084
  end
1041
1085
  end
@@ -1049,7 +1093,7 @@ module PlatformAPI
1049
1093
  # Create a new credit.
1050
1094
  #
1051
1095
  # @param body: the object to pass as the request payload
1052
- def create(body)
1096
+ def create(body = {})
1053
1097
  @client.credit.create(body)
1054
1098
  end
1055
1099
 
@@ -1076,7 +1120,7 @@ module PlatformAPI
1076
1120
  #
1077
1121
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1078
1122
  # @param body: the object to pass as the request payload
1079
- def create(app_id_or_app_name, body)
1123
+ def create(app_id_or_app_name, body = {})
1080
1124
  @client.domain.create(app_id_or_app_name, body)
1081
1125
  end
1082
1126
 
@@ -1114,7 +1158,7 @@ module PlatformAPI
1114
1158
  #
1115
1159
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1116
1160
  # @param body: the object to pass as the request payload
1117
- def create(app_id_or_app_name, body)
1161
+ def create(app_id_or_app_name, body = {})
1118
1162
  @client.dyno.create(app_id_or_app_name, body)
1119
1163
  end
1120
1164
 
@@ -1172,7 +1216,7 @@ module PlatformAPI
1172
1216
  # Request an apps list filtered by app id.
1173
1217
  #
1174
1218
  # @param body: the object to pass as the request payload
1175
- def apps(body)
1219
+ def apps(body = {})
1176
1220
  @client.filter_apps.apps(body)
1177
1221
  end
1178
1222
  end
@@ -1202,7 +1246,7 @@ module PlatformAPI
1202
1246
  #
1203
1247
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1204
1248
  # @param body: the object to pass as the request payload
1205
- def batch_update(app_id_or_app_name, body)
1249
+ def batch_update(app_id_or_app_name, body = {})
1206
1250
  @client.formation.batch_update(app_id_or_app_name, body)
1207
1251
  end
1208
1252
 
@@ -1211,7 +1255,7 @@ module PlatformAPI
1211
1255
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1212
1256
  # @param formation_id_or_formation_type: unique identifier of this process type or type of process to maintain
1213
1257
  # @param body: the object to pass as the request payload
1214
- def update(app_id_or_app_name, formation_id_or_formation_type, body)
1258
+ def update(app_id_or_app_name, formation_id_or_formation_type, body = {})
1215
1259
  @client.formation.update(app_id_or_app_name, formation_id_or_formation_type, body)
1216
1260
  end
1217
1261
  end
@@ -1241,7 +1285,7 @@ module PlatformAPI
1241
1285
  #
1242
1286
  # @param space_id_or_space_name: unique identifier of space or unique name of space
1243
1287
  # @param body: the object to pass as the request payload
1244
- def create(space_id_or_space_name, body)
1288
+ def create(space_id_or_space_name, body = {})
1245
1289
  @client.inbound_ruleset.create(space_id_or_space_name, body)
1246
1290
  end
1247
1291
  end
@@ -1263,14 +1307,14 @@ module PlatformAPI
1263
1307
  #
1264
1308
  # @param invitation_token: Unique identifier of an invitation
1265
1309
  # @param body: the object to pass as the request payload
1266
- def finalize_invitation(invitation_token, body)
1310
+ def finalize_invitation(invitation_token, body = {})
1267
1311
  @client.invitation.finalize_invitation(invitation_token, body)
1268
1312
  end
1269
1313
 
1270
1314
  # Invite a user.
1271
1315
  #
1272
1316
  # @param body: the object to pass as the request payload
1273
- def invitation(body)
1317
+ def invitation(body = {})
1274
1318
  @client.invitation.invitation(body)
1275
1319
  end
1276
1320
  end
@@ -1289,7 +1333,7 @@ module PlatformAPI
1289
1333
  # Update invoice address for an account.
1290
1334
  #
1291
1335
  # @param body: the object to pass as the request payload
1292
- def update(body)
1336
+ def update(body = {})
1293
1337
  @client.invoice_address.update(body)
1294
1338
  end
1295
1339
  end
@@ -1322,7 +1366,7 @@ module PlatformAPI
1322
1366
  # Create a new key.
1323
1367
  #
1324
1368
  # @param body: the object to pass as the request payload
1325
- def create(body)
1369
+ def create(body = {})
1326
1370
  @client.key.create(body)
1327
1371
  end
1328
1372
 
@@ -1356,7 +1400,7 @@ module PlatformAPI
1356
1400
  #
1357
1401
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1358
1402
  # @param body: the object to pass as the request payload
1359
- def create(app_id_or_app_name, body)
1403
+ def create(app_id_or_app_name, body = {})
1360
1404
  @client.log_drain.create(app_id_or_app_name, body)
1361
1405
  end
1362
1406
 
@@ -1394,7 +1438,7 @@ module PlatformAPI
1394
1438
  #
1395
1439
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1396
1440
  # @param body: the object to pass as the request payload
1397
- def create(app_id_or_app_name, body)
1441
+ def create(app_id_or_app_name, body = {})
1398
1442
  @client.log_session.create(app_id_or_app_name, body)
1399
1443
  end
1400
1444
  end
@@ -1408,7 +1452,7 @@ module PlatformAPI
1408
1452
  # Create a new OAuth authorization.
1409
1453
  #
1410
1454
  # @param body: the object to pass as the request payload
1411
- def create(body)
1455
+ def create(body = {})
1412
1456
  @client.oauth_authorization.create(body)
1413
1457
  end
1414
1458
 
@@ -1448,7 +1492,7 @@ module PlatformAPI
1448
1492
  # Create a new OAuth client.
1449
1493
  #
1450
1494
  # @param body: the object to pass as the request payload
1451
- def create(body)
1495
+ def create(body = {})
1452
1496
  @client.oauth_client.create(body)
1453
1497
  end
1454
1498
 
@@ -1475,7 +1519,7 @@ module PlatformAPI
1475
1519
  #
1476
1520
  # @param oauth_client_id: unique identifier of this OAuth client
1477
1521
  # @param body: the object to pass as the request payload
1478
- def update(oauth_client_id, body)
1522
+ def update(oauth_client_id, body = {})
1479
1523
  @client.oauth_client.update(oauth_client_id, body)
1480
1524
  end
1481
1525
 
@@ -1503,7 +1547,7 @@ module PlatformAPI
1503
1547
  # Create a new OAuth token.
1504
1548
  #
1505
1549
  # @param body: the object to pass as the request payload
1506
- def create(body)
1550
+ def create(body = {})
1507
1551
  @client.oauth_token.create(body)
1508
1552
  end
1509
1553
 
@@ -1539,7 +1583,7 @@ module PlatformAPI
1539
1583
  #
1540
1584
  # @param app_id_or_app_name: unique identifier of app or unique name of app
1541
1585
  # @param body: the object to pass as the request payload
1542
- def create(app_id_or_app_name, body)
1586
+ def create(app_id_or_app_name, body = {})
1543
1587
  @client.organization_app_collaborator.create(app_id_or_app_name, body)
1544
1588
  end
1545
1589
 
@@ -1584,7 +1628,7 @@ module PlatformAPI
1584
1628
  # Create a new app in the specified organization, in the default organization if unspecified, or in personal account, if default organization is not set.
1585
1629
  #
1586
1630
  # @param body: the object to pass as the request payload
1587
- def create(body)
1631
+ def create(body = {})
1588
1632
  @client.organization_app.create(body)
1589
1633
  end
1590
1634
 
@@ -1611,7 +1655,7 @@ module PlatformAPI
1611
1655
  #
1612
1656
  # @param app_name: unique name of app
1613
1657
  # @param body: the object to pass as the request payload
1614
- def update_locked(app_name, body)
1658
+ def update_locked(app_name, body = {})
1615
1659
  @client.organization_app.update_locked(app_name, body)
1616
1660
  end
1617
1661
 
@@ -1619,7 +1663,7 @@ module PlatformAPI
1619
1663
  #
1620
1664
  # @param app_name: unique name of app
1621
1665
  # @param body: the object to pass as the request payload
1622
- def transfer_to_account(app_name, body)
1666
+ def transfer_to_account(app_name, body = {})
1623
1667
  @client.organization_app.transfer_to_account(app_name, body)
1624
1668
  end
1625
1669
 
@@ -1627,7 +1671,7 @@ module PlatformAPI
1627
1671
  #
1628
1672
  # @param app_name: unique name of app
1629
1673
  # @param body: the object to pass as the request payload
1630
- def transfer_to_organization(app_name, body)
1674
+ def transfer_to_organization(app_name, body = {})
1631
1675
  @client.organization_app.transfer_to_organization(app_name, body)
1632
1676
  end
1633
1677
  end
@@ -1664,7 +1708,7 @@ module PlatformAPI
1664
1708
  #
1665
1709
  # @param organization_name: unique name of organization
1666
1710
  # @param body: the object to pass as the request payload
1667
- def create_or_update(organization_name, body)
1711
+ def create_or_update(organization_name, body = {})
1668
1712
  @client.organization_member.create_or_update(organization_name, body)
1669
1713
  end
1670
1714
 
@@ -1694,7 +1738,7 @@ module PlatformAPI
1694
1738
  #
1695
1739
  # @param organization_name: unique name of organization
1696
1740
  # @param body: the object to pass as the request payload
1697
- def update(organization_name, body)
1741
+ def update(organization_name, body = {})
1698
1742
  @client.organization_payment_method.update(organization_name, body)
1699
1743
  end
1700
1744
 
@@ -1723,7 +1767,7 @@ module PlatformAPI
1723
1767
  #
1724
1768
  # @param organization_preferences_identity:
1725
1769
  # @param body: the object to pass as the request payload
1726
- def update(organization_preferences_identity, body)
1770
+ def update(organization_preferences_identity, body = {})
1727
1771
  @client.organization_preferences.update(organization_preferences_identity, body)
1728
1772
  end
1729
1773
  end
@@ -1750,7 +1794,7 @@ module PlatformAPI
1750
1794
  #
1751
1795
  # @param organization_name: unique name of organization
1752
1796
  # @param body: the object to pass as the request payload
1753
- def update(organization_name, body)
1797
+ def update(organization_name, body = {})
1754
1798
  @client.organization.update(organization_name, body)
1755
1799
  end
1756
1800
  end
@@ -1767,6 +1811,36 @@ module PlatformAPI
1767
1811
  end
1768
1812
  end
1769
1813
 
1814
+ # An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with.
1815
+ class OutboundRuleset
1816
+ def initialize(client)
1817
+ @client = client
1818
+ end
1819
+
1820
+ # Info on an existing Outbound Ruleset
1821
+ #
1822
+ # @param space_id_or_space_name: unique identifier of space or unique name of space
1823
+ # @param outbound_ruleset_id: unique identifier of an outbound-ruleset
1824
+ def info(space_id_or_space_name, outbound_ruleset_id)
1825
+ @client.outbound_ruleset.info(space_id_or_space_name, outbound_ruleset_id)
1826
+ end
1827
+
1828
+ # List all Outbound Rulesets for a space
1829
+ #
1830
+ # @param space_id_or_space_name: unique identifier of space or unique name of space
1831
+ def list(space_id_or_space_name)
1832
+ @client.outbound_ruleset.list(space_id_or_space_name)
1833
+ end
1834
+
1835
+ # Create a new outbound ruleset
1836
+ #
1837
+ # @param space_id_or_space_name: unique identifier of space or unique name of space
1838
+ # @param body: the object to pass as the request payload
1839
+ def create(space_id_or_space_name, body = {})
1840
+ @client.outbound_ruleset.create(space_id_or_space_name, body)
1841
+ end
1842
+ end
1843
+
1770
1844
  # A password reset represents a in-process password reset attempt.
1771
1845
  class PasswordReset
1772
1846
  def initialize(client)
@@ -1776,7 +1850,7 @@ module PlatformAPI
1776
1850
  # Reset account's password. This will send a reset password link to the user's email address.
1777
1851
  #
1778
1852
  # @param body: the object to pass as the request payload
1779
- def reset_password(body)
1853
+ def reset_password(body = {})
1780
1854
  @client.password_reset.reset_password(body)
1781
1855
  end
1782
1856
 
@@ -1784,7 +1858,7 @@ module PlatformAPI
1784
1858
  #
1785
1859
  # @param password_reset_reset_password_token: unique identifier of a password reset attempt
1786
1860
  # @param body: the object to pass as the request payload
1787
- def complete_reset_password(password_reset_reset_password_token, body)
1861
+ def complete_reset_password(password_reset_reset_password_token, body = {})
1788
1862
  @client.password_reset.complete_reset_password(password_reset_reset_password_token, body)
1789
1863
  end
1790
1864
  end
@@ -1798,7 +1872,7 @@ module PlatformAPI
1798
1872
  # Update an existing payment method for an account.
1799
1873
  #
1800
1874
  # @param body: the object to pass as the request payload
1801
- def update(body)
1875
+ def update(body = {})
1802
1876
  @client.payment_method.update(body)
1803
1877
  end
1804
1878
 
@@ -1817,7 +1891,7 @@ module PlatformAPI
1817
1891
  # Create a payment on an existing account
1818
1892
  #
1819
1893
  # @param body: the object to pass as the request payload
1820
- def create(body)
1894
+ def create(body = {})
1821
1895
  @client.payment.create(body)
1822
1896
  end
1823
1897
  end
@@ -1836,7 +1910,7 @@ module PlatformAPI
1836
1910
  # Create a new pipeline coupling.
1837
1911
  #
1838
1912
  # @param body: the object to pass as the request payload
1839
- def create(body)
1913
+ def create(body = {})
1840
1914
  @client.pipeline_coupling.create(body)
1841
1915
  end
1842
1916
 
@@ -1858,7 +1932,7 @@ module PlatformAPI
1858
1932
  #
1859
1933
  # @param pipeline_coupling_id: unique identifier of pipeline coupling
1860
1934
  # @param body: the object to pass as the request payload
1861
- def update(pipeline_coupling_id, body)
1935
+ def update(pipeline_coupling_id, body = {})
1862
1936
  @client.pipeline_coupling.update(pipeline_coupling_id, body)
1863
1937
  end
1864
1938
  end
@@ -1886,7 +1960,7 @@ module PlatformAPI
1886
1960
  # Create a new promotion.
1887
1961
  #
1888
1962
  # @param body: the object to pass as the request payload
1889
- def create(body)
1963
+ def create(body = {})
1890
1964
  @client.pipeline_promotion.create(body)
1891
1965
  end
1892
1966
 
@@ -1907,7 +1981,7 @@ module PlatformAPI
1907
1981
  # Create a new pipeline.
1908
1982
  #
1909
1983
  # @param body: the object to pass as the request payload
1910
- def create(body)
1984
+ def create(body = {})
1911
1985
  @client.pipeline.create(body)
1912
1986
  end
1913
1987
 
@@ -1929,7 +2003,7 @@ module PlatformAPI
1929
2003
  #
1930
2004
  # @param pipeline_id: unique identifier of pipeline
1931
2005
  # @param body: the object to pass as the request payload
1932
- def update(pipeline_id, body)
2006
+ def update(pipeline_id, body = {})
1933
2007
  @client.pipeline.update(pipeline_id, body)
1934
2008
  end
1935
2009
 
@@ -2029,7 +2103,7 @@ module PlatformAPI
2029
2103
  #
2030
2104
  # @param app_id_or_app_name: unique identifier of app or unique name of app
2031
2105
  # @param body: the object to pass as the request payload
2032
- def create(app_id_or_app_name, body)
2106
+ def create(app_id_or_app_name, body = {})
2033
2107
  @client.release.create(app_id_or_app_name, body)
2034
2108
  end
2035
2109
 
@@ -2037,7 +2111,7 @@ module PlatformAPI
2037
2111
  #
2038
2112
  # @param app_id_or_app_name: unique identifier of app or unique name of app
2039
2113
  # @param body: the object to pass as the request payload
2040
- def rollback(app_id_or_app_name, body)
2114
+ def rollback(app_id_or_app_name, body = {})
2041
2115
  @client.release.rollback(app_id_or_app_name, body)
2042
2116
  end
2043
2117
  end
@@ -2060,7 +2134,7 @@ module PlatformAPI
2060
2134
  #
2061
2135
  # @param app_id_or_app_name: unique identifier of app or unique name of app
2062
2136
  # @param body: the object to pass as the request payload
2063
- def create(app_id_or_app_name, body)
2137
+ def create(app_id_or_app_name, body = {})
2064
2138
  @client.slug.create(app_id_or_app_name, body)
2065
2139
  end
2066
2140
  end
@@ -2126,7 +2200,7 @@ module PlatformAPI
2126
2200
  # @param space_id_or_space_name: unique identifier of space or unique name of space
2127
2201
  # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user
2128
2202
  # @param body: the object to pass as the request payload
2129
- def update(space_id_or_space_name, account_email_or_account_id_or_account_self, body)
2203
+ def update(space_id_or_space_name, account_email_or_account_id_or_account_self, body = {})
2130
2204
  @client.space_app_access.update(space_id_or_space_name, account_email_or_account_id_or_account_self, body)
2131
2205
  end
2132
2206
 
@@ -2174,7 +2248,7 @@ module PlatformAPI
2174
2248
  #
2175
2249
  # @param space_id_or_space_name: unique identifier of space or unique name of space
2176
2250
  # @param body: the object to pass as the request payload
2177
- def update(space_id_or_space_name, body)
2251
+ def update(space_id_or_space_name, body = {})
2178
2252
  @client.space.update(space_id_or_space_name, body)
2179
2253
  end
2180
2254
 
@@ -2188,7 +2262,7 @@ module PlatformAPI
2188
2262
  # Create a new space.
2189
2263
  #
2190
2264
  # @param body: the object to pass as the request payload
2191
- def create(body)
2265
+ def create(body = {})
2192
2266
  @client.space.create(body)
2193
2267
  end
2194
2268
  end
@@ -2203,7 +2277,7 @@ module PlatformAPI
2203
2277
  #
2204
2278
  # @param app_id_or_app_name: unique identifier of app or unique name of app
2205
2279
  # @param body: the object to pass as the request payload
2206
- def create(app_id_or_app_name, body)
2280
+ def create(app_id_or_app_name, body = {})
2207
2281
  @client.ssl_endpoint.create(app_id_or_app_name, body)
2208
2282
  end
2209
2283
 
@@ -2235,7 +2309,7 @@ module PlatformAPI
2235
2309
  # @param app_id_or_app_name: unique identifier of app or unique name of app
2236
2310
  # @param ssl_endpoint_id_or_ssl_endpoint_name: unique identifier of this SSL endpoint or unique name for SSL endpoint
2237
2311
  # @param body: the object to pass as the request payload
2238
- def update(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name, body)
2312
+ def update(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name, body = {})
2239
2313
  @client.ssl_endpoint.update(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name, body)
2240
2314
  end
2241
2315
  end
@@ -2276,7 +2350,7 @@ module PlatformAPI
2276
2350
  #
2277
2351
  # @param user_preferences_self: Implicit reference to currently authorized user
2278
2352
  # @param body: the object to pass as the request payload
2279
- def update(user_preferences_self, body)
2353
+ def update(user_preferences_self, body = {})
2280
2354
  @client.user_preferences.update(user_preferences_self, body)
2281
2355
  end
2282
2356
  end
@@ -2298,7 +2372,7 @@ module PlatformAPI
2298
2372
  #
2299
2373
  # @param organization_name: unique name of organization
2300
2374
  # @param body: the object to pass as the request payload
2301
- def create(organization_name, body)
2375
+ def create(organization_name, body = {})
2302
2376
  @client.whitelisted_addon_service.create(organization_name, body)
2303
2377
  end
2304
2378
 
@@ -3241,6 +3315,92 @@ module PlatformAPI
3241
3315
  }
3242
3316
  }
3243
3317
  },
3318
+ "addon-config": {
3319
+ "description": "Configuration of an Add-on",
3320
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
3321
+ "stability": "development",
3322
+ "strictProperties": true,
3323
+ "title": "Heroku Platform API - Add-on Config",
3324
+ "type": [
3325
+ "object"
3326
+ ],
3327
+ "definitions": {
3328
+ "identity": {
3329
+ "anyOf": [
3330
+ {
3331
+ "$ref": "#/definitions/addon-config/definitions/name"
3332
+ }
3333
+ ]
3334
+ },
3335
+ "name": {
3336
+ "description": "unique name of the config",
3337
+ "example": "FOO",
3338
+ "type": [
3339
+ "string"
3340
+ ]
3341
+ },
3342
+ "value": {
3343
+ "description": "value of the config",
3344
+ "example": "bar",
3345
+ "type": [
3346
+ "string",
3347
+ "null"
3348
+ ]
3349
+ }
3350
+ },
3351
+ "links": [
3352
+ {
3353
+ "description": "Get an add-on's config",
3354
+ "href": "/addons/{(%23%2Fdefinitions%2Faddon%2Fdefinitions%2Fidentity)}/config",
3355
+ "method": "GET",
3356
+ "rel": "instances",
3357
+ "targetSchema": {
3358
+ "items": {
3359
+ "$ref": "#/definitions/addon-config"
3360
+ },
3361
+ "type": [
3362
+ "array"
3363
+ ]
3364
+ },
3365
+ "title": "List"
3366
+ },
3367
+ {
3368
+ "description": "Update an add-on's config.",
3369
+ "href": "/addons/{(%23%2Fdefinitions%2Faddon%2Fdefinitions%2Fidentity)}/config",
3370
+ "method": "PATCH",
3371
+ "rel": "update",
3372
+ "schema": {
3373
+ "properties": {
3374
+ "config": {
3375
+ "items": {
3376
+ "$ref": "#/definitions/addon-config"
3377
+ },
3378
+ "type": [
3379
+ "array"
3380
+ ]
3381
+ }
3382
+ },
3383
+ "type": [
3384
+ "object"
3385
+ ]
3386
+ },
3387
+ "targetSchema": {
3388
+ "items": {
3389
+ "$ref": "#/definitions/addon-config"
3390
+ }
3391
+ },
3392
+ "title": "Update"
3393
+ }
3394
+ ],
3395
+ "properties": {
3396
+ "name": {
3397
+ "$ref": "#/definitions/addon-config/definitions/name"
3398
+ },
3399
+ "value": {
3400
+ "$ref": "#/definitions/addon-config/definitions/value"
3401
+ }
3402
+ }
3403
+ },
3244
3404
  "addon-region-capability": {
3245
3405
  "description": "Add-on region capabilities represent the relationship between an Add-on Service and a specific Region",
3246
3406
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -4809,6 +4969,21 @@ module PlatformAPI
4809
4969
  "object"
4810
4970
  ]
4811
4971
  },
4972
+ "organization": {
4973
+ "description": "identity of organization",
4974
+ "properties": {
4975
+ "id": {
4976
+ "$ref": "#/definitions/organization/definitions/id"
4977
+ },
4978
+ "name": {
4979
+ "$ref": "#/definitions/organization/definitions/name"
4980
+ }
4981
+ },
4982
+ "type": [
4983
+ "null",
4984
+ "object"
4985
+ ]
4986
+ },
4812
4987
  "region": {
4813
4988
  "description": "identity of app region",
4814
4989
  "properties": {
@@ -5028,6 +5203,32 @@ module PlatformAPI
5028
5203
  "string"
5029
5204
  ]
5030
5205
  },
5206
+ "release": {
5207
+ "description": "release resulting from the build",
5208
+ "strictProperties": true,
5209
+ "properties": {
5210
+ "id": {
5211
+ "$ref": "#/definitions/release/definitions/id"
5212
+ }
5213
+ },
5214
+ "example": {
5215
+ "id": "01234567-89ab-cdef-0123-456789abcdef"
5216
+ },
5217
+ "readOnly": true,
5218
+ "type": [
5219
+ "null",
5220
+ "object"
5221
+ ],
5222
+ "definitions": {
5223
+ "id": {
5224
+ "description": "unique identifier of release",
5225
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
5226
+ "type": [
5227
+ "string"
5228
+ ]
5229
+ }
5230
+ }
5231
+ },
5031
5232
  "source_blob": {
5032
5233
  "description": "location of gzipped tarball of source code used to create build",
5033
5234
  "properties": {
@@ -5183,6 +5384,9 @@ module PlatformAPI
5183
5384
  "source_blob": {
5184
5385
  "$ref": "#/definitions/build/definitions/source_blob"
5185
5386
  },
5387
+ "release": {
5388
+ "$ref": "#/definitions/build/definitions/release"
5389
+ },
5186
5390
  "slug": {
5187
5391
  "description": "slug created by this build",
5188
5392
  "properties": {
@@ -5560,13 +5764,13 @@ module PlatformAPI
5560
5764
  "title": "Info"
5561
5765
  },
5562
5766
  {
5563
- "description": "Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `NULL`.",
5767
+ "description": "Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `null`.",
5564
5768
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/config-vars",
5565
5769
  "method": "PATCH",
5566
5770
  "rel": "update",
5567
5771
  "schema": {
5568
5772
  "additionalProperties": false,
5569
- "description": "hash of config changes – update values or delete by seting it to NULL",
5773
+ "description": "hash of config changes – update values or delete by seting it to `null`",
5570
5774
  "example": {
5571
5775
  "FOO": "bar",
5572
5776
  "BAZ": "qux"
@@ -5782,6 +5986,14 @@ module PlatformAPI
5782
5986
  "string"
5783
5987
  ]
5784
5988
  },
5989
+ "status": {
5990
+ "description": "status of this record's cname",
5991
+ "example": "pending",
5992
+ "readOnly": true,
5993
+ "type": [
5994
+ "string"
5995
+ ]
5996
+ },
5785
5997
  "hostname": {
5786
5998
  "description": "full hostname",
5787
5999
  "example": "subdomain.example.com",
@@ -5924,6 +6136,9 @@ module PlatformAPI
5924
6136
  },
5925
6137
  "updated_at": {
5926
6138
  "$ref": "#/definitions/domain/definitions/updated_at"
6139
+ },
6140
+ "status": {
6141
+ "$ref": "#/definitions/domain/definitions/status"
5927
6142
  }
5928
6143
  }
5929
6144
  },
@@ -6046,11 +6261,19 @@ module PlatformAPI
6046
6261
  "type": {
6047
6262
  "description": "type of process",
6048
6263
  "example": "run",
6049
- "readOnly": true,
6264
+ "readOnly": false,
6050
6265
  "type": [
6051
6266
  "string"
6052
6267
  ]
6053
6268
  },
6269
+ "time_to_live": {
6270
+ "description": "seconds until dyno expires, after which it will soon be killed",
6271
+ "example": 1800,
6272
+ "readOnly": false,
6273
+ "type": [
6274
+ "integer"
6275
+ ]
6276
+ },
6054
6277
  "updated_at": {
6055
6278
  "description": "when process last changed state",
6056
6279
  "example": "2012-01-01T12:00:00Z",
@@ -6083,6 +6306,12 @@ module PlatformAPI
6083
6306
  },
6084
6307
  "size": {
6085
6308
  "$ref": "#/definitions/dyno/definitions/size"
6309
+ },
6310
+ "type": {
6311
+ "$ref": "#/definitions/dyno/definitions/type"
6312
+ },
6313
+ "time_to_live": {
6314
+ "$ref": "#/definitions/dyno/definitions/time_to_live"
6086
6315
  }
6087
6316
  },
6088
6317
  "required": [
@@ -8797,21 +9026,6 @@ module PlatformAPI
8797
9026
  "id": {
8798
9027
  "$ref": "#/definitions/collaborator/definitions/id"
8799
9028
  },
8800
- "privileges": {
8801
- "description": "collborator privileges",
8802
- "properties": {
8803
- "description": {
8804
- "type": [
8805
- "string"
8806
- ]
8807
- },
8808
- "name": {
8809
- "type": [
8810
- "string"
8811
- ]
8812
- }
8813
- }
8814
- },
8815
9029
  "role": {
8816
9030
  "$ref": "#/definitions/organization/definitions/role"
8817
9031
  },
@@ -9362,7 +9576,12 @@ module PlatformAPI
9362
9576
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
9363
9577
  "description": "An organization member is an individual with access to an organization.",
9364
9578
  "stability": "prototype",
9365
- "strictProperties": true,
9579
+ "additionalProperties": false,
9580
+ "required": [
9581
+ "created_at",
9582
+ "email",
9583
+ "updated_at"
9584
+ ],
9366
9585
  "title": "Heroku Platform API - Organization Member",
9367
9586
  "type": [
9368
9587
  "object"
@@ -9396,7 +9615,7 @@ module PlatformAPI
9396
9615
  ]
9397
9616
  },
9398
9617
  "two_factor_authentication": {
9399
- "description": "whether the organization member has two factor authentication enabled",
9618
+ "description": "whether the Enterprise organization member has two factor authentication enabled",
9400
9619
  "example": true,
9401
9620
  "readOnly": true,
9402
9621
  "type": [
@@ -10052,6 +10271,172 @@ module PlatformAPI
10052
10271
  }
10053
10272
  }
10054
10273
  },
10274
+ "outbound-ruleset": {
10275
+ "description": "An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with. ",
10276
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
10277
+ "stability": "prototype",
10278
+ "strictProperties": true,
10279
+ "title": "Heroku Platform API - Outbound Ruleset",
10280
+ "type": [
10281
+ "object"
10282
+ ],
10283
+ "definitions": {
10284
+ "target": {
10285
+ "description": "is the target destination in CIDR notation",
10286
+ "example": "1.1.1.1/1",
10287
+ "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$",
10288
+ "readOnly": false,
10289
+ "type": [
10290
+ "string"
10291
+ ]
10292
+ },
10293
+ "created_at": {
10294
+ "description": "when outbound-ruleset was created",
10295
+ "example": "2012-01-01T12:00:00Z",
10296
+ "format": "date-time",
10297
+ "readOnly": true,
10298
+ "type": [
10299
+ "string"
10300
+ ]
10301
+ },
10302
+ "id": {
10303
+ "description": "unique identifier of an outbound-ruleset",
10304
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
10305
+ "format": "uuid",
10306
+ "readOnly": true,
10307
+ "type": [
10308
+ "string"
10309
+ ]
10310
+ },
10311
+ "port": {
10312
+ "description": "an endpoint of communication in an operating system.",
10313
+ "example": 80,
10314
+ "readOnly": false,
10315
+ "type": [
10316
+ "integer"
10317
+ ]
10318
+ },
10319
+ "protocol": {
10320
+ "description": "formal standards and policies comprised of rules, procedures and formats that define communication between two or more devices over a network",
10321
+ "example": "tcp",
10322
+ "readOnly": false,
10323
+ "type": [
10324
+ "string"
10325
+ ]
10326
+ },
10327
+ "identity": {
10328
+ "anyOf": [
10329
+ {
10330
+ "$ref": "#/definitions/outbound-ruleset/definitions/id"
10331
+ }
10332
+ ]
10333
+ },
10334
+ "rule": {
10335
+ "description": "the combination of an IP address in CIDR notation, a from_port, to_port and protocol.",
10336
+ "type": [
10337
+ "object"
10338
+ ],
10339
+ "properties": {
10340
+ "target": {
10341
+ "$ref": "#/definitions/outbound-ruleset/definitions/target"
10342
+ },
10343
+ "from_port": {
10344
+ "$ref": "#/definitions/outbound-ruleset/definitions/port"
10345
+ },
10346
+ "to_port": {
10347
+ "$ref": "#/definitions/outbound-ruleset/definitions/port"
10348
+ },
10349
+ "protocol": {
10350
+ "$ref": "#/definitions/outbound-ruleset/definitions/protocol"
10351
+ }
10352
+ },
10353
+ "required": [
10354
+ "target",
10355
+ "from_port",
10356
+ "to_port",
10357
+ "protocol"
10358
+ ]
10359
+ }
10360
+ },
10361
+ "links": [
10362
+ {
10363
+ "description": "Current outbound ruleset for a space",
10364
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset",
10365
+ "method": "GET",
10366
+ "rel": "self",
10367
+ "targetSchema": {
10368
+ "$ref": "#/definitions/outbound-ruleset"
10369
+ },
10370
+ "title": "Info"
10371
+ },
10372
+ {
10373
+ "description": "Info on an existing Outbound Ruleset",
10374
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets/{(%23%2Fdefinitions%2Foutbound-ruleset%2Fdefinitions%2Fidentity)}",
10375
+ "method": "GET",
10376
+ "rel": "self",
10377
+ "targetSchema": {
10378
+ "$ref": "#/definitions/outbound-ruleset"
10379
+ },
10380
+ "title": "Info"
10381
+ },
10382
+ {
10383
+ "description": "List all Outbound Rulesets for a space",
10384
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets",
10385
+ "method": "GET",
10386
+ "rel": "instances",
10387
+ "targetSchema": {
10388
+ "items": {
10389
+ "$ref": "#/definitions/outbound-ruleset"
10390
+ },
10391
+ "type": [
10392
+ "array"
10393
+ ]
10394
+ },
10395
+ "title": "List"
10396
+ },
10397
+ {
10398
+ "description": "Create a new outbound ruleset",
10399
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset",
10400
+ "method": "PUT",
10401
+ "rel": "create",
10402
+ "schema": {
10403
+ "type": [
10404
+ "object"
10405
+ ],
10406
+ "properties": {
10407
+ "rules": {
10408
+ "type": [
10409
+ "array"
10410
+ ],
10411
+ "items": {
10412
+ "$ref": "#/definitions/outbound-ruleset/definitions/rule"
10413
+ }
10414
+ }
10415
+ }
10416
+ },
10417
+ "title": "Create"
10418
+ }
10419
+ ],
10420
+ "properties": {
10421
+ "id": {
10422
+ "$ref": "#/definitions/outbound-ruleset/definitions/id"
10423
+ },
10424
+ "created_at": {
10425
+ "$ref": "#/definitions/outbound-ruleset/definitions/created_at"
10426
+ },
10427
+ "rules": {
10428
+ "type": [
10429
+ "array"
10430
+ ],
10431
+ "items": {
10432
+ "$ref": "#/definitions/outbound-ruleset/definitions/rule"
10433
+ }
10434
+ },
10435
+ "created_by": {
10436
+ "$ref": "#/definitions/account/definitions/email"
10437
+ }
10438
+ }
10439
+ },
10055
10440
  "password-reset": {
10056
10441
  "description": "A password reset represents a in-process password reset attempt.",
10057
10442
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -11393,6 +11778,21 @@ module PlatformAPI
11393
11778
  }
11394
11779
  ],
11395
11780
  "properties": {
11781
+ "addon_service": {
11782
+ "description": "identity of add-on service",
11783
+ "properties": {
11784
+ "id": {
11785
+ "$ref": "#/definitions/addon-service/definitions/id"
11786
+ },
11787
+ "name": {
11788
+ "$ref": "#/definitions/addon-service/definitions/name"
11789
+ }
11790
+ },
11791
+ "strictProperties": true,
11792
+ "type": [
11793
+ "object"
11794
+ ]
11795
+ },
11396
11796
  "created_at": {
11397
11797
  "$ref": "#/definitions/plan/definitions/created_at"
11398
11798
  },
@@ -11707,6 +12107,19 @@ module PlatformAPI
11707
12107
  "string"
11708
12108
  ]
11709
12109
  },
12110
+ "status": {
12111
+ "description": "current status of the release",
12112
+ "enum": [
12113
+ "failed",
12114
+ "pending",
12115
+ "succeeded"
12116
+ ],
12117
+ "example": "succeeded",
12118
+ "readOnly": true,
12119
+ "type": [
12120
+ "string"
12121
+ ]
12122
+ },
11710
12123
  "id": {
11711
12124
  "description": "unique identifier of release",
11712
12125
  "example": "01234567-89ab-cdef-0123-456789abcdef",
@@ -13403,6 +13816,9 @@ module PlatformAPI
13403
13816
  "addon-attachment": {
13404
13817
  "$ref": "#/definitions/addon-attachment"
13405
13818
  },
13819
+ "addon-config": {
13820
+ "$ref": "#/definitions/addon-config"
13821
+ },
13406
13822
  "addon-region-capability": {
13407
13823
  "$ref": "#/definitions/addon-region-capability"
13408
13824
  },
@@ -13520,6 +13936,9 @@ module PlatformAPI
13520
13936
  "otp-secret": {
13521
13937
  "$ref": "#/definitions/otp-secret"
13522
13938
  },
13939
+ "outbound-ruleset": {
13940
+ "$ref": "#/definitions/outbound-ruleset"
13941
+ },
13523
13942
  "password-reset": {
13524
13943
  "$ref": "#/definitions/password-reset"
13525
13944
  },