platform-api 2.3.0.pre.2 → 3.3.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
  SHA256:
3
- metadata.gz: cdc2f7c6440d1e91a10b2003317bac0681ac285cf223faac5d2dd74590db1f4c
4
- data.tar.gz: 124cab73e0cdf663605521c273cd84c0e4a45904886739d93e798626218afae1
3
+ metadata.gz: 775b3ebd7968c6a1b1020cbbd50d99da0ad114e4029466bb84c18866032806fe
4
+ data.tar.gz: 82c37b81372786f9f17c34fe34e4697b9a69473988f031487d89bd15867687de
5
5
  SHA512:
6
- metadata.gz: b50c53ac27db6516ef37788bec31138ec06c6d5e36bc2ef84def2b4a207a3a2067ec42e772b1226789fd26c3c15963da03cbe158f9e40f15fee55287fc76bb4c
7
- data.tar.gz: c038a1184f775419716b1c070d4cdcf41d501d6c948c2c1f06dd0ea33c7219f1a89d3e72b88c46ae030dc0a73a544b20b38bba817975cc09c7c6a23abae26d57
6
+ metadata.gz: f4cb07e01e08984f9ecf719a3e224b4aba9bb98a32a1958a8b0601a2a9f57bf5e6cb17dfc85f78f7cbb43faff1b4781fb72d01ba376a36fd7996577bb70f71e7
7
+ data.tar.gz: 99ea044167c91df670b2b7eea460a0318b7bfb90be0d5e128ead80c35f3f39add880ec69394544a5465f25ddf3ceb373659c7e5668a31dbbe096d37ceae5d9b6
@@ -1,5 +1,7 @@
1
1
  name: Check Changelog
2
- on: [pull_request]
2
+ on:
3
+ pull_request:
4
+ types: [opened, reopened, edited, synchronize]
3
5
  jobs:
4
6
  build:
5
7
  runs-on: ubuntu-latest
@@ -1,10 +1,22 @@
1
1
  ## Master (unreleased)
2
2
 
3
+ ## 3.3.0
4
+
5
+ - Pull latest JSON Schema and regenerated API.
6
+
7
+ ## 3.2.0
8
+
9
+ - Pull latest JSON Schema and regenerated API.
10
+
11
+ ## 3.1.0
12
+
13
+ - Pull latest JSON Schema and regenerated API.
14
+
3
15
  ## 3.0.0
4
16
 
5
- - Rate throttling is on by default.
17
+ - Rate throttling is on by default. (https://github.com/heroku/platform-api/pull/104)
6
18
 
7
19
  ## 2.3.0
8
20
 
9
- - Changes are now tracked in the CHANGELOG.md
10
- - Rate throttling is included by default but disabled.
21
+ - Changes are now tracked in the CHANGELOG.md.
22
+ - Rate throttling is included by default but disabled. (https://github.com/heroku/platform-api/pull/103)
@@ -9,16 +9,7 @@ Heroics.default_configuration do |config|
9
9
  config.module_name = 'PlatformAPI'
10
10
  config.schema_filepath = File.join(File.expand_path('../..', __FILE__), 'schema.json')
11
11
 
12
- PlatformAPI.rate_throttle = ->(&block) {
13
- @deprecate_on_first ||= begin
14
- message = String.new("[Warning] Starting in PlatformAPI version 3+, requests will include rate throttling logic\n")
15
- message << "to opt-out of this behavior set: `PlatformAPI.rate_throttle = RateThrottleClient::Null.new`\n"
16
- message << "to silence this warning and opt-in to this logic, upgrade to PlatformAPI version 3+"
17
- warn message
18
- true
19
- end
20
- block.call
21
- }
12
+ PlatformAPI.rate_throttle = RateThrottleClient::ExponentialIncreaseProportionalRemainingDecrease.new
22
13
  config.rate_throttle = PlatformAPI.rate_throttle
23
14
  config.acceptable_status_codes = [429]
24
15
 
@@ -83,7 +83,7 @@ module PlatformAPI
83
83
 
84
84
  # Get the default options.
85
85
  def self.default_options
86
- default_headers = {"Accept"=>"application/vnd.heroku+json; version=3", "User-Agent"=>"platform-api/2.3.0.pre.2"}
86
+ default_headers = {"Accept"=>"application/vnd.heroku+json; version=3", "User-Agent"=>"platform-api/3.3.0"}
87
87
  {
88
88
  default_headers: default_headers,
89
89
  url: "https://api.heroku.com"
@@ -112,7 +112,7 @@ module PlatformAPI
112
112
  @account_resource ||= Account.new(@client)
113
113
  end
114
114
 
115
- # Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow whitelisted add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.
115
+ # Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.
116
116
  #
117
117
  # @return [AddonAction]
118
118
  def addon_action
@@ -182,6 +182,13 @@ module PlatformAPI
182
182
  @addon_resource ||= Addon.new(@client)
183
183
  end
184
184
 
185
+ # Entities that have been allowed to be used by a Team
186
+ #
187
+ # @return [AllowedAddonService]
188
+ def allowed_addon_service
189
+ @allowed_addon_service_resource ||= AllowedAddonService.new(@client)
190
+ end
191
+
185
192
  # An app feature represents a Heroku labs capability that can be enabled or disabled for an app on Heroku.
186
193
  #
187
194
  # @return [AppFeature]
@@ -245,6 +252,13 @@ module PlatformAPI
245
252
  @archive_resource ||= Archive.new(@client)
246
253
  end
247
254
 
255
+ # An audit trail event represents some action on the platform
256
+ #
257
+ # @return [AuditTrailEvent]
258
+ def audit_trail_event
259
+ @audit_trail_event_resource ||= AuditTrailEvent.new(@client)
260
+ end
261
+
248
262
  # A build represents the process of transforming a code tarball into a slug
249
263
  #
250
264
  # @return [Build]
@@ -329,13 +343,6 @@ module PlatformAPI
329
343
  @enterprise_account_resource ||= EnterpriseAccount.new(@client)
330
344
  end
331
345
 
332
- # An audit trail event represents some action on the platform
333
- #
334
- # @return [Event]
335
- def event
336
- @event_resource ||= Event.new(@client)
337
- end
338
-
339
346
  # Filters are special endpoints to allow for API consumers to specify a subset of resources to consume in order to reduce the number of requests that are performed. Each filter endpoint endpoint is responsible for determining its supported request format. The endpoints are over POST in order to handle large request bodies without hitting request uri query length limitations, but the requests themselves are idempotent and will not have side effects.
340
347
  #
341
348
  # @return [FilterApps]
@@ -616,6 +623,13 @@ module PlatformAPI
616
623
  @space_nat_resource ||= SpaceNat.new(@client)
617
624
  end
618
625
 
626
+ # Space Topology provides you with a mechanism for viewing all the running dynos, formations and applications for a space. This is the same data thats used to power our DNS Service Discovery.
627
+ #
628
+ # @return [SpaceTopology]
629
+ def space_topology
630
+ @space_topology_resource ||= SpaceTopology.new(@client)
631
+ end
632
+
619
633
  # Transfer spaces between enterprise teams with the same Enterprise Account.
620
634
  #
621
635
  # @return [SpaceTransfer]
@@ -770,7 +784,7 @@ module PlatformAPI
770
784
  @vpn_connection_resource ||= VpnConnection.new(@client)
771
785
  end
772
786
 
773
- # Entities that have been whitelisted to be used by an Team
787
+ # Entities that have been whitelisted to be used by a Team. Deprecated in favor of [Allowed Add-on Service](#allowed-add-on-service) endpoints.
774
788
  #
775
789
  # @return [WhitelistedAddonService]
776
790
  def whitelisted_addon_service
@@ -853,7 +867,7 @@ module PlatformAPI
853
867
  end
854
868
  end
855
869
 
856
- # Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow whitelisted add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.
870
+ # Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.
857
871
  class AddonAction
858
872
  def initialize(client)
859
873
  @client = client
@@ -1181,6 +1195,36 @@ module PlatformAPI
1181
1195
  end
1182
1196
  end
1183
1197
 
1198
+ # Entities that have been allowed to be used by a Team
1199
+ class AllowedAddonService
1200
+ def initialize(client)
1201
+ @client = client
1202
+ end
1203
+
1204
+ # List all allowed add-on services for a team
1205
+ #
1206
+ # @param team_name_or_team_id: unique name of team or unique identifier of team
1207
+ def list_by_team(team_name_or_team_id)
1208
+ @client.allowed_addon_service.list_by_team(team_name_or_team_id)
1209
+ end
1210
+
1211
+ # Allow an Add-on Service
1212
+ #
1213
+ # @param team_name_or_team_id: unique name of team or unique identifier of team
1214
+ # @param body: the object to pass as the request payload
1215
+ def create_by_team(team_name_or_team_id, body = {})
1216
+ @client.allowed_addon_service.create_by_team(team_name_or_team_id, body)
1217
+ end
1218
+
1219
+ # Remove an allowed add-on service
1220
+ #
1221
+ # @param team_name_or_team_id: unique name of team or unique identifier of team
1222
+ # @param allowed_addon_service_id_or_addon_service_name: unique identifier for this allowed add-on service record or unique name of this add-on-service
1223
+ def delete_by_team(team_name_or_team_id, allowed_addon_service_id_or_addon_service_name)
1224
+ @client.allowed_addon_service.delete_by_team(team_name_or_team_id, allowed_addon_service_id_or_addon_service_name)
1225
+ end
1226
+ end
1227
+
1184
1228
  # An app feature represents a Heroku labs capability that can be enabled or disabled for an app on Heroku.
1185
1229
  class AppFeature
1186
1230
  def initialize(client)
@@ -1464,6 +1508,20 @@ module PlatformAPI
1464
1508
  end
1465
1509
  end
1466
1510
 
1511
+ # An audit trail event represents some action on the platform
1512
+ class AuditTrailEvent
1513
+ def initialize(client)
1514
+ @client = client
1515
+ end
1516
+
1517
+ # List existing events. Returns all events for one date, defaulting to current date. Order, actor, action, and type, and date query params can be specified as query parameters. For example, '/enterprise-accounts/:id/events?order=desc&actor=user@example.com&action=create&type=app&date=2020-09-30' would return events in descending order and only return app created events by the user with user@example.com email address.
1518
+ #
1519
+ # @param enterprise_account_id: unique identifier of the enterprise account
1520
+ def list(enterprise_account_id)
1521
+ @client.audit_trail_event.list(enterprise_account_id)
1522
+ end
1523
+ end
1524
+
1467
1525
  # A build represents the process of transforming a code tarball into a slug
1468
1526
  class Build
1469
1527
  def initialize(client)
@@ -1623,6 +1681,14 @@ module PlatformAPI
1623
1681
  @client = client
1624
1682
  end
1625
1683
 
1684
+ # Create a new domain. Deprecated in favor of this same endpoint, but with a new required attribute of `sni_endpoint`. During the transitional phase sni_endpoint can be omitted entirely (current behavior), can be a valid id, or can be null which will skip auto-association.
1685
+ #
1686
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
1687
+ # @param body: the object to pass as the request payload
1688
+ def create_deprecated(app_id_or_app_name, body = {})
1689
+ @client.domain.create_deprecated(app_id_or_app_name, body)
1690
+ end
1691
+
1626
1692
  # Create a new domain.
1627
1693
  #
1628
1694
  # @param app_id_or_app_name: unique identifier of app or unique name of app
@@ -1631,6 +1697,15 @@ module PlatformAPI
1631
1697
  @client.domain.create(app_id_or_app_name, body)
1632
1698
  end
1633
1699
 
1700
+ # Associate an SNI endpoint
1701
+ #
1702
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
1703
+ # @param domain_id_or_domain_hostname: unique identifier of this domain or full hostname
1704
+ # @param body: the object to pass as the request payload
1705
+ def update(app_id_or_app_name, domain_id_or_domain_hostname, body = {})
1706
+ @client.domain.update(app_id_or_app_name, domain_id_or_domain_hostname, body)
1707
+ end
1708
+
1634
1709
  # Delete an existing domain
1635
1710
  #
1636
1711
  # @param app_id_or_app_name: unique identifier of app or unique name of app
@@ -1821,20 +1896,6 @@ module PlatformAPI
1821
1896
  end
1822
1897
  end
1823
1898
 
1824
- # An audit trail event represents some action on the platform
1825
- class Event
1826
- def initialize(client)
1827
- @client = client
1828
- end
1829
-
1830
- # List existing events.
1831
- #
1832
- # @param enterprise_account_id: unique identifier of the enterprise account
1833
- def list(enterprise_account_id)
1834
- @client.event.list(enterprise_account_id)
1835
- end
1836
- end
1837
-
1838
1899
  # Filters are special endpoints to allow for API consumers to specify a subset of resources to consume in order to reduce the number of requests that are performed. Each filter endpoint endpoint is responsible for determining its supported request format. The endpoints are over POST in order to handle large request bodies without hitting request uri query length limitations, but the requests themselves are idempotent and will not have side effects.
1839
1900
  class FilterApps
1840
1901
  def initialize(client)
@@ -2907,6 +2968,20 @@ module PlatformAPI
2907
2968
  end
2908
2969
  end
2909
2970
 
2971
+ # Space Topology provides you with a mechanism for viewing all the running dynos, formations and applications for a space. This is the same data thats used to power our DNS Service Discovery.
2972
+ class SpaceTopology
2973
+ def initialize(client)
2974
+ @client = client
2975
+ end
2976
+
2977
+ # Current space topology
2978
+ #
2979
+ # @param space_id_or_space_name: unique identifier of space or unique name of space
2980
+ def topology(space_id_or_space_name)
2981
+ @client.space_topology.topology(space_id_or_space_name)
2982
+ end
2983
+ end
2984
+
2910
2985
  # Transfer spaces between enterprise teams with the same Enterprise Account.
2911
2986
  class SpaceTransfer
2912
2987
  def initialize(client)
@@ -3338,7 +3413,7 @@ module PlatformAPI
3338
3413
  @client = client
3339
3414
  end
3340
3415
 
3341
- # Retrieves usage for an enterprise team for a range of days. Start and end dates can be specified as query parameters using the date format, YYYY-MM-DD format. For example, '/teams/example-team/usage?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.
3416
+ # Retrieves usage for an enterprise team for a range of days. Start and end dates can be specified as query parameters using the date format, YYYY-MM-DD format. For example, '/teams/example-team/usage/daily?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.
3342
3417
  #
3343
3418
  # @param team_id: unique identifier of team
3344
3419
  def info(team_id)
@@ -3352,7 +3427,7 @@ module PlatformAPI
3352
3427
  @client = client
3353
3428
  end
3354
3429
 
3355
- # Retrieves usage for an enterprise team for a range of months. Start and end dates can be specified as query parameters using the date format, YYYY-MM format. For example, '/teams/example-team/usage?start=2019-01&end=2019-02' specifies usage in January and February for 2019. If no end date is specified, one month of usage is returned.
3430
+ # Retrieves usage for an enterprise team for a range of months. Start and end dates can be specified as query parameters using the date format, YYYY-MM format. For example, '/teams/example-team/usage/monthly?start=2019-01&end=2019-02' specifies usage in January and February for 2019. If no end date is specified, one month of usage is returned.
3356
3431
  #
3357
3432
  # @param team_id: unique identifier of team
3358
3433
  def info(team_id)
@@ -3546,35 +3621,44 @@ module PlatformAPI
3546
3621
  def info(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name)
3547
3622
  @client.vpn_connection.info(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name)
3548
3623
  end
3624
+
3625
+ # Update a VPN connection in a private space.
3626
+ #
3627
+ # @param space_id_or_space_name: unique identifier of space or unique name of space
3628
+ # @param vpn_connection_id_or_vpn_connection_name: VPN ID or VPN Name
3629
+ # @param body: the object to pass as the request payload
3630
+ def update(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name, body = {})
3631
+ @client.vpn_connection.update(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name, body)
3632
+ end
3549
3633
  end
3550
3634
 
3551
- # Entities that have been whitelisted to be used by an Team
3635
+ # Entities that have been whitelisted to be used by a Team. Deprecated in favor of [Allowed Add-on Service](#allowed-add-on-service) endpoints.
3552
3636
  class WhitelistedAddonService
3553
3637
  def initialize(client)
3554
3638
  @client = client
3555
3639
  end
3556
3640
 
3557
- # List all whitelisted Add-on Services for an Team
3641
+ # List all whitelisted Add-on Services for a Team - Deprecated in favor of [`GET /teams/{team_name_or_id}/allowed-addon-services`](#allowed-add-on-service-list-by-team) endpoint.
3558
3642
  #
3559
3643
  # @param team_name_or_team_id: unique name of team or unique identifier of team
3560
- def list_by_team(team_name_or_team_id)
3561
- @client.whitelisted_addon_service.list_by_team(team_name_or_team_id)
3644
+ def list_by_team_deprecated(team_name_or_team_id)
3645
+ @client.whitelisted_addon_service.list_by_team_deprecated(team_name_or_team_id)
3562
3646
  end
3563
3647
 
3564
- # Whitelist an Add-on Service
3648
+ # Whitelist an Add-on Service - Deprecated in favor of [`POST /teams/{team_name_or_id}/allowed-addon-services`](#allowed-add-on-service-create-by-team) endpoint.
3565
3649
  #
3566
3650
  # @param team_name_or_team_id: unique name of team or unique identifier of team
3567
3651
  # @param body: the object to pass as the request payload
3568
- def create_by_team(team_name_or_team_id, body = {})
3569
- @client.whitelisted_addon_service.create_by_team(team_name_or_team_id, body)
3652
+ def create_by_team_deprecated(team_name_or_team_id, body = {})
3653
+ @client.whitelisted_addon_service.create_by_team_deprecated(team_name_or_team_id, body)
3570
3654
  end
3571
3655
 
3572
- # Remove a whitelisted entity
3656
+ # Remove a whitelisted entity - Deprecated in favor of [`DELETE /teams/{team_name_or_id}/allowed-addon-services/{allowed_add_on_service_id_or_name}`](#allowed-add-on-service-delete-by-team) endpoint.
3573
3657
  #
3574
3658
  # @param team_name_or_team_id: unique name of team or unique identifier of team
3575
3659
  # @param whitelisted_addon_service_id_or_addon_service_name: unique identifier for this whitelisting entity or unique name of this add-on-service
3576
- def delete_by_team(team_name_or_team_id, whitelisted_addon_service_id_or_addon_service_name)
3577
- @client.whitelisted_addon_service.delete_by_team(team_name_or_team_id, whitelisted_addon_service_id_or_addon_service_name)
3660
+ def delete_by_team_deprecated(team_name_or_team_id, whitelisted_addon_service_id_or_addon_service_name)
3661
+ @client.whitelisted_addon_service.delete_by_team_deprecated(team_name_or_team_id, whitelisted_addon_service_id_or_addon_service_name)
3578
3662
  end
3579
3663
  end
3580
3664
 
@@ -3809,6 +3893,15 @@ module PlatformAPI
3809
3893
  "string"
3810
3894
  ]
3811
3895
  },
3896
+ "country_of_residence": {
3897
+ "description": "country where account owner resides",
3898
+ "example": "United States",
3899
+ "readOnly": false,
3900
+ "type": [
3901
+ "string",
3902
+ "null"
3903
+ ]
3904
+ },
3812
3905
  "email": {
3813
3906
  "description": "unique email address of account",
3814
3907
  "example": "username@example.com",
@@ -3940,6 +4033,46 @@ module PlatformAPI
3940
4033
  "type": [
3941
4034
  "boolean"
3942
4035
  ]
4036
+ },
4037
+ "acknowledged_msa": {
4038
+ "deprecated": true,
4039
+ "description": "deprecated. whether account has acknowledged the MSA terms of service",
4040
+ "example": false,
4041
+ "readOnly": true,
4042
+ "type": [
4043
+ "boolean"
4044
+ ]
4045
+ },
4046
+ "acknowledged_msa_at": {
4047
+ "deprecated": true,
4048
+ "description": "deprecated. when account has acknowledged the MSA terms of service",
4049
+ "example": "2012-01-01T12:00:00Z",
4050
+ "format": "date-time",
4051
+ "readOnly": true,
4052
+ "type": [
4053
+ "string",
4054
+ "null"
4055
+ ]
4056
+ },
4057
+ "italian_customer_terms": {
4058
+ "deprecated": true,
4059
+ "description": "deprecated. whether account has acknowledged the Italian customer terms of service",
4060
+ "example": "affirmatively_accepted",
4061
+ "readOnly": true,
4062
+ "type": [
4063
+ "string",
4064
+ "null"
4065
+ ]
4066
+ },
4067
+ "italian_partner_terms": {
4068
+ "deprecated": true,
4069
+ "description": "deprecated. whether account has acknowledged the Italian provider terms of service",
4070
+ "example": "affirmatively_accepted",
4071
+ "readOnly": true,
4072
+ "type": [
4073
+ "string",
4074
+ "null"
4075
+ ]
3943
4076
  }
3944
4077
  },
3945
4078
  "links": [
@@ -4153,6 +4286,21 @@ module PlatformAPI
4153
4286
  "verified": {
4154
4287
  "$ref": "#/definitions/account/definitions/verified"
4155
4288
  },
4289
+ "acknowledged_msa": {
4290
+ "$ref": "#/definitions/account/definitions/acknowledged_msa"
4291
+ },
4292
+ "acknowledged_msa_at": {
4293
+ "$ref": "#/definitions/account/definitions/acknowledged_msa_at"
4294
+ },
4295
+ "italian_customer_terms": {
4296
+ "$ref": "#/definitions/account/definitions/italian_customer_terms"
4297
+ },
4298
+ "italian_partner_terms": {
4299
+ "$ref": "#/definitions/account/definitions/italian_partner_terms"
4300
+ },
4301
+ "country_of_residence": {
4302
+ "$ref": "#/definitions/account/definitions/country_of_residence"
4303
+ },
4156
4304
  "default_organization": {
4157
4305
  "description": "team selected by default",
4158
4306
  "properties": {
@@ -4188,7 +4336,7 @@ module PlatformAPI
4188
4336
  }
4189
4337
  },
4190
4338
  "add-on-action": {
4191
- "description": "Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow whitelisted add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.",
4339
+ "description": "Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.",
4192
4340
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
4193
4341
  "stability": "development",
4194
4342
  "strictProperties": true,
@@ -5721,6 +5869,157 @@ module PlatformAPI
5721
5869
  }
5722
5870
  }
5723
5871
  },
5872
+ "allowed-add-on-service": {
5873
+ "description": "Entities that have been allowed to be used by a Team",
5874
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
5875
+ "stability": "prototype",
5876
+ "strictProperties": true,
5877
+ "title": "Heroku Platform API - Allowed Add-on Service",
5878
+ "type": [
5879
+ "object"
5880
+ ],
5881
+ "definitions": {
5882
+ "added_at": {
5883
+ "description": "when the add-on service was allowed",
5884
+ "example": "2012-01-01T12:00:00Z",
5885
+ "format": "date-time",
5886
+ "readOnly": true,
5887
+ "type": [
5888
+ "string"
5889
+ ]
5890
+ },
5891
+ "added_by": {
5892
+ "description": "the user which allowed the add-on service",
5893
+ "properties": {
5894
+ "email": {
5895
+ "$ref": "#/definitions/account/definitions/email",
5896
+ "type": [
5897
+ "string",
5898
+ "null"
5899
+ ]
5900
+ },
5901
+ "id": {
5902
+ "$ref": "#/definitions/account/definitions/id",
5903
+ "type": [
5904
+ "string",
5905
+ "null"
5906
+ ]
5907
+ }
5908
+ },
5909
+ "readOnly": true,
5910
+ "type": [
5911
+ "object"
5912
+ ]
5913
+ },
5914
+ "addon_service": {
5915
+ "description": "the add-on service allowed for use",
5916
+ "properties": {
5917
+ "id": {
5918
+ "$ref": "#/definitions/add-on-service/definitions/id"
5919
+ },
5920
+ "name": {
5921
+ "$ref": "#/definitions/add-on-service/definitions/name"
5922
+ },
5923
+ "human_name": {
5924
+ "$ref": "#/definitions/add-on-service/definitions/human_name"
5925
+ }
5926
+ },
5927
+ "readOnly": true,
5928
+ "type": [
5929
+ "object"
5930
+ ]
5931
+ },
5932
+ "id": {
5933
+ "description": "unique identifier for this allowed add-on service record",
5934
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
5935
+ "format": "uuid",
5936
+ "readOnly": true,
5937
+ "type": [
5938
+ "string"
5939
+ ]
5940
+ },
5941
+ "identity": {
5942
+ "anyOf": [
5943
+ {
5944
+ "$ref": "#/definitions/allowed-add-on-service/definitions/id"
5945
+ },
5946
+ {
5947
+ "$ref": "#/definitions/add-on-service/definitions/name"
5948
+ }
5949
+ ]
5950
+ }
5951
+ },
5952
+ "links": [
5953
+ {
5954
+ "description": "List all allowed add-on services for a team",
5955
+ "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/allowed-addon-services",
5956
+ "method": "GET",
5957
+ "rel": "instances",
5958
+ "targetSchema": {
5959
+ "items": {
5960
+ "$ref": "#/definitions/allowed-add-on-service"
5961
+ },
5962
+ "type": [
5963
+ "array"
5964
+ ]
5965
+ },
5966
+ "title": "List By Team"
5967
+ },
5968
+ {
5969
+ "description": "Allow an Add-on Service",
5970
+ "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/allowed-addon-services",
5971
+ "method": "POST",
5972
+ "rel": "create",
5973
+ "schema": {
5974
+ "type": [
5975
+ "object"
5976
+ ],
5977
+ "properties": {
5978
+ "addon_service": {
5979
+ "description": "name of the add-on service to allow",
5980
+ "example": "heroku-postgresql",
5981
+ "type": [
5982
+ "string"
5983
+ ]
5984
+ }
5985
+ }
5986
+ },
5987
+ "targetSchema": {
5988
+ "items": {
5989
+ "$ref": "#/definitions/allowed-add-on-service"
5990
+ },
5991
+ "type": [
5992
+ "array"
5993
+ ]
5994
+ },
5995
+ "title": "Create By Team"
5996
+ },
5997
+ {
5998
+ "description": "Remove an allowed add-on service",
5999
+ "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/allowed-addon-services/{(%23%2Fdefinitions%2Fallowed-add-on-service%2Fdefinitions%2Fidentity)}",
6000
+ "method": "DELETE",
6001
+ "rel": "destroy",
6002
+ "targetSchema": {
6003
+ "$ref": "#/definitions/allowed-add-on-service"
6004
+ },
6005
+ "title": "Delete By Team"
6006
+ }
6007
+ ],
6008
+ "properties": {
6009
+ "added_at": {
6010
+ "$ref": "#/definitions/allowed-add-on-service/definitions/added_at"
6011
+ },
6012
+ "added_by": {
6013
+ "$ref": "#/definitions/allowed-add-on-service/definitions/added_by"
6014
+ },
6015
+ "addon_service": {
6016
+ "$ref": "#/definitions/allowed-add-on-service/definitions/addon_service"
6017
+ },
6018
+ "id": {
6019
+ "$ref": "#/definitions/allowed-add-on-service/definitions/id"
6020
+ }
6021
+ }
6022
+ },
5724
6023
  "app-feature": {
5725
6024
  "description": "An app feature represents a Heroku labs capability that can be enabled or disabled for an app on Heroku.",
5726
6025
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -7609,7 +7908,7 @@ module PlatformAPI
7609
7908
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
7610
7909
  "title": "Heroku Platform API - Audit Trail Archive",
7611
7910
  "description": "An audit trail archive represents a monthly json zipped file containing events",
7612
- "stability": "development",
7911
+ "stability": "production",
7613
7912
  "strictProperties": true,
7614
7913
  "type": [
7615
7914
  "object"
@@ -7628,12 +7927,24 @@ module PlatformAPI
7628
7927
  },
7629
7928
  "month": {
7630
7929
  "description": "month of the archive",
7631
- "example": 10,
7930
+ "enum": [
7931
+ "01",
7932
+ "02",
7933
+ "03",
7934
+ "04",
7935
+ "05",
7936
+ "06",
7937
+ "07",
7938
+ "08",
7939
+ "09",
7940
+ "10",
7941
+ "11",
7942
+ "12"
7943
+ ],
7944
+ "example": "10",
7632
7945
  "readOnly": true,
7633
- "minimum": 1,
7634
- "maximum": 12,
7635
7946
  "type": [
7636
- "integer"
7947
+ "string"
7637
7948
  ]
7638
7949
  },
7639
7950
  "year": {
@@ -7712,6 +8023,215 @@ module PlatformAPI
7712
8023
  }
7713
8024
  }
7714
8025
  },
8026
+ "audit-trail-event": {
8027
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
8028
+ "title": "Heroku Platform API - Audit Trail Event",
8029
+ "description": "An audit trail event represents some action on the platform",
8030
+ "stability": "production",
8031
+ "strictProperties": true,
8032
+ "type": [
8033
+ "object"
8034
+ ],
8035
+ "definitions": {
8036
+ "id": {
8037
+ "description": "unique identifier of event",
8038
+ "readOnly": true,
8039
+ "format": "uuid",
8040
+ "type": [
8041
+ "string"
8042
+ ]
8043
+ },
8044
+ "type": {
8045
+ "description": "type of event",
8046
+ "readOnly": true,
8047
+ "type": [
8048
+ "string"
8049
+ ]
8050
+ },
8051
+ "action": {
8052
+ "description": "action for the event",
8053
+ "readOnly": true,
8054
+ "type": [
8055
+ "string"
8056
+ ]
8057
+ },
8058
+ "actor": {
8059
+ "description": "user who caused event",
8060
+ "readOnly": true,
8061
+ "type": [
8062
+ "object"
8063
+ ],
8064
+ "properties": {
8065
+ "id": {
8066
+ "format": "uuid",
8067
+ "type": [
8068
+ "string"
8069
+ ]
8070
+ },
8071
+ "email": {
8072
+ "format": "email",
8073
+ "type": [
8074
+ "string"
8075
+ ]
8076
+ }
8077
+ }
8078
+ },
8079
+ "app": {
8080
+ "description": "app upon which event took place",
8081
+ "readOnly": true,
8082
+ "type": [
8083
+ "object"
8084
+ ],
8085
+ "properties": {
8086
+ "id": {
8087
+ "format": "uuid",
8088
+ "type": [
8089
+ "string"
8090
+ ]
8091
+ },
8092
+ "name": {
8093
+ "type": [
8094
+ "string"
8095
+ ]
8096
+ }
8097
+ }
8098
+ },
8099
+ "owner": {
8100
+ "description": "owner of the app targeted by the event",
8101
+ "readOnly": true,
8102
+ "type": [
8103
+ "object"
8104
+ ],
8105
+ "properties": {
8106
+ "id": {
8107
+ "format": "uuid",
8108
+ "type": [
8109
+ "string"
8110
+ ]
8111
+ },
8112
+ "email": {
8113
+ "format": "email",
8114
+ "type": [
8115
+ "string"
8116
+ ]
8117
+ }
8118
+ }
8119
+ },
8120
+ "enterprise_account": {
8121
+ "description": "enterprise account on which the event happened",
8122
+ "readOnly": true,
8123
+ "type": [
8124
+ "object"
8125
+ ],
8126
+ "properties": {
8127
+ "id": {
8128
+ "format": "uuid",
8129
+ "type": [
8130
+ "string"
8131
+ ]
8132
+ },
8133
+ "name": {
8134
+ "type": [
8135
+ "string"
8136
+ ]
8137
+ }
8138
+ }
8139
+ },
8140
+ "team": {
8141
+ "description": "team on which the event happened",
8142
+ "readOnly": true,
8143
+ "type": [
8144
+ "object"
8145
+ ],
8146
+ "properties": {
8147
+ "id": {
8148
+ "format": "uuid",
8149
+ "type": [
8150
+ "string"
8151
+ ]
8152
+ },
8153
+ "name": {
8154
+ "type": [
8155
+ "string"
8156
+ ]
8157
+ }
8158
+ }
8159
+ },
8160
+ "request": {
8161
+ "description": "information about where the action was triggered",
8162
+ "readOnly": true,
8163
+ "type": [
8164
+ "object"
8165
+ ],
8166
+ "properties": {
8167
+ "ip_address": {
8168
+ "format": "ipv4",
8169
+ "type": [
8170
+ "string"
8171
+ ]
8172
+ }
8173
+ }
8174
+ },
8175
+ "data": {
8176
+ "description": "data specific to the event",
8177
+ "readOnly": true,
8178
+ "type": [
8179
+ "object"
8180
+ ]
8181
+ },
8182
+ "created_at": {
8183
+ "description": "when event was created",
8184
+ "format": "date-time",
8185
+ "type": [
8186
+ "string"
8187
+ ]
8188
+ }
8189
+ },
8190
+ "links": [
8191
+ {
8192
+ "description": "List existing events. Returns all events for one date, defaulting to current date. Order, actor, action, and type, and date query params can be specified as query parameters. For example, '/enterprise-accounts/:id/events?order=desc&actor=user@example.com&action=create&type=app&date=2020-09-30' would return events in descending order and only return app created events by the user with user@example.com email address.",
8193
+ "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fidentity)}/events",
8194
+ "method": "GET",
8195
+ "rel": "instances",
8196
+ "title": "List"
8197
+ }
8198
+ ],
8199
+ "properties": {
8200
+ "created_at": {
8201
+ "$ref": "#/definitions/audit-trail-event/definitions/created_at"
8202
+ },
8203
+ "id": {
8204
+ "$ref": "#/definitions/audit-trail-event/definitions/id"
8205
+ },
8206
+ "type": {
8207
+ "$ref": "#/definitions/audit-trail-event/definitions/type"
8208
+ },
8209
+ "action": {
8210
+ "$ref": "#/definitions/audit-trail-event/definitions/action"
8211
+ },
8212
+ "actor": {
8213
+ "$ref": "#/definitions/audit-trail-event/definitions/actor"
8214
+ },
8215
+ "app": {
8216
+ "$ref": "#/definitions/audit-trail-event/definitions/app"
8217
+ },
8218
+ "owner": {
8219
+ "$ref": "#/definitions/audit-trail-event/definitions/owner"
8220
+ },
8221
+ "enterprise_account": {
8222
+ "$ref": "#/definitions/audit-trail-event/definitions/enterprise_account"
8223
+ },
8224
+ "team": {
8225
+ "$ref": "#/definitions/audit-trail-event/definitions/team"
8226
+ },
8227
+ "request": {
8228
+ "$ref": "#/definitions/audit-trail-event/definitions/request"
8229
+ },
8230
+ "data": {
8231
+ "$ref": "#/definitions/audit-trail-event/definitions/data"
8232
+ }
8233
+ }
8234
+ },
7715
8235
  "build": {
7716
8236
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
7717
8237
  "description": "A build represents the process of transforming a code tarball into a slug",
@@ -8674,11 +9194,19 @@ module PlatformAPI
8674
9194
  "type": [
8675
9195
  "string"
8676
9196
  ]
9197
+ },
9198
+ "sni_endpoint": {
9199
+ "description": "null or unique identifier or name for SNI endpoint",
9200
+ "type": [
9201
+ "null",
9202
+ "string"
9203
+ ]
8677
9204
  }
8678
9205
  },
8679
9206
  "links": [
8680
9207
  {
8681
- "description": "Create a new domain.",
9208
+ "deactivate_on": "2021-10-31",
9209
+ "description": "Create a new domain. Deprecated in favor of this same endpoint, but with a new required attribute of `sni_endpoint`. During the transitional phase sni_endpoint can be omitted entirely (current behavior), can be a valid id, or can be null which will skip auto-association.",
8682
9210
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains",
8683
9211
  "method": "POST",
8684
9212
  "rel": "create",
@@ -8698,8 +9226,58 @@ module PlatformAPI
8698
9226
  "targetSchema": {
8699
9227
  "$ref": "#/definitions/domain"
8700
9228
  },
9229
+ "title": "Create - Deprecated"
9230
+ },
9231
+ {
9232
+ "description": "Create a new domain.",
9233
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains",
9234
+ "method": "POST",
9235
+ "rel": "create",
9236
+ "schema": {
9237
+ "properties": {
9238
+ "hostname": {
9239
+ "$ref": "#/definitions/domain/definitions/hostname"
9240
+ },
9241
+ "sni_endpoint": {
9242
+ "$ref": "#/definitions/domain/definitions/sni_endpoint"
9243
+ }
9244
+ },
9245
+ "required": [
9246
+ "hostname",
9247
+ "sni_endpoint"
9248
+ ],
9249
+ "type": [
9250
+ "object"
9251
+ ]
9252
+ },
9253
+ "targetSchema": {
9254
+ "$ref": "#/definitions/domain"
9255
+ },
8701
9256
  "title": "Create"
8702
9257
  },
9258
+ {
9259
+ "description": "Associate an SNI endpoint",
9260
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains/{(%23%2Fdefinitions%2Fdomain%2Fdefinitions%2Fidentity)}",
9261
+ "method": "PATCH",
9262
+ "rel": "update",
9263
+ "schema": {
9264
+ "properties": {
9265
+ "sni_endpoint": {
9266
+ "$ref": "#/definitions/domain/definitions/sni_endpoint"
9267
+ }
9268
+ },
9269
+ "required": [
9270
+ "sni_endpoint"
9271
+ ],
9272
+ "type": [
9273
+ "object"
9274
+ ]
9275
+ },
9276
+ "targetSchema": {
9277
+ "$ref": "#/definitions/domain"
9278
+ },
9279
+ "title": "Update"
9280
+ },
8703
9281
  {
8704
9282
  "description": "Delete an existing domain",
8705
9283
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains/{(%23%2Fdefinitions%2Fdomain%2Fdefinitions%2Fidentity)}",
@@ -8777,6 +9355,21 @@ module PlatformAPI
8777
9355
  },
8778
9356
  "status": {
8779
9357
  "$ref": "#/definitions/domain/definitions/status"
9358
+ },
9359
+ "sni_endpoint": {
9360
+ "description": "sni endpoint the domain is associated with",
9361
+ "properties": {
9362
+ "name": {
9363
+ "$ref": "#/definitions/sni-endpoint/definitions/name"
9364
+ },
9365
+ "id": {
9366
+ "$ref": "#/definitions/sni-endpoint/definitions/id"
9367
+ }
9368
+ },
9369
+ "type": [
9370
+ "null",
9371
+ "object"
9372
+ ]
8780
9373
  }
8781
9374
  }
8782
9375
  },
@@ -9581,8 +10174,8 @@ module PlatformAPI
9581
10174
  "description": "Retrieves usage for an enterprise account for a range of days. Start and end dates can be specified as query parameters using the date format, YYYY-MM-DD format. For example, '/enterprise-accounts/example-account/usage/daily?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.",
9582
10175
  "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fid)}/usage/daily",
9583
10176
  "method": "GET",
9584
- "title": "Info",
9585
10177
  "rel": "instances",
10178
+ "title": "Info",
9586
10179
  "targetSchema": {
9587
10180
  "items": {
9588
10181
  "$ref": "#/definitions/enterprise-account-usage-daily"
@@ -10002,222 +10595,6 @@ module PlatformAPI
10002
10595
  }
10003
10596
  }
10004
10597
  },
10005
- "event": {
10006
- "$schema": "http://json-schema.org/draft-04/hyper-schema",
10007
- "title": "Heroku Platform API - Audit Trail Event",
10008
- "description": "An audit trail event represents some action on the platform",
10009
- "stability": "development",
10010
- "strictProperties": true,
10011
- "type": [
10012
- "object"
10013
- ],
10014
- "definitions": {
10015
- "id": {
10016
- "description": "unique identifier of event",
10017
- "readOnly": true,
10018
- "format": "uuid",
10019
- "type": [
10020
- "string"
10021
- ]
10022
- },
10023
- "identity": {
10024
- "anyOf": [
10025
- {
10026
- "$ref": "#/definitions/event/definitions/id"
10027
- }
10028
- ]
10029
- },
10030
- "type": {
10031
- "description": "type of event",
10032
- "readOnly": true,
10033
- "type": [
10034
- "string"
10035
- ]
10036
- },
10037
- "action": {
10038
- "description": "action for the event",
10039
- "readOnly": true,
10040
- "type": [
10041
- "string"
10042
- ]
10043
- },
10044
- "actor": {
10045
- "description": "user who caused event",
10046
- "readOnly": true,
10047
- "type": [
10048
- "object"
10049
- ],
10050
- "properties": {
10051
- "id": {
10052
- "format": "uuid",
10053
- "type": [
10054
- "string"
10055
- ]
10056
- },
10057
- "email": {
10058
- "format": "email",
10059
- "type": [
10060
- "string"
10061
- ]
10062
- }
10063
- }
10064
- },
10065
- "app": {
10066
- "description": "app upon which event took place",
10067
- "readOnly": true,
10068
- "type": [
10069
- "object"
10070
- ],
10071
- "properties": {
10072
- "id": {
10073
- "format": "uuid",
10074
- "type": [
10075
- "string"
10076
- ]
10077
- },
10078
- "name": {
10079
- "type": [
10080
- "string"
10081
- ]
10082
- }
10083
- }
10084
- },
10085
- "owner": {
10086
- "description": "owner of the app targeted by the event",
10087
- "readOnly": true,
10088
- "type": [
10089
- "object"
10090
- ],
10091
- "properties": {
10092
- "id": {
10093
- "format": "uuid",
10094
- "type": [
10095
- "string"
10096
- ]
10097
- },
10098
- "email": {
10099
- "format": "email",
10100
- "type": [
10101
- "string"
10102
- ]
10103
- }
10104
- }
10105
- },
10106
- "enterprise_account": {
10107
- "description": "enterprise account on which the event happened",
10108
- "readOnly": true,
10109
- "type": [
10110
- "object"
10111
- ],
10112
- "properties": {
10113
- "id": {
10114
- "format": "uuid",
10115
- "type": [
10116
- "string"
10117
- ]
10118
- },
10119
- "name": {
10120
- "type": [
10121
- "string"
10122
- ]
10123
- }
10124
- }
10125
- },
10126
- "team": {
10127
- "description": "team on which the event happened",
10128
- "readOnly": true,
10129
- "type": [
10130
- "object"
10131
- ],
10132
- "properties": {
10133
- "id": {
10134
- "format": "uuid",
10135
- "type": [
10136
- "string"
10137
- ]
10138
- },
10139
- "name": {
10140
- "type": [
10141
- "string"
10142
- ]
10143
- }
10144
- }
10145
- },
10146
- "request": {
10147
- "description": "information about where the action was triggered",
10148
- "readOnly": true,
10149
- "type": [
10150
- "object"
10151
- ],
10152
- "properties": {
10153
- "ip_address": {
10154
- "format": "ipv4",
10155
- "type": [
10156
- "string"
10157
- ]
10158
- }
10159
- }
10160
- },
10161
- "data": {
10162
- "description": "data specific to the event",
10163
- "readOnly": true,
10164
- "type": [
10165
- "object"
10166
- ]
10167
- },
10168
- "created_at": {
10169
- "description": "when event was created",
10170
- "format": "date-time",
10171
- "type": [
10172
- "string"
10173
- ]
10174
- }
10175
- },
10176
- "links": [
10177
- {
10178
- "description": "List existing events.",
10179
- "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fidentity)}/events",
10180
- "method": "GET",
10181
- "rel": "instances",
10182
- "title": "List"
10183
- }
10184
- ],
10185
- "properties": {
10186
- "created_at": {
10187
- "$ref": "#/definitions/event/definitions/created_at"
10188
- },
10189
- "id": {
10190
- "$ref": "#/definitions/event/definitions/id"
10191
- },
10192
- "type": {
10193
- "$ref": "#/definitions/event/definitions/type"
10194
- },
10195
- "action": {
10196
- "$ref": "#/definitions/event/definitions/action"
10197
- },
10198
- "actor": {
10199
- "$ref": "#/definitions/event/definitions/actor"
10200
- },
10201
- "app": {
10202
- "$ref": "#/definitions/event/definitions/app"
10203
- },
10204
- "owner": {
10205
- "$ref": "#/definitions/event/definitions/owner"
10206
- },
10207
- "enterprise_account": {
10208
- "$ref": "#/definitions/event/definitions/enterprise_account"
10209
- },
10210
- "team": {
10211
- "$ref": "#/definitions/event/definitions/team"
10212
- },
10213
- "request": {
10214
- "$ref": "#/definitions/event/definitions/request"
10215
- },
10216
- "data": {
10217
- "$ref": "#/definitions/event/definitions/data"
10218
- }
10219
- }
10220
- },
10221
10598
  "filter-apps": {
10222
10599
  "description": "Filters are special endpoints to allow for API consumers to specify a subset of resources to consume in order to reduce the number of requests that are performed. Each filter endpoint endpoint is responsible for determining its supported request format. The endpoints are over POST in order to handle large request bodies without hitting request uri query length limitations, but the requests themselves are idempotent and will not have side effects.",
10223
10600
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -15078,7 +15455,7 @@ module PlatformAPI
15078
15455
  ]
15079
15456
  },
15080
15457
  "pr_number": {
15081
- "description": "GitHub Pull Request number if the Review app was created automatically",
15458
+ "description": "pull request number the review app is built for",
15082
15459
  "example": 24,
15083
15460
  "readOnly": true,
15084
15461
  "type": [
@@ -15098,6 +15475,9 @@ module PlatformAPI
15098
15475
  "branch": {
15099
15476
  "$ref": "#/definitions/review-app/definitions/branch"
15100
15477
  },
15478
+ "pr_number": {
15479
+ "$ref": "#/definitions/review-app/definitions/pr_number"
15480
+ },
15101
15481
  "pipeline": {
15102
15482
  "$ref": "#/definitions/pipeline/definitions/id"
15103
15483
  },
@@ -15703,7 +16083,7 @@ module PlatformAPI
15703
16083
  "size": 2048,
15704
16084
  "stack": {
15705
16085
  "id": "01234567-89ab-cdef-0123-456789abcdef",
15706
- "name": "cedar-14"
16086
+ "name": "heroku-18"
15707
16087
  },
15708
16088
  "updated_at": "2012-01-01T12:00:00Z"
15709
16089
  }
@@ -15846,7 +16226,8 @@ module PlatformAPI
15846
16226
  "example": "example.herokussl.com",
15847
16227
  "readOnly": false,
15848
16228
  "type": [
15849
- "string"
16229
+ "string",
16230
+ "null"
15850
16231
  ]
15851
16232
  },
15852
16233
  "created_at": {
@@ -15902,6 +16283,26 @@ module PlatformAPI
15902
16283
  "type": [
15903
16284
  "string"
15904
16285
  ]
16286
+ },
16287
+ "domains": {
16288
+ "description": "domains associated with this SSL certificate",
16289
+ "type": [
16290
+ "array"
16291
+ ],
16292
+ "readOnly": true,
16293
+ "items": {
16294
+ "$ref": "#/definitions/domain/definitions/id"
16295
+ }
16296
+ },
16297
+ "display_name": {
16298
+ "description": "unique name for SSL certificate",
16299
+ "example": "example",
16300
+ "pattern": "^[a-z][a-z0-9-]{2,29}$",
16301
+ "readOnly": false,
16302
+ "type": [
16303
+ "string",
16304
+ "null"
16305
+ ]
15905
16306
  }
15906
16307
  },
15907
16308
  "links": [
@@ -16011,8 +16412,67 @@ module PlatformAPI
16011
16412
  "name": {
16012
16413
  "$ref": "#/definitions/sni-endpoint/definitions/name"
16013
16414
  },
16014
- "updated_at": {
16015
- "$ref": "#/definitions/sni-endpoint/definitions/updated_at"
16415
+ "updated_at": {
16416
+ "$ref": "#/definitions/sni-endpoint/definitions/updated_at"
16417
+ },
16418
+ "display_name": {
16419
+ "$ref": "#/definitions/sni-endpoint/definitions/display_name"
16420
+ },
16421
+ "domains": {
16422
+ "$ref": "#/definitions/sni-endpoint/definitions/domains"
16423
+ },
16424
+ "app": {
16425
+ "description": "application that this SSL certificate is on",
16426
+ "properties": {
16427
+ "id": {
16428
+ "$ref": "#/definitions/app/definitions/id"
16429
+ },
16430
+ "name": {
16431
+ "$ref": "#/definitions/app/definitions/name"
16432
+ }
16433
+ },
16434
+ "strictProperties": true,
16435
+ "type": [
16436
+ "object"
16437
+ ]
16438
+ },
16439
+ "ssl_cert": {
16440
+ "description": "certificate provided by this endpoint",
16441
+ "type": [
16442
+ "object"
16443
+ ],
16444
+ "properties": {
16445
+ "ca_signed?": {
16446
+ "$ref": "#/definitions/ssl-endpoint/definitions/ca_signed?"
16447
+ },
16448
+ "cert_domains": {
16449
+ "$ref": "#/definitions/ssl-endpoint/definitions/cert_domains"
16450
+ },
16451
+ "expires_at": {
16452
+ "$ref": "#/definitions/ssl-endpoint/definitions/expires_at"
16453
+ },
16454
+ "issuer": {
16455
+ "$ref": "#/definitions/ssl-endpoint/definitions/issuer"
16456
+ },
16457
+ "self_signed?": {
16458
+ "$ref": "#/definitions/ssl-endpoint/definitions/self_signed?"
16459
+ },
16460
+ "starts_at": {
16461
+ "$ref": "#/definitions/ssl-endpoint/definitions/starts_at"
16462
+ },
16463
+ "subject": {
16464
+ "$ref": "#/definitions/ssl-endpoint/definitions/subject"
16465
+ },
16466
+ "id": {
16467
+ "description": "unique identifier of this SSL certificate",
16468
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
16469
+ "format": "uuid",
16470
+ "readOnly": true,
16471
+ "type": [
16472
+ "string"
16473
+ ]
16474
+ }
16475
+ }
16016
16476
  }
16017
16477
  }
16018
16478
  },
@@ -16326,6 +16786,140 @@ module PlatformAPI
16326
16786
  }
16327
16787
  }
16328
16788
  },
16789
+ "space-topology": {
16790
+ "description": "Space Topology provides you with a mechanism for viewing all the running dynos, formations and applications for a space. This is the same data thats used to power our DNS Service Discovery.",
16791
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
16792
+ "stability": "prototype",
16793
+ "strictProperties": true,
16794
+ "title": "Heroku Platform API - Space Topology",
16795
+ "type": [
16796
+ "object"
16797
+ ],
16798
+ "definitions": {
16799
+ "version": {
16800
+ "description": "version of the space topology payload",
16801
+ "example": 1,
16802
+ "readOnly": true,
16803
+ "type": [
16804
+ "integer"
16805
+ ]
16806
+ },
16807
+ "dyno": {
16808
+ "description": "A dyno",
16809
+ "properties": {
16810
+ "id": {
16811
+ "$ref": "#/definitions/dyno/definitions/id"
16812
+ },
16813
+ "number": {
16814
+ "description": "process number, e.g. 1 in web.1",
16815
+ "example": 1,
16816
+ "type": [
16817
+ "integer"
16818
+ ]
16819
+ },
16820
+ "private_ip": {
16821
+ "description": "RFC1918 Address of Dyno",
16822
+ "example": "10.0.134.42",
16823
+ "type": [
16824
+ "string"
16825
+ ]
16826
+ },
16827
+ "hostname": {
16828
+ "description": "localspace hostname of resource",
16829
+ "example": "1.example-app-90210.app.localspace",
16830
+ "type": [
16831
+ "string"
16832
+ ]
16833
+ }
16834
+ },
16835
+ "type": [
16836
+ "object"
16837
+ ]
16838
+ },
16839
+ "formation": {
16840
+ "description": "formations for application",
16841
+ "properties": {
16842
+ "id": {
16843
+ "$ref": "#/definitions/formation/definitions/id"
16844
+ },
16845
+ "process_type": {
16846
+ "description": "Name of process type",
16847
+ "example": "web",
16848
+ "type": [
16849
+ "string"
16850
+ ]
16851
+ },
16852
+ "dynos": {
16853
+ "description": "Current dynos for application",
16854
+ "items": {
16855
+ "$ref": "#/definitions/space-topology/definitions/dyno"
16856
+ },
16857
+ "type": [
16858
+ "array"
16859
+ ]
16860
+ }
16861
+ },
16862
+ "type": [
16863
+ "object"
16864
+ ]
16865
+ }
16866
+ },
16867
+ "links": [
16868
+ {
16869
+ "description": "Current space topology",
16870
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/topology",
16871
+ "method": "GET",
16872
+ "rel": "self",
16873
+ "targetSchema": {
16874
+ "$ref": "#/definitions/space-topology"
16875
+ },
16876
+ "title": "Topology"
16877
+ }
16878
+ ],
16879
+ "properties": {
16880
+ "version": {
16881
+ "$ref": "#/definitions/space-topology/definitions/version"
16882
+ },
16883
+ "apps": {
16884
+ "description": "The apps within this space",
16885
+ "type": [
16886
+ "array"
16887
+ ],
16888
+ "readOnly": true,
16889
+ "items": {
16890
+ "type": [
16891
+ "object"
16892
+ ],
16893
+ "properties": {
16894
+ "id": {
16895
+ "$ref": "#/definitions/app/definitions/id",
16896
+ "readOnly": true
16897
+ },
16898
+ "domains": {
16899
+ "example": [
16900
+ "example.com",
16901
+ "example.net"
16902
+ ],
16903
+ "readOnly": true,
16904
+ "type": [
16905
+ "array"
16906
+ ]
16907
+ },
16908
+ "formation": {
16909
+ "description": "formations for application",
16910
+ "items": {
16911
+ "$ref": "#/definitions/space-topology/definitions/formation"
16912
+ },
16913
+ "type": [
16914
+ "array"
16915
+ ],
16916
+ "readOnly": true
16917
+ }
16918
+ }
16919
+ }
16920
+ }
16921
+ }
16922
+ },
16329
16923
  "space-transfer": {
16330
16924
  "description": "Transfer spaces between enterprise teams with the same Enterprise Account.",
16331
16925
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -16630,6 +17224,24 @@ module PlatformAPI
16630
17224
  "object"
16631
17225
  ],
16632
17226
  "definitions": {
17227
+ "acm": {
17228
+ "readOnly": true,
17229
+ "type": [
17230
+ "boolean"
17231
+ ]
17232
+ },
17233
+ "ca_signed?": {
17234
+ "readOnly": true,
17235
+ "type": [
17236
+ "boolean"
17237
+ ]
17238
+ },
17239
+ "cert_domains": {
17240
+ "readOnly": true,
17241
+ "type": [
17242
+ "array"
17243
+ ]
17244
+ },
16633
17245
  "certificate_chain": {
16634
17246
  "description": "raw contents of the public certificate chain (eg: .crt or .pem file)",
16635
17247
  "example": "-----BEGIN CERTIFICATE----- ...",
@@ -16655,6 +17267,23 @@ module PlatformAPI
16655
17267
  "string"
16656
17268
  ]
16657
17269
  },
17270
+ "display_name": {
17271
+ "description": "unique name for SSL endpoint",
17272
+ "example": "example",
17273
+ "pattern": "^[a-z][a-z0-9-]{2,29}$",
17274
+ "readOnly": false,
17275
+ "type": [
17276
+ "string",
17277
+ "null"
17278
+ ]
17279
+ },
17280
+ "expires_at": {
17281
+ "readOnly": true,
17282
+ "format": "date-time",
17283
+ "type": [
17284
+ "string"
17285
+ ]
17286
+ },
16658
17287
  "id": {
16659
17288
  "description": "unique identifier of this SSL endpoint",
16660
17289
  "example": "01234567-89ab-cdef-0123-456789abcdef",
@@ -16674,6 +17303,12 @@ module PlatformAPI
16674
17303
  }
16675
17304
  ]
16676
17305
  },
17306
+ "issuer": {
17307
+ "readOnly": true,
17308
+ "type": [
17309
+ "string"
17310
+ ]
17311
+ },
16677
17312
  "name": {
16678
17313
  "description": "unique name for SSL endpoint",
16679
17314
  "example": "example",
@@ -16700,6 +17335,25 @@ module PlatformAPI
16700
17335
  "string"
16701
17336
  ]
16702
17337
  },
17338
+ "self_signed?": {
17339
+ "readOnly": true,
17340
+ "type": [
17341
+ "boolean"
17342
+ ]
17343
+ },
17344
+ "starts_at": {
17345
+ "readOnly": true,
17346
+ "format": "date-time",
17347
+ "type": [
17348
+ "string"
17349
+ ]
17350
+ },
17351
+ "subject": {
17352
+ "readOnly": true,
17353
+ "type": [
17354
+ "string"
17355
+ ]
17356
+ },
16703
17357
  "updated_at": {
16704
17358
  "description": "when endpoint was updated",
16705
17359
  "example": "2012-01-01T12:00:00Z",
@@ -16828,12 +17482,62 @@ module PlatformAPI
16828
17482
  "created_at": {
16829
17483
  "$ref": "#/definitions/ssl-endpoint/definitions/created_at"
16830
17484
  },
17485
+ "display_name": {
17486
+ "$ref": "#/definitions/ssl-endpoint/definitions/display_name"
17487
+ },
17488
+ "domains": {
17489
+ "description": "domains associated with this endpoint",
17490
+ "type": [
17491
+ "array"
17492
+ ],
17493
+ "items": {
17494
+ "$ref": "#/definitions/domain/definitions/id"
17495
+ }
17496
+ },
16831
17497
  "id": {
16832
17498
  "$ref": "#/definitions/ssl-endpoint/definitions/id"
16833
17499
  },
16834
17500
  "name": {
16835
17501
  "$ref": "#/definitions/ssl-endpoint/definitions/name"
16836
17502
  },
17503
+ "ssl_cert": {
17504
+ "description": "certificate provided by this endpoint",
17505
+ "type": [
17506
+ "object"
17507
+ ],
17508
+ "properties": {
17509
+ "ca_signed?": {
17510
+ "$ref": "#/definitions/ssl-endpoint/definitions/ca_signed?"
17511
+ },
17512
+ "cert_domains": {
17513
+ "$ref": "#/definitions/ssl-endpoint/definitions/cert_domains"
17514
+ },
17515
+ "expires_at": {
17516
+ "$ref": "#/definitions/ssl-endpoint/definitions/expires_at"
17517
+ },
17518
+ "issuer": {
17519
+ "$ref": "#/definitions/ssl-endpoint/definitions/issuer"
17520
+ },
17521
+ "self_signed?": {
17522
+ "$ref": "#/definitions/ssl-endpoint/definitions/self_signed?"
17523
+ },
17524
+ "starts_at": {
17525
+ "$ref": "#/definitions/ssl-endpoint/definitions/starts_at"
17526
+ },
17527
+ "subject": {
17528
+ "$ref": "#/definitions/ssl-endpoint/definitions/subject"
17529
+ },
17530
+ "id": {
17531
+ "description": "unique identifier of this SSL certificate",
17532
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
17533
+ "format": "uuid",
17534
+ "readOnly": true,
17535
+ "type": [
17536
+ "string"
17537
+ ]
17538
+ }
17539
+ }
17540
+ },
16837
17541
  "updated_at": {
16838
17542
  "$ref": "#/definitions/ssl-endpoint/definitions/updated_at"
16839
17543
  }
@@ -16887,7 +17591,7 @@ module PlatformAPI
16887
17591
  },
16888
17592
  "name": {
16889
17593
  "description": "unique name of stack",
16890
- "example": "cedar-14",
17594
+ "example": "heroku-18",
16891
17595
  "readOnly": true,
16892
17596
  "type": [
16893
17597
  "string"
@@ -18440,7 +19144,17 @@ module PlatformAPI
18440
19144
  "$ref": "#/definitions/team/definitions/identity"
18441
19145
  },
18442
19146
  "whitelisting-enabled": {
18443
- "description": "Whether whitelisting rules should be applied to add-on installations",
19147
+ "deactivate_on": "2021-02-05",
19148
+ "description": "Whether whitelisting rules should be applied to add-on installations. Deprecated in favor of `addons-controls`",
19149
+ "example": true,
19150
+ "readOnly": false,
19151
+ "type": [
19152
+ "boolean",
19153
+ "null"
19154
+ ]
19155
+ },
19156
+ "addons-controls": {
19157
+ "description": "Whether add-on service rules should be applied to add-on installations",
18444
19158
  "example": true,
18445
19159
  "readOnly": false,
18446
19160
  "type": [
@@ -18472,6 +19186,9 @@ module PlatformAPI
18472
19186
  "properties": {
18473
19187
  "whitelisting-enabled": {
18474
19188
  "$ref": "#/definitions/team-preferences/definitions/whitelisting-enabled"
19189
+ },
19190
+ "addons-controls": {
19191
+ "$ref": "#/definitions/team-preferences/definitions/addons-controls"
18475
19192
  }
18476
19193
  }
18477
19194
  },
@@ -18487,6 +19204,9 @@ module PlatformAPI
18487
19204
  },
18488
19205
  "whitelisting-enabled": {
18489
19206
  "$ref": "#/definitions/team-preferences/definitions/whitelisting-enabled"
19207
+ },
19208
+ "addons-controls": {
19209
+ "$ref": "#/definitions/team-preferences/definitions/addons-controls"
18490
19210
  }
18491
19211
  }
18492
19212
  },
@@ -18619,7 +19339,7 @@ module PlatformAPI
18619
19339
  },
18620
19340
  "links": [
18621
19341
  {
18622
- "description": "Retrieves usage for an enterprise team for a range of days. Start and end dates can be specified as query parameters using the date format, YYYY-MM-DD format. For example, '/teams/example-team/usage?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.",
19342
+ "description": "Retrieves usage for an enterprise team for a range of days. Start and end dates can be specified as query parameters using the date format, YYYY-MM-DD format. For example, '/teams/example-team/usage/daily?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.",
18623
19343
  "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fid)}/usage/daily",
18624
19344
  "method": "GET",
18625
19345
  "title": "Info",
@@ -18780,11 +19500,11 @@ module PlatformAPI
18780
19500
  },
18781
19501
  "links": [
18782
19502
  {
18783
- "description": "Retrieves usage for an enterprise team for a range of months. Start and end dates can be specified as query parameters using the date format, YYYY-MM format. For example, '/teams/example-team/usage?start=2019-01&end=2019-02' specifies usage in January and February for 2019. If no end date is specified, one month of usage is returned.",
19503
+ "description": "Retrieves usage for an enterprise team for a range of months. Start and end dates can be specified as query parameters using the date format, YYYY-MM format. For example, '/teams/example-team/usage/monthly?start=2019-01&end=2019-02' specifies usage in January and February for 2019. If no end date is specified, one month of usage is returned.",
18784
19504
  "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fid)}/usage/monthly",
18785
19505
  "method": "GET",
18786
- "rel": "instances",
18787
19506
  "title": "Info",
19507
+ "rel": "instances",
18788
19508
  "targetSchema": {
18789
19509
  "items": {
18790
19510
  "$ref": "#/definitions/team-usage-monthly"
@@ -20412,11 +21132,34 @@ module PlatformAPI
20412
21132
  "$ref": "#/definitions/vpn-connection"
20413
21133
  },
20414
21134
  "title": "Info"
21135
+ },
21136
+ {
21137
+ "description": "Update a VPN connection in a private space.",
21138
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections/{(%23%2Fdefinitions%2Fvpn-connection%2Fdefinitions%2Fidentity)}",
21139
+ "rel": "update",
21140
+ "schema": {
21141
+ "properties": {
21142
+ "routable_cidrs": {
21143
+ "$ref": "#/definitions/vpn-connection/definitions/routable_cidrs"
21144
+ }
21145
+ },
21146
+ "required": [
21147
+ "routable_cidrs"
21148
+ ],
21149
+ "type": [
21150
+ "object"
21151
+ ]
21152
+ },
21153
+ "targetSchema": {
21154
+ "$ref": "#/definitions/vpn-connection"
21155
+ },
21156
+ "method": "PATCH",
21157
+ "title": "Update"
20415
21158
  }
20416
21159
  ]
20417
21160
  },
20418
21161
  "whitelisted-add-on-service": {
20419
- "description": "Entities that have been whitelisted to be used by an Team",
21162
+ "description": "Entities that have been whitelisted to be used by a Team. Deprecated in favor of [Allowed Add-on Service](#allowed-add-on-service) endpoints.",
20420
21163
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
20421
21164
  "stability": "prototype",
20422
21165
  "strictProperties": true,
@@ -20497,7 +21240,8 @@ module PlatformAPI
20497
21240
  },
20498
21241
  "links": [
20499
21242
  {
20500
- "description": "List all whitelisted Add-on Services for an Team",
21243
+ "deactivate_on": "2021-02-05",
21244
+ "description": "List all whitelisted Add-on Services for a Team - Deprecated in favor of [`GET /teams/{team_name_or_id}/allowed-addon-services`](#allowed-add-on-service-list-by-team) endpoint.",
20501
21245
  "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/whitelisted-addon-services",
20502
21246
  "method": "GET",
20503
21247
  "rel": "instances",
@@ -20509,10 +21253,11 @@ module PlatformAPI
20509
21253
  "array"
20510
21254
  ]
20511
21255
  },
20512
- "title": "List By Team"
21256
+ "title": "List By Team - Deprecated"
20513
21257
  },
20514
21258
  {
20515
- "description": "Whitelist an Add-on Service",
21259
+ "deactivate_on": "2021-02-05",
21260
+ "description": "Whitelist an Add-on Service - Deprecated in favor of [`POST /teams/{team_name_or_id}/allowed-addon-services`](#allowed-add-on-service-create-by-team) endpoint.",
20516
21261
  "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/whitelisted-addon-services",
20517
21262
  "method": "POST",
20518
21263
  "rel": "create",
@@ -20538,17 +21283,18 @@ module PlatformAPI
20538
21283
  "array"
20539
21284
  ]
20540
21285
  },
20541
- "title": "Create By Team"
21286
+ "title": "Create By Team - Deprecated"
20542
21287
  },
20543
21288
  {
20544
- "description": "Remove a whitelisted entity",
21289
+ "deactivate_on": "2021-02-05",
21290
+ "description": "Remove a whitelisted entity - Deprecated in favor of [`DELETE /teams/{team_name_or_id}/allowed-addon-services/{allowed_add_on_service_id_or_name}`](#allowed-add-on-service-delete-by-team) endpoint.",
20545
21291
  "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/whitelisted-addon-services/{(%23%2Fdefinitions%2Fwhitelisted-add-on-service%2Fdefinitions%2Fidentity)}",
20546
21292
  "method": "DELETE",
20547
21293
  "rel": "destroy",
20548
21294
  "targetSchema": {
20549
21295
  "$ref": "#/definitions/whitelisted-add-on-service"
20550
21296
  },
20551
- "title": "Delete By Team"
21297
+ "title": "Delete By Team - Deprecated"
20552
21298
  }
20553
21299
  ],
20554
21300
  "properties": {
@@ -20604,6 +21350,9 @@ module PlatformAPI
20604
21350
  "add-on": {
20605
21351
  "$ref": "#/definitions/add-on"
20606
21352
  },
21353
+ "allowed-add-on-service": {
21354
+ "$ref": "#/definitions/allowed-add-on-service"
21355
+ },
20607
21356
  "app-feature": {
20608
21357
  "$ref": "#/definitions/app-feature"
20609
21358
  },
@@ -20631,6 +21380,9 @@ module PlatformAPI
20631
21380
  "archive": {
20632
21381
  "$ref": "#/definitions/archive"
20633
21382
  },
21383
+ "audit-trail-event": {
21384
+ "$ref": "#/definitions/audit-trail-event"
21385
+ },
20634
21386
  "build": {
20635
21387
  "$ref": "#/definitions/build"
20636
21388
  },
@@ -20667,9 +21419,6 @@ module PlatformAPI
20667
21419
  "enterprise-account": {
20668
21420
  "$ref": "#/definitions/enterprise-account"
20669
21421
  },
20670
- "event": {
20671
- "$ref": "#/definitions/event"
20672
- },
20673
21422
  "filter-apps": {
20674
21423
  "$ref": "#/definitions/filter-apps"
20675
21424
  },
@@ -20790,6 +21539,9 @@ module PlatformAPI
20790
21539
  "space-nat": {
20791
21540
  "$ref": "#/definitions/space-nat"
20792
21541
  },
21542
+ "space-topology": {
21543
+ "$ref": "#/definitions/space-topology"
21544
+ },
20793
21545
  "space-transfer": {
20794
21546
  "$ref": "#/definitions/space-transfer"
20795
21547
  },