platform-api 3.7.0 → 3.9.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.9.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)
@@ -4252,8 +4366,7 @@ module PlatformAPI
4252
4366
  "type": [
4253
4367
  "object"
4254
4368
  ],
4255
- "definitions": {
4256
- },
4369
+ "definitions": {},
4257
4370
  "links": [
4258
4371
  {
4259
4372
  "description": "Mark an add-on as provisioned for use.",
@@ -4276,8 +4389,7 @@ module PlatformAPI
4276
4389
  "title": "Deprovision"
4277
4390
  }
4278
4391
  ],
4279
- "properties": {
4280
- }
4392
+ "properties": {}
4281
4393
  },
4282
4394
  "add-on-attachment": {
4283
4395
  "description": "An add-on attachment represents a connection between an app and an add-on that it has been given access to.",
@@ -4348,6 +4460,21 @@ module PlatformAPI
4348
4460
  "string"
4349
4461
  ]
4350
4462
  },
4463
+ "namespace_config": {
4464
+ "description": "attachment namespace config, used to specify namespace via key-value pairs",
4465
+ "example": {
4466
+ "cred": "analyst"
4467
+ },
4468
+ "type": [
4469
+ "null",
4470
+ "object"
4471
+ ],
4472
+ "additionalProperties": {
4473
+ "type": [
4474
+ "string"
4475
+ ]
4476
+ }
4477
+ },
4351
4478
  "updated_at": {
4352
4479
  "description": "when add-on attachment was updated",
4353
4480
  "example": "2012-01-01T12:00:00Z",
@@ -4399,6 +4526,9 @@ module PlatformAPI
4399
4526
  },
4400
4527
  "namespace": {
4401
4528
  "$ref": "#/definitions/add-on-attachment/definitions/namespace"
4529
+ },
4530
+ "namespace_config": {
4531
+ "$ref": "#/definitions/add-on-attachment/definitions/namespace_config"
4402
4532
  }
4403
4533
  },
4404
4534
  "required": [
@@ -4955,6 +5085,27 @@ module PlatformAPI
4955
5085
  "type": [
4956
5086
  "string"
4957
5087
  ]
5088
+ },
5089
+ "supported_generations": {
5090
+ "description": "generations supported by this add-on",
5091
+ "readonly": true,
5092
+ "type": [
5093
+ "array"
5094
+ ],
5095
+ "items": {
5096
+ "type": [
5097
+ "object"
5098
+ ],
5099
+ "properties": {
5100
+ "name": {
5101
+ "$ref": "#/definitions/generation/definitions/name",
5102
+ "example": "cedar"
5103
+ },
5104
+ "id": {
5105
+ "$ref": "#/definitions/generation/definitions/id"
5106
+ }
5107
+ }
5108
+ }
4958
5109
  }
4959
5110
  },
4960
5111
  "links": [
@@ -5011,6 +5162,9 @@ module PlatformAPI
5011
5162
  },
5012
5163
  "updated_at": {
5013
5164
  "$ref": "#/definitions/add-on-service/definitions/updated_at"
5165
+ },
5166
+ "supported_generations": {
5167
+ "$ref": "#/definitions/add-on-service/definitions/supported_generations"
5014
5168
  }
5015
5169
  }
5016
5170
  },
@@ -5467,46 +5621,52 @@ module PlatformAPI
5467
5621
  },
5468
5622
  "addon_service": {
5469
5623
  "description": "identity of add-on service",
5470
- "anyOf": [
5471
- {
5472
- "properties": {
5473
- "id": {
5474
- "$ref": "#/definitions/add-on-service/definitions/id"
5475
- },
5476
- "name": {
5477
- "$ref": "#/definitions/add-on-service/definitions/name"
5478
- }
5624
+ "identity": {
5625
+ "anyOf": [
5626
+ {
5627
+ "$ref": "#/definitions/add-on-service/definitions/id"
5479
5628
  },
5480
- "strictProperties": true,
5481
- "type": [
5482
- "object"
5483
- ]
5629
+ {
5630
+ "$ref": "#/definitions/add-on-service/definitions/name"
5631
+ }
5632
+ ]
5633
+ },
5634
+ "properties": {
5635
+ "id": {
5636
+ "$ref": "#/definitions/add-on-service/definitions/id"
5484
5637
  },
5485
- {
5486
- "$ref": "#/definitions/add-on-service"
5638
+ "name": {
5639
+ "$ref": "#/definitions/add-on-service/definitions/name"
5487
5640
  }
5641
+ },
5642
+ "strictProperties": true,
5643
+ "type": [
5644
+ "object"
5488
5645
  ]
5489
5646
  },
5490
5647
  "plan": {
5491
5648
  "description": "identity of add-on plan",
5492
- "anyOf": [
5493
- {
5494
- "properties": {
5495
- "id": {
5496
- "$ref": "#/definitions/plan/definitions/id"
5497
- },
5498
- "name": {
5499
- "$ref": "#/definitions/plan/definitions/name"
5500
- }
5649
+ "identity": {
5650
+ "anyOf": [
5651
+ {
5652
+ "$ref": "#/definitions/plan/definitions/id"
5501
5653
  },
5502
- "strictProperties": true,
5503
- "type": [
5504
- "object"
5505
- ]
5654
+ {
5655
+ "$ref": "#/definitions/plan/definitions/name"
5656
+ }
5657
+ ]
5658
+ },
5659
+ "properties": {
5660
+ "id": {
5661
+ "$ref": "#/definitions/plan/definitions/id"
5506
5662
  },
5507
- {
5508
- "$ref": "#/definitions/plan"
5663
+ "name": {
5664
+ "$ref": "#/definitions/plan/definitions/name"
5509
5665
  }
5666
+ },
5667
+ "strictProperties": true,
5668
+ "type": [
5669
+ "object"
5510
5670
  ]
5511
5671
  },
5512
5672
  "provision_message": {
@@ -7401,6 +7561,32 @@ module PlatformAPI
7401
7561
  "string"
7402
7562
  ]
7403
7563
  },
7564
+ "generation": {
7565
+ "description": "Generation of the Heroku platform for this app",
7566
+ "readOnly": true,
7567
+ "type": [
7568
+ "object"
7569
+ ],
7570
+ "properties": {
7571
+ "id": {
7572
+ "description": "unique identifier of the generation of the Heroku platform for this app",
7573
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
7574
+ "format": "uuid",
7575
+ "readOnly": true,
7576
+ "type": [
7577
+ "string"
7578
+ ]
7579
+ },
7580
+ "name": {
7581
+ "description": "unique name of the generation of the Heroku platform for this app",
7582
+ "example": "cedar",
7583
+ "readOnly": true,
7584
+ "type": [
7585
+ "string"
7586
+ ]
7587
+ }
7588
+ }
7589
+ },
7404
7590
  "git_url": {
7405
7591
  "description": "git repo URL of app",
7406
7592
  "example": "https://git.heroku.com/example.git",
@@ -7689,6 +7875,9 @@ module PlatformAPI
7689
7875
  "created_at": {
7690
7876
  "$ref": "#/definitions/app/definitions/created_at"
7691
7877
  },
7878
+ "generation": {
7879
+ "$ref": "#/definitions/app/definitions/generation"
7880
+ },
7692
7881
  "git_url": {
7693
7882
  "$ref": "#/definitions/app/definitions/git_url"
7694
7883
  },
@@ -8144,7 +8333,7 @@ module PlatformAPI
8144
8333
  },
8145
8334
  "build": {
8146
8335
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
8147
- "description": "A build represents the process of transforming a code tarball into a slug",
8336
+ "description": "A build represents the process of transforming a code tarball into build artifacts",
8148
8337
  "title": "Heroku Build API - Build",
8149
8338
  "stability": "production",
8150
8339
  "strictProperties": false,
@@ -8161,7 +8350,7 @@ module PlatformAPI
8161
8350
  ],
8162
8351
  "definitions": {
8163
8352
  "buildpacks": {
8164
- "description": "buildpacks executed for this build, in order",
8353
+ "description": "buildpacks executed for this build, in order (only applicable to Cedar-generation apps)",
8165
8354
  "type": [
8166
8355
  "array",
8167
8356
  "null"
@@ -8200,6 +8389,14 @@ module PlatformAPI
8200
8389
  "string"
8201
8390
  ]
8202
8391
  },
8392
+ "generation": {
8393
+ "description": "generation of build",
8394
+ "example": "cedar",
8395
+ "readOnly": true,
8396
+ "type": [
8397
+ "string"
8398
+ ]
8399
+ },
8203
8400
  "id": {
8204
8401
  "description": "unique identifier of build",
8205
8402
  "example": "01234567-89ab-cdef-0123-456789abcdef",
@@ -8418,6 +8615,9 @@ module PlatformAPI
8418
8615
  "created_at": {
8419
8616
  "$ref": "#/definitions/build/definitions/created_at"
8420
8617
  },
8618
+ "generation": {
8619
+ "$ref": "#/definitions/build/definitions/generation"
8620
+ },
8421
8621
  "id": {
8422
8622
  "$ref": "#/definitions/build/definitions/id"
8423
8623
  },
@@ -8431,7 +8631,7 @@ module PlatformAPI
8431
8631
  "$ref": "#/definitions/build/definitions/release"
8432
8632
  },
8433
8633
  "slug": {
8434
- "description": "slug created by this build",
8634
+ "description": "slug created by this build (only applicable for Cedar-generation apps)",
8435
8635
  "properties": {
8436
8636
  "id": {
8437
8637
  "$ref": "#/definitions/slug/definitions/id"
@@ -9296,6 +9496,14 @@ module PlatformAPI
9296
9496
  "object"
9297
9497
  ],
9298
9498
  "definitions": {
9499
+ "architecture": {
9500
+ "description": "CPU architecture of this dyno size",
9501
+ "example": "amd64",
9502
+ "readOnly": true,
9503
+ "type": [
9504
+ "string"
9505
+ ]
9506
+ },
9299
9507
  "compute": {
9300
9508
  "description": "minimum vCPUs, non-dedicated may get more depending on load",
9301
9509
  "example": 1,
@@ -9312,8 +9520,34 @@ module PlatformAPI
9312
9520
  "boolean"
9313
9521
  ]
9314
9522
  },
9523
+ "generation": {
9524
+ "description": "Generation of the Heroku platform for this dyno size",
9525
+ "readOnly": true,
9526
+ "type": [
9527
+ "object"
9528
+ ],
9529
+ "properties": {
9530
+ "id": {
9531
+ "description": "unique identifier of the generation of the Heroku platform for this dyno size",
9532
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
9533
+ "format": "uuid",
9534
+ "readOnly": true,
9535
+ "type": [
9536
+ "string"
9537
+ ]
9538
+ },
9539
+ "name": {
9540
+ "description": "unique name of the generation of the Heroku platform for this dyno size",
9541
+ "example": "cedar",
9542
+ "readOnly": true,
9543
+ "type": [
9544
+ "string"
9545
+ ]
9546
+ }
9547
+ }
9548
+ },
9315
9549
  "id": {
9316
- "description": "unique identifier of this dyno size",
9550
+ "description": "unique identifier of the dyno size",
9317
9551
  "example": "01234567-89ab-cdef-0123-456789abcdef",
9318
9552
  "format": "uuid",
9319
9553
  "readOnly": true,
@@ -9340,7 +9574,7 @@ module PlatformAPI
9340
9574
  ]
9341
9575
  },
9342
9576
  "name": {
9343
- "description": "the name of this dyno-size",
9577
+ "description": "name of the dyno size",
9344
9578
  "example": "eco",
9345
9579
  "readOnly": true,
9346
9580
  "type": [
@@ -9373,15 +9607,6 @@ module PlatformAPI
9373
9607
  }
9374
9608
  }
9375
9609
  },
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
9610
  "precise_dyno_units": {
9386
9611
  "description": "unit of consumption for Heroku Enterprise customers to 2 decimal places",
9387
9612
  "example": 0.28,
@@ -9424,9 +9649,24 @@ module PlatformAPI
9424
9649
  ]
9425
9650
  },
9426
9651
  "title": "List"
9652
+ },
9653
+ {
9654
+ "description": "List available dyno sizes for an app",
9655
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/available-dyno-sizes",
9656
+ "method": "GET",
9657
+ "rel": "available-app-dynos",
9658
+ "targetSchema": {
9659
+ "items": {
9660
+ "$ref": "#/definitions/dyno-size"
9661
+ }
9662
+ },
9663
+ "title": "List App Dyno Sizes"
9427
9664
  }
9428
9665
  ],
9429
9666
  "properties": {
9667
+ "architecture": {
9668
+ "$ref": "#/definitions/dyno-size/definitions/architecture"
9669
+ },
9430
9670
  "compute": {
9431
9671
  "$ref": "#/definitions/dyno-size/definitions/compute"
9432
9672
  },
@@ -9436,12 +9676,12 @@ module PlatformAPI
9436
9676
  "dedicated": {
9437
9677
  "$ref": "#/definitions/dyno-size/definitions/dedicated"
9438
9678
  },
9439
- "dyno_units": {
9440
- "$ref": "#/definitions/dyno-size/definitions/dyno_units"
9441
- },
9442
9679
  "precise_dyno_units": {
9443
9680
  "$ref": "#/definitions/dyno-size/definitions/precise_dyno_units"
9444
9681
  },
9682
+ "generation": {
9683
+ "$ref": "#/definitions/dyno-size/definitions/generation"
9684
+ },
9445
9685
  "id": {
9446
9686
  "$ref": "#/definitions/dyno-size/definitions/id"
9447
9687
  },
@@ -9547,9 +9787,17 @@ module PlatformAPI
9547
9787
  "string"
9548
9788
  ]
9549
9789
  },
9550
- "force_no_tty": {
9551
- "description": "force an attached one-off dyno to not run in a tty",
9552
- "example": null,
9790
+ "formation_type": {
9791
+ "description": "the formation type of this process on this dyno",
9792
+ "example": "run",
9793
+ "readOnly": true,
9794
+ "type": [
9795
+ "string"
9796
+ ]
9797
+ },
9798
+ "force_no_tty": {
9799
+ "description": "force an attached one-off dyno to not run in a tty",
9800
+ "example": null,
9553
9801
  "readOnly": false,
9554
9802
  "type": [
9555
9803
  "boolean",
@@ -9653,6 +9901,19 @@ module PlatformAPI
9653
9901
  },
9654
9902
  "title": "Restart"
9655
9903
  },
9904
+ {
9905
+ "description": "Restart dynos of a given formation type.",
9906
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formations/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fformation_type)}",
9907
+ "method": "DELETE",
9908
+ "rel": "empty",
9909
+ "targetSchema": {
9910
+ "additionalProperties": false,
9911
+ "type": [
9912
+ "object"
9913
+ ]
9914
+ },
9915
+ "title": "Restart formation"
9916
+ },
9656
9917
  {
9657
9918
  "description": "Restart all dynos.",
9658
9919
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos",
@@ -9679,6 +9940,19 @@ module PlatformAPI
9679
9940
  },
9680
9941
  "title": "Stop"
9681
9942
  },
9943
+ {
9944
+ "description": "Stop dynos of a given formation type.",
9945
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formations/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fformation_type)}/actions/stop",
9946
+ "method": "POST",
9947
+ "rel": "empty",
9948
+ "targetSchema": {
9949
+ "additionalProperties": false,
9950
+ "type": [
9951
+ "object"
9952
+ ]
9953
+ },
9954
+ "title": "Stop formation"
9955
+ },
9682
9956
  {
9683
9957
  "description": "Info for existing dyno.",
9684
9958
  "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fidentity)}",
@@ -10234,7 +10508,7 @@ module PlatformAPI
10234
10508
  ]
10235
10509
  },
10236
10510
  "connect": {
10237
- "description": "average connect rows synced",
10511
+ "description": "max connect rows synced",
10238
10512
  "example": 15000,
10239
10513
  "readOnly": true,
10240
10514
  "type": [
@@ -10521,6 +10795,14 @@ module PlatformAPI
10521
10795
  "type": [
10522
10796
  "boolean"
10523
10797
  ]
10798
+ },
10799
+ "partner_benefits": {
10800
+ "description": "whether the enterprise account is part of the Salesforce Partner Program",
10801
+ "example": false,
10802
+ "readOnly": true,
10803
+ "type": [
10804
+ "boolean"
10805
+ ]
10524
10806
  }
10525
10807
  },
10526
10808
  "links": [
@@ -10588,6 +10870,9 @@ module PlatformAPI
10588
10870
  "trial": {
10589
10871
  "$ref": "#/definitions/enterprise-account/definitions/trial"
10590
10872
  },
10873
+ "partner_benefits": {
10874
+ "$ref": "#/definitions/enterprise-account/definitions/partner_benefits"
10875
+ },
10591
10876
  "identity_provider": {
10592
10877
  "$ref": "#/definitions/enterprise-account/definitions/identity_provider"
10593
10878
  }
@@ -10684,6 +10969,45 @@ module PlatformAPI
10684
10969
  "string"
10685
10970
  ]
10686
10971
  },
10972
+ "dyno_size": {
10973
+ "description": "dyno size",
10974
+ "example": {
10975
+ "id": "01234567-89ab-cdef-0123-456789abcdef"
10976
+ },
10977
+ "identity": {
10978
+ "anyOf": [
10979
+ {
10980
+ "$ref": "#/definitions/dyno_size/definitions/id"
10981
+ },
10982
+ {
10983
+ "$ref": "#/definitions/dyno_size/definitions/name"
10984
+ }
10985
+ ]
10986
+ },
10987
+ "properties": {
10988
+ "id": {
10989
+ "description": "unique identifier of the dyno size",
10990
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
10991
+ "format": "uuid",
10992
+ "readOnly": true,
10993
+ "type": [
10994
+ "string"
10995
+ ]
10996
+ },
10997
+ "name": {
10998
+ "description": "name of the dyno size",
10999
+ "example": "Standard-1X",
11000
+ "readOnly": true,
11001
+ "type": [
11002
+ "string"
11003
+ ]
11004
+ }
11005
+ },
11006
+ "readOnly": false,
11007
+ "type": [
11008
+ "object"
11009
+ ]
11010
+ },
10687
11011
  "id": {
10688
11012
  "description": "unique identifier of this process type",
10689
11013
  "example": "01234567-89ab-cdef-0123-456789abcdef",
@@ -10712,7 +11036,8 @@ module PlatformAPI
10712
11036
  ]
10713
11037
  },
10714
11038
  "size": {
10715
- "description": "dyno size",
11039
+ "deprecated": true,
11040
+ "description": "deprecated, refer to 'dyno_size' instead",
10716
11041
  "example": "standard-1X",
10717
11042
  "readOnly": false,
10718
11043
  "type": [
@@ -10741,12 +11066,12 @@ module PlatformAPI
10741
11066
  "additionalProperties": false,
10742
11067
  "description": "Properties to update a process type",
10743
11068
  "properties": {
11069
+ "dyno_size": {
11070
+ "$ref": "#/definitions/formation/definitions/dyno_size"
11071
+ },
10744
11072
  "quantity": {
10745
11073
  "$ref": "#/definitions/formation/definitions/quantity"
10746
11074
  },
10747
- "size": {
10748
- "$ref": "#/definitions/formation/definitions/size"
10749
- },
10750
11075
  "type": {
10751
11076
  "$ref": "#/definitions/formation/definitions/type"
10752
11077
  }
@@ -10800,7 +11125,7 @@ module PlatformAPI
10800
11125
  "items": {
10801
11126
  "$ref": "#/definitions/formation/definitions/update"
10802
11127
  },
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\"."
11128
+ "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
11129
  }
10805
11130
  },
10806
11131
  "required": [
@@ -10827,11 +11152,11 @@ module PlatformAPI
10827
11152
  "rel": "update",
10828
11153
  "schema": {
10829
11154
  "properties": {
11155
+ "dyno_size": {
11156
+ "$ref": "#/definitions/formation/definitions/dyno_size"
11157
+ },
10830
11158
  "quantity": {
10831
11159
  "$ref": "#/definitions/formation/definitions/quantity"
10832
- },
10833
- "size": {
10834
- "$ref": "#/definitions/formation/definitions/size"
10835
11160
  }
10836
11161
  },
10837
11162
  "type": [
@@ -10868,6 +11193,20 @@ module PlatformAPI
10868
11193
  "created_at": {
10869
11194
  "$ref": "#/definitions/formation/definitions/created_at"
10870
11195
  },
11196
+ "dyno_size": {
11197
+ "description": "dyno size",
11198
+ "properties": {
11199
+ "id": {
11200
+ "$ref": "#/definitions/dyno-size/definitions/id"
11201
+ },
11202
+ "name": {
11203
+ "$ref": "#/definitions/dyno-size/definitions/name"
11204
+ }
11205
+ },
11206
+ "type": [
11207
+ "object"
11208
+ ]
11209
+ },
10871
11210
  "id": {
10872
11211
  "$ref": "#/definitions/formation/definitions/id"
10873
11212
  },
@@ -10885,6 +11224,119 @@ module PlatformAPI
10885
11224
  }
10886
11225
  }
10887
11226
  },
11227
+ "generation": {
11228
+ "description": "A generation represents a version of the Heroku platform that includes the app execution environment, routing, telemetry, and build systems.",
11229
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
11230
+ "stability": "prototype",
11231
+ "strictProperties": true,
11232
+ "title": "Heroku Platform API - Generation",
11233
+ "type": [
11234
+ "object"
11235
+ ],
11236
+ "definitions": {
11237
+ "created_at": {
11238
+ "description": "when generation was created",
11239
+ "example": "2024-12-01T12:00:00Z",
11240
+ "format": "date-time",
11241
+ "readOnly": true,
11242
+ "type": [
11243
+ "string"
11244
+ ]
11245
+ },
11246
+ "id": {
11247
+ "description": "unique identifier of generation",
11248
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
11249
+ "format": "uuid",
11250
+ "readOnly": true,
11251
+ "type": [
11252
+ "string"
11253
+ ]
11254
+ },
11255
+ "identity": {
11256
+ "anyOf": [
11257
+ {
11258
+ "$ref": "#/definitions/generation/definitions/name"
11259
+ },
11260
+ {
11261
+ "$ref": "#/definitions/generation/definitions/id"
11262
+ }
11263
+ ]
11264
+ },
11265
+ "name": {
11266
+ "description": "unique name of generation",
11267
+ "example": "fir",
11268
+ "readOnly": true,
11269
+ "type": [
11270
+ "string"
11271
+ ]
11272
+ },
11273
+ "updated_at": {
11274
+ "description": "when generation was updated",
11275
+ "example": "2024-12-01T12:00:00Z",
11276
+ "format": "date-time",
11277
+ "readOnly": true,
11278
+ "type": [
11279
+ "string"
11280
+ ]
11281
+ }
11282
+ },
11283
+ "links": [
11284
+ {
11285
+ "description": "Info for generation.",
11286
+ "href": "/generations/{(%23%2Fdefinitions%2Fstack%2Fdefinitions%2Fidentity)}",
11287
+ "method": "GET",
11288
+ "rel": "self",
11289
+ "targetSchema": {
11290
+ "$ref": "#/definitions/generation"
11291
+ },
11292
+ "title": "Info"
11293
+ },
11294
+ {
11295
+ "description": "List available generations.",
11296
+ "href": "/generations",
11297
+ "method": "GET",
11298
+ "rel": "instances",
11299
+ "targetSchema": {
11300
+ "items": {
11301
+ "$ref": "#/definitions/generation"
11302
+ },
11303
+ "type": [
11304
+ "array"
11305
+ ]
11306
+ },
11307
+ "title": "List"
11308
+ },
11309
+ {
11310
+ "description": "List available generations for a team.",
11311
+ "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/available-generations",
11312
+ "method": "GET",
11313
+ "rel": "instances",
11314
+ "targetSchema": {
11315
+ "items": {
11316
+ "$ref": "#/definitions/generation"
11317
+ },
11318
+ "type": [
11319
+ "array"
11320
+ ]
11321
+ },
11322
+ "title": "List by Team"
11323
+ }
11324
+ ],
11325
+ "properties": {
11326
+ "created_at": {
11327
+ "$ref": "#/definitions/generation/definitions/created_at"
11328
+ },
11329
+ "id": {
11330
+ "$ref": "#/definitions/generation/definitions/id"
11331
+ },
11332
+ "name": {
11333
+ "$ref": "#/definitions/generation/definitions/name"
11334
+ },
11335
+ "updated_at": {
11336
+ "$ref": "#/definitions/generation/definitions/updated_at"
11337
+ }
11338
+ }
11339
+ },
10888
11340
  "identity-provider": {
10889
11341
  "description": "Identity Providers represent the SAML configuration of teams or an Enterprise account",
10890
11342
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
@@ -11249,6 +11701,9 @@ module PlatformAPI
11249
11701
  "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/inbound-ruleset",
11250
11702
  "method": "PUT",
11251
11703
  "rel": "create",
11704
+ "targetSchema": {
11705
+ "$ref": "#/definitions/inbound-ruleset"
11706
+ },
11252
11707
  "schema": {
11253
11708
  "type": [
11254
11709
  "object"
@@ -12034,9 +12489,17 @@ module PlatformAPI
12034
12489
  "string"
12035
12490
  ]
12036
12491
  },
12037
- "dyno": {
12038
- "description": "dyno to limit results to",
12039
- "example": "web.1",
12492
+ "dyno_name": {
12493
+ "description": "dyno name to limit results to",
12494
+ "example": "'web.1' (Cedar-generation) or 'web-1234abcde-123ab' (Fir-generation)",
12495
+ "readOnly": false,
12496
+ "type": [
12497
+ "string"
12498
+ ]
12499
+ },
12500
+ "type": {
12501
+ "description": "process type to limit results to",
12502
+ "example": "web",
12040
12503
  "readOnly": false,
12041
12504
  "type": [
12042
12505
  "string"
@@ -12108,8 +12571,11 @@ module PlatformAPI
12108
12571
  "rel": "create",
12109
12572
  "schema": {
12110
12573
  "properties": {
12111
- "dyno": {
12112
- "$ref": "#/definitions/log-session/definitions/dyno"
12574
+ "dyno_name": {
12575
+ "$ref": "#/definitions/log-session/definitions/dyno_name"
12576
+ },
12577
+ "type": {
12578
+ "$ref": "#/definitions/log-session/definitions/type"
12113
12579
  },
12114
12580
  "lines": {
12115
12581
  "$ref": "#/definitions/log-session/definitions/lines"
@@ -12267,6 +12733,43 @@ module PlatformAPI
12267
12733
  },
12268
12734
  "title": "Info"
12269
12735
  },
12736
+ {
12737
+ "description": "Update an existing OAuth authorization.",
12738
+ "href": "/oauth/authorizations/{(%23%2Fdefinitions%2Foauth-authorization%2Fdefinitions%2Fidentity)}",
12739
+ "method": "PATCH",
12740
+ "rel": "update",
12741
+ "targetSchema": {
12742
+ "$ref": "#/definitions/oauth-authorization"
12743
+ },
12744
+ "schema": {
12745
+ "properties": {
12746
+ "description": {
12747
+ "$ref": "#/definitions/oauth-authorization/definitions/description"
12748
+ },
12749
+ "client": {
12750
+ "type": [
12751
+ "object"
12752
+ ],
12753
+ "description": "identifier of the client that obtained this authorization",
12754
+ "properties": {
12755
+ "id": {
12756
+ "$ref": "#/definitions/oauth-client/definitions/id"
12757
+ },
12758
+ "secret": {
12759
+ "$ref": "#/definitions/oauth-client/definitions/secret"
12760
+ }
12761
+ }
12762
+ }
12763
+ },
12764
+ "required": [
12765
+ "client"
12766
+ ],
12767
+ "type": [
12768
+ "object"
12769
+ ]
12770
+ },
12771
+ "title": "Update"
12772
+ },
12270
12773
  {
12271
12774
  "description": "List OAuth authorizations.",
12272
12775
  "href": "/oauth/authorizations",
@@ -12333,6 +12836,9 @@ module PlatformAPI
12333
12836
  "created_at": {
12334
12837
  "$ref": "#/definitions/oauth-authorization/definitions/created_at"
12335
12838
  },
12839
+ "description": {
12840
+ "$ref": "#/definitions/oauth-authorization/definitions/description"
12841
+ },
12336
12842
  "grant": {
12337
12843
  "description": "this authorization's grant",
12338
12844
  "properties": {
@@ -12377,6 +12883,19 @@ module PlatformAPI
12377
12883
  "scope": {
12378
12884
  "$ref": "#/definitions/oauth-authorization/definitions/scope"
12379
12885
  },
12886
+ "session": {
12887
+ "description": "this authorization's session",
12888
+ "properties": {
12889
+ "id": {
12890
+ "$ref": "#/definitions/oauth-token/definitions/id"
12891
+ }
12892
+ },
12893
+ "strictProperties": true,
12894
+ "type": [
12895
+ "null",
12896
+ "object"
12897
+ ]
12898
+ },
12380
12899
  "updated_at": {
12381
12900
  "$ref": "#/definitions/oauth-authorization/definitions/updated_at"
12382
12901
  },
@@ -12647,11 +13166,8 @@ module PlatformAPI
12647
13166
  ]
12648
13167
  }
12649
13168
  },
12650
- "links": [
12651
-
12652
- ],
12653
- "properties": {
12654
- }
13169
+ "links": [],
13170
+ "properties": {}
12655
13171
  },
12656
13172
  "oauth-token": {
12657
13173
  "description": "OAuth tokens provide access for authorized clients to act on behalf of a Heroku user to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth)",
@@ -12894,38 +13410,18 @@ module PlatformAPI
12894
13410
  }
12895
13411
  }
12896
13412
  },
12897
- "outbound-ruleset": {
12898
- "description": "An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with. ",
13413
+ "oci-image": {
13414
+ "description": "An OCI (Open Container Initiative) image is a standardized format for packaging and distributing containerized applications, ready to run on the platform.",
12899
13415
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
12900
- "stability": "deprecation",
13416
+ "stability": "prototype",
12901
13417
  "strictProperties": true,
12902
- "title": "Heroku Platform API - Outbound Ruleset",
12903
- "deprecated_at": "2024-04-30",
12904
- "deactivate_on": "2024-06-03",
13418
+ "title": "Heroku Platform API - OCI Image",
12905
13419
  "type": [
12906
13420
  "object"
12907
13421
  ],
12908
13422
  "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,
12914
- "type": [
12915
- "string"
12916
- ]
12917
- },
12918
- "created_at": {
12919
- "description": "when outbound-ruleset was created",
12920
- "example": "2012-01-01T12:00:00Z",
12921
- "format": "date-time",
12922
- "readOnly": true,
12923
- "type": [
12924
- "string"
12925
- ]
12926
- },
12927
13423
  "id": {
12928
- "description": "unique identifier of an outbound-ruleset",
13424
+ "description": "unique identifier of the OCI image",
12929
13425
  "example": "01234567-89ab-cdef-0123-456789abcdef",
12930
13426
  "format": "uuid",
12931
13427
  "readOnly": true,
@@ -12933,146 +13429,349 @@ module PlatformAPI
12933
13429
  "string"
12934
13430
  ]
12935
13431
  },
12936
- "port": {
12937
- "description": "an endpoint of communication in an operating system.",
12938
- "example": 80,
13432
+ "digest": {
13433
+ "description": "unique identifier representing the content of the OCI image",
13434
+ "example": "sha256:dc14ae5fbc1e7230e0a782bf216fb46500e210631703bcc6bab8acf2c6a23f42",
12939
13435
  "readOnly": false,
12940
13436
  "type": [
12941
- "integer"
13437
+ "string"
12942
13438
  ]
12943
13439
  },
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",
13440
+ "architecture": {
13441
+ "description": "build architecture for OCI image",
13442
+ "example": "arm64",
12947
13443
  "readOnly": false,
12948
13444
  "type": [
12949
- "string"
13445
+ "string",
13446
+ "null"
12950
13447
  ]
12951
13448
  },
12952
13449
  "identity": {
12953
13450
  "anyOf": [
12954
13451
  {
12955
- "$ref": "#/definitions/outbound-ruleset/definitions/id"
13452
+ "$ref": "#/definitions/oci-image/definitions/id"
13453
+ },
13454
+ {
13455
+ "$ref": "#/definitions/oci-image/definitions/digest"
12956
13456
  }
12957
13457
  ]
12958
13458
  },
12959
- "rule": {
12960
- "description": "the combination of an IP address in CIDR notation, a from_port, to_port and protocol.",
13459
+ "base_image_name": {
13460
+ "description": "name of the image used for the base layers of the OCI image",
13461
+ "example": "heroku/heroku:22-cnb",
13462
+ "readOnly": false,
13463
+ "type": [
13464
+ "string"
13465
+ ]
13466
+ },
13467
+ "base_top_layer": {
13468
+ "description": "the digest of the top most layer of the base image.",
13469
+ "example": "sha256:ea36ae5fbc1e7230e0a782bf216fb46500e210382703baa6bab8acf2c6a23f78",
13470
+ "readOnly": false,
13471
+ "type": [
13472
+ "string"
13473
+ ]
13474
+ },
13475
+ "commit": {
13476
+ "description": "identification of the code in your version control system (eg: SHA of the git HEAD)",
13477
+ "example": "60883d9e8947a57e04dc9124f25df004866a2051",
13478
+ "readOnly": false,
13479
+ "type": [
13480
+ "string"
13481
+ ]
13482
+ },
13483
+ "commit_description": {
13484
+ "description": "an optional description of the provided commit",
13485
+ "example": "fixed a bug with API documentation",
13486
+ "readOnly": false,
13487
+ "type": [
13488
+ "string"
13489
+ ]
13490
+ },
13491
+ "image_repo": {
13492
+ "description": "name of the image registry repository used for storage",
13493
+ "example": "d7ba1ace-b396-4691-968c-37ae53153426/builds",
13494
+ "readOnly": false,
13495
+ "type": [
13496
+ "string"
13497
+ ]
13498
+ },
13499
+ "process_type": {
13500
+ "description": "process type information such as names and commands",
13501
+ "readOnly": false,
13502
+ "properties": {
13503
+ "name": {
13504
+ "description": "name of the process type",
13505
+ "example": "web",
13506
+ "type": [
13507
+ "string"
13508
+ ]
13509
+ },
13510
+ "display_cmd": {
13511
+ "description": "the detailed command used for display purposes",
13512
+ "example": "bundle exec puma -p $PORT",
13513
+ "type": [
13514
+ "string"
13515
+ ]
13516
+ },
13517
+ "command": {
13518
+ "description": "the command that will be executed",
13519
+ "example": "/cnb/process/web",
13520
+ "type": [
13521
+ "string"
13522
+ ]
13523
+ },
13524
+ "working_dir": {
13525
+ "description": "working directory",
13526
+ "example": "/worspace/webapp",
13527
+ "type": [
13528
+ "string"
13529
+ ]
13530
+ },
13531
+ "default": {
13532
+ "description": "true if it is the default process type",
13533
+ "example": true,
13534
+ "type": [
13535
+ "boolean",
13536
+ "null"
13537
+ ]
13538
+ }
13539
+ },
13540
+ "example": {
13541
+ "name": "web",
13542
+ "display_cmd": "bundle exec puma -p $PORT",
13543
+ "command": "/cnb/process/web",
13544
+ "working_dir": "/workspace/webapp",
13545
+ "default": true
13546
+ },
12961
13547
  "type": [
12962
13548
  "object"
12963
- ],
13549
+ ]
13550
+ },
13551
+ "process_types": {
13552
+ "description": "process types of the OCI image",
13553
+ "patternProperties": {
13554
+ "^[-\\w]{1,128}$": {
13555
+ "$ref": "#/definitions/oci-image/definitions/process_type"
13556
+ }
13557
+ },
13558
+ "example": {
13559
+ "web": {
13560
+ "name": "web",
13561
+ "display_cmd": "bundle exec puma -p $PORT",
13562
+ "command": "/cnb/process/web",
13563
+ "working_dir": "/workspace/webapp",
13564
+ "default": true
13565
+ }
13566
+ },
13567
+ "type": [
13568
+ "object"
13569
+ ]
13570
+ },
13571
+ "buildpack": {
13572
+ "description": "set of executables that inspects app source code and creates a plan to build and run your image",
13573
+ "readOnly": false,
12964
13574
  "properties": {
12965
- "target": {
12966
- "$ref": "#/definitions/outbound-ruleset/definitions/target"
13575
+ "id": {
13576
+ "description": "identifier of the buildpack",
13577
+ "example": "heroku/ruby",
13578
+ "type": [
13579
+ "string"
13580
+ ]
12967
13581
  },
12968
- "from_port": {
12969
- "$ref": "#/definitions/outbound-ruleset/definitions/port"
13582
+ "version": {
13583
+ "description": "version of the buildpack",
13584
+ "example": "2.0.0",
13585
+ "type": [
13586
+ "string"
13587
+ ]
12970
13588
  },
12971
- "to_port": {
12972
- "$ref": "#/definitions/outbound-ruleset/definitions/port"
13589
+ "homepage": {
13590
+ "description": "homepage of the buildpack",
13591
+ "example": "https://github.com/heroku/buildpacks-ruby",
13592
+ "type": [
13593
+ "string"
13594
+ ]
13595
+ }
13596
+ },
13597
+ "example": {
13598
+ "id": "heroku/ruby",
13599
+ "version": "2.0.0",
13600
+ "homepage": "https://github.com/heroku/buildpacks-ruby"
13601
+ },
13602
+ "type": [
13603
+ "object"
13604
+ ]
13605
+ },
13606
+ "buildpacks": {
13607
+ "description": "buildpacks of the OCI image",
13608
+ "items": {
13609
+ "$ref": "#/definitions/oci-image/definitions/buildpack"
13610
+ },
13611
+ "type": [
13612
+ "array"
13613
+ ]
13614
+ },
13615
+ "stack": {
13616
+ "description": "stack associated to the OCI image",
13617
+ "readOnly": false,
13618
+ "properties": {
13619
+ "id": {
13620
+ "$ref": "#/definitions/stack/definitions/id",
13621
+ "example": "ba46bf09-7bd1-42fd-90df-a1a9a93eb4a2"
12973
13622
  },
12974
- "protocol": {
12975
- "$ref": "#/definitions/outbound-ruleset/definitions/protocol"
13623
+ "name": {
13624
+ "$ref": "#/definitions/stack/definitions/name",
13625
+ "example": "cnb"
12976
13626
  }
12977
13627
  },
12978
- "required": [
12979
- "target",
12980
- "from_port",
12981
- "to_port",
12982
- "protocol"
13628
+ "type": [
13629
+ "object"
13630
+ ]
13631
+ },
13632
+ "created_at": {
13633
+ "description": "when the OCI image was created",
13634
+ "example": "2012-01-01T12:00:00Z",
13635
+ "format": "date-time",
13636
+ "readOnly": true,
13637
+ "type": [
13638
+ "string"
13639
+ ]
13640
+ },
13641
+ "updated_at": {
13642
+ "description": "when the OCI image was updated",
13643
+ "example": "2012-01-01T12:00:00Z",
13644
+ "format": "date-time",
13645
+ "readOnly": true,
13646
+ "type": [
13647
+ "string"
13648
+ ]
13649
+ },
13650
+ "deleted_at": {
13651
+ "description": "when OCI image was deleted",
13652
+ "example": "2012-01-01T12:00:00Z",
13653
+ "format": "date-time",
13654
+ "readOnly": true,
13655
+ "type": [
13656
+ "string",
13657
+ "null"
12983
13658
  ]
12984
13659
  }
12985
13660
  },
12986
13661
  "links": [
12987
13662
  {
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"
12994
- },
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)}",
13663
+ "description": "Info for the OCI images of an app, filtered by identifier.",
13664
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/oci-images/{(%23%2Fdefinitions%2Foci-image%2Fdefinitions%2Fidentity)}",
13000
13665
  "method": "GET",
13001
13666
  "rel": "self",
13002
- "targetSchema": {
13003
- "$ref": "#/definitions/outbound-ruleset"
13004
- },
13005
- "title": "Info"
13006
- },
13007
- {
13008
- "description": "List all Outbound Rulesets for a space",
13009
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets",
13010
- "method": "GET",
13011
- "rel": "instances",
13012
13667
  "targetSchema": {
13013
13668
  "items": {
13014
- "$ref": "#/definitions/outbound-ruleset"
13669
+ "$ref": "#/definitions/oci-image"
13015
13670
  },
13016
13671
  "type": [
13017
13672
  "array"
13018
13673
  ]
13019
13674
  },
13020
- "title": "List"
13675
+ "title": "Info"
13021
13676
  },
13022
13677
  {
13023
- "description": "Create a new outbound ruleset",
13024
- "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset",
13025
- "method": "PUT",
13678
+ "description": "Create an new OCI image of an app",
13679
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/oci-images",
13680
+ "method": "POST",
13026
13681
  "rel": "create",
13027
13682
  "schema": {
13028
- "type": [
13029
- "object"
13030
- ],
13031
13683
  "properties": {
13032
- "rules": {
13033
- "type": [
13034
- "array"
13035
- ],
13036
- "items": {
13037
- "$ref": "#/definitions/outbound-ruleset/definitions/rule"
13038
- }
13684
+ "architecture": {
13685
+ "$ref": "#/definitions/oci-image/definitions/architecture"
13686
+ },
13687
+ "base_image_name": {
13688
+ "$ref": "#/definitions/oci-image/definitions/base_image_name"
13689
+ },
13690
+ "base_top_layer": {
13691
+ "$ref": "#/definitions/oci-image/definitions/base_top_layer"
13692
+ },
13693
+ "commit": {
13694
+ "$ref": "#/definitions/oci-image/definitions/commit"
13695
+ },
13696
+ "commit_description": {
13697
+ "$ref": "#/definitions/oci-image/definitions/commit_description"
13698
+ },
13699
+ "image_repo": {
13700
+ "$ref": "#/definitions/oci-image/definitions/image_repo"
13701
+ },
13702
+ "digest": {
13703
+ "$ref": "#/definitions/oci-image/definitions/digest"
13704
+ },
13705
+ "stack": {
13706
+ "anyOf": [
13707
+ {
13708
+ "$ref": "#/definitions/stack/definitions/name",
13709
+ "example": "cnb"
13710
+ },
13711
+ {
13712
+ "$ref": "#/definitions/stack/definitions/id"
13713
+ }
13714
+ ]
13715
+ },
13716
+ "process_types": {
13717
+ "$ref": "#/definitions/oci-image/definitions/process_types"
13718
+ },
13719
+ "buildpacks": {
13720
+ "$ref": "#/definitions/oci-image/definitions/buildpacks"
13039
13721
  }
13040
- }
13722
+ },
13723
+ "type": [
13724
+ "object"
13725
+ ]
13726
+ },
13727
+ "targetSchema": {
13728
+ "$ref": "#/definitions/oci-image"
13041
13729
  },
13042
13730
  "title": "Create"
13043
13731
  }
13044
13732
  ],
13045
13733
  "properties": {
13046
13734
  "id": {
13047
- "$ref": "#/definitions/outbound-ruleset/definitions/id"
13735
+ "$ref": "#/definitions/oci-image/definitions/id"
13048
13736
  },
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
- ]
13737
+ "base_image_name": {
13738
+ "$ref": "#/definitions/oci-image/definitions/base_image_name"
13739
+ },
13740
+ "base_top_layer": {
13741
+ "$ref": "#/definitions/oci-image/definitions/base_top_layer"
13742
+ },
13743
+ "commit": {
13744
+ "$ref": "#/definitions/oci-image/definitions/commit"
13745
+ },
13746
+ "commit_description": {
13747
+ "$ref": "#/definitions/oci-image/definitions/commit_description"
13748
+ },
13749
+ "image_repo": {
13750
+ "$ref": "#/definitions/oci-image/definitions/image_repo"
13751
+ },
13752
+ "digest": {
13753
+ "$ref": "#/definitions/oci-image/definitions/digest"
13754
+ },
13755
+ "stack": {
13756
+ "$ref": "#/definitions/oci-image/definitions/stack"
13757
+ },
13758
+ "process_types": {
13759
+ "$ref": "#/definitions/oci-image/definitions/process_types"
13760
+ },
13761
+ "buildpacks": {
13762
+ "$ref": "#/definitions/oci-image/definitions/buildpacks"
13062
13763
  },
13063
13764
  "created_at": {
13064
- "$ref": "#/definitions/outbound-ruleset/definitions/created_at"
13765
+ "$ref": "#/definitions/oci-image/definitions/created_at"
13065
13766
  },
13066
- "rules": {
13067
- "type": [
13068
- "array"
13069
- ],
13070
- "items": {
13071
- "$ref": "#/definitions/outbound-ruleset/definitions/rule"
13072
- }
13767
+ "updated_at": {
13768
+ "$ref": "#/definitions/oci-image/definitions/updated_at"
13073
13769
  },
13074
- "created_by": {
13075
- "$ref": "#/definitions/account/definitions/email"
13770
+ "architecture": {
13771
+ "$ref": "#/definitions/oci-image/definitions/architecture"
13772
+ },
13773
+ "deleted_at": {
13774
+ "$ref": "#/definitions/oci-image/definitions/deleted_at"
13076
13775
  }
13077
13776
  }
13078
13777
  },
@@ -13536,7 +14235,7 @@ module PlatformAPI
13536
14235
  }
13537
14236
  },
13538
14237
  "pipeline-build": {
13539
- "description": "Information about latest builds of apps in a pipeline.",
14238
+ "description": "Information about the latest builds of apps in a pipeline. A build represents the process of transforming code into build artifacts.",
13540
14239
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13541
14240
  "stability": "production",
13542
14241
  "strictProperties": true,
@@ -13544,7 +14243,131 @@ module PlatformAPI
13544
14243
  "type": [
13545
14244
  "object"
13546
14245
  ],
13547
- "definitions": {
14246
+ "definitions": {},
14247
+ "properties": {
14248
+ "app": {
14249
+ "description": "app that the build belongs to",
14250
+ "properties": {
14251
+ "id": {
14252
+ "description": "unique identifier of the app",
14253
+ "$ref": "#/definitions/app/definitions/id"
14254
+ }
14255
+ },
14256
+ "strictProperties": true,
14257
+ "type": [
14258
+ "object"
14259
+ ]
14260
+ },
14261
+ "buildpacks": {
14262
+ "$ref": "#/definitions/build/definitions/buildpacks"
14263
+ },
14264
+ "created_at": {
14265
+ "description": "when the build was created",
14266
+ "$ref": "#/definitions/build/definitions/created_at"
14267
+ },
14268
+ "id": {
14269
+ "description": "unique identifier of the build",
14270
+ "$ref": "#/definitions/build/definitions/id"
14271
+ },
14272
+ "output_stream_url": {
14273
+ "description": "streaming URL of the build process output",
14274
+ "$ref": "#/definitions/build/definitions/output_stream_url"
14275
+ },
14276
+ "source_blob": {
14277
+ "description": "location of gzipped tarball of source code used to create build",
14278
+ "properties": {
14279
+ "checksum": {
14280
+ "description": "an optional checksum of the gzipped tarball for verifying its integrity",
14281
+ "example": "SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
14282
+ "readOnly": true,
14283
+ "type": [
14284
+ "null",
14285
+ "string"
14286
+ ]
14287
+ },
14288
+ "url": {
14289
+ "description": "URL where gzipped tar archive of source code for build was downloaded.",
14290
+ "example": "https://example.com/source.tgz?token=xyz",
14291
+ "readOnly": true,
14292
+ "type": [
14293
+ "string"
14294
+ ]
14295
+ },
14296
+ "version": {
14297
+ "description": "version of the gzipped tarball",
14298
+ "example": "v1.3.0",
14299
+ "readOnly": true,
14300
+ "type": [
14301
+ "string",
14302
+ "null"
14303
+ ]
14304
+ },
14305
+ "version_description": {
14306
+ "description": "version description of the gzipped tarball",
14307
+ "example": "* Fake User: Change session key",
14308
+ "readOnly": true,
14309
+ "type": [
14310
+ "string",
14311
+ "null"
14312
+ ]
14313
+ }
14314
+ },
14315
+ "strictProperties": true,
14316
+ "type": [
14317
+ "object"
14318
+ ]
14319
+ },
14320
+ "release": {
14321
+ "properties": {
14322
+ "id": {
14323
+ "description": "unique identifier of the release",
14324
+ "$ref": "#/definitions/release/definitions/id"
14325
+ }
14326
+ },
14327
+ "$ref": "#/definitions/build/definitions/release"
14328
+ },
14329
+ "slug": {
14330
+ "description": "slug created by this build",
14331
+ "properties": {
14332
+ "id": {
14333
+ "description": "unique identifier of the slug",
14334
+ "$ref": "#/definitions/slug/definitions/id"
14335
+ }
14336
+ },
14337
+ "strictProperties": true,
14338
+ "type": [
14339
+ "object",
14340
+ "null"
14341
+ ]
14342
+ },
14343
+ "stack": {
14344
+ "description": "stack of the build",
14345
+ "example": "heroku-24",
14346
+ "$ref": "#/definitions/build/definitions/stack"
14347
+ },
14348
+ "status": {
14349
+ "description": "status of the build",
14350
+ "$ref": "#/definitions/build/definitions/status"
14351
+ },
14352
+ "updated_at": {
14353
+ "description": "when the build was updated",
14354
+ "$ref": "#/definitions/build/definitions/updated_at"
14355
+ },
14356
+ "user": {
14357
+ "description": "user that started the build",
14358
+ "properties": {
14359
+ "id": {
14360
+ "$ref": "#/definitions/account/definitions/id"
14361
+ },
14362
+ "email": {
14363
+ "$ref": "#/definitions/account/definitions/email"
14364
+ }
14365
+ },
14366
+ "strictProperties": true,
14367
+ "type": [
14368
+ "object"
14369
+ ]
14370
+ }
13548
14371
  },
13549
14372
  "links": [
13550
14373
  {
@@ -13554,7 +14377,7 @@ module PlatformAPI
13554
14377
  "rel": "instances",
13555
14378
  "targetSchema": {
13556
14379
  "items": {
13557
- "$ref": "#/definitions/build"
14380
+ "$ref": "#/definitions/pipeline-build"
13558
14381
  },
13559
14382
  "type": [
13560
14383
  "array"
@@ -13565,7 +14388,7 @@ module PlatformAPI
13565
14388
  ]
13566
14389
  },
13567
14390
  "pipeline-config-var": {
13568
- "description": "Pipeline Config Vars allow you to manage the configuration information provided to a pipeline.",
14391
+ "description": "Pipeline config vars in Heroku CI and review apps used to manage the configuration information for a pipeline.",
13569
14392
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13570
14393
  "stability": "production",
13571
14394
  "strictProperties": true,
@@ -13594,6 +14417,17 @@ module PlatformAPI
13594
14417
  ]
13595
14418
  }
13596
14419
  },
14420
+ "properties": {
14421
+ "[\"NAME\"]: [\"value\"]": {
14422
+ "type": [
14423
+ "object"
14424
+ ],
14425
+ "description": "user-defined config var name and value",
14426
+ "example": {
14427
+ "FOO": "bar"
14428
+ }
14429
+ }
14430
+ },
13597
14431
  "links": [
13598
14432
  {
13599
14433
  "description": "Get config-vars for a pipeline stage.",
@@ -13886,7 +14720,7 @@ module PlatformAPI
13886
14720
  }
13887
14721
  },
13888
14722
  "pipeline-deployment": {
13889
- "description": "Information about latest deployments of apps in a pipeline.",
14723
+ "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
14724
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
13891
14725
  "stability": "production",
13892
14726
  "strictProperties": true,
@@ -13894,11 +14728,105 @@ module PlatformAPI
13894
14728
  "type": [
13895
14729
  "object"
13896
14730
  ],
13897
- "definitions": {
14731
+ "$ref": "#/definitions/release",
14732
+ "properties": {
14733
+ "addon_plan_names": {
14734
+ "description": "add-on plans installed on the app for this deployment",
14735
+ "type": [
14736
+ "array"
14737
+ ],
14738
+ "items": {
14739
+ "$ref": "#/definitions/plan/definitions/name"
14740
+ }
14741
+ },
14742
+ "artifacts": {
14743
+ "$ref": "#/definitions/release/definitions/artifact"
14744
+ },
14745
+ "app": {
14746
+ "description": "app involved in the deployment",
14747
+ "properties": {
14748
+ "name": {
14749
+ "description": "unique name of the app",
14750
+ "$ref": "#/definitions/app/definitions/name"
14751
+ },
14752
+ "id": {
14753
+ "description": "unique identifier of the app",
14754
+ "$ref": "#/definitions/app/definitions/id"
14755
+ }
14756
+ },
14757
+ "type": [
14758
+ "object"
14759
+ ]
14760
+ },
14761
+ "created_at": {
14762
+ "description": "when the deployment was created",
14763
+ "$ref": "#/definitions/release/definitions/created_at"
14764
+ },
14765
+ "description": {
14766
+ "description": "description of changes in this deployment",
14767
+ "$ref": "#/definitions/release/definitions/description"
14768
+ },
14769
+ "id": {
14770
+ "description": "unique identifier of the deployment",
14771
+ "$ref": "#/definitions/release/definitions/id"
14772
+ },
14773
+ "updated_at": {
14774
+ "description": "when the deployment was updated",
14775
+ "$ref": "#/definitions/release/definitions/updated_at"
14776
+ },
14777
+ "slug": {
14778
+ "description": "slug running in this deployment",
14779
+ "properties": {
14780
+ "id": {
14781
+ "description": "unique identifier of the slug",
14782
+ "$ref": "#/definitions/slug/definitions/id"
14783
+ }
14784
+ },
14785
+ "strictProperties": true,
14786
+ "type": [
14787
+ "object",
14788
+ "null"
14789
+ ]
14790
+ },
14791
+ "status": {
14792
+ "description": "current status of the deployment",
14793
+ "$ref": "#/definitions/release/definitions/status"
14794
+ },
14795
+ "user": {
14796
+ "description": "user that created the deployment",
14797
+ "properties": {
14798
+ "id": {
14799
+ "$ref": "#/definitions/account/definitions/id"
14800
+ },
14801
+ "email": {
14802
+ "$ref": "#/definitions/account/definitions/email"
14803
+ }
14804
+ },
14805
+ "strictProperties": true,
14806
+ "type": [
14807
+ "object"
14808
+ ]
14809
+ },
14810
+ "version": {
14811
+ "description": "unique version assigned to the deployment",
14812
+ "$ref": "#/definitions/release/definitions/version"
14813
+ },
14814
+ "current": {
14815
+ "description": "indicates if this deployment is the current one for the app",
14816
+ "$ref": "#/definitions/release/definitions/current"
14817
+ },
14818
+ "output_stream_url": {
14819
+ "description": "streaming URL for the release command output",
14820
+ "$ref": "#/definitions/release/definitions/output_stream_url"
14821
+ },
14822
+ "eligible_for_rollback": {
14823
+ "description": "indicates if this deployment is eligible for rollback",
14824
+ "$ref": "#/definitions/release/definitions/eligible_for_rollback"
14825
+ }
13898
14826
  },
13899
14827
  "links": [
13900
14828
  {
13901
- "description": "List latest slug releases for each app in a pipeline",
14829
+ "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
14830
  "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/latest-deployments",
13903
14831
  "method": "GET",
13904
14832
  "rel": "instances",
@@ -14119,6 +15047,18 @@ module PlatformAPI
14119
15047
  "type": [
14120
15048
  "object"
14121
15049
  ]
15050
+ },
15051
+ "release": {
15052
+ "description": "the specific release to promote from (optional, defaults to current release)",
15053
+ "properties": {
15054
+ "id": {
15055
+ "$ref": "#/definitions/release/definitions/id"
15056
+ }
15057
+ },
15058
+ "strictProperties": true,
15059
+ "type": [
15060
+ "object"
15061
+ ]
14122
15062
  }
14123
15063
  },
14124
15064
  "type": [
@@ -14235,7 +15175,7 @@ module PlatformAPI
14235
15175
  }
14236
15176
  },
14237
15177
  "pipeline-release": {
14238
- "description": "Information about latest releases of apps in a pipeline.",
15178
+ "description": "Information about the latest release of each app in a pipeline. A release makes a deployment available to end-users.",
14239
15179
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
14240
15180
  "stability": "production",
14241
15181
  "strictProperties": true,
@@ -14243,7 +15183,96 @@ module PlatformAPI
14243
15183
  "type": [
14244
15184
  "object"
14245
15185
  ],
14246
- "definitions": {
15186
+ "properties": {
15187
+ "addon_plan_names": {
15188
+ "description": "add-on plans installed on the app for this release",
15189
+ "type": [
15190
+ "array"
15191
+ ],
15192
+ "items": {
15193
+ "$ref": "#/definitions/plan/definitions/name"
15194
+ }
15195
+ },
15196
+ "artifacts": {
15197
+ "$ref": "#/definitions/release/definitions/artifact"
15198
+ },
15199
+ "app": {
15200
+ "description": "app involved in the release",
15201
+ "properties": {
15202
+ "name": {
15203
+ "description": "unique name of the app",
15204
+ "$ref": "#/definitions/app/definitions/name"
15205
+ },
15206
+ "id": {
15207
+ "description": "unique identifier of the app",
15208
+ "$ref": "#/definitions/app/definitions/id"
15209
+ }
15210
+ },
15211
+ "type": [
15212
+ "object"
15213
+ ]
15214
+ },
15215
+ "created_at": {
15216
+ "description": "when the release was created",
15217
+ "$ref": "#/definitions/release/definitions/created_at"
15218
+ },
15219
+ "description": {
15220
+ "$ref": "#/definitions/release/definitions/description"
15221
+ },
15222
+ "id": {
15223
+ "description": "unique identifier of the release",
15224
+ "$ref": "#/definitions/release/definitions/id"
15225
+ },
15226
+ "updated_at": {
15227
+ "description": "when the release was updated",
15228
+ "$ref": "#/definitions/release/definitions/updated_at"
15229
+ },
15230
+ "slug": {
15231
+ "description": "slug running in the release",
15232
+ "properties": {
15233
+ "id": {
15234
+ "description": "unique identifier of the slug",
15235
+ "$ref": "#/definitions/slug/definitions/id"
15236
+ }
15237
+ },
15238
+ "strictProperties": true,
15239
+ "type": [
15240
+ "object",
15241
+ "null"
15242
+ ]
15243
+ },
15244
+ "status": {
15245
+ "$ref": "#/definitions/release/definitions/status"
15246
+ },
15247
+ "user": {
15248
+ "description": "user that created the release",
15249
+ "properties": {
15250
+ "id": {
15251
+ "$ref": "#/definitions/account/definitions/id"
15252
+ },
15253
+ "email": {
15254
+ "$ref": "#/definitions/account/definitions/email"
15255
+ }
15256
+ },
15257
+ "strictProperties": true,
15258
+ "type": [
15259
+ "object"
15260
+ ]
15261
+ },
15262
+ "version": {
15263
+ "$ref": "#/definitions/release/definitions/version"
15264
+ },
15265
+ "current": {
15266
+ "description": "indicates if this release is the current one for the app",
15267
+ "$ref": "#/definitions/release/definitions/current"
15268
+ },
15269
+ "output_stream_url": {
15270
+ "description": "streaming URL of the build process output",
15271
+ "$ref": "#/definitions/release/definitions/output_stream_url"
15272
+ },
15273
+ "eligible_for_rollback": {
15274
+ "$ref": "#/definitions/release/definitions/eligible_for_rollback"
15275
+ }
14247
15276
  },
14248
15277
  "links": [
14249
15278
  {
@@ -14475,9 +15504,7 @@ module PlatformAPI
14475
15504
  ]
14476
15505
  }
14477
15506
  },
14478
- "links": [
14479
-
14480
- ],
15507
+ "links": [],
14481
15508
  "properties": {
14482
15509
  "id": {
14483
15510
  "$ref": "#/definitions/pipeline/definitions/owner/definitions/id"
@@ -14503,6 +15530,49 @@ module PlatformAPI
14503
15530
  "type": [
14504
15531
  "string"
14505
15532
  ]
15533
+ },
15534
+ "generation": {
15535
+ "description": "the generation of the Heroku platform for this pipeline",
15536
+ "definitions": {
15537
+ "id": {
15538
+ "description": "unique identifier of the generation of the Heroku platform for this pipeline",
15539
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
15540
+ "format": "uuid",
15541
+ "readOnly": true,
15542
+ "type": [
15543
+ "string"
15544
+ ]
15545
+ },
15546
+ "identity": {
15547
+ "anyOf": [
15548
+ {
15549
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/id"
15550
+ },
15551
+ {
15552
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/name"
15553
+ }
15554
+ ]
15555
+ },
15556
+ "name": {
15557
+ "description": "unique name of the generation of the Heroku platform for this pipeline",
15558
+ "example": "cedar",
15559
+ "readOnly": true,
15560
+ "type": [
15561
+ "string"
15562
+ ]
15563
+ }
15564
+ },
15565
+ "properties": {
15566
+ "id": {
15567
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/id"
15568
+ },
15569
+ "name": {
15570
+ "$ref": "#/definitions/pipeline/definitions/generation/definitions/name"
15571
+ }
15572
+ },
15573
+ "type": [
15574
+ "object"
15575
+ ]
14506
15576
  }
14507
15577
  },
14508
15578
  "links": [
@@ -14608,6 +15678,9 @@ module PlatformAPI
14608
15678
  },
14609
15679
  "updated_at": {
14610
15680
  "$ref": "#/definitions/pipeline/definitions/updated_at"
15681
+ },
15682
+ "generation": {
15683
+ "$ref": "#/definitions/pipeline/definitions/generation"
14611
15684
  }
14612
15685
  }
14613
15686
  },
@@ -14903,8 +15976,7 @@ module PlatformAPI
14903
15976
  "object"
14904
15977
  ],
14905
15978
  "definitions": {
14906
- "identity": {
14907
- },
15979
+ "identity": {},
14908
15980
  "remaining": {
14909
15981
  "description": "allowed requests remaining in current interval",
14910
15982
  "example": 2399,
@@ -15127,6 +16199,32 @@ module PlatformAPI
15127
16199
  "object"
15128
16200
  ],
15129
16201
  "definitions": {
16202
+ "artifact": {
16203
+ "description": "a build artifact for the release",
16204
+ "properties": {
16205
+ "type": {
16206
+ "description": "type of artifact",
16207
+ "example": "slug",
16208
+ "type": [
16209
+ "string"
16210
+ ]
16211
+ },
16212
+ "id": {
16213
+ "anyOf": [
16214
+ {
16215
+ "$ref": "#/definitions/slug/definitions/id"
16216
+ },
16217
+ {
16218
+ "$ref": "#/definitions/oci-image/definitions/id"
16219
+ }
16220
+ ]
16221
+ }
16222
+ },
16223
+ "readOnly": true,
16224
+ "type": [
16225
+ "object"
16226
+ ]
16227
+ },
15130
16228
  "created_at": {
15131
16229
  "description": "when release was created",
15132
16230
  "example": "2012-01-01T12:00:00Z",
@@ -15149,7 +16247,8 @@ module PlatformAPI
15149
16247
  "enum": [
15150
16248
  "failed",
15151
16249
  "pending",
15152
- "succeeded"
16250
+ "succeeded",
16251
+ "expired"
15153
16252
  ],
15154
16253
  "example": "succeeded",
15155
16254
  "readOnly": true,
@@ -15209,6 +16308,14 @@ module PlatformAPI
15209
16308
  "string",
15210
16309
  "null"
15211
16310
  ]
16311
+ },
16312
+ "eligible_for_rollback": {
16313
+ "description": "indicates if this release is eligible for rollback",
16314
+ "example": true,
16315
+ "readOnly": true,
16316
+ "type": [
16317
+ "boolean"
16318
+ ]
15212
16319
  }
15213
16320
  },
15214
16321
  "links": [
@@ -15247,6 +16354,9 @@ module PlatformAPI
15247
16354
  "description": {
15248
16355
  "$ref": "#/definitions/release/definitions/description"
15249
16356
  },
16357
+ "oci_image": {
16358
+ "$ref": "#/definitions/oci-image/definitions/identity"
16359
+ },
15250
16360
  "slug": {
15251
16361
  "$ref": "#/definitions/slug/definitions/identity"
15252
16362
  }
@@ -15297,6 +16407,15 @@ module PlatformAPI
15297
16407
  "$ref": "#/definitions/plan/definitions/name"
15298
16408
  }
15299
16409
  },
16410
+ "artifacts": {
16411
+ "description": "build artifacts for the release",
16412
+ "type": [
16413
+ "array"
16414
+ ],
16415
+ "items": {
16416
+ "$ref": "#/definitions/release/definitions/artifact"
16417
+ }
16418
+ },
15300
16419
  "app": {
15301
16420
  "description": "app involved in the release",
15302
16421
  "properties": {
@@ -15362,6 +16481,9 @@ module PlatformAPI
15362
16481
  },
15363
16482
  "output_stream_url": {
15364
16483
  "$ref": "#/definitions/release/definitions/output_stream_url"
16484
+ },
16485
+ "eligible_for_rollback": {
16486
+ "$ref": "#/definitions/release/definitions/eligible_for_rollback"
15365
16487
  }
15366
16488
  }
15367
16489
  },
@@ -15805,9 +16927,7 @@ module PlatformAPI
15805
16927
  ]
15806
16928
  }
15807
16929
  },
15808
- "links": [
15809
-
15810
- ],
16930
+ "links": [],
15811
16931
  "properties": {
15812
16932
  "id": {
15813
16933
  "$ref": "#/definitions/review-app-config/definitions/deploy_target/definitions/id"
@@ -16095,6 +17215,16 @@ module PlatformAPI
16095
17215
  "type": [
16096
17216
  "string"
16097
17217
  ]
17218
+ },
17219
+ "deleted_at": {
17220
+ "description": "when slug was deleted",
17221
+ "example": "2012-01-01T12:00:00Z",
17222
+ "format": "date-time",
17223
+ "readOnly": true,
17224
+ "type": [
17225
+ "string",
17226
+ "null"
17227
+ ]
16098
17228
  }
16099
17229
  },
16100
17230
  "links": [
@@ -16225,6 +17355,9 @@ module PlatformAPI
16225
17355
  },
16226
17356
  "updated_at": {
16227
17357
  "$ref": "#/definitions/slug/definitions/updated_at"
17358
+ },
17359
+ "deleted_at": {
17360
+ "$ref": "#/definitions/slug/definitions/deleted_at"
16228
17361
  }
16229
17362
  }
16230
17363
  },
@@ -17165,6 +18298,32 @@ module PlatformAPI
17165
18298
  "type": [
17166
18299
  "string"
17167
18300
  ]
18301
+ },
18302
+ "generation": {
18303
+ "description": "Generation of the Heroku platform for this space",
18304
+ "readOnly": true,
18305
+ "type": [
18306
+ "object"
18307
+ ],
18308
+ "properties": {
18309
+ "id": {
18310
+ "description": "unique identifier of the generation of the Heroku platform for this space",
18311
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
18312
+ "format": "uuid",
18313
+ "readOnly": true,
18314
+ "type": [
18315
+ "string"
18316
+ ]
18317
+ },
18318
+ "name": {
18319
+ "description": "unique name of the generation of the Heroku platform for this space",
18320
+ "example": "cedar",
18321
+ "readOnly": true,
18322
+ "type": [
18323
+ "string"
18324
+ ]
18325
+ }
18326
+ }
17168
18327
  }
17169
18328
  },
17170
18329
  "links": [
@@ -17250,6 +18409,14 @@ module PlatformAPI
17250
18409
  },
17251
18410
  "log_drain_url": {
17252
18411
  "$ref": "#/definitions/space/definitions/log_drain_url"
18412
+ },
18413
+ "generation": {
18414
+ "description": "unique name of the generation of the Heroku platform for this space",
18415
+ "example": "cedar",
18416
+ "readOnly": true,
18417
+ "type": [
18418
+ "string"
18419
+ ]
17253
18420
  }
17254
18421
  },
17255
18422
  "required": [
@@ -17330,6 +18497,9 @@ module PlatformAPI
17330
18497
  },
17331
18498
  "data_cidr": {
17332
18499
  "$ref": "#/definitions/space/definitions/data_cidr"
18500
+ },
18501
+ "generation": {
18502
+ "$ref": "#/definitions/space/definitions/generation"
17333
18503
  }
17334
18504
  }
17335
18505
  },
@@ -17430,6 +18600,21 @@ module PlatformAPI
17430
18600
  ]
17431
18601
  },
17432
18602
  "title": "List"
18603
+ },
18604
+ {
18605
+ "description": "List available app stacks for an app.",
18606
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/available-stacks",
18607
+ "method": "GET",
18608
+ "rel": "instances",
18609
+ "targetSchema": {
18610
+ "items": {
18611
+ "$ref": "#/definitions/stack"
18612
+ },
18613
+ "type": [
18614
+ "array"
18615
+ ]
18616
+ },
18617
+ "title": "List by App"
17433
18618
  }
17434
18619
  ],
17435
18620
  "properties": {
@@ -19194,7 +20379,7 @@ module PlatformAPI
19194
20379
  }
19195
20380
  },
19196
20381
  "connect": {
19197
- "description": "average connect rows synced",
20382
+ "description": "max connect rows synced",
19198
20383
  "example": 15000,
19199
20384
  "readOnly": true,
19200
20385
  "type": [
@@ -19924,6 +21109,309 @@ module PlatformAPI
19924
21109
  }
19925
21110
  }
19926
21111
  },
21112
+ "telemetry-drain": {
21113
+ "description": "A telemetry drain forwards OpenTelemetry traces, metrics, and logs to your own consumer. For Fir-generation apps only.",
21114
+ "$schema": "http://json-schema.org/draft-04/hyper-schema",
21115
+ "stability": "prototype",
21116
+ "strictProperties": true,
21117
+ "title": "Heroku Platform API - Telemetry Drain",
21118
+ "type": [
21119
+ "object"
21120
+ ],
21121
+ "definitions": {
21122
+ "id": {
21123
+ "description": "unique identifier of telemetry drain",
21124
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
21125
+ "format": "uuid",
21126
+ "readOnly": true,
21127
+ "type": [
21128
+ "string"
21129
+ ]
21130
+ },
21131
+ "identity": {
21132
+ "anyOf": [
21133
+ {
21134
+ "$ref": "#/definitions/telemetry-drain/definitions/id"
21135
+ }
21136
+ ]
21137
+ },
21138
+ "created_at": {
21139
+ "description": "when the telemetry drain was created",
21140
+ "example": "2024-12-01T12:00:00Z",
21141
+ "format": "date-time",
21142
+ "readOnly": true,
21143
+ "type": [
21144
+ "string"
21145
+ ]
21146
+ },
21147
+ "updated_at": {
21148
+ "description": "when telemetry drain was last updated",
21149
+ "example": "2012-01-01T12:00:00Z",
21150
+ "format": "date-time",
21151
+ "readOnly": true,
21152
+ "type": [
21153
+ "string"
21154
+ ]
21155
+ },
21156
+ "signal": {
21157
+ "description": "OpenTelemetry signal to be sent to the telemetry drain",
21158
+ "readOnly": true,
21159
+ "example": "traces",
21160
+ "type": [
21161
+ "string"
21162
+ ],
21163
+ "enum": [
21164
+ "traces",
21165
+ "metrics",
21166
+ "logs"
21167
+ ]
21168
+ },
21169
+ "signals": {
21170
+ "description": "OpenTelemetry signals to send to telemetry drain",
21171
+ "example": [
21172
+ "traces",
21173
+ "metrics"
21174
+ ],
21175
+ "readOnly": false,
21176
+ "minItems": 1,
21177
+ "uniqueItems": true,
21178
+ "type": [
21179
+ "array"
21180
+ ],
21181
+ "items": {
21182
+ "$ref": "#/definitions/telemetry-drain/definitions/signal"
21183
+ }
21184
+ },
21185
+ "exporter_type": {
21186
+ "description": "the transport type to be used for your OpenTelemetry consumer",
21187
+ "readOnly": true,
21188
+ "example": "otlphttp",
21189
+ "type": [
21190
+ "string"
21191
+ ],
21192
+ "enum": [
21193
+ "otlphttp",
21194
+ "otlp"
21195
+ ]
21196
+ },
21197
+ "exporter_endpoint": {
21198
+ "description": "URI of your OpenTelemetry consumer",
21199
+ "readOnly": false,
21200
+ "example": "https://api.otelproduct.example/consumer",
21201
+ "maxLength": 1000,
21202
+ "type": [
21203
+ "string"
21204
+ ]
21205
+ },
21206
+ "exporter_headers": {
21207
+ "description": "JSON headers to send to your OpenTelemetry consumer",
21208
+ "readOnly": false,
21209
+ "example": {
21210
+ "API-Key": "example_api_key_012345",
21211
+ "Environment": "production"
21212
+ },
21213
+ "default": {},
21214
+ "additionalProperties": false,
21215
+ "maxItems": 20,
21216
+ "patternProperties": {
21217
+ "^[A-Za-z0-9\\-_]{1,100}$": {
21218
+ "maxLength": 1000,
21219
+ "type": [
21220
+ "string"
21221
+ ]
21222
+ }
21223
+ },
21224
+ "type": [
21225
+ "object"
21226
+ ]
21227
+ },
21228
+ "exporter": {
21229
+ "description": "OpenTelemetry exporter configuration",
21230
+ "readOnly": false,
21231
+ "additionalProperties": false,
21232
+ "properties": {
21233
+ "type": {
21234
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter_type"
21235
+ },
21236
+ "endpoint": {
21237
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter_endpoint"
21238
+ },
21239
+ "headers": {
21240
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter_headers"
21241
+ }
21242
+ },
21243
+ "required": [
21244
+ "type",
21245
+ "endpoint"
21246
+ ],
21247
+ "type": [
21248
+ "object"
21249
+ ]
21250
+ },
21251
+ "owner": {
21252
+ "description": "entity that owns this telemetry drain",
21253
+ "properties": {
21254
+ "id": {
21255
+ "description": "unique identifier of owner",
21256
+ "example": "01234567-89ab-cdef-0123-456789abcdef",
21257
+ "format": "uuid",
21258
+ "readOnly": true,
21259
+ "type": [
21260
+ "string"
21261
+ ]
21262
+ },
21263
+ "type": {
21264
+ "description": "type of owner",
21265
+ "enum": [
21266
+ "app",
21267
+ "space"
21268
+ ],
21269
+ "example": "app",
21270
+ "readOnly": true,
21271
+ "type": [
21272
+ "string"
21273
+ ]
21274
+ }
21275
+ },
21276
+ "readOnly": false,
21277
+ "required": [
21278
+ "id",
21279
+ "type"
21280
+ ],
21281
+ "type": [
21282
+ "object"
21283
+ ]
21284
+ }
21285
+ },
21286
+ "links": [
21287
+ {
21288
+ "description": "Create a telemetry drain.",
21289
+ "href": "/telemetry-drains",
21290
+ "method": "POST",
21291
+ "rel": "create",
21292
+ "schema": {
21293
+ "additionalProperties": false,
21294
+ "properties": {
21295
+ "owner": {
21296
+ "$ref": "#/definitions/telemetry-drain/definitions/owner"
21297
+ },
21298
+ "signals": {
21299
+ "$ref": "#/definitions/telemetry-drain/definitions/signals"
21300
+ },
21301
+ "exporter": {
21302
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter"
21303
+ }
21304
+ },
21305
+ "required": [
21306
+ "owner",
21307
+ "signals",
21308
+ "exporter"
21309
+ ],
21310
+ "type": [
21311
+ "object"
21312
+ ]
21313
+ },
21314
+ "targetSchema": {
21315
+ "$ref": "#/definitions/telemetry-drain"
21316
+ },
21317
+ "title": "Create"
21318
+ },
21319
+ {
21320
+ "description": "List telemetry drains for an app.",
21321
+ "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/telemetry-drains",
21322
+ "method": "GET",
21323
+ "rel": "instances",
21324
+ "targetSchema": {
21325
+ "items": {
21326
+ "$ref": "#/definitions/telemetry-drain"
21327
+ },
21328
+ "type": [
21329
+ "array"
21330
+ ]
21331
+ },
21332
+ "title": "List by App"
21333
+ },
21334
+ {
21335
+ "description": "List telemetry drains for a space.",
21336
+ "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/telemetry-drains",
21337
+ "method": "GET",
21338
+ "rel": "instances",
21339
+ "targetSchema": {
21340
+ "items": {
21341
+ "$ref": "#/definitions/telemetry-drain"
21342
+ },
21343
+ "type": [
21344
+ "array"
21345
+ ]
21346
+ },
21347
+ "title": "List by Space"
21348
+ },
21349
+ {
21350
+ "description": "Update a telemetry drain.",
21351
+ "href": "/telemetry-drains/{(%23%2Fdefinitions%2Ftelemetry-drain%2Fdefinitions%2Fidentity)}",
21352
+ "method": "PATCH",
21353
+ "rel": "update",
21354
+ "schema": {
21355
+ "additionalProperties": false,
21356
+ "properties": {
21357
+ "signals": {
21358
+ "$ref": "#/definitions/telemetry-drain/definitions/signals"
21359
+ },
21360
+ "exporter": {
21361
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter"
21362
+ }
21363
+ },
21364
+ "type": [
21365
+ "object"
21366
+ ]
21367
+ },
21368
+ "targetSchema": {
21369
+ "$ref": "#/definitions/telemetry-drain"
21370
+ },
21371
+ "title": "Update"
21372
+ },
21373
+ {
21374
+ "description": "Delete a telemetry drain.",
21375
+ "href": "/telemetry-drains/{(%23%2Fdefinitions%2Ftelemetry-drain%2Fdefinitions%2Fidentity)}",
21376
+ "method": "DELETE",
21377
+ "rel": "destroy",
21378
+ "targetSchema": {
21379
+ "$ref": "#/definitions/telemetry-drain"
21380
+ },
21381
+ "title": "Delete"
21382
+ },
21383
+ {
21384
+ "description": "Info for a telemetry drain.",
21385
+ "href": "/telemetry-drains/{(%23%2Fdefinitions%2Ftelemetry-drain%2Fdefinitions%2Fidentity)}",
21386
+ "method": "GET",
21387
+ "rel": "self",
21388
+ "targetSchema": {
21389
+ "$ref": "#/definitions/telemetry-drain"
21390
+ },
21391
+ "title": "Info"
21392
+ }
21393
+ ],
21394
+ "properties": {
21395
+ "created_at": {
21396
+ "$ref": "#/definitions/telemetry-drain/definitions/created_at"
21397
+ },
21398
+ "id": {
21399
+ "$ref": "#/definitions/telemetry-drain/definitions/id"
21400
+ },
21401
+ "owner": {
21402
+ "$ref": "#/definitions/telemetry-drain/definitions/owner"
21403
+ },
21404
+ "signals": {
21405
+ "$ref": "#/definitions/telemetry-drain/definitions/signals"
21406
+ },
21407
+ "exporter": {
21408
+ "$ref": "#/definitions/telemetry-drain/definitions/exporter"
21409
+ },
21410
+ "updated_at": {
21411
+ "$ref": "#/definitions/telemetry-drain/definitions/updated_at"
21412
+ }
21413
+ }
21414
+ },
19927
21415
  "test-case": {
19928
21416
  "$schema": "http://json-schema.org/draft-04/hyper-schema",
19929
21417
  "title": "Test Case",
@@ -21178,6 +22666,9 @@ module PlatformAPI
21178
22666
  "formation": {
21179
22667
  "$ref": "#/definitions/formation"
21180
22668
  },
22669
+ "generation": {
22670
+ "$ref": "#/definitions/generation"
22671
+ },
21181
22672
  "identity-provider": {
21182
22673
  "$ref": "#/definitions/identity-provider"
21183
22674
  },
@@ -21211,8 +22702,8 @@ module PlatformAPI
21211
22702
  "oauth-token": {
21212
22703
  "$ref": "#/definitions/oauth-token"
21213
22704
  },
21214
- "outbound-ruleset": {
21215
- "$ref": "#/definitions/outbound-ruleset"
22705
+ "oci-image": {
22706
+ "$ref": "#/definitions/oci-image"
21216
22707
  },
21217
22708
  "password-reset": {
21218
22709
  "$ref": "#/definitions/password-reset"
@@ -21346,6 +22837,9 @@ module PlatformAPI
21346
22837
  "team": {
21347
22838
  "$ref": "#/definitions/team"
21348
22839
  },
22840
+ "telemetry-drain": {
22841
+ "$ref": "#/definitions/telemetry-drain"
22842
+ },
21349
22843
  "test-case": {
21350
22844
  "$ref": "#/definitions/test-case"
21351
22845
  },