platform-api 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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/3.6.0"}
86
+ default_headers = {"Accept"=>"application/vnd.heroku+json; version=3", "User-Agent"=>"platform-api/3.8.0"}
87
87
  {
88
88
  default_headers: default_headers,
89
89
  url: "https://api.heroku.com"
@@ -98,6 +98,13 @@ module PlatformAPI
98
98
  @client = client
99
99
  end
100
100
 
101
+ # A Heroku account becomes delinquent due to non-payment. We [suspend and delete](https://help.heroku.com/EREVRILX/what-happens-if-i-have-unpaid-heroku-invoices) delinquent accounts if their invoices remain unpaid.
102
+ #
103
+ # @return [AccountDelinquency]
104
+ def account_delinquency
105
+ @account_delinquency_resource ||= AccountDelinquency.new(@client)
106
+ end
107
+
101
108
  # An account feature represents a Heroku labs capability that can be enabled or disabled for an account on Heroku.
102
109
  #
103
110
  # @return [AccountFeature]
@@ -252,7 +259,7 @@ module PlatformAPI
252
259
  @audit_trail_event_resource ||= AuditTrailEvent.new(@client)
253
260
  end
254
261
 
255
- # A build represents the process of transforming a code tarball into a slug
262
+ # A build represents the process of transforming a code tarball into build artifacts
256
263
  #
257
264
  # @return [Build]
258
265
  def build
@@ -350,7 +357,14 @@ module PlatformAPI
350
357
  @formation_resource ||= Formation.new(@client)
351
358
  end
352
359
 
353
- # Identity Providers represent the SAML configuration of an Enterprise Account or Team.
360
+ # A generation represents a version of the Heroku platform that includes the app execution environment, routing, telemetry, and build systems.
361
+ #
362
+ # @return [Generation]
363
+ def generation
364
+ @generation_resource ||= Generation.new(@client)
365
+ end
366
+
367
+ # Identity Providers represent the SAML configuration of teams or an Enterprise account
354
368
  #
355
369
  # @return [IdentityProvider]
356
370
  def identity_provider
@@ -427,11 +441,11 @@ module PlatformAPI
427
441
  @oauth_token_resource ||= OauthToken.new(@client)
428
442
  end
429
443
 
430
- # An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with.
444
+ # An OCI (Open Container Initiative) image is a standardized format for packaging and distributing containerized applications, ready to run on the platform.
431
445
  #
432
- # @return [OutboundRuleset]
433
- def outbound_ruleset
434
- @outbound_ruleset_resource ||= OutboundRuleset.new(@client)
446
+ # @return [OciImage]
447
+ def oci_image
448
+ @oci_image_resource ||= OciImage.new(@client)
435
449
  end
436
450
 
437
451
  # A password reset represents a in-process password reset attempt.
@@ -462,14 +476,14 @@ module PlatformAPI
462
476
  @permission_entity_resource ||= PermissionEntity.new(@client)
463
477
  end
464
478
 
465
- # Information about latest builds of apps in a pipeline.
479
+ # Information about the latest builds of apps in a pipeline. A build represents the process of transforming code into build artifacts.
466
480
  #
467
481
  # @return [PipelineBuild]
468
482
  def pipeline_build
469
483
  @pipeline_build_resource ||= PipelineBuild.new(@client)
470
484
  end
471
485
 
472
- # Pipeline Config Vars allow you to manage the configuration information provided to a pipeline.
486
+ # Pipeline config vars in Heroku CI and review apps used to manage the configuration information for a pipeline.
473
487
  #
474
488
  # @return [PipelineConfigVar]
475
489
  def pipeline_config_var
@@ -483,7 +497,7 @@ module PlatformAPI
483
497
  @pipeline_coupling_resource ||= PipelineCoupling.new(@client)
484
498
  end
485
499
 
486
- # Information about latest deployments of apps in a pipeline.
500
+ # Information about the latest deployment of each app in a pipeline. A deployment is the process of moving the build artifacts to a target environment.
487
501
  #
488
502
  # @return [PipelineDeployment]
489
503
  def pipeline_deployment
@@ -504,7 +518,7 @@ module PlatformAPI
504
518
  @pipeline_promotion_resource ||= PipelinePromotion.new(@client)
505
519
  end
506
520
 
507
- # Information about latest releases of apps in a pipeline.
521
+ # Information about the latest release of each app in a pipeline. A release makes a deployment available to end-users.
508
522
  #
509
523
  # @return [PipelineRelease]
510
524
  def pipeline_release
@@ -679,6 +693,13 @@ module PlatformAPI
679
693
  @team_daily_usage_resource ||= TeamDailyUsage.new(@client)
680
694
  end
681
695
 
696
+ # A Heroku team becomes delinquent due to non-payment. We [suspend and delete](https://help.heroku.com/EREVRILX/what-happens-if-i-have-unpaid-heroku-invoices) delinquent teams if their invoices remain unpaid.
697
+ #
698
+ # @return [TeamDelinquency]
699
+ def team_delinquency
700
+ @team_delinquency_resource ||= TeamDelinquency.new(@client)
701
+ end
702
+
682
703
  # A team feature represents a feature enabled on a team account.
683
704
  #
684
705
  # @return [TeamFeature]
@@ -735,6 +756,13 @@ module PlatformAPI
735
756
  @team_resource ||= Team.new(@client)
736
757
  end
737
758
 
759
+ # A telemetry drain forwards OpenTelemetry traces, metrics, and logs to your own consumer. For Fir-generation apps only.
760
+ #
761
+ # @return [TelemetryDrain]
762
+ def telemetry_drain
763
+ @telemetry_drain_resource ||= TelemetryDrain.new(@client)
764
+ end
765
+
738
766
  # A single test case belonging to a test run
739
767
  #
740
768
  # @return [TestCase]
@@ -773,6 +801,18 @@ module PlatformAPI
773
801
 
774
802
  private
775
803
 
804
+ # A Heroku account becomes delinquent due to non-payment. We [suspend and delete](https://help.heroku.com/EREVRILX/what-happens-if-i-have-unpaid-heroku-invoices) delinquent accounts if their invoices remain unpaid.
805
+ class AccountDelinquency
806
+ def initialize(client)
807
+ @client = client
808
+ end
809
+
810
+ # Account delinquency information.
811
+ def info()
812
+ @client.account_delinquency.info()
813
+ end
814
+ end
815
+
776
816
  # An account feature represents a Heroku labs capability that can be enabled or disabled for an account on Heroku.
777
817
  class AccountFeature
778
818
  def initialize(client)
@@ -1465,18 +1505,18 @@ module PlatformAPI
1465
1505
 
1466
1506
  # Get archive for a single month.
1467
1507
  #
1468
- # @param enterprise_account_id: unique identifier of the enterprise account
1508
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1469
1509
  # @param archive_year: year of the archive
1470
1510
  # @param archive_month: month of the archive
1471
- def info(enterprise_account_id, archive_year, archive_month)
1472
- @client.archive.info(enterprise_account_id, archive_year, archive_month)
1511
+ def info(enterprise_account_id_or_enterprise_account_name, archive_year, archive_month)
1512
+ @client.archive.info(enterprise_account_id_or_enterprise_account_name, archive_year, archive_month)
1473
1513
  end
1474
1514
 
1475
1515
  # List existing archives.
1476
1516
  #
1477
- # @param enterprise_account_id: unique identifier of the enterprise account
1478
- def list(enterprise_account_id)
1479
- @client.archive.list(enterprise_account_id)
1517
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1518
+ def list(enterprise_account_id_or_enterprise_account_name)
1519
+ @client.archive.list(enterprise_account_id_or_enterprise_account_name)
1480
1520
  end
1481
1521
  end
1482
1522
 
@@ -1488,13 +1528,13 @@ module PlatformAPI
1488
1528
 
1489
1529
  # List existing events. Returns all events for one day, defaulting to current day. Order, actor, action, and type, and day query params can be specified as query parameters. For example, '/enterprise-accounts/:id/events?order=desc&actor=user@example.com&action=create&type=app&day=2020-09-30' would return events in descending order and only return app created events by the user with user@example.com email address.
1490
1530
  #
1491
- # @param enterprise_account_id: unique identifier of the enterprise account
1492
- def list(enterprise_account_id)
1493
- @client.audit_trail_event.list(enterprise_account_id)
1531
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1532
+ def list(enterprise_account_id_or_enterprise_account_name)
1533
+ @client.audit_trail_event.list(enterprise_account_id_or_enterprise_account_name)
1494
1534
  end
1495
1535
  end
1496
1536
 
1497
- # A build represents the process of transforming a code tarball into a slug
1537
+ # A build represents the process of transforming a code tarball into build artifacts
1498
1538
  class Build
1499
1539
  def initialize(client)
1500
1540
  @client = client
@@ -1710,7 +1750,7 @@ module PlatformAPI
1710
1750
 
1711
1751
  # Info for existing dyno size.
1712
1752
  #
1713
- # @param dyno_size_id_or_dyno_size_name: unique identifier of this dyno size or the name of this dyno-size
1753
+ # @param dyno_size_id_or_dyno_size_name: unique identifier of the dyno size or name of the dyno size
1714
1754
  def info(dyno_size_id_or_dyno_size_name)
1715
1755
  @client.dyno_size.info(dyno_size_id_or_dyno_size_name)
1716
1756
  end
@@ -1719,6 +1759,13 @@ module PlatformAPI
1719
1759
  def list()
1720
1760
  @client.dyno_size.list()
1721
1761
  end
1762
+
1763
+ # List available dyno sizes for an app
1764
+ #
1765
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
1766
+ def list_app_dyno_sizes(app_id_or_app_name)
1767
+ @client.dyno_size.list_app_dyno_sizes(app_id_or_app_name)
1768
+ end
1722
1769
  end
1723
1770
 
1724
1771
  # Dynos encapsulate running processes of an app on Heroku. Detailed information about dyno sizes can be found at: [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types).
@@ -1743,6 +1790,14 @@ module PlatformAPI
1743
1790
  @client.dyno.restart(app_id_or_app_name, dyno_id_or_dyno_name)
1744
1791
  end
1745
1792
 
1793
+ # Restart dynos of a given formation type.
1794
+ #
1795
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
1796
+ # @param dyno_formation_type: the formation type of this process on this dyno
1797
+ def restart_formation(app_id_or_app_name, dyno_formation_type)
1798
+ @client.dyno.restart_formation(app_id_or_app_name, dyno_formation_type)
1799
+ end
1800
+
1746
1801
  # Restart all dynos.
1747
1802
  #
1748
1803
  # @param app_id_or_app_name: unique identifier of app or unique name of app
@@ -1758,6 +1813,14 @@ module PlatformAPI
1758
1813
  @client.dyno.stop(app_id_or_app_name, dyno_id_or_dyno_name)
1759
1814
  end
1760
1815
 
1816
+ # Stop dynos of a given formation type.
1817
+ #
1818
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
1819
+ # @param dyno_formation_type: the formation type of this process on this dyno
1820
+ def stop_formation(app_id_or_app_name, dyno_formation_type)
1821
+ @client.dyno.stop_formation(app_id_or_app_name, dyno_formation_type)
1822
+ end
1823
+
1761
1824
  # Info for existing dyno.
1762
1825
  #
1763
1826
  # @param app_id_or_app_name: unique identifier of app or unique name of app
@@ -1798,34 +1861,34 @@ module PlatformAPI
1798
1861
 
1799
1862
  # List members in an enterprise account.
1800
1863
  #
1801
- # @param enterprise_account_id: unique identifier of the enterprise account
1802
- def list(enterprise_account_id)
1803
- @client.enterprise_account_member.list(enterprise_account_id)
1864
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1865
+ def list(enterprise_account_id_or_enterprise_account_name)
1866
+ @client.enterprise_account_member.list(enterprise_account_id_or_enterprise_account_name)
1804
1867
  end
1805
1868
 
1806
1869
  # Create a member in an enterprise account.
1807
1870
  #
1808
- # @param enterprise_account_id: unique identifier of the enterprise account
1871
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1809
1872
  # @param body: the object to pass as the request payload
1810
- def create(enterprise_account_id, body = {})
1811
- @client.enterprise_account_member.create(enterprise_account_id, body)
1873
+ def create(enterprise_account_id_or_enterprise_account_name, body = {})
1874
+ @client.enterprise_account_member.create(enterprise_account_id_or_enterprise_account_name, body)
1812
1875
  end
1813
1876
 
1814
1877
  # Update a member in an enterprise account.
1815
1878
  #
1816
- # @param enterprise_account_id: unique identifier of the enterprise account
1879
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1817
1880
  # @param account_email_or_account_id: unique email address of account or unique identifier of an account
1818
1881
  # @param body: the object to pass as the request payload
1819
- def update(enterprise_account_id, account_email_or_account_id, body = {})
1820
- @client.enterprise_account_member.update(enterprise_account_id, account_email_or_account_id, body)
1882
+ def update(enterprise_account_id_or_enterprise_account_name, account_email_or_account_id, body = {})
1883
+ @client.enterprise_account_member.update(enterprise_account_id_or_enterprise_account_name, account_email_or_account_id, body)
1821
1884
  end
1822
1885
 
1823
1886
  # delete a member in an enterprise account.
1824
1887
  #
1825
- # @param enterprise_account_id: unique identifier of the enterprise account
1888
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1826
1889
  # @param account_email_or_account_id: unique email address of account or unique identifier of an account
1827
- def delete(enterprise_account_id, account_email_or_account_id)
1828
- @client.enterprise_account_member.delete(enterprise_account_id, account_email_or_account_id)
1890
+ def delete(enterprise_account_id_or_enterprise_account_name, account_email_or_account_id)
1891
+ @client.enterprise_account_member.delete(enterprise_account_id_or_enterprise_account_name, account_email_or_account_id)
1829
1892
  end
1830
1893
  end
1831
1894
 
@@ -1858,17 +1921,17 @@ module PlatformAPI
1858
1921
 
1859
1922
  # Information about an enterprise account.
1860
1923
  #
1861
- # @param enterprise_account_id: unique identifier of the enterprise account
1862
- def info(enterprise_account_id)
1863
- @client.enterprise_account.info(enterprise_account_id)
1924
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1925
+ def info(enterprise_account_id_or_enterprise_account_name)
1926
+ @client.enterprise_account.info(enterprise_account_id_or_enterprise_account_name)
1864
1927
  end
1865
1928
 
1866
1929
  # Update enterprise account properties
1867
1930
  #
1868
- # @param enterprise_account_id: unique identifier of the enterprise account
1931
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
1869
1932
  # @param body: the object to pass as the request payload
1870
- def update(enterprise_account_id, body = {})
1871
- @client.enterprise_account.update(enterprise_account_id, body)
1933
+ def update(enterprise_account_id_or_enterprise_account_name, body = {})
1934
+ @client.enterprise_account.update(enterprise_account_id_or_enterprise_account_name, body)
1872
1935
  end
1873
1936
  end
1874
1937
 
@@ -1925,7 +1988,33 @@ module PlatformAPI
1925
1988
  end
1926
1989
  end
1927
1990
 
1928
- # Identity Providers represent the SAML configuration of an Enterprise Account or Team.
1991
+ # A generation represents a version of the Heroku platform that includes the app execution environment, routing, telemetry, and build systems.
1992
+ class Generation
1993
+ def initialize(client)
1994
+ @client = client
1995
+ end
1996
+
1997
+ # Info for generation.
1998
+ #
1999
+ # @param stack_name_or_stack_id: unique name of stack or unique identifier of stack
2000
+ def info(stack_name_or_stack_id)
2001
+ @client.generation.info(stack_name_or_stack_id)
2002
+ end
2003
+
2004
+ # List available generations.
2005
+ def list()
2006
+ @client.generation.list()
2007
+ end
2008
+
2009
+ # List available generations for a team.
2010
+ #
2011
+ # @param team_name_or_team_id: unique name of team or unique identifier of team
2012
+ def list_by_team(team_name_or_team_id)
2013
+ @client.generation.list_by_team(team_name_or_team_id)
2014
+ end
2015
+ end
2016
+
2017
+ # Identity Providers represent the SAML configuration of teams or an Enterprise account
1929
2018
  class IdentityProvider
1930
2019
  def initialize(client)
1931
2020
  @client = client
@@ -2154,6 +2243,14 @@ module PlatformAPI
2154
2243
  @client.oauth_authorization.info(oauth_authorization_id)
2155
2244
  end
2156
2245
 
2246
+ # Update an existing OAuth authorization.
2247
+ #
2248
+ # @param oauth_authorization_id: unique identifier of OAuth authorization
2249
+ # @param body: the object to pass as the request payload
2250
+ def update(oauth_authorization_id, body = {})
2251
+ @client.oauth_authorization.update(oauth_authorization_id, body)
2252
+ end
2253
+
2157
2254
  # List OAuth authorizations.
2158
2255
  def list()
2159
2256
  @client.oauth_authorization.list()
@@ -2187,7 +2284,7 @@ module PlatformAPI
2187
2284
  @client.oauth_client.delete(oauth_client_id)
2188
2285
  end
2189
2286
 
2190
- # Info for an OAuth client
2287
+ # Info for an OAuth client. The output for unauthenticated requests excludes the `secret` parameter.
2191
2288
  #
2192
2289
  # @param oauth_client_id: unique identifier of this OAuth client
2193
2290
  def info(oauth_client_id)
@@ -2243,40 +2340,26 @@ module PlatformAPI
2243
2340
  end
2244
2341
  end
2245
2342
 
2246
- # An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with.
2247
- class OutboundRuleset
2343
+ # An OCI (Open Container Initiative) image is a standardized format for packaging and distributing containerized applications, ready to run on the platform.
2344
+ class OciImage
2248
2345
  def initialize(client)
2249
2346
  @client = client
2250
2347
  end
2251
2348
 
2252
- # Current outbound ruleset for a space
2349
+ # Info for the OCI images of an app, filtered by identifier.
2253
2350
  #
2254
- # @param space_id_or_space_name: unique identifier of space or unique name of space
2255
- def current(space_id_or_space_name)
2256
- @client.outbound_ruleset.current(space_id_or_space_name)
2257
- end
2258
-
2259
- # Info on an existing Outbound Ruleset
2260
- #
2261
- # @param space_id_or_space_name: unique identifier of space or unique name of space
2262
- # @param outbound_ruleset_id: unique identifier of an outbound-ruleset
2263
- def info(space_id_or_space_name, outbound_ruleset_id)
2264
- @client.outbound_ruleset.info(space_id_or_space_name, outbound_ruleset_id)
2265
- end
2266
-
2267
- # List all Outbound Rulesets for a space
2268
- #
2269
- # @param space_id_or_space_name: unique identifier of space or unique name of space
2270
- def list(space_id_or_space_name)
2271
- @client.outbound_ruleset.list(space_id_or_space_name)
2351
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
2352
+ # @param oci_image_id_or_oci_image_digest: unique identifier of the OCI image or unique identifier representing the content of the OCI image
2353
+ def info(app_id_or_app_name, oci_image_id_or_oci_image_digest)
2354
+ @client.oci_image.info(app_id_or_app_name, oci_image_id_or_oci_image_digest)
2272
2355
  end
2273
2356
 
2274
- # Create a new outbound ruleset
2357
+ # Create an new OCI image of an app
2275
2358
  #
2276
- # @param space_id_or_space_name: unique identifier of space or unique name of space
2359
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
2277
2360
  # @param body: the object to pass as the request payload
2278
- def create(space_id_or_space_name, body = {})
2279
- @client.outbound_ruleset.create(space_id_or_space_name, body)
2361
+ def create(app_id_or_app_name, body = {})
2362
+ @client.oci_image.create(app_id_or_app_name, body)
2280
2363
  end
2281
2364
  end
2282
2365
 
@@ -2368,7 +2451,7 @@ module PlatformAPI
2368
2451
  end
2369
2452
  end
2370
2453
 
2371
- # Information about latest builds of apps in a pipeline.
2454
+ # Information about the latest builds of apps in a pipeline. A build represents the process of transforming code into build artifacts.
2372
2455
  class PipelineBuild
2373
2456
  def initialize(client)
2374
2457
  @client = client
@@ -2382,7 +2465,7 @@ module PlatformAPI
2382
2465
  end
2383
2466
  end
2384
2467
 
2385
- # Pipeline Config Vars allow you to manage the configuration information provided to a pipeline.
2468
+ # Pipeline config vars in Heroku CI and review apps used to manage the configuration information for a pipeline.
2386
2469
  class PipelineConfigVar
2387
2470
  def initialize(client)
2388
2471
  @client = client
@@ -2473,13 +2556,13 @@ module PlatformAPI
2473
2556
  end
2474
2557
  end
2475
2558
 
2476
- # Information about latest deployments of apps in a pipeline.
2559
+ # Information about the latest deployment of each app in a pipeline. A deployment is the process of moving the build artifacts to a target environment.
2477
2560
  class PipelineDeployment
2478
2561
  def initialize(client)
2479
2562
  @client = client
2480
2563
  end
2481
2564
 
2482
- # List latest slug releases for each app in a pipeline
2565
+ # List latest deployments for each app in a pipeline. A deployment is a release that changed your source slug, container image, or Heroku processes.
2483
2566
  #
2484
2567
  # @param pipeline_id: unique identifier of pipeline
2485
2568
  def list(pipeline_id)
@@ -2522,7 +2605,7 @@ module PlatformAPI
2522
2605
  end
2523
2606
  end
2524
2607
 
2525
- # Information about latest releases of apps in a pipeline.
2608
+ # Information about the latest release of each app in a pipeline. A release makes a deployment available to end-users.
2526
2609
  class PipelineRelease
2527
2610
  def initialize(client)
2528
2611
  @client = client
@@ -3031,6 +3114,13 @@ module PlatformAPI
3031
3114
  def list()
3032
3115
  @client.stack.list()
3033
3116
  end
3117
+
3118
+ # List available app stacks for an app.
3119
+ #
3120
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
3121
+ def list_by_app(app_id_or_app_name)
3122
+ @client.stack.list_by_app(app_id_or_app_name)
3123
+ end
3034
3124
  end
3035
3125
 
3036
3126
  #
@@ -3063,34 +3153,34 @@ module PlatformAPI
3063
3153
 
3064
3154
  # Delete an existing collaborator from a team app.
3065
3155
  #
3066
- # @param app_name: unique name of app
3156
+ # @param team_app_identity:
3067
3157
  # @param collaborator_email: invited email address of collaborator
3068
- def delete(app_name, collaborator_email)
3069
- @client.team_app_collaborator.delete(app_name, collaborator_email)
3158
+ def delete(team_app_identity, collaborator_email)
3159
+ @client.team_app_collaborator.delete(team_app_identity, collaborator_email)
3070
3160
  end
3071
3161
 
3072
3162
  # Info for a collaborator on a team app.
3073
3163
  #
3074
- # @param app_name: unique name of app
3164
+ # @param team_app_identity:
3075
3165
  # @param collaborator_email: invited email address of collaborator
3076
- def info(app_name, collaborator_email)
3077
- @client.team_app_collaborator.info(app_name, collaborator_email)
3166
+ def info(team_app_identity, collaborator_email)
3167
+ @client.team_app_collaborator.info(team_app_identity, collaborator_email)
3078
3168
  end
3079
3169
 
3080
3170
  # Update an existing collaborator from a team app.
3081
3171
  #
3082
- # @param app_name: unique name of app
3172
+ # @param team_app_identity:
3083
3173
  # @param collaborator_email: invited email address of collaborator
3084
3174
  # @param body: the object to pass as the request payload
3085
- def update(app_name, collaborator_email, body = {})
3086
- @client.team_app_collaborator.update(app_name, collaborator_email, body)
3175
+ def update(team_app_identity, collaborator_email, body = {})
3176
+ @client.team_app_collaborator.update(team_app_identity, collaborator_email, body)
3087
3177
  end
3088
3178
 
3089
3179
  # List collaborators on a team app.
3090
3180
  #
3091
- # @param app_name: unique name of app
3092
- def list(app_name)
3093
- @client.team_app_collaborator.list(app_name)
3181
+ # @param team_app_identity:
3182
+ def list(team_app_identity)
3183
+ @client.team_app_collaborator.list(team_app_identity)
3094
3184
  end
3095
3185
  end
3096
3186
 
@@ -3121,33 +3211,33 @@ module PlatformAPI
3121
3211
 
3122
3212
  # Info for a team app.
3123
3213
  #
3124
- # @param app_name: unique name of app
3125
- def info(app_name)
3126
- @client.team_app.info(app_name)
3214
+ # @param team_app_identity:
3215
+ def info(team_app_identity)
3216
+ @client.team_app.info(team_app_identity)
3127
3217
  end
3128
3218
 
3129
3219
  # Lock or unlock a team app.
3130
3220
  #
3131
- # @param app_name: unique name of app
3221
+ # @param team_app_identity:
3132
3222
  # @param body: the object to pass as the request payload
3133
- def update_locked(app_name, body = {})
3134
- @client.team_app.update_locked(app_name, body)
3223
+ def update_locked(team_app_identity, body = {})
3224
+ @client.team_app.update_locked(team_app_identity, body)
3135
3225
  end
3136
3226
 
3137
3227
  # Transfer an existing team app to another Heroku account.
3138
3228
  #
3139
- # @param app_name: unique name of app
3229
+ # @param team_app_identity:
3140
3230
  # @param body: the object to pass as the request payload
3141
- def transfer_to_account(app_name, body = {})
3142
- @client.team_app.transfer_to_account(app_name, body)
3231
+ def transfer_to_account(team_app_identity, body = {})
3232
+ @client.team_app.transfer_to_account(team_app_identity, body)
3143
3233
  end
3144
3234
 
3145
3235
  # Transfer an existing team app to another team.
3146
3236
  #
3147
- # @param app_name: unique name of app
3237
+ # @param team_app_identity:
3148
3238
  # @param body: the object to pass as the request payload
3149
- def transfer_to_team(app_name, body = {})
3150
- @client.team_app.transfer_to_team(app_name, body)
3239
+ def transfer_to_team(team_app_identity, body = {})
3240
+ @client.team_app.transfer_to_team(team_app_identity, body)
3151
3241
  end
3152
3242
 
3153
3243
  # List team apps.
@@ -3174,6 +3264,20 @@ module PlatformAPI
3174
3264
  end
3175
3265
  end
3176
3266
 
3267
+ # A Heroku team becomes delinquent due to non-payment. We [suspend and delete](https://help.heroku.com/EREVRILX/what-happens-if-i-have-unpaid-heroku-invoices) delinquent teams if their invoices remain unpaid.
3268
+ class TeamDelinquency
3269
+ def initialize(client)
3270
+ @client = client
3271
+ end
3272
+
3273
+ # Team delinquency information.
3274
+ #
3275
+ # @param team_name_or_team_id: unique name of team or unique identifier of team
3276
+ def info(team_name_or_team_id)
3277
+ @client.team_delinquency.info(team_name_or_team_id)
3278
+ end
3279
+ end
3280
+
3177
3281
  # A team feature represents a feature enabled on a team account.
3178
3282
  class TeamFeature
3179
3283
  def initialize(client)
@@ -3410,17 +3514,67 @@ module PlatformAPI
3410
3514
 
3411
3515
  # List teams for an enterprise account.
3412
3516
  #
3413
- # @param enterprise_account_id: unique identifier of the enterprise account
3414
- def list_by_enterprise_account(enterprise_account_id)
3415
- @client.team.list_by_enterprise_account(enterprise_account_id)
3517
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
3518
+ def list_by_enterprise_account(enterprise_account_id_or_enterprise_account_name)
3519
+ @client.team.list_by_enterprise_account(enterprise_account_id_or_enterprise_account_name)
3416
3520
  end
3417
3521
 
3418
3522
  # Create a team in an enterprise account.
3419
3523
  #
3420
- # @param enterprise_account_id: unique identifier of the enterprise account
3524
+ # @param enterprise_account_id_or_enterprise_account_name: unique identifier of the enterprise account or unique name of the enterprise account
3525
+ # @param body: the object to pass as the request payload
3526
+ def create_in_enterprise_account(enterprise_account_id_or_enterprise_account_name, body = {})
3527
+ @client.team.create_in_enterprise_account(enterprise_account_id_or_enterprise_account_name, body)
3528
+ end
3529
+ end
3530
+
3531
+ # A telemetry drain forwards OpenTelemetry traces, metrics, and logs to your own consumer. For Fir-generation apps only.
3532
+ class TelemetryDrain
3533
+ def initialize(client)
3534
+ @client = client
3535
+ end
3536
+
3537
+ # Create a telemetry drain.
3538
+ #
3539
+ # @param body: the object to pass as the request payload
3540
+ def create(body = {})
3541
+ @client.telemetry_drain.create(body)
3542
+ end
3543
+
3544
+ # List telemetry drains for an app.
3545
+ #
3546
+ # @param app_id_or_app_name: unique identifier of app or unique name of app
3547
+ def list_by_app(app_id_or_app_name)
3548
+ @client.telemetry_drain.list_by_app(app_id_or_app_name)
3549
+ end
3550
+
3551
+ # List telemetry drains for a space.
3552
+ #
3553
+ # @param space_id_or_space_name: unique identifier of space or unique name of space
3554
+ def list_by_space(space_id_or_space_name)
3555
+ @client.telemetry_drain.list_by_space(space_id_or_space_name)
3556
+ end
3557
+
3558
+ # Update a telemetry drain.
3559
+ #
3560
+ # @param telemetry_drain_id: unique identifier of telemetry drain
3421
3561
  # @param body: the object to pass as the request payload
3422
- def create_in_enterprise_account(enterprise_account_id, body = {})
3423
- @client.team.create_in_enterprise_account(enterprise_account_id, body)
3562
+ def update(telemetry_drain_id, body = {})
3563
+ @client.telemetry_drain.update(telemetry_drain_id, body)
3564
+ end
3565
+
3566
+ # Delete a telemetry drain.
3567
+ #
3568
+ # @param telemetry_drain_id: unique identifier of telemetry drain
3569
+ def delete(telemetry_drain_id)
3570
+ @client.telemetry_drain.delete(telemetry_drain_id)
3571
+ end
3572
+
3573
+ # Info for a telemetry drain.
3574
+ #
3575
+ # @param telemetry_drain_id: unique identifier of telemetry drain
3576
+ def info(telemetry_drain_id)
3577
+ @client.telemetry_drain.info(telemetry_drain_id)
3424
3578
  end
3425
3579
  end
3426
3580
 
@@ -3572,6 +3726,58 @@ module PlatformAPI
3572
3726
  "object"
3573
3727
  ],
3574
3728
  "definitions": {
3729
+ "account-delinquency": {
3730
+ "description": "A Heroku account becomes delinquent due to non-payment. We [suspend and delete](https://help.heroku.com/EREVRILX/what-happens-if-i-have-unpaid-heroku-invoices) delinquent accounts if their invoices remain unpaid.",
3731
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
3732
+ "stability": "development",
3733
+ "strictProperties": true,
3734
+ "title": "Heroku Platform API - Account Delinquency",
3735
+ "type": [
3736
+ "object"
3737
+ ],
3738
+ "definitions": {
3739
+ "scheduled_suspension_time": {
3740
+ "description": "scheduled time of when we will suspend your account due to delinquency",
3741
+ "example": "2024-01-01T12:00:00Z",
3742
+ "format": "date-time",
3743
+ "readOnly": true,
3744
+ "type": [
3745
+ "string",
3746
+ "null"
3747
+ ]
3748
+ },
3749
+ "scheduled_deletion_time": {
3750
+ "description": "scheduled time of when we will delete your account due to delinquency",
3751
+ "example": "2024-01-01T12:00:00Z",
3752
+ "format": "date-time",
3753
+ "readOnly": true,
3754
+ "type": [
3755
+ "string",
3756
+ "null"
3757
+ ]
3758
+ }
3759
+ },
3760
+ "links": [
3761
+ {
3762
+ "description": "Account delinquency information.",
3763
+ "href": "/account/delinquency",
3764
+ "method": "GET",
3765
+ "rel": "self",
3766
+ "targetSchema": {
3767
+ "$ref": "#/definitions/account-delinquency"
3768
+ },
3769
+ "title": "Info"
3770
+ }
3771
+ ],
3772
+ "properties": {
3773
+ "scheduled_suspension_time": {
3774
+ "$ref": "#/definitions/account-delinquency/definitions/scheduled_suspension_time"
3775
+ },
3776
+ "scheduled_deletion_time": {
3777
+ "$ref": "#/definitions/account-delinquency/definitions/scheduled_deletion_time"
3778
+ }
3779
+ }
3780
+ },
3575
3781
  "account-feature": {
3576
3782
  "description": "An account feature represents a Heroku labs capability that can be enabled or disabled for an account on Heroku.",
3577
3783
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -4863,6 +5069,27 @@ module PlatformAPI
4863
5069
  "type": [
4864
5070
  "string"
4865
5071
  ]
5072
+ },
5073
+ "supported_generations": {
5074
+ "description": "generations supported by this add-on",
5075
+ "readonly": true,
5076
+ "type": [
5077
+ "array"
5078
+ ],
5079
+ "items": {
5080
+ "type": [
5081
+ "object"
5082
+ ],
5083
+ "properties": {
5084
+ "name": {
5085
+ "$ref": "#/definitions/generation/definitions/name",
5086
+ "example": "cedar"
5087
+ },
5088
+ "id": {
5089
+ "$ref": "#/definitions/generation/definitions/id"
5090
+ }
5091
+ }
5092
+ }
4866
5093
  }
4867
5094
  },
4868
5095
  "links": [
@@ -4919,6 +5146,9 @@ module PlatformAPI
4919
5146
  },
4920
5147
  "updated_at": {
4921
5148
  "$ref": "#/definitions/add-on-service/definitions/updated_at"
5149
+ },
5150
+ "supported_generations": {
5151
+ "$ref": "#/definitions/add-on-service/definitions/supported_generations"
4922
5152
  }
4923
5153
  }
4924
5154
  },
@@ -7309,6 +7539,32 @@ module PlatformAPI
7309
7539
  "string"
7310
7540
  ]
7311
7541
  },
7542
+ "generation": {
7543
+ "description": "Generation of the Heroku platform for this app",
7544
+ "readOnly": true,
7545
+ "type": [
7546
+ "object"
7547
+ ],
7548
+ "properties": {
7549
+ "id": {
7550
+ "description": "unique identifier of the generation of the Heroku platform for this app",
7551
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
7552
+ "format": "uuid",
7553
+ "readOnly": true,
7554
+ "type": [
7555
+ "string"
7556
+ ]
7557
+ },
7558
+ "name": {
7559
+ "description": "unique name of the generation of the Heroku platform for this app",
7560
+ "example": "cedar",
7561
+ "readOnly": true,
7562
+ "type": [
7563
+ "string"
7564
+ ]
7565
+ }
7566
+ }
7567
+ },
7312
7568
  "git_url": {
7313
7569
  "description": "git repo URL of app",
7314
7570
  "example": "https://git.heroku.com/example.git",
@@ -7597,6 +7853,9 @@ module PlatformAPI
7597
7853
  "created_at": {
7598
7854
  "$ref": "#/definitions/app/definitions/created_at"
7599
7855
  },
7856
+ "generation": {
7857
+ "$ref": "#/definitions/app/definitions/generation"
7858
+ },
7600
7859
  "git_url": {
7601
7860
  "$ref": "#/definitions/app/definitions/git_url"
7602
7861
  },
@@ -8052,7 +8311,7 @@ module PlatformAPI
8052
8311
  },
8053
8312
  "build": {
8054
8313
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
8055
- "description": "A build represents the process of transforming a code tarball into a slug",
8314
+ "description": "A build represents the process of transforming a code tarball into build artifacts",
8056
8315
  "title": "Heroku Build API - Build",
8057
8316
  "stability": "production",
8058
8317
  "strictProperties": false,
@@ -8069,7 +8328,7 @@ module PlatformAPI
8069
8328
  ],
8070
8329
  "definitions": {
8071
8330
  "buildpacks": {
8072
- "description": "buildpacks executed for this build, in order",
8331
+ "description": "buildpacks executed for this build, in order (only applicable to Cedar-generation apps)",
8073
8332
  "type": [
8074
8333
  "array",
8075
8334
  "null"
@@ -8339,7 +8598,7 @@ module PlatformAPI
8339
8598
  "$ref": "#/definitions/build/definitions/release"
8340
8599
  },
8341
8600
  "slug": {
8342
- "description": "slug created by this build",
8601
+ "description": "slug created by this build (only applicable for Cedar-generation apps)",
8343
8602
  "properties": {
8344
8603
  "id": {
8345
8604
  "$ref": "#/definitions/slug/definitions/id"
@@ -9204,6 +9463,14 @@ module PlatformAPI
9204
9463
  "object"
9205
9464
  ],
9206
9465
  "definitions": {
9466
+ "architecture": {
9467
+ "description": "CPU architecture of this dyno size",
9468
+ "example": "amd64",
9469
+ "readOnly": true,
9470
+ "type": [
9471
+ "string"
9472
+ ]
9473
+ },
9207
9474
  "compute": {
9208
9475
  "description": "minimum vCPUs, non-dedicated may get more depending on load",
9209
9476
  "example": 1,
@@ -9220,8 +9487,34 @@ module PlatformAPI
9220
9487
  "boolean"
9221
9488
  ]
9222
9489
  },
9490
+ "generation": {
9491
+ "description": "Generation of the Heroku platform for this dyno size",
9492
+ "readOnly": true,
9493
+ "type": [
9494
+ "object"
9495
+ ],
9496
+ "properties": {
9497
+ "id": {
9498
+ "description": "unique identifier of the generation of the Heroku platform for this dyno size",
9499
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
9500
+ "format": "uuid",
9501
+ "readOnly": true,
9502
+ "type": [
9503
+ "string"
9504
+ ]
9505
+ },
9506
+ "name": {
9507
+ "description": "unique name of the generation of the Heroku platform for this dyno size",
9508
+ "example": "cedar",
9509
+ "readOnly": true,
9510
+ "type": [
9511
+ "string"
9512
+ ]
9513
+ }
9514
+ }
9515
+ },
9223
9516
  "id": {
9224
- "description": "unique identifier of this dyno size",
9517
+ "description": "unique identifier of the dyno size",
9225
9518
  "example": "01234567-89ab-cdef-0123-456789abcdef",
9226
9519
  "format": "uuid",
9227
9520
  "readOnly": true,
@@ -9248,7 +9541,7 @@ module PlatformAPI
9248
9541
  ]
9249
9542
  },
9250
9543
  "name": {
9251
- "description": "the name of this dyno-size",
9544
+ "description": "name of the dyno size",
9252
9545
  "example": "eco",
9253
9546
  "readOnly": true,
9254
9547
  "type": [
@@ -9281,15 +9574,6 @@ module PlatformAPI
9281
9574
  }
9282
9575
  }
9283
9576
  },
9284
- "dyno_units": {
9285
- "deprecated": true,
9286
- "description": "deprecated. See precise_dyno_units instead",
9287
- "example": 0,
9288
- "readOnly": true,
9289
- "type": [
9290
- "integer"
9291
- ]
9292
- },
9293
9577
  "precise_dyno_units": {
9294
9578
  "description": "unit of consumption for Heroku Enterprise customers to 2 decimal places",
9295
9579
  "example": 0.28,
@@ -9332,9 +9616,24 @@ module PlatformAPI
9332
9616
  ]
9333
9617
  },
9334
9618
  "title": "List"
9619
+ },
9620
+ {
9621
+ "description": "List available dyno sizes for an app",
9622
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/available-dyno-sizes",
9623
+ "method": "GET",
9624
+ "rel": "available-app-dynos",
9625
+ "targetSchema": {
9626
+ "items": {
9627
+ "$ref": "#/definitions/dyno-size"
9628
+ }
9629
+ },
9630
+ "title": "List App Dyno Sizes"
9335
9631
  }
9336
9632
  ],
9337
9633
  "properties": {
9634
+ "architecture": {
9635
+ "$ref": "#/definitions/dyno-size/definitions/architecture"
9636
+ },
9338
9637
  "compute": {
9339
9638
  "$ref": "#/definitions/dyno-size/definitions/compute"
9340
9639
  },
@@ -9344,12 +9643,12 @@ module PlatformAPI
9344
9643
  "dedicated": {
9345
9644
  "$ref": "#/definitions/dyno-size/definitions/dedicated"
9346
9645
  },
9347
- "dyno_units": {
9348
- "$ref": "#/definitions/dyno-size/definitions/dyno_units"
9349
- },
9350
9646
  "precise_dyno_units": {
9351
9647
  "$ref": "#/definitions/dyno-size/definitions/precise_dyno_units"
9352
9648
  },
9649
+ "generation": {
9650
+ "$ref": "#/definitions/dyno-size/definitions/generation"
9651
+ },
9353
9652
  "id": {
9354
9653
  "$ref": "#/definitions/dyno-size/definitions/id"
9355
9654
  },
@@ -9455,6 +9754,14 @@ module PlatformAPI
9455
9754
  "string"
9456
9755
  ]
9457
9756
  },
9757
+ "formation_type": {
9758
+ "description": "the formation type of this process on this dyno",
9759
+ "example": "run",
9760
+ "readOnly": true,
9761
+ "type": [
9762
+ "string"
9763
+ ]
9764
+ },
9458
9765
  "force_no_tty": {
9459
9766
  "description": "force an attached one-off dyno to not run in a tty",
9460
9767
  "example": null,
@@ -9465,7 +9772,7 @@ module PlatformAPI
9465
9772
  ]
9466
9773
  },
9467
9774
  "size": {
9468
- "description": "dyno size (default: \"standard-1X\")",
9775
+ "description": "dyno size",
9469
9776
  "example": "standard-1X",
9470
9777
  "readOnly": false,
9471
9778
  "type": [
@@ -9562,8 +9869,8 @@ module PlatformAPI
9562
9869
  "title": "Restart"
9563
9870
  },
9564
9871
  {
9565
- "description": "Restart all dynos.",
9566
- "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos",
9872
+ "description": "Restart dynos of a given formation type.",
9873
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formations/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fformation_type)}",
9567
9874
  "method": "DELETE",
9568
9875
  "rel": "empty",
9569
9876
  "targetSchema": {
@@ -9572,7 +9879,20 @@ module PlatformAPI
9572
9879
  "object"
9573
9880
  ]
9574
9881
  },
9575
- "title": "Restart all"
9882
+ "title": "Restart formation"
9883
+ },
9884
+ {
9885
+ "description": "Restart all dynos.",
9886
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos",
9887
+ "method": "DELETE",
9888
+ "rel": "empty",
9889
+ "targetSchema": {
9890
+ "additionalProperties": false,
9891
+ "type": [
9892
+ "object"
9893
+ ]
9894
+ },
9895
+ "title": "Restart all"
9576
9896
  },
9577
9897
  {
9578
9898
  "description": "Stop dyno.",
@@ -9587,6 +9907,19 @@ module PlatformAPI
9587
9907
  },
9588
9908
  "title": "Stop"
9589
9909
  },
9910
+ {
9911
+ "description": "Stop dynos of a given formation type.",
9912
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formations/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fformation_type)}/actions/stop",
9913
+ "method": "POST",
9914
+ "rel": "empty",
9915
+ "targetSchema": {
9916
+ "additionalProperties": false,
9917
+ "type": [
9918
+ "object"
9919
+ ]
9920
+ },
9921
+ "title": "Stop formation"
9922
+ },
9590
9923
  {
9591
9924
  "description": "Info for existing dyno.",
9592
9925
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fidentity)}",
@@ -10142,7 +10475,7 @@ module PlatformAPI
10142
10475
  ]
10143
10476
  },
10144
10477
  "connect": {
10145
- "description": "average connect rows synced",
10478
+ "description": "max connect rows synced",
10146
10479
  "example": 15000,
10147
10480
  "readOnly": true,
10148
10481
  "type": [
@@ -10367,6 +10700,9 @@ module PlatformAPI
10367
10700
  "anyOf": [
10368
10701
  {
10369
10702
  "$ref": "#/definitions/enterprise-account/definitions/id"
10703
+ },
10704
+ {
10705
+ "$ref": "#/definitions/enterprise-account/definitions/name"
10370
10706
  }
10371
10707
  ]
10372
10708
  },
@@ -10589,6 +10925,50 @@ module PlatformAPI
10589
10925
  "string"
10590
10926
  ]
10591
10927
  },
10928
+ "dyno_size": {
10929
+ "description": "dyno size",
10930
+ "example": {
10931
+ "id": "01234567-89ab-cdef-0123-456789abcdef"
10932
+ },
10933
+ "oneOf": [
10934
+ {
10935
+ "required": [
10936
+ "id"
10937
+ ]
10938
+ },
10939
+ {
10940
+ "required": [
10941
+ "name"
10942
+ ]
10943
+ }
10944
+ ],
10945
+ "properties": {
10946
+ "id": {
10947
+ "description": "unique identifier of the dyno size",
10948
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
10949
+ "format": "uuid",
10950
+ "readOnly": true,
10951
+ "type": [
10952
+ "string"
10953
+ ]
10954
+ },
10955
+ "name": {
10956
+ "description": "name of the dyno size",
10957
+ "example": "Standard-1X",
10958
+ "readOnly": true,
10959
+ "type": [
10960
+ "string"
10961
+ ]
10962
+ }
10963
+ },
10964
+ "readOnly": false,
10965
+ "required": [
10966
+ "id"
10967
+ ],
10968
+ "type": [
10969
+ "object"
10970
+ ]
10971
+ },
10592
10972
  "id": {
10593
10973
  "description": "unique identifier of this process type",
10594
10974
  "example": "01234567-89ab-cdef-0123-456789abcdef",
@@ -10617,7 +10997,8 @@ module PlatformAPI
10617
10997
  ]
10618
10998
  },
10619
10999
  "size": {
10620
- "description": "dyno size (default: \"standard-1X\")",
11000
+ "deprecated": true,
11001
+ "description": "deprecated, refer to 'dyno_size' instead",
10621
11002
  "example": "standard-1X",
10622
11003
  "readOnly": false,
10623
11004
  "type": [
@@ -10646,12 +11027,12 @@ module PlatformAPI
10646
11027
  "additionalProperties": false,
10647
11028
  "description": "Properties to update a process type",
10648
11029
  "properties": {
11030
+ "dyno_size": {
11031
+ "$ref": "#/definitions/formation/definitions/dyno_size"
11032
+ },
10649
11033
  "quantity": {
10650
11034
  "$ref": "#/definitions/formation/definitions/quantity"
10651
11035
  },
10652
- "size": {
10653
- "$ref": "#/definitions/formation/definitions/size"
10654
- },
10655
11036
  "type": {
10656
11037
  "$ref": "#/definitions/formation/definitions/type"
10657
11038
  }
@@ -10705,7 +11086,7 @@ module PlatformAPI
10705
11086
  "items": {
10706
11087
  "$ref": "#/definitions/formation/definitions/update"
10707
11088
  },
10708
- "description": "Array with formation updates. Each element must have \"type\", the id or name of the process type to be updated, and can optionally update its \"quantity\" or \"size\"."
11089
+ "description": "Array with formation updates. Each element must have \"type\", the id or name of the process type to be updated, and can optionally update its \"quantity\" or \"dyno_size\"."
10709
11090
  }
10710
11091
  },
10711
11092
  "required": [
@@ -10732,11 +11113,11 @@ module PlatformAPI
10732
11113
  "rel": "update",
10733
11114
  "schema": {
10734
11115
  "properties": {
11116
+ "dyno_size": {
11117
+ "$ref": "#/definitions/formation/definitions/dyno_size"
11118
+ },
10735
11119
  "quantity": {
10736
11120
  "$ref": "#/definitions/formation/definitions/quantity"
10737
- },
10738
- "size": {
10739
- "$ref": "#/definitions/formation/definitions/size"
10740
11121
  }
10741
11122
  },
10742
11123
  "type": [
@@ -10773,6 +11154,20 @@ module PlatformAPI
10773
11154
  "created_at": {
10774
11155
  "$ref": "#/definitions/formation/definitions/created_at"
10775
11156
  },
11157
+ "dyno_size": {
11158
+ "description": "dyno size",
11159
+ "properties": {
11160
+ "id": {
11161
+ "$ref": "#/definitions/dyno-size/definitions/id"
11162
+ },
11163
+ "name": {
11164
+ "$ref": "#/definitions/dyno-size/definitions/name"
11165
+ }
11166
+ },
11167
+ "type": [
11168
+ "object"
11169
+ ]
11170
+ },
10776
11171
  "id": {
10777
11172
  "$ref": "#/definitions/formation/definitions/id"
10778
11173
  },
@@ -10790,8 +11185,121 @@ module PlatformAPI
10790
11185
  }
10791
11186
  }
10792
11187
  },
11188
+ "generation": {
11189
+ "description": "A generation represents a version of the Heroku platform that includes the app execution environment, routing, telemetry, and build systems.",
11190
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
11191
+ "stability": "prototype",
11192
+ "strictProperties": true,
11193
+ "title": "Heroku Platform API - Generation",
11194
+ "type": [
11195
+ "object"
11196
+ ],
11197
+ "definitions": {
11198
+ "created_at": {
11199
+ "description": "when generation was created",
11200
+ "example": "2024-12-01T12:00:00Z",
11201
+ "format": "date-time",
11202
+ "readOnly": true,
11203
+ "type": [
11204
+ "string"
11205
+ ]
11206
+ },
11207
+ "id": {
11208
+ "description": "unique identifier of generation",
11209
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
11210
+ "format": "uuid",
11211
+ "readOnly": true,
11212
+ "type": [
11213
+ "string"
11214
+ ]
11215
+ },
11216
+ "identity": {
11217
+ "anyOf": [
11218
+ {
11219
+ "$ref": "#/definitions/generation/definitions/name"
11220
+ },
11221
+ {
11222
+ "$ref": "#/definitions/generation/definitions/id"
11223
+ }
11224
+ ]
11225
+ },
11226
+ "name": {
11227
+ "description": "unique name of generation",
11228
+ "example": "fir",
11229
+ "readOnly": true,
11230
+ "type": [
11231
+ "string"
11232
+ ]
11233
+ },
11234
+ "updated_at": {
11235
+ "description": "when generation was updated",
11236
+ "example": "2024-12-01T12:00:00Z",
11237
+ "format": "date-time",
11238
+ "readOnly": true,
11239
+ "type": [
11240
+ "string"
11241
+ ]
11242
+ }
11243
+ },
11244
+ "links": [
11245
+ {
11246
+ "description": "Info for generation.",
11247
+ "href": "/generations/{(%23%2Fdefinitions%2Fstack%2Fdefinitions%2Fidentity)}",
11248
+ "method": "GET",
11249
+ "rel": "self",
11250
+ "targetSchema": {
11251
+ "$ref": "#/definitions/generation"
11252
+ },
11253
+ "title": "Info"
11254
+ },
11255
+ {
11256
+ "description": "List available generations.",
11257
+ "href": "/generations",
11258
+ "method": "GET",
11259
+ "rel": "instances",
11260
+ "targetSchema": {
11261
+ "items": {
11262
+ "$ref": "#/definitions/generation"
11263
+ },
11264
+ "type": [
11265
+ "array"
11266
+ ]
11267
+ },
11268
+ "title": "List"
11269
+ },
11270
+ {
11271
+ "description": "List available generations for a team.",
11272
+ "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/available-generations",
11273
+ "method": "GET",
11274
+ "rel": "instances",
11275
+ "targetSchema": {
11276
+ "items": {
11277
+ "$ref": "#/definitions/generation"
11278
+ },
11279
+ "type": [
11280
+ "array"
11281
+ ]
11282
+ },
11283
+ "title": "List by Team"
11284
+ }
11285
+ ],
11286
+ "properties": {
11287
+ "created_at": {
11288
+ "$ref": "#/definitions/generation/definitions/created_at"
11289
+ },
11290
+ "id": {
11291
+ "$ref": "#/definitions/generation/definitions/id"
11292
+ },
11293
+ "name": {
11294
+ "$ref": "#/definitions/generation/definitions/name"
11295
+ },
11296
+ "updated_at": {
11297
+ "$ref": "#/definitions/generation/definitions/updated_at"
11298
+ }
11299
+ }
11300
+ },
10793
11301
  "identity-provider": {
10794
- "description": "Identity Providers represent the SAML configuration of an Enterprise Account or Team.",
11302
+ "description": "Identity Providers represent the SAML configuration of teams or an Enterprise account",
10795
11303
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
10796
11304
  "stability": "production",
10797
11305
  "strictProperties": true,
@@ -11154,6 +11662,9 @@ module PlatformAPI
11154
11662
  "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/inbound-ruleset",
11155
11663
  "method": "PUT",
11156
11664
  "rel": "create",
11665
+ "targetSchema": {
11666
+ "$ref": "#/definitions/inbound-ruleset"
11667
+ },
11157
11668
  "schema": {
11158
11669
  "type": [
11159
11670
  "object"
@@ -11939,9 +12450,17 @@ module PlatformAPI
11939
12450
  "string"
11940
12451
  ]
11941
12452
  },
11942
- "dyno": {
11943
- "description": "dyno to limit results to",
11944
- "example": "web.1",
12453
+ "dyno_name": {
12454
+ "description": "dyno name to limit results to",
12455
+ "example": "'web.1' (Cedar-generation) or 'web-1234abcde-123ab' (Fir-generation)",
12456
+ "readOnly": false,
12457
+ "type": [
12458
+ "string"
12459
+ ]
12460
+ },
12461
+ "type": {
12462
+ "description": "process type to limit results to",
12463
+ "example": "web",
11945
12464
  "readOnly": false,
11946
12465
  "type": [
11947
12466
  "string"
@@ -12013,8 +12532,11 @@ module PlatformAPI
12013
12532
  "rel": "create",
12014
12533
  "schema": {
12015
12534
  "properties": {
12016
- "dyno": {
12017
- "$ref": "#/definitions/log-session/definitions/dyno"
12535
+ "dyno_name": {
12536
+ "$ref": "#/definitions/log-session/definitions/dyno_name"
12537
+ },
12538
+ "type": {
12539
+ "$ref": "#/definitions/log-session/definitions/type"
12018
12540
  },
12019
12541
  "lines": {
12020
12542
  "$ref": "#/definitions/log-session/definitions/lines"
@@ -12172,6 +12694,43 @@ module PlatformAPI
12172
12694
  },
12173
12695
  "title": "Info"
12174
12696
  },
12697
+ {
12698
+ "description": "Update an existing OAuth authorization.",
12699
+ "href": "/oauth/authorizations/{(%23%2Fdefinitions%2Foauth-authorization%2Fdefinitions%2Fidentity)}",
12700
+ "method": "PATCH",
12701
+ "rel": "update",
12702
+ "targetSchema": {
12703
+ "$ref": "#/definitions/oauth-authorization"
12704
+ },
12705
+ "schema": {
12706
+ "properties": {
12707
+ "description": {
12708
+ "$ref": "#/definitions/oauth-authorization/definitions/description"
12709
+ },
12710
+ "client": {
12711
+ "type": [
12712
+ "object"
12713
+ ],
12714
+ "description": "identifier of the client that obtained this authorization",
12715
+ "properties": {
12716
+ "id": {
12717
+ "$ref": "#/definitions/oauth-client/definitions/id"
12718
+ },
12719
+ "secret": {
12720
+ "$ref": "#/definitions/oauth-client/definitions/secret"
12721
+ }
12722
+ }
12723
+ }
12724
+ },
12725
+ "required": [
12726
+ "client"
12727
+ ],
12728
+ "type": [
12729
+ "object"
12730
+ ]
12731
+ },
12732
+ "title": "Update"
12733
+ },
12175
12734
  {
12176
12735
  "description": "List OAuth authorizations.",
12177
12736
  "href": "/oauth/authorizations",
@@ -12238,6 +12797,9 @@ module PlatformAPI
12238
12797
  "created_at": {
12239
12798
  "$ref": "#/definitions/oauth-authorization/definitions/created_at"
12240
12799
  },
12800
+ "description": {
12801
+ "$ref": "#/definitions/oauth-authorization/definitions/description"
12802
+ },
12241
12803
  "grant": {
12242
12804
  "description": "this authorization's grant",
12243
12805
  "properties": {
@@ -12282,6 +12844,19 @@ module PlatformAPI
12282
12844
  "scope": {
12283
12845
  "$ref": "#/definitions/oauth-authorization/definitions/scope"
12284
12846
  },
12847
+ "session": {
12848
+ "description": "this authorization's session",
12849
+ "properties": {
12850
+ "id": {
12851
+ "$ref": "#/definitions/oauth-token/definitions/id"
12852
+ }
12853
+ },
12854
+ "strictProperties": true,
12855
+ "type": [
12856
+ "null",
12857
+ "object"
12858
+ ]
12859
+ },
12285
12860
  "updated_at": {
12286
12861
  "$ref": "#/definitions/oauth-authorization/definitions/updated_at"
12287
12862
  },
@@ -12422,7 +12997,7 @@ module PlatformAPI
12422
12997
  "title": "Delete"
12423
12998
  },
12424
12999
  {
12425
- "description": "Info for an OAuth client",
13000
+ "description": "Info for an OAuth client. The output for unauthenticated requests excludes the `secret` parameter.",
12426
13001
  "href": "/oauth/clients/{(%23%2Fdefinitions%2Foauth-client%2Fdefinitions%2Fidentity)}",
12427
13002
  "method": "GET",
12428
13003
  "rel": "self",
@@ -12604,7 +13179,7 @@ module PlatformAPI
12604
13179
  },
12605
13180
  "token": {
12606
13181
  "description": "contents of the token to be used for authorization",
12607
- "example": "01234567-89ab-cdef-0123-456789abcdef",
13182
+ "example": "HRKU-01234567-89ab-cdef-0123-456789abcdef",
12608
13183
  "readOnly": true,
12609
13184
  "type": [
12610
13185
  "string"
@@ -12799,36 +13374,18 @@ module PlatformAPI
12799
13374
  }
12800
13375
  }
12801
13376
  },
12802
- "outbound-ruleset": {
12803
- "description": "An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with. ",
13377
+ "oci-image": {
13378
+ "description": "An OCI (Open Container Initiative) image is a standardized format for packaging and distributing containerized applications, ready to run on the platform.",
12804
13379
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
12805
13380
  "stability": "prototype",
12806
13381
  "strictProperties": true,
12807
- "title": "Heroku Platform API - Outbound Ruleset",
13382
+ "title": "Heroku Platform API - OCI Image",
12808
13383
  "type": [
12809
13384
  "object"
12810
13385
  ],
12811
13386
  "definitions": {
12812
- "target": {
12813
- "description": "is the target destination in CIDR notation",
12814
- "example": "1.1.1.1/1",
12815
- "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]))$",
12816
- "readOnly": false,
12817
- "type": [
12818
- "string"
12819
- ]
12820
- },
12821
- "created_at": {
12822
- "description": "when outbound-ruleset was created",
12823
- "example": "2012-01-01T12:00:00Z",
12824
- "format": "date-time",
12825
- "readOnly": true,
12826
- "type": [
12827
- "string"
12828
- ]
12829
- },
12830
13387
  "id": {
12831
- "description": "unique identifier of an outbound-ruleset",
13388
+ "description": "unique identifier of the OCI image",
12832
13389
  "example": "01234567-89ab-cdef-0123-456789abcdef",
12833
13390
  "format": "uuid",
12834
13391
  "readOnly": true,
@@ -12836,146 +13393,336 @@ module PlatformAPI
12836
13393
  "string"
12837
13394
  ]
12838
13395
  },
12839
- "port": {
12840
- "description": "an endpoint of communication in an operating system.",
12841
- "example": 80,
13396
+ "digest": {
13397
+ "description": "unique identifier representing the content of the OCI image",
13398
+ "example": "sha256:dc14ae5fbc1e7230e0a782bf216fb46500e210631703bcc6bab8acf2c6a23f42",
12842
13399
  "readOnly": false,
12843
13400
  "type": [
12844
- "integer"
13401
+ "string"
12845
13402
  ]
12846
13403
  },
12847
- "protocol": {
12848
- "description": "formal standards and policies comprised of rules, procedures and formats that define communication between two or more devices over a network",
12849
- "example": "tcp",
13404
+ "architecture": {
13405
+ "description": "build architecture for OCI image",
13406
+ "example": "arm64",
12850
13407
  "readOnly": false,
12851
13408
  "type": [
12852
- "string"
13409
+ "string",
13410
+ "null"
12853
13411
  ]
12854
13412
  },
12855
13413
  "identity": {
12856
13414
  "anyOf": [
12857
13415
  {
12858
- "$ref": "#/definitions/outbound-ruleset/definitions/id"
13416
+ "$ref": "#/definitions/oci-image/definitions/id"
13417
+ },
13418
+ {
13419
+ "$ref": "#/definitions/oci-image/definitions/digest"
12859
13420
  }
12860
13421
  ]
12861
13422
  },
12862
- "rule": {
12863
- "description": "the combination of an IP address in CIDR notation, a from_port, to_port and protocol.",
13423
+ "base_image_name": {
13424
+ "description": "name of the image used for the base layers of the OCI image",
13425
+ "example": "heroku/heroku:22-cnb",
13426
+ "readOnly": false,
12864
13427
  "type": [
12865
- "object"
12866
- ],
12867
- "properties": {
12868
- "target": {
12869
- "$ref": "#/definitions/outbound-ruleset/definitions/target"
12870
- },
12871
- "from_port": {
12872
- "$ref": "#/definitions/outbound-ruleset/definitions/port"
12873
- },
12874
- "to_port": {
12875
- "$ref": "#/definitions/outbound-ruleset/definitions/port"
12876
- },
12877
- "protocol": {
12878
- "$ref": "#/definitions/outbound-ruleset/definitions/protocol"
13428
+ "string"
13429
+ ]
13430
+ },
13431
+ "base_top_layer": {
13432
+ "description": "the digest of the top most layer of the base image.",
13433
+ "example": "sha256:ea36ae5fbc1e7230e0a782bf216fb46500e210382703baa6bab8acf2c6a23f78",
13434
+ "readOnly": false,
13435
+ "type": [
13436
+ "string"
13437
+ ]
13438
+ },
13439
+ "commit": {
13440
+ "description": "identification of the code in your version control system (eg: SHA of the git HEAD)",
13441
+ "example": "60883d9e8947a57e04dc9124f25df004866a2051",
13442
+ "readOnly": false,
13443
+ "type": [
13444
+ "string"
13445
+ ]
13446
+ },
13447
+ "commit_description": {
13448
+ "description": "an optional description of the provided commit",
13449
+ "example": "fixed a bug with API documentation",
13450
+ "readOnly": false,
13451
+ "type": [
13452
+ "string"
13453
+ ]
13454
+ },
13455
+ "image_repo": {
13456
+ "description": "name of the image registry repository used for storage",
13457
+ "example": "d7ba1ace-b396-4691-968c-37ae53153426/builds",
13458
+ "readOnly": false,
13459
+ "type": [
13460
+ "string"
13461
+ ]
13462
+ },
13463
+ "process_type": {
13464
+ "description": "process type information such as names and commands",
13465
+ "readOnly": false,
13466
+ "properties": {
13467
+ "name": {
13468
+ "description": "name of the process type",
13469
+ "example": "web",
13470
+ "type": [
13471
+ "string"
13472
+ ]
13473
+ },
13474
+ "display_cmd": {
13475
+ "description": "the detailed command used for display purposes",
13476
+ "example": "bundle exec puma -p $PORT",
13477
+ "type": [
13478
+ "string"
13479
+ ]
13480
+ },
13481
+ "command": {
13482
+ "description": "the command that will be executed",
13483
+ "example": "/cnb/process/web",
13484
+ "type": [
13485
+ "string"
13486
+ ]
13487
+ },
13488
+ "working_dir": {
13489
+ "description": "working directory",
13490
+ "example": "/worspace/webapp",
13491
+ "type": [
13492
+ "string"
13493
+ ]
13494
+ },
13495
+ "default": {
13496
+ "description": "true if it is the default process type",
13497
+ "example": true,
13498
+ "type": [
13499
+ "boolean",
13500
+ "null"
13501
+ ]
12879
13502
  }
12880
13503
  },
12881
- "required": [
12882
- "target",
12883
- "from_port",
12884
- "to_port",
12885
- "protocol"
13504
+ "example": {
13505
+ "name": "web",
13506
+ "display_cmd": "bundle exec puma -p $PORT",
13507
+ "command": "/cnb/process/web",
13508
+ "working_dir": "/workspace/webapp",
13509
+ "default": true
13510
+ },
13511
+ "type": [
13512
+ "object"
12886
13513
  ]
12887
- }
12888
- },
12889
- "links": [
12890
- {
12891
- "description": "Current outbound ruleset for a space",
12892
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset",
12893
- "method": "GET",
12894
- "rel": "self",
12895
- "targetSchema": {
12896
- "$ref": "#/definitions/outbound-ruleset"
13514
+ },
13515
+ "process_types": {
13516
+ "description": "process types of the OCI image",
13517
+ "patternProperties": {
13518
+ "^[-\\w]{1,128}$": {
13519
+ "$ref": "#/definitions/oci-image/definitions/process_type"
13520
+ }
12897
13521
  },
12898
- "title": "Current"
13522
+ "example": {
13523
+ "web": {
13524
+ "name": "web",
13525
+ "display_cmd": "bundle exec puma -p $PORT",
13526
+ "command": "/cnb/process/web",
13527
+ "working_dir": "/workspace/webapp",
13528
+ "default": true
13529
+ }
13530
+ },
13531
+ "type": [
13532
+ "object"
13533
+ ]
12899
13534
  },
12900
- {
12901
- "description": "Info on an existing Outbound Ruleset",
12902
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets/{(%23%2Fdefinitions%2Foutbound-ruleset%2Fdefinitions%2Fidentity)}",
12903
- "method": "GET",
12904
- "rel": "self",
12905
- "targetSchema": {
12906
- "$ref": "#/definitions/outbound-ruleset"
13535
+ "buildpack": {
13536
+ "description": "set of executables that inspects app source code and creates a plan to build and run your image",
13537
+ "readOnly": false,
13538
+ "properties": {
13539
+ "id": {
13540
+ "description": "identifier of the buildpack",
13541
+ "example": "heroku/ruby",
13542
+ "type": [
13543
+ "string"
13544
+ ]
13545
+ },
13546
+ "version": {
13547
+ "description": "version of the buildpack",
13548
+ "example": "2.0.0",
13549
+ "type": [
13550
+ "string"
13551
+ ]
13552
+ },
13553
+ "homepage": {
13554
+ "description": "homepage of the buildpack",
13555
+ "example": "https://github.com/heroku/buildpacks-ruby",
13556
+ "type": [
13557
+ "string"
13558
+ ]
13559
+ }
12907
13560
  },
12908
- "title": "Info"
13561
+ "example": {
13562
+ "id": "heroku/ruby",
13563
+ "version": "2.0.0",
13564
+ "homepage": "https://github.com/heroku/buildpacks-ruby"
13565
+ },
13566
+ "type": [
13567
+ "object"
13568
+ ]
13569
+ },
13570
+ "buildpacks": {
13571
+ "description": "buildpacks of the OCI image",
13572
+ "items": {
13573
+ "$ref": "#/definitions/oci-image/definitions/buildpack"
13574
+ },
13575
+ "type": [
13576
+ "array"
13577
+ ]
13578
+ },
13579
+ "stack": {
13580
+ "description": "stack associated to the OCI image",
13581
+ "readOnly": false,
13582
+ "properties": {
13583
+ "id": {
13584
+ "$ref": "#/definitions/stack/definitions/id",
13585
+ "example": "ba46bf09-7bd1-42fd-90df-a1a9a93eb4a2"
13586
+ },
13587
+ "name": {
13588
+ "$ref": "#/definitions/stack/definitions/name",
13589
+ "example": "cnb"
13590
+ }
13591
+ },
13592
+ "type": [
13593
+ "object"
13594
+ ]
12909
13595
  },
13596
+ "created_at": {
13597
+ "description": "when the OCI image was created",
13598
+ "example": "2012-01-01T12:00:00Z",
13599
+ "format": "date-time",
13600
+ "readOnly": true,
13601
+ "type": [
13602
+ "string"
13603
+ ]
13604
+ },
13605
+ "updated_at": {
13606
+ "description": "when the OCI image was updated",
13607
+ "example": "2012-01-01T12:00:00Z",
13608
+ "format": "date-time",
13609
+ "readOnly": true,
13610
+ "type": [
13611
+ "string"
13612
+ ]
13613
+ }
13614
+ },
13615
+ "links": [
12910
13616
  {
12911
- "description": "List all Outbound Rulesets for a space",
12912
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets",
13617
+ "description": "Info for the OCI images of an app, filtered by identifier.",
13618
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/oci-images/{(%23%2Fdefinitions%2Foci-image%2Fdefinitions%2Fidentity)}",
12913
13619
  "method": "GET",
12914
- "rel": "instances",
13620
+ "rel": "self",
12915
13621
  "targetSchema": {
12916
13622
  "items": {
12917
- "$ref": "#/definitions/outbound-ruleset"
13623
+ "$ref": "#/definitions/oci-image"
12918
13624
  },
12919
13625
  "type": [
12920
13626
  "array"
12921
13627
  ]
12922
13628
  },
12923
- "title": "List"
13629
+ "title": "Info"
12924
13630
  },
12925
13631
  {
12926
- "description": "Create a new outbound ruleset",
12927
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset",
12928
- "method": "PUT",
13632
+ "description": "Create an new OCI image of an app",
13633
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/oci-images",
13634
+ "method": "POST",
12929
13635
  "rel": "create",
12930
13636
  "schema": {
12931
- "type": [
12932
- "object"
12933
- ],
12934
13637
  "properties": {
12935
- "rules": {
12936
- "type": [
12937
- "array"
12938
- ],
12939
- "items": {
12940
- "$ref": "#/definitions/outbound-ruleset/definitions/rule"
12941
- }
13638
+ "architecture": {
13639
+ "$ref": "#/definitions/oci-image/definitions/architecture"
13640
+ },
13641
+ "base_image_name": {
13642
+ "$ref": "#/definitions/oci-image/definitions/base_image_name"
13643
+ },
13644
+ "base_top_layer": {
13645
+ "$ref": "#/definitions/oci-image/definitions/base_top_layer"
13646
+ },
13647
+ "commit": {
13648
+ "$ref": "#/definitions/oci-image/definitions/commit"
13649
+ },
13650
+ "commit_description": {
13651
+ "$ref": "#/definitions/oci-image/definitions/commit_description"
13652
+ },
13653
+ "image_repo": {
13654
+ "$ref": "#/definitions/oci-image/definitions/image_repo"
13655
+ },
13656
+ "digest": {
13657
+ "$ref": "#/definitions/oci-image/definitions/digest"
13658
+ },
13659
+ "stack": {
13660
+ "anyOf": [
13661
+ {
13662
+ "$ref": "#/definitions/stack/definitions/name",
13663
+ "example": "cnb"
13664
+ },
13665
+ {
13666
+ "$ref": "#/definitions/stack/definitions/id"
13667
+ }
13668
+ ]
13669
+ },
13670
+ "process_types": {
13671
+ "$ref": "#/definitions/oci-image/definitions/process_types"
13672
+ },
13673
+ "buildpacks": {
13674
+ "$ref": "#/definitions/oci-image/definitions/buildpacks"
12942
13675
  }
12943
- }
13676
+ },
13677
+ "type": [
13678
+ "object"
13679
+ ]
13680
+ },
13681
+ "targetSchema": {
13682
+ "$ref": "#/definitions/oci-image"
12944
13683
  },
12945
13684
  "title": "Create"
12946
13685
  }
12947
13686
  ],
12948
13687
  "properties": {
12949
13688
  "id": {
12950
- "$ref": "#/definitions/outbound-ruleset/definitions/id"
13689
+ "$ref": "#/definitions/oci-image/definitions/id"
12951
13690
  },
12952
- "space": {
12953
- "description": "identity of space",
12954
- "properties": {
12955
- "id": {
12956
- "$ref": "#/definitions/space/definitions/id"
12957
- },
12958
- "name": {
12959
- "$ref": "#/definitions/space/definitions/name"
12960
- }
12961
- },
12962
- "type": [
12963
- "object"
12964
- ]
13691
+ "base_image_name": {
13692
+ "$ref": "#/definitions/oci-image/definitions/base_image_name"
13693
+ },
13694
+ "base_top_layer": {
13695
+ "$ref": "#/definitions/oci-image/definitions/base_top_layer"
13696
+ },
13697
+ "commit": {
13698
+ "$ref": "#/definitions/oci-image/definitions/commit"
13699
+ },
13700
+ "commit_description": {
13701
+ "$ref": "#/definitions/oci-image/definitions/commit_description"
13702
+ },
13703
+ "image_repo": {
13704
+ "$ref": "#/definitions/oci-image/definitions/image_repo"
13705
+ },
13706
+ "digest": {
13707
+ "$ref": "#/definitions/oci-image/definitions/digest"
13708
+ },
13709
+ "stack": {
13710
+ "$ref": "#/definitions/oci-image/definitions/stack"
13711
+ },
13712
+ "process_types": {
13713
+ "$ref": "#/definitions/oci-image/definitions/process_types"
13714
+ },
13715
+ "buildpacks": {
13716
+ "$ref": "#/definitions/oci-image/definitions/buildpacks"
12965
13717
  },
12966
13718
  "created_at": {
12967
- "$ref": "#/definitions/outbound-ruleset/definitions/created_at"
13719
+ "$ref": "#/definitions/oci-image/definitions/created_at"
12968
13720
  },
12969
- "rules": {
12970
- "type": [
12971
- "array"
12972
- ],
12973
- "items": {
12974
- "$ref": "#/definitions/outbound-ruleset/definitions/rule"
12975
- }
13721
+ "updated_at": {
13722
+ "$ref": "#/definitions/oci-image/definitions/updated_at"
12976
13723
  },
12977
- "created_by": {
12978
- "$ref": "#/definitions/account/definitions/email"
13724
+ "architecture": {
13725
+ "$ref": "#/definitions/oci-image/definitions/architecture"
12979
13726
  }
12980
13727
  }
12981
13728
  },
@@ -13439,7 +14186,7 @@ module PlatformAPI
13439
14186
  }
13440
14187
  },
13441
14188
  "pipeline-build": {
13442
- "description": "Information about latest builds of apps in a pipeline.",
14189
+ "description": "Information about the latest builds of apps in a pipeline. A build represents the process of transforming code into build artifacts.",
13443
14190
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13444
14191
  "stability": "production",
13445
14192
  "strictProperties": true,
@@ -13449,6 +14196,131 @@ module PlatformAPI
13449
14196
  ],
13450
14197
  "definitions": {
13451
14198
  },
14199
+ "properties": {
14200
+ "app": {
14201
+ "description": "app that the build belongs to",
14202
+ "properties": {
14203
+ "id": {
14204
+ "description": "unique identifier of the app",
14205
+ "$ref": "#/definitions/app/definitions/id"
14206
+ }
14207
+ },
14208
+ "strictProperties": true,
14209
+ "type": [
14210
+ "object"
14211
+ ]
14212
+ },
14213
+ "buildpacks": {
14214
+ "$ref": "#/definitions/build/definitions/buildpacks"
14215
+ },
14216
+ "created_at": {
14217
+ "description": "when the build was created",
14218
+ "$ref": "#/definitions/build/definitions/created_at"
14219
+ },
14220
+ "id": {
14221
+ "description": "unique identifier of the build",
14222
+ "$ref": "#/definitions/build/definitions/id"
14223
+ },
14224
+ "output_stream_url": {
14225
+ "description": "streaming URL of the build process output",
14226
+ "$ref": "#/definitions/build/definitions/output_stream_url"
14227
+ },
14228
+ "source_blob": {
14229
+ "description": "location of gzipped tarball of source code used to create build",
14230
+ "properties": {
14231
+ "checksum": {
14232
+ "description": "an optional checksum of the gzipped tarball for verifying its integrity",
14233
+ "example": "SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
14234
+ "readOnly": true,
14235
+ "type": [
14236
+ "null",
14237
+ "string"
14238
+ ]
14239
+ },
14240
+ "url": {
14241
+ "description": "URL where gzipped tar archive of source code for build was downloaded.",
14242
+ "example": "https://example.com/source.tgz?token=xyz",
14243
+ "readOnly": true,
14244
+ "type": [
14245
+ "string"
14246
+ ]
14247
+ },
14248
+ "version": {
14249
+ "description": "version of the gzipped tarball",
14250
+ "example": "v1.3.0",
14251
+ "readOnly": true,
14252
+ "type": [
14253
+ "string",
14254
+ "null"
14255
+ ]
14256
+ },
14257
+ "version_description": {
14258
+ "description": "version description of the gzipped tarball",
14259
+ "example": "* Fake User: Change session key",
14260
+ "readOnly": true,
14261
+ "type": [
14262
+ "string",
14263
+ "null"
14264
+ ]
14265
+ }
14266
+ },
14267
+ "strictProperties": true,
14268
+ "type": [
14269
+ "object"
14270
+ ]
14271
+ },
14272
+ "release": {
14273
+ "properties": {
14274
+ "id": {
14275
+ "description": "unique identifier of the release",
14276
+ "$ref": "#/definitions/release/definitions/id"
14277
+ }
14278
+ },
14279
+ "$ref": "#/definitions/build/definitions/release"
14280
+ },
14281
+ "slug": {
14282
+ "description": "slug created by this build",
14283
+ "properties": {
14284
+ "id": {
14285
+ "description": "unique identifier of the slug",
14286
+ "$ref": "#/definitions/slug/definitions/id"
14287
+ }
14288
+ },
14289
+ "strictProperties": true,
14290
+ "type": [
14291
+ "object",
14292
+ "null"
14293
+ ]
14294
+ },
14295
+ "stack": {
14296
+ "description": "stack of the build",
14297
+ "example": "heroku-24",
14298
+ "$ref": "#/definitions/build/definitions/stack"
14299
+ },
14300
+ "status": {
14301
+ "description": "status of the build",
14302
+ "$ref": "#/definitions/build/definitions/status"
14303
+ },
14304
+ "updated_at": {
14305
+ "description": "when the build was updated",
14306
+ "$ref": "#/definitions/build/definitions/updated_at"
14307
+ },
14308
+ "user": {
14309
+ "description": "user that started the build",
14310
+ "properties": {
14311
+ "id": {
14312
+ "$ref": "#/definitions/account/definitions/id"
14313
+ },
14314
+ "email": {
14315
+ "$ref": "#/definitions/account/definitions/email"
14316
+ }
14317
+ },
14318
+ "strictProperties": true,
14319
+ "type": [
14320
+ "object"
14321
+ ]
14322
+ }
14323
+ },
13452
14324
  "links": [
13453
14325
  {
13454
14326
  "description": "List latest builds for each app in a pipeline",
@@ -13457,7 +14329,7 @@ module PlatformAPI
13457
14329
  "rel": "instances",
13458
14330
  "targetSchema": {
13459
14331
  "items": {
13460
- "$ref": "#/definitions/build"
14332
+ "$ref": "#/definitions/pipeline-build"
13461
14333
  },
13462
14334
  "type": [
13463
14335
  "array"
@@ -13468,7 +14340,7 @@ module PlatformAPI
13468
14340
  ]
13469
14341
  },
13470
14342
  "pipeline-config-var": {
13471
- "description": "Pipeline Config Vars allow you to manage the configuration information provided to a pipeline.",
14343
+ "description": "Pipeline config vars in Heroku CI and review apps used to manage the configuration information for a pipeline.",
13472
14344
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13473
14345
  "stability": "production",
13474
14346
  "strictProperties": true,
@@ -13497,6 +14369,17 @@ module PlatformAPI
13497
14369
  ]
13498
14370
  }
13499
14371
  },
14372
+ "properties": {
14373
+ "[\"NAME\"]: [\"value\"]": {
14374
+ "type": [
14375
+ "object"
14376
+ ],
14377
+ "description": "user-defined config var name and value",
14378
+ "example": {
14379
+ "FOO": "bar"
14380
+ }
14381
+ }
14382
+ },
13500
14383
  "links": [
13501
14384
  {
13502
14385
  "description": "Get config-vars for a pipeline stage.",
@@ -13753,9 +14636,73 @@ module PlatformAPI
13753
14636
  ],
13754
14637
  "properties": {
13755
14638
  "app": {
13756
- "description": "app involved in the pipeline coupling",
14639
+ "description": "app involved in the pipeline coupling",
14640
+ "properties": {
14641
+ "id": {
14642
+ "$ref": "#/definitions/app/definitions/id"
14643
+ }
14644
+ },
14645
+ "type": [
14646
+ "object"
14647
+ ]
14648
+ },
14649
+ "created_at": {
14650
+ "$ref": "#/definitions/pipeline-coupling/definitions/created_at"
14651
+ },
14652
+ "id": {
14653
+ "$ref": "#/definitions/pipeline-coupling/definitions/id"
14654
+ },
14655
+ "pipeline": {
14656
+ "description": "pipeline involved in the coupling",
14657
+ "properties": {
14658
+ "id": {
14659
+ "$ref": "#/definitions/pipeline/definitions/id"
14660
+ }
14661
+ },
14662
+ "type": [
14663
+ "object"
14664
+ ]
14665
+ },
14666
+ "stage": {
14667
+ "$ref": "#/definitions/pipeline-coupling/definitions/stage"
14668
+ },
14669
+ "updated_at": {
14670
+ "$ref": "#/definitions/pipeline-coupling/definitions/updated_at"
14671
+ }
14672
+ }
14673
+ },
14674
+ "pipeline-deployment": {
14675
+ "description": "Information about the latest deployment of each app in a pipeline. A deployment is the process of moving the build artifacts to a target environment.",
14676
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
14677
+ "stability": "production",
14678
+ "strictProperties": true,
14679
+ "title": "Heroku Platform API - Pipeline Deployment",
14680
+ "type": [
14681
+ "object"
14682
+ ],
14683
+ "$ref": "#/definitions/release",
14684
+ "properties": {
14685
+ "addon_plan_names": {
14686
+ "description": "add-on plans installed on the app for this deployment",
14687
+ "type": [
14688
+ "array"
14689
+ ],
14690
+ "items": {
14691
+ "$ref": "#/definitions/plan/definitions/name"
14692
+ }
14693
+ },
14694
+ "artifacts": {
14695
+ "$ref": "#/definitions/release/definitions/artifact"
14696
+ },
14697
+ "app": {
14698
+ "description": "app involved in the deployment",
13757
14699
  "properties": {
14700
+ "name": {
14701
+ "description": "unique name of the app",
14702
+ "$ref": "#/definitions/app/definitions/name"
14703
+ },
13758
14704
  "id": {
14705
+ "description": "unique identifier of the app",
13759
14706
  "$ref": "#/definitions/app/definitions/id"
13760
14707
  }
13761
14708
  },
@@ -13764,44 +14711,74 @@ module PlatformAPI
13764
14711
  ]
13765
14712
  },
13766
14713
  "created_at": {
13767
- "$ref": "#/definitions/pipeline-coupling/definitions/created_at"
14714
+ "description": "when the deployment was created",
14715
+ "$ref": "#/definitions/release/definitions/created_at"
14716
+ },
14717
+ "description": {
14718
+ "description": "description of changes in this deployment",
14719
+ "$ref": "#/definitions/release/definitions/description"
13768
14720
  },
13769
14721
  "id": {
13770
- "$ref": "#/definitions/pipeline-coupling/definitions/id"
14722
+ "description": "unique identifier of the deployment",
14723
+ "$ref": "#/definitions/release/definitions/id"
13771
14724
  },
13772
- "pipeline": {
13773
- "description": "pipeline involved in the coupling",
14725
+ "updated_at": {
14726
+ "description": "when the deployment was updated",
14727
+ "$ref": "#/definitions/release/definitions/updated_at"
14728
+ },
14729
+ "slug": {
14730
+ "description": "slug running in this deployment",
13774
14731
  "properties": {
13775
14732
  "id": {
13776
- "$ref": "#/definitions/pipeline/definitions/id"
14733
+ "description": "unique identifier of the slug",
14734
+ "$ref": "#/definitions/slug/definitions/id"
14735
+ }
14736
+ },
14737
+ "strictProperties": true,
14738
+ "type": [
14739
+ "object",
14740
+ "null"
14741
+ ]
14742
+ },
14743
+ "status": {
14744
+ "description": "current status of the deployment",
14745
+ "$ref": "#/definitions/release/definitions/status"
14746
+ },
14747
+ "user": {
14748
+ "description": "user that created the deployment",
14749
+ "properties": {
14750
+ "id": {
14751
+ "$ref": "#/definitions/account/definitions/id"
14752
+ },
14753
+ "email": {
14754
+ "$ref": "#/definitions/account/definitions/email"
13777
14755
  }
13778
14756
  },
14757
+ "strictProperties": true,
13779
14758
  "type": [
13780
14759
  "object"
13781
14760
  ]
13782
14761
  },
13783
- "stage": {
13784
- "$ref": "#/definitions/pipeline-coupling/definitions/stage"
14762
+ "version": {
14763
+ "description": "unique version assigned to the deployment",
14764
+ "$ref": "#/definitions/release/definitions/version"
13785
14765
  },
13786
- "updated_at": {
13787
- "$ref": "#/definitions/pipeline-coupling/definitions/updated_at"
14766
+ "current": {
14767
+ "description": "indicates if this deployment is the current one for the app",
14768
+ "$ref": "#/definitions/release/definitions/current"
14769
+ },
14770
+ "output_stream_url": {
14771
+ "description": "streaming URL for the release command output",
14772
+ "$ref": "#/definitions/release/definitions/output_stream_url"
14773
+ },
14774
+ "eligible_for_rollback": {
14775
+ "description": "indicates if this deployment is eligible for rollback",
14776
+ "$ref": "#/definitions/release/definitions/eligible_for_rollback"
13788
14777
  }
13789
- }
13790
- },
13791
- "pipeline-deployment": {
13792
- "description": "Information about latest deployments of apps in a pipeline.",
13793
- "$schema": "http://json-schema.org/draft-04/hyper-schema",
13794
- "stability": "production",
13795
- "strictProperties": true,
13796
- "title": "Heroku Platform API - Pipeline Deployment",
13797
- "type": [
13798
- "object"
13799
- ],
13800
- "definitions": {
13801
14778
  },
13802
14779
  "links": [
13803
14780
  {
13804
- "description": "List latest slug releases for each app in a pipeline",
14781
+ "description": "List latest deployments for each app in a pipeline. A deployment is a release that changed your source slug, container image, or Heroku processes.",
13805
14782
  "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/latest-deployments",
13806
14783
  "method": "GET",
13807
14784
  "rel": "instances",
@@ -14138,7 +15115,7 @@ module PlatformAPI
14138
15115
  }
14139
15116
  },
14140
15117
  "pipeline-release": {
14141
- "description": "Information about latest releases of apps in a pipeline.",
15118
+ "description": "Information about the latest release of each app in a pipeline. A release makes a deployment available to end-users.",
14142
15119
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
14143
15120
  "stability": "production",
14144
15121
  "strictProperties": true,
@@ -14146,7 +15123,96 @@ module PlatformAPI
14146
15123
  "type": [
14147
15124
  "object"
14148
15125
  ],
14149
- "definitions": {
15126
+ "properties": {
15127
+ "addon_plan_names": {
15128
+ "description": "add-on plans installed on the app for this release",
15129
+ "type": [
15130
+ "array"
15131
+ ],
15132
+ "items": {
15133
+ "$ref": "#/definitions/plan/definitions/name"
15134
+ }
15135
+ },
15136
+ "artifacts": {
15137
+ "$ref": "#/definitions/release/definitions/artifact"
15138
+ },
15139
+ "app": {
15140
+ "description": "app involved in the release",
15141
+ "properties": {
15142
+ "name": {
15143
+ "description": "unique name of the app",
15144
+ "$ref": "#/definitions/app/definitions/name"
15145
+ },
15146
+ "id": {
15147
+ "description": "unique identifier of the app",
15148
+ "$ref": "#/definitions/app/definitions/id"
15149
+ }
15150
+ },
15151
+ "type": [
15152
+ "object"
15153
+ ]
15154
+ },
15155
+ "created_at": {
15156
+ "description": "when the release was created",
15157
+ "$ref": "#/definitions/release/definitions/created_at"
15158
+ },
15159
+ "description": {
15160
+ "$ref": "#/definitions/release/definitions/description"
15161
+ },
15162
+ "id": {
15163
+ "description": "unique identifier of the release",
15164
+ "$ref": "#/definitions/release/definitions/id"
15165
+ },
15166
+ "updated_at": {
15167
+ "description": "when the release was updated",
15168
+ "$ref": "#/definitions/release/definitions/updated_at"
15169
+ },
15170
+ "slug": {
15171
+ "description": "slug running in the release",
15172
+ "properties": {
15173
+ "id": {
15174
+ "description": "unique identifier of the slug",
15175
+ "$ref": "#/definitions/slug/definitions/id"
15176
+ }
15177
+ },
15178
+ "strictProperties": true,
15179
+ "type": [
15180
+ "object",
15181
+ "null"
15182
+ ]
15183
+ },
15184
+ "status": {
15185
+ "$ref": "#/definitions/release/definitions/status"
15186
+ },
15187
+ "user": {
15188
+ "description": "user that created the release",
15189
+ "properties": {
15190
+ "id": {
15191
+ "$ref": "#/definitions/account/definitions/id"
15192
+ },
15193
+ "email": {
15194
+ "$ref": "#/definitions/account/definitions/email"
15195
+ }
15196
+ },
15197
+ "strictProperties": true,
15198
+ "type": [
15199
+ "object"
15200
+ ]
15201
+ },
15202
+ "version": {
15203
+ "$ref": "#/definitions/release/definitions/version"
15204
+ },
15205
+ "current": {
15206
+ "description": "indicates if this release is the current one for the app",
15207
+ "$ref": "#/definitions/release/definitions/current"
15208
+ },
15209
+ "output_stream_url": {
15210
+ "description": "streaming URL of the build process output",
15211
+ "$ref": "#/definitions/release/definitions/output_stream_url"
15212
+ },
15213
+ "eligible_for_rollback": {
15214
+ "$ref": "#/definitions/release/definitions/eligible_for_rollback"
15215
+ }
14150
15216
  },
14151
15217
  "links": [
14152
15218
  {
@@ -14406,6 +15472,49 @@ module PlatformAPI
14406
15472
  "type": [
14407
15473
  "string"
14408
15474
  ]
15475
+ },
15476
+ "generation": {
15477
+ "description": "the generation of the Heroku platform for this pipeline",
15478
+ "definitions": {
15479
+ "id": {
15480
+ "description": "unique identifier of the generation of the Heroku platform for this pipeline",
15481
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
15482
+ "format": "uuid",
15483
+ "readOnly": true,
15484
+ "type": [
15485
+ "string"
15486
+ ]
15487
+ },
15488
+ "identity": {
15489
+ "anyOf": [
15490
+ {
15491
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/id"
15492
+ },
15493
+ {
15494
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/name"
15495
+ }
15496
+ ]
15497
+ },
15498
+ "name": {
15499
+ "description": "unique name of the generation of the Heroku platform for this pipeline",
15500
+ "example": "cedar",
15501
+ "readOnly": true,
15502
+ "type": [
15503
+ "string"
15504
+ ]
15505
+ }
15506
+ },
15507
+ "properties": {
15508
+ "id": {
15509
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/id"
15510
+ },
15511
+ "name": {
15512
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/name"
15513
+ }
15514
+ },
15515
+ "type": [
15516
+ "object"
15517
+ ]
14409
15518
  }
14410
15519
  },
14411
15520
  "links": [
@@ -14511,6 +15620,9 @@ module PlatformAPI
14511
15620
  },
14512
15621
  "updated_at": {
14513
15622
  "$ref": "#/definitions/pipeline/definitions/updated_at"
15623
+ },
15624
+ "generation": {
15625
+ "$ref": "#/definitions/pipeline/definitions/generation"
14514
15626
  }
14515
15627
  }
14516
15628
  },
@@ -15030,6 +16142,32 @@ module PlatformAPI
15030
16142
  "object"
15031
16143
  ],
15032
16144
  "definitions": {
16145
+ "artifact": {
16146
+ "description": "a build artifact for the release",
16147
+ "properties": {
16148
+ "type": {
16149
+ "description": "type of artifact",
16150
+ "example": "slug",
16151
+ "type": [
16152
+ "string"
16153
+ ]
16154
+ },
16155
+ "id": {
16156
+ "anyOf": [
16157
+ {
16158
+ "$ref": "#/definitions/slug/definitions/id"
16159
+ },
16160
+ {
16161
+ "$ref": "#/definitions/oci-image/definitions/id"
16162
+ }
16163
+ ]
16164
+ }
16165
+ },
16166
+ "readOnly": true,
16167
+ "type": [
16168
+ "object"
16169
+ ]
16170
+ },
15033
16171
  "created_at": {
15034
16172
  "description": "when release was created",
15035
16173
  "example": "2012-01-01T12:00:00Z",
@@ -15112,6 +16250,14 @@ module PlatformAPI
15112
16250
  "string",
15113
16251
  "null"
15114
16252
  ]
16253
+ },
16254
+ "eligible_for_rollback": {
16255
+ "description": "indicates if this release is eligible for rollback",
16256
+ "example": true,
16257
+ "readOnly": true,
16258
+ "type": [
16259
+ "boolean"
16260
+ ]
15115
16261
  }
15116
16262
  },
15117
16263
  "links": [
@@ -15150,6 +16296,9 @@ module PlatformAPI
15150
16296
  "description": {
15151
16297
  "$ref": "#/definitions/release/definitions/description"
15152
16298
  },
16299
+ "oci_image": {
16300
+ "$ref": "#/definitions/oci-image/definitions/identity"
16301
+ },
15153
16302
  "slug": {
15154
16303
  "$ref": "#/definitions/slug/definitions/identity"
15155
16304
  }
@@ -15200,6 +16349,15 @@ module PlatformAPI
15200
16349
  "$ref": "#/definitions/plan/definitions/name"
15201
16350
  }
15202
16351
  },
16352
+ "artifacts": {
16353
+ "description": "build artifacts for the release",
16354
+ "type": [
16355
+ "array"
16356
+ ],
16357
+ "items": {
16358
+ "$ref": "#/definitions/release/definitions/artifact"
16359
+ }
16360
+ },
15203
16361
  "app": {
15204
16362
  "description": "app involved in the release",
15205
16363
  "properties": {
@@ -15265,6 +16423,9 @@ module PlatformAPI
15265
16423
  },
15266
16424
  "output_stream_url": {
15267
16425
  "$ref": "#/definitions/release/definitions/output_stream_url"
16426
+ },
16427
+ "eligible_for_rollback": {
16428
+ "$ref": "#/definitions/release/definitions/eligible_for_rollback"
15268
16429
  }
15269
16430
  }
15270
16431
  },
@@ -16970,7 +18131,7 @@ module PlatformAPI
16970
18131
  "space": {
16971
18132
  "description": "A space is an isolated, highly available, secure app execution environment.",
16972
18133
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
16973
- "stability": "prototype",
18134
+ "stability": "production",
16974
18135
  "strictProperties": true,
16975
18136
  "title": "Heroku Platform API - Space",
16976
18137
  "type": [
@@ -17068,6 +18229,32 @@ module PlatformAPI
17068
18229
  "type": [
17069
18230
  "string"
17070
18231
  ]
18232
+ },
18233
+ "generation": {
18234
+ "description": "Generation of the Heroku platform for this space",
18235
+ "readOnly": true,
18236
+ "type": [
18237
+ "object"
18238
+ ],
18239
+ "properties": {
18240
+ "id": {
18241
+ "description": "unique identifier of the generation of the Heroku platform for this space",
18242
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
18243
+ "format": "uuid",
18244
+ "readOnly": true,
18245
+ "type": [
18246
+ "string"
18247
+ ]
18248
+ },
18249
+ "name": {
18250
+ "description": "unique name of the generation of the Heroku platform for this space",
18251
+ "example": "cedar",
18252
+ "readOnly": true,
18253
+ "type": [
18254
+ "string"
18255
+ ]
18256
+ }
18257
+ }
17071
18258
  }
17072
18259
  },
17073
18260
  "links": [
@@ -17153,6 +18340,14 @@ module PlatformAPI
17153
18340
  },
17154
18341
  "log_drain_url": {
17155
18342
  "$ref": "#/definitions/space/definitions/log_drain_url"
18343
+ },
18344
+ "generation": {
18345
+ "description": "unique name of the generation of the Heroku platform for this space",
18346
+ "example": "cedar",
18347
+ "readOnly": true,
18348
+ "type": [
18349
+ "string"
18350
+ ]
17156
18351
  }
17157
18352
  },
17158
18353
  "required": [
@@ -17233,6 +18428,9 @@ module PlatformAPI
17233
18428
  },
17234
18429
  "data_cidr": {
17235
18430
  "$ref": "#/definitions/space/definitions/data_cidr"
18431
+ },
18432
+ "generation": {
18433
+ "$ref": "#/definitions/space/definitions/generation"
17236
18434
  }
17237
18435
  }
17238
18436
  },
@@ -17333,6 +18531,21 @@ module PlatformAPI
17333
18531
  ]
17334
18532
  },
17335
18533
  "title": "List"
18534
+ },
18535
+ {
18536
+ "description": "List available app stacks for an app.",
18537
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/available-stacks",
18538
+ "method": "GET",
18539
+ "rel": "instances",
18540
+ "targetSchema": {
18541
+ "items": {
18542
+ "$ref": "#/definitions/stack"
18543
+ },
18544
+ "type": [
18545
+ "array"
18546
+ ]
18547
+ },
18548
+ "title": "List by App"
17336
18549
  }
17337
18550
  ],
17338
18551
  "properties": {
@@ -17632,12 +18845,8 @@ module PlatformAPI
17632
18845
  "boolean"
17633
18846
  ]
17634
18847
  },
17635
- "identity": {
17636
- "anyOf": [
17637
- {
17638
- "$ref": "#/definitions/app/definitions/name"
17639
- }
17640
- ]
18848
+ "identity": {
18849
+ "$ref": "#/definitions/app/definitions/name"
17641
18850
  },
17642
18851
  "internal_routing": {
17643
18852
  "default": false,
@@ -18119,6 +19328,58 @@ module PlatformAPI
18119
19328
  }
18120
19329
  }
18121
19330
  },
19331
+ "team-delinquency": {
19332
+ "description": "A Heroku team becomes delinquent due to non-payment. We [suspend and delete](https://help.heroku.com/EREVRILX/what-happens-if-i-have-unpaid-heroku-invoices) delinquent teams if their invoices remain unpaid.",
19333
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
19334
+ "stability": "development",
19335
+ "strictProperties": true,
19336
+ "title": "Heroku Platform API - Team Delinquency",
19337
+ "type": [
19338
+ "object"
19339
+ ],
19340
+ "definitions": {
19341
+ "scheduled_suspension_time": {
19342
+ "description": "scheduled time of when we will suspend your team due to delinquency",
19343
+ "example": "2024-01-01T12:00:00Z",
19344
+ "format": "date-time",
19345
+ "readOnly": true,
19346
+ "type": [
19347
+ "string",
19348
+ "null"
19349
+ ]
19350
+ },
19351
+ "scheduled_deletion_time": {
19352
+ "description": "scheduled time of when we will delete your team due to delinquency",
19353
+ "example": "2024-01-01T12:00:00Z",
19354
+ "format": "date-time",
19355
+ "readOnly": true,
19356
+ "type": [
19357
+ "string",
19358
+ "null"
19359
+ ]
19360
+ }
19361
+ },
19362
+ "links": [
19363
+ {
19364
+ "description": "Team delinquency information.",
19365
+ "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/delinquency",
19366
+ "method": "GET",
19367
+ "rel": "self",
19368
+ "targetSchema": {
19369
+ "$ref": "#/definitions/team-delinquency"
19370
+ },
19371
+ "title": "Info"
19372
+ }
19373
+ ],
19374
+ "properties": {
19375
+ "scheduled_suspension_time": {
19376
+ "$ref": "#/definitions/team-delinquency/definitions/scheduled_suspension_time"
19377
+ },
19378
+ "scheduled_deletion_time": {
19379
+ "$ref": "#/definitions/team-delinquency/definitions/scheduled_deletion_time"
19380
+ }
19381
+ }
19382
+ },
18122
19383
  "team-feature": {
18123
19384
  "description": "A team feature represents a feature enabled on a team account.",
18124
19385
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -18782,7 +20043,7 @@ module PlatformAPI
18782
20043
  ]
18783
20044
  },
18784
20045
  "two_factor_authentication": {
18785
- "description": "whether the Enterprise team member has two factor authentication enabled",
20046
+ "description": "whether the team member has two factor authentication enabled",
18786
20047
  "example": true,
18787
20048
  "readOnly": true,
18788
20049
  "type": [
@@ -19049,7 +20310,7 @@ module PlatformAPI
19049
20310
  }
19050
20311
  },
19051
20312
  "connect": {
19052
- "description": "average connect rows synced",
20313
+ "description": "max connect rows synced",
19053
20314
  "example": 15000,
19054
20315
  "readOnly": true,
19055
20316
  "type": [
@@ -19779,6 +21040,310 @@ module PlatformAPI
19779
21040
  }
19780
21041
  }
19781
21042
  },
21043
+ "telemetry-drain": {
21044
+ "description": "A telemetry drain forwards OpenTelemetry traces, metrics, and logs to your own consumer. For Fir-generation apps only.",
21045
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
21046
+ "stability": "prototype",
21047
+ "strictProperties": true,
21048
+ "title": "Heroku Platform API - Telemetry Drain",
21049
+ "type": [
21050
+ "object"
21051
+ ],
21052
+ "definitions": {
21053
+ "id": {
21054
+ "description": "unique identifier of telemetry drain",
21055
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
21056
+ "format": "uuid",
21057
+ "readOnly": true,
21058
+ "type": [
21059
+ "string"
21060
+ ]
21061
+ },
21062
+ "identity": {
21063
+ "anyOf": [
21064
+ {
21065
+ "$ref": "#/definitions/telemetry-drain/definitions/id"
21066
+ }
21067
+ ]
21068
+ },
21069
+ "created_at": {
21070
+ "description": "when the telemetry drain was created",
21071
+ "example": "2024-12-01T12:00:00Z",
21072
+ "format": "date-time",
21073
+ "readOnly": true,
21074
+ "type": [
21075
+ "string"
21076
+ ]
21077
+ },
21078
+ "updated_at": {
21079
+ "description": "when telemetry drain was last updated",
21080
+ "example": "2012-01-01T12:00:00Z",
21081
+ "format": "date-time",
21082
+ "readOnly": true,
21083
+ "type": [
21084
+ "string"
21085
+ ]
21086
+ },
21087
+ "signal": {
21088
+ "description": "OpenTelemetry signal to be sent to the telemetry drain",
21089
+ "readOnly": true,
21090
+ "example": "traces",
21091
+ "type": [
21092
+ "string"
21093
+ ],
21094
+ "enum": [
21095
+ "traces",
21096
+ "metrics",
21097
+ "logs"
21098
+ ]
21099
+ },
21100
+ "signals": {
21101
+ "description": "OpenTelemetry signals to send to telemetry drain",
21102
+ "example": [
21103
+ "traces",
21104
+ "metrics"
21105
+ ],
21106
+ "readOnly": false,
21107
+ "minItems": 1,
21108
+ "uniqueItems": true,
21109
+ "type": [
21110
+ "array"
21111
+ ],
21112
+ "items": {
21113
+ "$ref": "#/definitions/telemetry-drain/definitions/signal"
21114
+ }
21115
+ },
21116
+ "exporter_type": {
21117
+ "description": "the transport type to be used for your OpenTelemetry consumer",
21118
+ "readOnly": true,
21119
+ "example": "otlphttp",
21120
+ "type": [
21121
+ "string"
21122
+ ],
21123
+ "enum": [
21124
+ "otlphttp",
21125
+ "otlp"
21126
+ ]
21127
+ },
21128
+ "exporter_endpoint": {
21129
+ "description": "URI of your OpenTelemetry consumer",
21130
+ "readOnly": false,
21131
+ "example": "https://api.otelproduct.example/consumer",
21132
+ "maxLength": 1000,
21133
+ "type": [
21134
+ "string"
21135
+ ]
21136
+ },
21137
+ "exporter_headers": {
21138
+ "description": "JSON headers to send to your OpenTelemetry consumer",
21139
+ "readOnly": false,
21140
+ "example": {
21141
+ "API-Key": "example_api_key_012345",
21142
+ "Environment": "production"
21143
+ },
21144
+ "default": {
21145
+ },
21146
+ "additionalProperties": false,
21147
+ "maxItems": 20,
21148
+ "patternProperties": {
21149
+ "^[A-Za-z0-9\\-_]{1,100}$": {
21150
+ "maxLength": 1000,
21151
+ "type": [
21152
+ "string"
21153
+ ]
21154
+ }
21155
+ },
21156
+ "type": [
21157
+ "object"
21158
+ ]
21159
+ },
21160
+ "exporter": {
21161
+ "description": "OpenTelemetry exporter configuration",
21162
+ "readOnly": false,
21163
+ "additionalProperties": false,
21164
+ "properties": {
21165
+ "type": {
21166
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter_type"
21167
+ },
21168
+ "endpoint": {
21169
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter_endpoint"
21170
+ },
21171
+ "headers": {
21172
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter_headers"
21173
+ }
21174
+ },
21175
+ "required": [
21176
+ "type",
21177
+ "endpoint"
21178
+ ],
21179
+ "type": [
21180
+ "object"
21181
+ ]
21182
+ },
21183
+ "owner": {
21184
+ "description": "entity that owns this telemetry drain",
21185
+ "properties": {
21186
+ "id": {
21187
+ "description": "unique identifier of owner",
21188
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
21189
+ "format": "uuid",
21190
+ "readOnly": true,
21191
+ "type": [
21192
+ "string"
21193
+ ]
21194
+ },
21195
+ "type": {
21196
+ "description": "type of owner",
21197
+ "enum": [
21198
+ "app",
21199
+ "space"
21200
+ ],
21201
+ "example": "app",
21202
+ "readOnly": true,
21203
+ "type": [
21204
+ "string"
21205
+ ]
21206
+ }
21207
+ },
21208
+ "readOnly": false,
21209
+ "required": [
21210
+ "id",
21211
+ "type"
21212
+ ],
21213
+ "type": [
21214
+ "object"
21215
+ ]
21216
+ }
21217
+ },
21218
+ "links": [
21219
+ {
21220
+ "description": "Create a telemetry drain.",
21221
+ "href": "/telemetry-drains",
21222
+ "method": "POST",
21223
+ "rel": "create",
21224
+ "schema": {
21225
+ "additionalProperties": false,
21226
+ "properties": {
21227
+ "owner": {
21228
+ "$ref": "#/definitions/telemetry-drain/definitions/owner"
21229
+ },
21230
+ "signals": {
21231
+ "$ref": "#/definitions/telemetry-drain/definitions/signals"
21232
+ },
21233
+ "exporter": {
21234
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter"
21235
+ }
21236
+ },
21237
+ "required": [
21238
+ "owner",
21239
+ "signals",
21240
+ "exporter"
21241
+ ],
21242
+ "type": [
21243
+ "object"
21244
+ ]
21245
+ },
21246
+ "targetSchema": {
21247
+ "$ref": "#/definitions/telemetry-drain"
21248
+ },
21249
+ "title": "Create"
21250
+ },
21251
+ {
21252
+ "description": "List telemetry drains for an app.",
21253
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/telemetry-drains",
21254
+ "method": "GET",
21255
+ "rel": "instances",
21256
+ "targetSchema": {
21257
+ "items": {
21258
+ "$ref": "#/definitions/telemetry-drain"
21259
+ },
21260
+ "type": [
21261
+ "array"
21262
+ ]
21263
+ },
21264
+ "title": "List by App"
21265
+ },
21266
+ {
21267
+ "description": "List telemetry drains for a space.",
21268
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/telemetry-drains",
21269
+ "method": "GET",
21270
+ "rel": "instances",
21271
+ "targetSchema": {
21272
+ "items": {
21273
+ "$ref": "#/definitions/telemetry-drain"
21274
+ },
21275
+ "type": [
21276
+ "array"
21277
+ ]
21278
+ },
21279
+ "title": "List by Space"
21280
+ },
21281
+ {
21282
+ "description": "Update a telemetry drain.",
21283
+ "href": "/telemetry-drains/{(%23%2Fdefinitions%2Ftelemetry-drain%2Fdefinitions%2Fidentity)}",
21284
+ "method": "PATCH",
21285
+ "rel": "update",
21286
+ "schema": {
21287
+ "additionalProperties": false,
21288
+ "properties": {
21289
+ "signals": {
21290
+ "$ref": "#/definitions/telemetry-drain/definitions/signals"
21291
+ },
21292
+ "exporter": {
21293
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter"
21294
+ }
21295
+ },
21296
+ "type": [
21297
+ "object"
21298
+ ]
21299
+ },
21300
+ "targetSchema": {
21301
+ "$ref": "#/definitions/telemetry-drain"
21302
+ },
21303
+ "title": "Update"
21304
+ },
21305
+ {
21306
+ "description": "Delete a telemetry drain.",
21307
+ "href": "/telemetry-drains/{(%23%2Fdefinitions%2Ftelemetry-drain%2Fdefinitions%2Fidentity)}",
21308
+ "method": "DELETE",
21309
+ "rel": "destroy",
21310
+ "targetSchema": {
21311
+ "$ref": "#/definitions/telemetry-drain"
21312
+ },
21313
+ "title": "Delete"
21314
+ },
21315
+ {
21316
+ "description": "Info for a telemetry drain.",
21317
+ "href": "/telemetry-drains/{(%23%2Fdefinitions%2Ftelemetry-drain%2Fdefinitions%2Fidentity)}",
21318
+ "method": "GET",
21319
+ "rel": "self",
21320
+ "targetSchema": {
21321
+ "$ref": "#/definitions/telemetry-drain"
21322
+ },
21323
+ "title": "Info"
21324
+ }
21325
+ ],
21326
+ "properties": {
21327
+ "created_at": {
21328
+ "$ref": "#/definitions/telemetry-drain/definitions/created_at"
21329
+ },
21330
+ "id": {
21331
+ "$ref": "#/definitions/telemetry-drain/definitions/id"
21332
+ },
21333
+ "owner": {
21334
+ "$ref": "#/definitions/telemetry-drain/definitions/owner"
21335
+ },
21336
+ "signals": {
21337
+ "$ref": "#/definitions/telemetry-drain/definitions/signals"
21338
+ },
21339
+ "exporter": {
21340
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter"
21341
+ },
21342
+ "updated_at": {
21343
+ "$ref": "#/definitions/telemetry-drain/definitions/updated_at"
21344
+ }
21345
+ }
21346
+ },
19782
21347
  "test-case": {
19783
21348
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
19784
21349
  "title": "Test Case",
@@ -20922,6 +22487,9 @@ module PlatformAPI
20922
22487
  }
20923
22488
  },
20924
22489
  "properties": {
22490
+ "account-delinquency": {
22491
+ "$ref": "#/definitions/account-delinquency"
22492
+ },
20925
22493
  "account-feature": {
20926
22494
  "$ref": "#/definitions/account-feature"
20927
22495
  },
@@ -21030,6 +22598,9 @@ module PlatformAPI
21030
22598
  "formation": {
21031
22599
  "$ref": "#/definitions/formation"
21032
22600
  },
22601
+ "generation": {
22602
+ "$ref": "#/definitions/generation"
22603
+ },
21033
22604
  "identity-provider": {
21034
22605
  "$ref": "#/definitions/identity-provider"
21035
22606
  },
@@ -21063,8 +22634,8 @@ module PlatformAPI
21063
22634
  "oauth-token": {
21064
22635
  "$ref": "#/definitions/oauth-token"
21065
22636
  },
21066
- "outbound-ruleset": {
21067
- "$ref": "#/definitions/outbound-ruleset"
22637
+ "oci-image": {
22638
+ "$ref": "#/definitions/oci-image"
21068
22639
  },
21069
22640
  "password-reset": {
21070
22641
  "$ref": "#/definitions/password-reset"
@@ -21171,6 +22742,9 @@ module PlatformAPI
21171
22742
  "team-daily-usage": {
21172
22743
  "$ref": "#/definitions/team-daily-usage"
21173
22744
  },
22745
+ "team-delinquency": {
22746
+ "$ref": "#/definitions/team-delinquency"
22747
+ },
21174
22748
  "team-feature": {
21175
22749
  "$ref": "#/definitions/team-feature"
21176
22750
  },
@@ -21195,6 +22769,9 @@ module PlatformAPI
21195
22769
  "team": {
21196
22770
  "$ref": "#/definitions/team"
21197
22771
  },
22772
+ "telemetry-drain": {
22773
+ "$ref": "#/definitions/telemetry-drain"
22774
+ },
21198
22775
  "test-case": {
21199
22776
  "$ref": "#/definitions/test-case"
21200
22777
  },