platform-api 3.7.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.7.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"
@@ -259,7 +259,7 @@ module PlatformAPI
259
259
  @audit_trail_event_resource ||= AuditTrailEvent.new(@client)
260
260
  end
261
261
 
262
- # 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
263
263
  #
264
264
  # @return [Build]
265
265
  def build
@@ -357,6 +357,13 @@ module PlatformAPI
357
357
  @formation_resource ||= Formation.new(@client)
358
358
  end
359
359
 
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
+
360
367
  # Identity Providers represent the SAML configuration of teams or an Enterprise account
361
368
  #
362
369
  # @return [IdentityProvider]
@@ -434,11 +441,11 @@ module PlatformAPI
434
441
  @oauth_token_resource ||= OauthToken.new(@client)
435
442
  end
436
443
 
437
- # 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.
438
445
  #
439
- # @return [OutboundRuleset]
440
- def outbound_ruleset
441
- @outbound_ruleset_resource ||= OutboundRuleset.new(@client)
446
+ # @return [OciImage]
447
+ def oci_image
448
+ @oci_image_resource ||= OciImage.new(@client)
442
449
  end
443
450
 
444
451
  # A password reset represents a in-process password reset attempt.
@@ -469,14 +476,14 @@ module PlatformAPI
469
476
  @permission_entity_resource ||= PermissionEntity.new(@client)
470
477
  end
471
478
 
472
- # 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.
473
480
  #
474
481
  # @return [PipelineBuild]
475
482
  def pipeline_build
476
483
  @pipeline_build_resource ||= PipelineBuild.new(@client)
477
484
  end
478
485
 
479
- # 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.
480
487
  #
481
488
  # @return [PipelineConfigVar]
482
489
  def pipeline_config_var
@@ -490,7 +497,7 @@ module PlatformAPI
490
497
  @pipeline_coupling_resource ||= PipelineCoupling.new(@client)
491
498
  end
492
499
 
493
- # 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.
494
501
  #
495
502
  # @return [PipelineDeployment]
496
503
  def pipeline_deployment
@@ -511,7 +518,7 @@ module PlatformAPI
511
518
  @pipeline_promotion_resource ||= PipelinePromotion.new(@client)
512
519
  end
513
520
 
514
- # 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.
515
522
  #
516
523
  # @return [PipelineRelease]
517
524
  def pipeline_release
@@ -749,6 +756,13 @@ module PlatformAPI
749
756
  @team_resource ||= Team.new(@client)
750
757
  end
751
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
+
752
766
  # A single test case belonging to a test run
753
767
  #
754
768
  # @return [TestCase]
@@ -1520,7 +1534,7 @@ module PlatformAPI
1520
1534
  end
1521
1535
  end
1522
1536
 
1523
- # 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
1524
1538
  class Build
1525
1539
  def initialize(client)
1526
1540
  @client = client
@@ -1736,7 +1750,7 @@ module PlatformAPI
1736
1750
 
1737
1751
  # Info for existing dyno size.
1738
1752
  #
1739
- # @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
1740
1754
  def info(dyno_size_id_or_dyno_size_name)
1741
1755
  @client.dyno_size.info(dyno_size_id_or_dyno_size_name)
1742
1756
  end
@@ -1745,6 +1759,13 @@ module PlatformAPI
1745
1759
  def list()
1746
1760
  @client.dyno_size.list()
1747
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
1748
1769
  end
1749
1770
 
1750
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).
@@ -1769,6 +1790,14 @@ module PlatformAPI
1769
1790
  @client.dyno.restart(app_id_or_app_name, dyno_id_or_dyno_name)
1770
1791
  end
1771
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
+
1772
1801
  # Restart all dynos.
1773
1802
  #
1774
1803
  # @param app_id_or_app_name: unique identifier of app or unique name of app
@@ -1784,6 +1813,14 @@ module PlatformAPI
1784
1813
  @client.dyno.stop(app_id_or_app_name, dyno_id_or_dyno_name)
1785
1814
  end
1786
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
+
1787
1824
  # Info for existing dyno.
1788
1825
  #
1789
1826
  # @param app_id_or_app_name: unique identifier of app or unique name of app
@@ -1951,6 +1988,32 @@ module PlatformAPI
1951
1988
  end
1952
1989
  end
1953
1990
 
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
+
1954
2017
  # Identity Providers represent the SAML configuration of teams or an Enterprise account
1955
2018
  class IdentityProvider
1956
2019
  def initialize(client)
@@ -2180,6 +2243,14 @@ module PlatformAPI
2180
2243
  @client.oauth_authorization.info(oauth_authorization_id)
2181
2244
  end
2182
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
+
2183
2254
  # List OAuth authorizations.
2184
2255
  def list()
2185
2256
  @client.oauth_authorization.list()
@@ -2269,40 +2340,26 @@ module PlatformAPI
2269
2340
  end
2270
2341
  end
2271
2342
 
2272
- # An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with.
2273
- 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
2274
2345
  def initialize(client)
2275
2346
  @client = client
2276
2347
  end
2277
2348
 
2278
- # Current outbound ruleset for a space
2279
- #
2280
- # @param space_id_or_space_name: unique identifier of space or unique name of space
2281
- def current(space_id_or_space_name)
2282
- @client.outbound_ruleset.current(space_id_or_space_name)
2283
- end
2284
-
2285
- # Info on an existing Outbound Ruleset
2286
- #
2287
- # @param space_id_or_space_name: unique identifier of space or unique name of space
2288
- # @param outbound_ruleset_id: unique identifier of an outbound-ruleset
2289
- def info(space_id_or_space_name, outbound_ruleset_id)
2290
- @client.outbound_ruleset.info(space_id_or_space_name, outbound_ruleset_id)
2291
- end
2292
-
2293
- # List all Outbound Rulesets for a space
2349
+ # Info for the OCI images of an app, filtered by identifier.
2294
2350
  #
2295
- # @param space_id_or_space_name: unique identifier of space or unique name of space
2296
- def list(space_id_or_space_name)
2297
- @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)
2298
2355
  end
2299
2356
 
2300
- # Create a new outbound ruleset
2357
+ # Create an new OCI image of an app
2301
2358
  #
2302
- # @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
2303
2360
  # @param body: the object to pass as the request payload
2304
- def create(space_id_or_space_name, body = {})
2305
- @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)
2306
2363
  end
2307
2364
  end
2308
2365
 
@@ -2394,7 +2451,7 @@ module PlatformAPI
2394
2451
  end
2395
2452
  end
2396
2453
 
2397
- # 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.
2398
2455
  class PipelineBuild
2399
2456
  def initialize(client)
2400
2457
  @client = client
@@ -2408,7 +2465,7 @@ module PlatformAPI
2408
2465
  end
2409
2466
  end
2410
2467
 
2411
- # 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.
2412
2469
  class PipelineConfigVar
2413
2470
  def initialize(client)
2414
2471
  @client = client
@@ -2499,13 +2556,13 @@ module PlatformAPI
2499
2556
  end
2500
2557
  end
2501
2558
 
2502
- # 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.
2503
2560
  class PipelineDeployment
2504
2561
  def initialize(client)
2505
2562
  @client = client
2506
2563
  end
2507
2564
 
2508
- # 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.
2509
2566
  #
2510
2567
  # @param pipeline_id: unique identifier of pipeline
2511
2568
  def list(pipeline_id)
@@ -2548,7 +2605,7 @@ module PlatformAPI
2548
2605
  end
2549
2606
  end
2550
2607
 
2551
- # 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.
2552
2609
  class PipelineRelease
2553
2610
  def initialize(client)
2554
2611
  @client = client
@@ -3057,6 +3114,13 @@ module PlatformAPI
3057
3114
  def list()
3058
3115
  @client.stack.list()
3059
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
3060
3124
  end
3061
3125
 
3062
3126
  #
@@ -3464,6 +3528,56 @@ module PlatformAPI
3464
3528
  end
3465
3529
  end
3466
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
3561
+ # @param body: the object to pass as the request payload
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)
3578
+ end
3579
+ end
3580
+
3467
3581
  # A single test case belonging to a test run
3468
3582
  class TestCase
3469
3583
  def initialize(client)
@@ -4955,6 +5069,27 @@ module PlatformAPI
4955
5069
  "type": [
4956
5070
  "string"
4957
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
+ }
4958
5093
  }
4959
5094
  },
4960
5095
  "links": [
@@ -5011,6 +5146,9 @@ module PlatformAPI
5011
5146
  },
5012
5147
  "updated_at": {
5013
5148
  "$ref": "#/definitions/add-on-service/definitions/updated_at"
5149
+ },
5150
+ "supported_generations": {
5151
+ "$ref": "#/definitions/add-on-service/definitions/supported_generations"
5014
5152
  }
5015
5153
  }
5016
5154
  },
@@ -7401,6 +7539,32 @@ module PlatformAPI
7401
7539
  "string"
7402
7540
  ]
7403
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
+ },
7404
7568
  "git_url": {
7405
7569
  "description": "git repo URL of app",
7406
7570
  "example": "https://git.heroku.com/example.git",
@@ -7689,6 +7853,9 @@ module PlatformAPI
7689
7853
  "created_at": {
7690
7854
  "$ref": "#/definitions/app/definitions/created_at"
7691
7855
  },
7856
+ "generation": {
7857
+ "$ref": "#/definitions/app/definitions/generation"
7858
+ },
7692
7859
  "git_url": {
7693
7860
  "$ref": "#/definitions/app/definitions/git_url"
7694
7861
  },
@@ -8144,7 +8311,7 @@ module PlatformAPI
8144
8311
  },
8145
8312
  "build": {
8146
8313
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
8147
- "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",
8148
8315
  "title": "Heroku Build API - Build",
8149
8316
  "stability": "production",
8150
8317
  "strictProperties": false,
@@ -8161,7 +8328,7 @@ module PlatformAPI
8161
8328
  ],
8162
8329
  "definitions": {
8163
8330
  "buildpacks": {
8164
- "description": "buildpacks executed for this build, in order",
8331
+ "description": "buildpacks executed for this build, in order (only applicable to Cedar-generation apps)",
8165
8332
  "type": [
8166
8333
  "array",
8167
8334
  "null"
@@ -8431,7 +8598,7 @@ module PlatformAPI
8431
8598
  "$ref": "#/definitions/build/definitions/release"
8432
8599
  },
8433
8600
  "slug": {
8434
- "description": "slug created by this build",
8601
+ "description": "slug created by this build (only applicable for Cedar-generation apps)",
8435
8602
  "properties": {
8436
8603
  "id": {
8437
8604
  "$ref": "#/definitions/slug/definitions/id"
@@ -9296,6 +9463,14 @@ module PlatformAPI
9296
9463
  "object"
9297
9464
  ],
9298
9465
  "definitions": {
9466
+ "architecture": {
9467
+ "description": "CPU architecture of this dyno size",
9468
+ "example": "amd64",
9469
+ "readOnly": true,
9470
+ "type": [
9471
+ "string"
9472
+ ]
9473
+ },
9299
9474
  "compute": {
9300
9475
  "description": "minimum vCPUs, non-dedicated may get more depending on load",
9301
9476
  "example": 1,
@@ -9312,8 +9487,34 @@ module PlatformAPI
9312
9487
  "boolean"
9313
9488
  ]
9314
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
+ },
9315
9516
  "id": {
9316
- "description": "unique identifier of this dyno size",
9517
+ "description": "unique identifier of the dyno size",
9317
9518
  "example": "01234567-89ab-cdef-0123-456789abcdef",
9318
9519
  "format": "uuid",
9319
9520
  "readOnly": true,
@@ -9340,7 +9541,7 @@ module PlatformAPI
9340
9541
  ]
9341
9542
  },
9342
9543
  "name": {
9343
- "description": "the name of this dyno-size",
9544
+ "description": "name of the dyno size",
9344
9545
  "example": "eco",
9345
9546
  "readOnly": true,
9346
9547
  "type": [
@@ -9373,15 +9574,6 @@ module PlatformAPI
9373
9574
  }
9374
9575
  }
9375
9576
  },
9376
- "dyno_units": {
9377
- "deprecated": true,
9378
- "description": "deprecated. See precise_dyno_units instead",
9379
- "example": 0,
9380
- "readOnly": true,
9381
- "type": [
9382
- "integer"
9383
- ]
9384
- },
9385
9577
  "precise_dyno_units": {
9386
9578
  "description": "unit of consumption for Heroku Enterprise customers to 2 decimal places",
9387
9579
  "example": 0.28,
@@ -9424,9 +9616,24 @@ module PlatformAPI
9424
9616
  ]
9425
9617
  },
9426
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"
9427
9631
  }
9428
9632
  ],
9429
9633
  "properties": {
9634
+ "architecture": {
9635
+ "$ref": "#/definitions/dyno-size/definitions/architecture"
9636
+ },
9430
9637
  "compute": {
9431
9638
  "$ref": "#/definitions/dyno-size/definitions/compute"
9432
9639
  },
@@ -9436,12 +9643,12 @@ module PlatformAPI
9436
9643
  "dedicated": {
9437
9644
  "$ref": "#/definitions/dyno-size/definitions/dedicated"
9438
9645
  },
9439
- "dyno_units": {
9440
- "$ref": "#/definitions/dyno-size/definitions/dyno_units"
9441
- },
9442
9646
  "precise_dyno_units": {
9443
9647
  "$ref": "#/definitions/dyno-size/definitions/precise_dyno_units"
9444
9648
  },
9649
+ "generation": {
9650
+ "$ref": "#/definitions/dyno-size/definitions/generation"
9651
+ },
9445
9652
  "id": {
9446
9653
  "$ref": "#/definitions/dyno-size/definitions/id"
9447
9654
  },
@@ -9547,6 +9754,14 @@ module PlatformAPI
9547
9754
  "string"
9548
9755
  ]
9549
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
+ },
9550
9765
  "force_no_tty": {
9551
9766
  "description": "force an attached one-off dyno to not run in a tty",
9552
9767
  "example": null,
@@ -9653,6 +9868,19 @@ module PlatformAPI
9653
9868
  },
9654
9869
  "title": "Restart"
9655
9870
  },
9871
+ {
9872
+ "description": "Restart dynos of a given formation type.",
9873
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formations/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fformation_type)}",
9874
+ "method": "DELETE",
9875
+ "rel": "empty",
9876
+ "targetSchema": {
9877
+ "additionalProperties": false,
9878
+ "type": [
9879
+ "object"
9880
+ ]
9881
+ },
9882
+ "title": "Restart formation"
9883
+ },
9656
9884
  {
9657
9885
  "description": "Restart all dynos.",
9658
9886
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos",
@@ -9679,6 +9907,19 @@ module PlatformAPI
9679
9907
  },
9680
9908
  "title": "Stop"
9681
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
+ },
9682
9923
  {
9683
9924
  "description": "Info for existing dyno.",
9684
9925
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fidentity)}",
@@ -10234,7 +10475,7 @@ module PlatformAPI
10234
10475
  ]
10235
10476
  },
10236
10477
  "connect": {
10237
- "description": "average connect rows synced",
10478
+ "description": "max connect rows synced",
10238
10479
  "example": 15000,
10239
10480
  "readOnly": true,
10240
10481
  "type": [
@@ -10684,6 +10925,50 @@ module PlatformAPI
10684
10925
  "string"
10685
10926
  ]
10686
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
+ },
10687
10972
  "id": {
10688
10973
  "description": "unique identifier of this process type",
10689
10974
  "example": "01234567-89ab-cdef-0123-456789abcdef",
@@ -10712,7 +10997,8 @@ module PlatformAPI
10712
10997
  ]
10713
10998
  },
10714
10999
  "size": {
10715
- "description": "dyno size",
11000
+ "deprecated": true,
11001
+ "description": "deprecated, refer to 'dyno_size' instead",
10716
11002
  "example": "standard-1X",
10717
11003
  "readOnly": false,
10718
11004
  "type": [
@@ -10741,12 +11027,12 @@ module PlatformAPI
10741
11027
  "additionalProperties": false,
10742
11028
  "description": "Properties to update a process type",
10743
11029
  "properties": {
11030
+ "dyno_size": {
11031
+ "$ref": "#/definitions/formation/definitions/dyno_size"
11032
+ },
10744
11033
  "quantity": {
10745
11034
  "$ref": "#/definitions/formation/definitions/quantity"
10746
11035
  },
10747
- "size": {
10748
- "$ref": "#/definitions/formation/definitions/size"
10749
- },
10750
11036
  "type": {
10751
11037
  "$ref": "#/definitions/formation/definitions/type"
10752
11038
  }
@@ -10800,7 +11086,7 @@ module PlatformAPI
10800
11086
  "items": {
10801
11087
  "$ref": "#/definitions/formation/definitions/update"
10802
11088
  },
10803
- "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\"."
10804
11090
  }
10805
11091
  },
10806
11092
  "required": [
@@ -10827,11 +11113,11 @@ module PlatformAPI
10827
11113
  "rel": "update",
10828
11114
  "schema": {
10829
11115
  "properties": {
11116
+ "dyno_size": {
11117
+ "$ref": "#/definitions/formation/definitions/dyno_size"
11118
+ },
10830
11119
  "quantity": {
10831
11120
  "$ref": "#/definitions/formation/definitions/quantity"
10832
- },
10833
- "size": {
10834
- "$ref": "#/definitions/formation/definitions/size"
10835
11121
  }
10836
11122
  },
10837
11123
  "type": [
@@ -10868,23 +11154,150 @@ module PlatformAPI
10868
11154
  "created_at": {
10869
11155
  "$ref": "#/definitions/formation/definitions/created_at"
10870
11156
  },
10871
- "id": {
10872
- "$ref": "#/definitions/formation/definitions/id"
10873
- },
10874
- "quantity": {
10875
- "$ref": "#/definitions/formation/definitions/quantity"
10876
- },
10877
- "size": {
10878
- "$ref": "#/definitions/formation/definitions/size"
10879
- },
10880
- "type": {
10881
- "$ref": "#/definitions/formation/definitions/type"
10882
- },
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
+ },
11171
+ "id": {
11172
+ "$ref": "#/definitions/formation/definitions/id"
11173
+ },
11174
+ "quantity": {
11175
+ "$ref": "#/definitions/formation/definitions/quantity"
11176
+ },
11177
+ "size": {
11178
+ "$ref": "#/definitions/formation/definitions/size"
11179
+ },
11180
+ "type": {
11181
+ "$ref": "#/definitions/formation/definitions/type"
11182
+ },
10883
11183
  "updated_at": {
10884
11184
  "$ref": "#/definitions/formation/definitions/updated_at"
10885
11185
  }
10886
11186
  }
10887
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
+ },
10888
11301
  "identity-provider": {
10889
11302
  "description": "Identity Providers represent the SAML configuration of teams or an Enterprise account",
10890
11303
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -11249,6 +11662,9 @@ module PlatformAPI
11249
11662
  "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/inbound-ruleset",
11250
11663
  "method": "PUT",
11251
11664
  "rel": "create",
11665
+ "targetSchema": {
11666
+ "$ref": "#/definitions/inbound-ruleset"
11667
+ },
11252
11668
  "schema": {
11253
11669
  "type": [
11254
11670
  "object"
@@ -12034,9 +12450,17 @@ module PlatformAPI
12034
12450
  "string"
12035
12451
  ]
12036
12452
  },
12037
- "dyno": {
12038
- "description": "dyno to limit results to",
12039
- "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",
12040
12464
  "readOnly": false,
12041
12465
  "type": [
12042
12466
  "string"
@@ -12108,8 +12532,11 @@ module PlatformAPI
12108
12532
  "rel": "create",
12109
12533
  "schema": {
12110
12534
  "properties": {
12111
- "dyno": {
12112
- "$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"
12113
12540
  },
12114
12541
  "lines": {
12115
12542
  "$ref": "#/definitions/log-session/definitions/lines"
@@ -12267,6 +12694,43 @@ module PlatformAPI
12267
12694
  },
12268
12695
  "title": "Info"
12269
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
+ },
12270
12734
  {
12271
12735
  "description": "List OAuth authorizations.",
12272
12736
  "href": "/oauth/authorizations",
@@ -12333,6 +12797,9 @@ module PlatformAPI
12333
12797
  "created_at": {
12334
12798
  "$ref": "#/definitions/oauth-authorization/definitions/created_at"
12335
12799
  },
12800
+ "description": {
12801
+ "$ref": "#/definitions/oauth-authorization/definitions/description"
12802
+ },
12336
12803
  "grant": {
12337
12804
  "description": "this authorization's grant",
12338
12805
  "properties": {
@@ -12377,6 +12844,19 @@ module PlatformAPI
12377
12844
  "scope": {
12378
12845
  "$ref": "#/definitions/oauth-authorization/definitions/scope"
12379
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
+ },
12380
12860
  "updated_at": {
12381
12861
  "$ref": "#/definitions/oauth-authorization/definitions/updated_at"
12382
12862
  },
@@ -12894,185 +13374,355 @@ module PlatformAPI
12894
13374
  }
12895
13375
  }
12896
13376
  },
12897
- "outbound-ruleset": {
12898
- "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.",
12899
13379
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
12900
- "stability": "deprecation",
13380
+ "stability": "prototype",
12901
13381
  "strictProperties": true,
12902
- "title": "Heroku Platform API - Outbound Ruleset",
12903
- "deprecated_at": "2024-04-30",
12904
- "deactivate_on": "2024-06-03",
13382
+ "title": "Heroku Platform API - OCI Image",
12905
13383
  "type": [
12906
13384
  "object"
12907
13385
  ],
12908
13386
  "definitions": {
12909
- "target": {
12910
- "description": "is the target destination in CIDR notation",
12911
- "example": "1.1.1.1/1",
12912
- "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]))$",
12913
- "readOnly": false,
13387
+ "id": {
13388
+ "description": "unique identifier of the OCI image",
13389
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
13390
+ "format": "uuid",
13391
+ "readOnly": true,
12914
13392
  "type": [
12915
13393
  "string"
12916
13394
  ]
12917
13395
  },
12918
- "created_at": {
12919
- "description": "when outbound-ruleset was created",
12920
- "example": "2012-01-01T12:00:00Z",
12921
- "format": "date-time",
12922
- "readOnly": true,
13396
+ "digest": {
13397
+ "description": "unique identifier representing the content of the OCI image",
13398
+ "example": "sha256:dc14ae5fbc1e7230e0a782bf216fb46500e210631703bcc6bab8acf2c6a23f42",
13399
+ "readOnly": false,
12923
13400
  "type": [
12924
13401
  "string"
12925
13402
  ]
12926
13403
  },
12927
- "id": {
12928
- "description": "unique identifier of an outbound-ruleset",
12929
- "example": "01234567-89ab-cdef-0123-456789abcdef",
12930
- "format": "uuid",
12931
- "readOnly": true,
13404
+ "architecture": {
13405
+ "description": "build architecture for OCI image",
13406
+ "example": "arm64",
13407
+ "readOnly": false,
13408
+ "type": [
13409
+ "string",
13410
+ "null"
13411
+ ]
13412
+ },
13413
+ "identity": {
13414
+ "anyOf": [
13415
+ {
13416
+ "$ref": "#/definitions/oci-image/definitions/id"
13417
+ },
13418
+ {
13419
+ "$ref": "#/definitions/oci-image/definitions/digest"
13420
+ }
13421
+ ]
13422
+ },
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,
12932
13427
  "type": [
12933
13428
  "string"
12934
13429
  ]
12935
13430
  },
12936
- "port": {
12937
- "description": "an endpoint of communication in an operating system.",
12938
- "example": 80,
13431
+ "base_top_layer": {
13432
+ "description": "the digest of the top most layer of the base image.",
13433
+ "example": "sha256:ea36ae5fbc1e7230e0a782bf216fb46500e210382703baa6bab8acf2c6a23f78",
12939
13434
  "readOnly": false,
12940
13435
  "type": [
12941
- "integer"
13436
+ "string"
12942
13437
  ]
12943
13438
  },
12944
- "protocol": {
12945
- "description": "formal standards and policies comprised of rules, procedures and formats that define communication between two or more devices over a network",
12946
- "example": "tcp",
13439
+ "commit": {
13440
+ "description": "identification of the code in your version control system (eg: SHA of the git HEAD)",
13441
+ "example": "60883d9e8947a57e04dc9124f25df004866a2051",
12947
13442
  "readOnly": false,
12948
13443
  "type": [
12949
13444
  "string"
12950
13445
  ]
12951
13446
  },
12952
- "identity": {
12953
- "anyOf": [
12954
- {
12955
- "$ref": "#/definitions/outbound-ruleset/definitions/id"
12956
- }
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"
12957
13453
  ]
12958
13454
  },
12959
- "rule": {
12960
- "description": "the combination of an IP address in CIDR notation, a from_port, to_port and protocol.",
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,
12961
13459
  "type": [
12962
- "object"
12963
- ],
13460
+ "string"
13461
+ ]
13462
+ },
13463
+ "process_type": {
13464
+ "description": "process type information such as names and commands",
13465
+ "readOnly": false,
12964
13466
  "properties": {
12965
- "target": {
12966
- "$ref": "#/definitions/outbound-ruleset/definitions/target"
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
+ ]
12967
13480
  },
12968
- "from_port": {
12969
- "$ref": "#/definitions/outbound-ruleset/definitions/port"
13481
+ "command": {
13482
+ "description": "the command that will be executed",
13483
+ "example": "/cnb/process/web",
13484
+ "type": [
13485
+ "string"
13486
+ ]
12970
13487
  },
12971
- "to_port": {
12972
- "$ref": "#/definitions/outbound-ruleset/definitions/port"
13488
+ "working_dir": {
13489
+ "description": "working directory",
13490
+ "example": "/worspace/webapp",
13491
+ "type": [
13492
+ "string"
13493
+ ]
12973
13494
  },
12974
- "protocol": {
12975
- "$ref": "#/definitions/outbound-ruleset/definitions/protocol"
13495
+ "default": {
13496
+ "description": "true if it is the default process type",
13497
+ "example": true,
13498
+ "type": [
13499
+ "boolean",
13500
+ "null"
13501
+ ]
12976
13502
  }
12977
13503
  },
12978
- "required": [
12979
- "target",
12980
- "from_port",
12981
- "to_port",
12982
- "protocol"
12983
- ]
12984
- }
12985
- },
12986
- "links": [
12987
- {
12988
- "description": "Current outbound ruleset for a space",
12989
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset",
12990
- "method": "GET",
12991
- "rel": "self",
12992
- "targetSchema": {
12993
- "$ref": "#/definitions/outbound-ruleset"
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
12994
13510
  },
12995
- "title": "Current"
12996
- },
12997
- {
12998
- "description": "Info on an existing Outbound Ruleset",
12999
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets/{(%23%2Fdefinitions%2Foutbound-ruleset%2Fdefinitions%2Fidentity)}",
13000
- "method": "GET",
13001
- "rel": "self",
13002
- "targetSchema": {
13003
- "$ref": "#/definitions/outbound-ruleset"
13511
+ "type": [
13512
+ "object"
13513
+ ]
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
+ }
13004
13521
  },
13005
- "title": "Info"
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
+ ]
13534
+ },
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
+ }
13560
+ },
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
+ ]
13006
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": [
13007
13616
  {
13008
- "description": "List all Outbound Rulesets for a space",
13009
- "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)}",
13010
13619
  "method": "GET",
13011
- "rel": "instances",
13620
+ "rel": "self",
13012
13621
  "targetSchema": {
13013
13622
  "items": {
13014
- "$ref": "#/definitions/outbound-ruleset"
13623
+ "$ref": "#/definitions/oci-image"
13015
13624
  },
13016
13625
  "type": [
13017
13626
  "array"
13018
13627
  ]
13019
13628
  },
13020
- "title": "List"
13629
+ "title": "Info"
13021
13630
  },
13022
13631
  {
13023
- "description": "Create a new outbound ruleset",
13024
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset",
13025
- "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",
13026
13635
  "rel": "create",
13027
13636
  "schema": {
13028
- "type": [
13029
- "object"
13030
- ],
13031
13637
  "properties": {
13032
- "rules": {
13033
- "type": [
13034
- "array"
13035
- ],
13036
- "items": {
13037
- "$ref": "#/definitions/outbound-ruleset/definitions/rule"
13038
- }
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"
13039
13675
  }
13040
- }
13676
+ },
13677
+ "type": [
13678
+ "object"
13679
+ ]
13680
+ },
13681
+ "targetSchema": {
13682
+ "$ref": "#/definitions/oci-image"
13041
13683
  },
13042
13684
  "title": "Create"
13043
13685
  }
13044
13686
  ],
13045
13687
  "properties": {
13046
13688
  "id": {
13047
- "$ref": "#/definitions/outbound-ruleset/definitions/id"
13689
+ "$ref": "#/definitions/oci-image/definitions/id"
13048
13690
  },
13049
- "space": {
13050
- "description": "identity of space",
13051
- "properties": {
13052
- "id": {
13053
- "$ref": "#/definitions/space/definitions/id"
13054
- },
13055
- "name": {
13056
- "$ref": "#/definitions/space/definitions/name"
13057
- }
13058
- },
13059
- "type": [
13060
- "object"
13061
- ]
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"
13062
13717
  },
13063
13718
  "created_at": {
13064
- "$ref": "#/definitions/outbound-ruleset/definitions/created_at"
13719
+ "$ref": "#/definitions/oci-image/definitions/created_at"
13065
13720
  },
13066
- "rules": {
13067
- "type": [
13068
- "array"
13069
- ],
13070
- "items": {
13071
- "$ref": "#/definitions/outbound-ruleset/definitions/rule"
13072
- }
13721
+ "updated_at": {
13722
+ "$ref": "#/definitions/oci-image/definitions/updated_at"
13073
13723
  },
13074
- "created_by": {
13075
- "$ref": "#/definitions/account/definitions/email"
13724
+ "architecture": {
13725
+ "$ref": "#/definitions/oci-image/definitions/architecture"
13076
13726
  }
13077
13727
  }
13078
13728
  },
@@ -13536,7 +14186,7 @@ module PlatformAPI
13536
14186
  }
13537
14187
  },
13538
14188
  "pipeline-build": {
13539
- "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.",
13540
14190
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13541
14191
  "stability": "production",
13542
14192
  "strictProperties": true,
@@ -13546,6 +14196,131 @@ module PlatformAPI
13546
14196
  ],
13547
14197
  "definitions": {
13548
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
+ },
13549
14324
  "links": [
13550
14325
  {
13551
14326
  "description": "List latest builds for each app in a pipeline",
@@ -13554,7 +14329,7 @@ module PlatformAPI
13554
14329
  "rel": "instances",
13555
14330
  "targetSchema": {
13556
14331
  "items": {
13557
- "$ref": "#/definitions/build"
14332
+ "$ref": "#/definitions/pipeline-build"
13558
14333
  },
13559
14334
  "type": [
13560
14335
  "array"
@@ -13565,7 +14340,7 @@ module PlatformAPI
13565
14340
  ]
13566
14341
  },
13567
14342
  "pipeline-config-var": {
13568
- "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.",
13569
14344
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13570
14345
  "stability": "production",
13571
14346
  "strictProperties": true,
@@ -13594,6 +14369,17 @@ module PlatformAPI
13594
14369
  ]
13595
14370
  }
13596
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
+ },
13597
14383
  "links": [
13598
14384
  {
13599
14385
  "description": "Get config-vars for a pipeline stage.",
@@ -13886,7 +14672,7 @@ module PlatformAPI
13886
14672
  }
13887
14673
  },
13888
14674
  "pipeline-deployment": {
13889
- "description": "Information about latest deployments of apps in a pipeline.",
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.",
13890
14676
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13891
14677
  "stability": "production",
13892
14678
  "strictProperties": true,
@@ -13894,11 +14680,105 @@ module PlatformAPI
13894
14680
  "type": [
13895
14681
  "object"
13896
14682
  ],
13897
- "definitions": {
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",
14699
+ "properties": {
14700
+ "name": {
14701
+ "description": "unique name of the app",
14702
+ "$ref": "#/definitions/app/definitions/name"
14703
+ },
14704
+ "id": {
14705
+ "description": "unique identifier of the app",
14706
+ "$ref": "#/definitions/app/definitions/id"
14707
+ }
14708
+ },
14709
+ "type": [
14710
+ "object"
14711
+ ]
14712
+ },
14713
+ "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"
14720
+ },
14721
+ "id": {
14722
+ "description": "unique identifier of the deployment",
14723
+ "$ref": "#/definitions/release/definitions/id"
14724
+ },
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",
14731
+ "properties": {
14732
+ "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"
14755
+ }
14756
+ },
14757
+ "strictProperties": true,
14758
+ "type": [
14759
+ "object"
14760
+ ]
14761
+ },
14762
+ "version": {
14763
+ "description": "unique version assigned to the deployment",
14764
+ "$ref": "#/definitions/release/definitions/version"
14765
+ },
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"
14777
+ }
13898
14778
  },
13899
14779
  "links": [
13900
14780
  {
13901
- "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.",
13902
14782
  "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/latest-deployments",
13903
14783
  "method": "GET",
13904
14784
  "rel": "instances",
@@ -14235,7 +15115,7 @@ module PlatformAPI
14235
15115
  }
14236
15116
  },
14237
15117
  "pipeline-release": {
14238
- "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.",
14239
15119
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
14240
15120
  "stability": "production",
14241
15121
  "strictProperties": true,
@@ -14243,7 +15123,96 @@ module PlatformAPI
14243
15123
  "type": [
14244
15124
  "object"
14245
15125
  ],
14246
- "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
+ }
14247
15216
  },
14248
15217
  "links": [
14249
15218
  {
@@ -14503,6 +15472,49 @@ module PlatformAPI
14503
15472
  "type": [
14504
15473
  "string"
14505
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
+ ]
14506
15518
  }
14507
15519
  },
14508
15520
  "links": [
@@ -14608,6 +15620,9 @@ module PlatformAPI
14608
15620
  },
14609
15621
  "updated_at": {
14610
15622
  "$ref": "#/definitions/pipeline/definitions/updated_at"
15623
+ },
15624
+ "generation": {
15625
+ "$ref": "#/definitions/pipeline/definitions/generation"
14611
15626
  }
14612
15627
  }
14613
15628
  },
@@ -15127,6 +16142,32 @@ module PlatformAPI
15127
16142
  "object"
15128
16143
  ],
15129
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
+ },
15130
16171
  "created_at": {
15131
16172
  "description": "when release was created",
15132
16173
  "example": "2012-01-01T12:00:00Z",
@@ -15209,6 +16250,14 @@ module PlatformAPI
15209
16250
  "string",
15210
16251
  "null"
15211
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
+ ]
15212
16261
  }
15213
16262
  },
15214
16263
  "links": [
@@ -15247,6 +16296,9 @@ module PlatformAPI
15247
16296
  "description": {
15248
16297
  "$ref": "#/definitions/release/definitions/description"
15249
16298
  },
16299
+ "oci_image": {
16300
+ "$ref": "#/definitions/oci-image/definitions/identity"
16301
+ },
15250
16302
  "slug": {
15251
16303
  "$ref": "#/definitions/slug/definitions/identity"
15252
16304
  }
@@ -15297,6 +16349,15 @@ module PlatformAPI
15297
16349
  "$ref": "#/definitions/plan/definitions/name"
15298
16350
  }
15299
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
+ },
15300
16361
  "app": {
15301
16362
  "description": "app involved in the release",
15302
16363
  "properties": {
@@ -15362,6 +16423,9 @@ module PlatformAPI
15362
16423
  },
15363
16424
  "output_stream_url": {
15364
16425
  "$ref": "#/definitions/release/definitions/output_stream_url"
16426
+ },
16427
+ "eligible_for_rollback": {
16428
+ "$ref": "#/definitions/release/definitions/eligible_for_rollback"
15365
16429
  }
15366
16430
  }
15367
16431
  },
@@ -17165,6 +18229,32 @@ module PlatformAPI
17165
18229
  "type": [
17166
18230
  "string"
17167
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
+ }
17168
18258
  }
17169
18259
  },
17170
18260
  "links": [
@@ -17250,6 +18340,14 @@ module PlatformAPI
17250
18340
  },
17251
18341
  "log_drain_url": {
17252
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
+ ]
17253
18351
  }
17254
18352
  },
17255
18353
  "required": [
@@ -17330,6 +18428,9 @@ module PlatformAPI
17330
18428
  },
17331
18429
  "data_cidr": {
17332
18430
  "$ref": "#/definitions/space/definitions/data_cidr"
18431
+ },
18432
+ "generation": {
18433
+ "$ref": "#/definitions/space/definitions/generation"
17333
18434
  }
17334
18435
  }
17335
18436
  },
@@ -17430,6 +18531,21 @@ module PlatformAPI
17430
18531
  ]
17431
18532
  },
17432
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"
17433
18549
  }
17434
18550
  ],
17435
18551
  "properties": {
@@ -19194,7 +20310,7 @@ module PlatformAPI
19194
20310
  }
19195
20311
  },
19196
20312
  "connect": {
19197
- "description": "average connect rows synced",
20313
+ "description": "max connect rows synced",
19198
20314
  "example": 15000,
19199
20315
  "readOnly": true,
19200
20316
  "type": [
@@ -19924,6 +21040,310 @@ module PlatformAPI
19924
21040
  }
19925
21041
  }
19926
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
+ },
19927
21347
  "test-case": {
19928
21348
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
19929
21349
  "title": "Test Case",
@@ -21178,6 +22598,9 @@ module PlatformAPI
21178
22598
  "formation": {
21179
22599
  "$ref": "#/definitions/formation"
21180
22600
  },
22601
+ "generation": {
22602
+ "$ref": "#/definitions/generation"
22603
+ },
21181
22604
  "identity-provider": {
21182
22605
  "$ref": "#/definitions/identity-provider"
21183
22606
  },
@@ -21211,8 +22634,8 @@ module PlatformAPI
21211
22634
  "oauth-token": {
21212
22635
  "$ref": "#/definitions/oauth-token"
21213
22636
  },
21214
- "outbound-ruleset": {
21215
- "$ref": "#/definitions/outbound-ruleset"
22637
+ "oci-image": {
22638
+ "$ref": "#/definitions/oci-image"
21216
22639
  },
21217
22640
  "password-reset": {
21218
22641
  "$ref": "#/definitions/password-reset"
@@ -21346,6 +22769,9 @@ module PlatformAPI
21346
22769
  "team": {
21347
22770
  "$ref": "#/definitions/team"
21348
22771
  },
22772
+ "telemetry-drain": {
22773
+ "$ref": "#/definitions/telemetry-drain"
22774
+ },
21349
22775
  "test-case": {
21350
22776
  "$ref": "#/definitions/test-case"
21351
22777
  },