platform-api 0.7.0 → 0.8.0

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