schema.json in platform-api-3.5.0 vs schema.json in platform-api-3.6.0

- old
+ new

@@ -597,21 +597,21 @@ "links": [ { "description": "Mark an add-on as provisioned for use.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/actions/provision", "method": "POST", - "rel": "create", + "rel": "update", "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Provision" }, { "description": "Mark an add-on as deprovisioned.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/actions/deprovision", "method": "POST", - "rel": "create", + "rel": "update", "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Deprovision" } @@ -1620,12 +1620,28 @@ }, "add-on": { "description": "Add-ons represent add-ons that have been provisioned and attached to one or more apps.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", - "strictProperties": true, "title": "Heroku Platform API - Add-on", + "additionalProperties": false, + "required": [ + "actions", + "addon_service", + "billing_entity", + "app", + "billed_price", + "config_vars", + "created_at", + "id", + "name", + "plan", + "provider_id", + "state", + "updated_at", + "web_url" + ], "type": [ "object" ], "definitions": { "actions": { @@ -1786,10 +1802,61 @@ "readOnly": true, "type": [ "null", "string" ] + }, + "addon_service": { + "description": "identity of add-on service", + "anyOf": [ + { + "properties": { + "id": { + "$ref": "#/definitions/add-on-service/definitions/id" + }, + "name": { + "$ref": "#/definitions/add-on-service/definitions/name" + } + }, + "strictProperties": true, + "type": [ + "object" + ] + }, + { + "$ref": "#/definitions/add-on-service" + } + ] + }, + "plan": { + "description": "identity of add-on plan", + "anyOf": [ + { + "properties": { + "id": { + "$ref": "#/definitions/plan/definitions/id" + }, + "name": { + "$ref": "#/definitions/plan/definitions/name" + } + }, + "strictProperties": true, + "type": [ + "object" + ] + }, + { + "$ref": "#/definitions/plan" + } + ] + }, + "provision_message": { + "description": "A provision message", + "readOnly": true, + "type": [ + "string" + ] } }, "links": [ { "description": "List all existing add-ons.", @@ -1916,10 +1983,13 @@ ], "type": [ "object" ] }, + "targetSchema": { + "$ref": "#/definitions/add-on" + }, "title": "Update" }, { "description": "List all existing add-ons a user has access to", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}/addons", @@ -1988,23 +2058,11 @@ "properties": { "actions": { "$ref": "#/definitions/add-on/definitions/actions" }, "addon_service": { - "description": "identity of add-on service", - "properties": { - "id": { - "$ref": "#/definitions/add-on-service/definitions/id" - }, - "name": { - "$ref": "#/definitions/add-on-service/definitions/name" - } - }, - "strictProperties": true, - "type": [ - "object" - ] + "$ref": "#/definitions/add-on/definitions/addon_service" }, "billing_entity": { "description": "billing entity associated with this add-on", "type": [ "object" @@ -2087,27 +2145,18 @@ }, "name": { "$ref": "#/definitions/add-on/definitions/name" }, "plan": { - "description": "identity of add-on plan", - "properties": { - "id": { - "$ref": "#/definitions/plan/definitions/id" - }, - "name": { - "$ref": "#/definitions/plan/definitions/name" - } - }, - "strictProperties": true, - "type": [ - "object" - ] + "$ref": "#/definitions/add-on/definitions/plan" }, "provider_id": { "$ref": "#/definitions/add-on/definitions/provider_id" }, + "provision_message": { + "$ref": "#/definitions/add-on/definitions/provision_message" + }, "state": { "$ref": "#/definitions/add-on/definitions/state" }, "updated_at": { "$ref": "#/definitions/add-on/definitions/updated_at" @@ -2453,67 +2502,10 @@ "feedback_email": { "$ref": "#/definitions/app-feature/definitions/feedback_email" } } }, - "app-formation-set": { - "description": "App formation set describes the combination of process types with their quantities and sizes as well as application process tier", - "$schema": "http://json-schema.org/draft-04/hyper-schema", - "stability": "development", - "strictProperties": true, - "title": "Heroku Platform API - Application Formation Set", - "type": [ - "object" - ], - "properties": { - "description": { - "description": "a string representation of the formation set", - "example": "web@2:Standard-2X worker@3:Performance-M", - "readOnly": true, - "type": [ - "string" - ] - }, - "process_tier": { - "description": "application process tier", - "enum": [ - "production", - "free", - "hobby", - "private" - ], - "example": "production", - "readOnly": true, - "type": [ - "string" - ] - }, - "app": { - "description": "app being described by the formation-set", - "properties": { - "name": { - "$ref": "#/definitions/app/definitions/name" - }, - "id": { - "$ref": "#/definitions/app/definitions/id" - } - }, - "type": [ - "object" - ] - }, - "updated_at": { - "description": "last time fomation-set was updated", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", - "readOnly": true, - "type": [ - "string" - ] - } - } - }, "app-setup": { "description": "An app setup represents an app on Heroku that is setup using an environment, addons, and scripts described in an app.json manifest file.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, @@ -3837,13 +3829,14 @@ }, "web_url": { "description": "web URL of app", "example": "https://example.herokuapp.com/", "format": "uri", - "pattern": "^https?://[a-z][a-z0-9-]{3,30}\\.herokuapp\\.com/$", + "pattern": "^https?://[a-z][a-z0-9-]{3,43}\\.herokuapp\\.com/$", "readOnly": true, "type": [ + "null", "string" ] }, "acm": { "description": "ACM status of this app", @@ -4492,11 +4485,19 @@ "build": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "A build represents the process of transforming a code tarball into a slug", "title": "Heroku Build API - Build", "stability": "production", - "strictProperties": true, + "strictProperties": false, + "required": [ + "created_at", + "id", + "source_blob", + "status", + "updated_at", + "user" + ], "type": [ "object" ], "definitions": { "buildpacks": { @@ -4615,20 +4616,29 @@ "readOnly": true, "type": [ "string", "null" ] + }, + "version_description": { + "description": "Version description of the gzipped tarball.", + "example": "* Fake User: Change session key", + "readOnly": true, + "type": [ + "string", + "null" + ] } }, "strictProperties": true, "type": [ "object" ] }, "stack": { "description": "stack of build", - "example": "heroku-16", + "example": "heroku-22", "readOnly": true, "type": [ "string" ] }, @@ -4715,10 +4725,20 @@ "description": "Destroy a build cache.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/build-cache", "method": "DELETE", "rel": "empty", "title": "Delete cache" + }, + { + "description": "Cancel running build.", + "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/builds/{(%23%2Fdefinitions%2Fbuild%2Fdefinitions%2Fidentity)}", + "method": "DELETE", + "rel": "self", + "targetSchema": { + "$ref": "#/definitions/build" + }, + "title": "Cancel" } ], "properties": { "app": { "description": "app that the build belongs to", @@ -5659,11 +5679,11 @@ "number" ] }, "name": { "description": "the name of this dyno-size", - "example": "free", + "example": "eco", "readOnly": true, "type": [ "string" ] }, @@ -5692,17 +5712,26 @@ ] } } }, "dyno_units": { - "description": "unit of consumption for Heroku Enterprise customers", + "deprecated": true, + "description": "deprecated. See precise_dyno_units instead", "example": 0, "readOnly": true, "type": [ "integer" ] }, + "precise_dyno_units": { + "description": "unit of consumption for Heroku Enterprise customers to 2 decimal places", + "example": 0.28, + "readOnly": true, + "type": [ + "number" + ] + }, "private_space_only": { "description": "whether this dyno can only be provisioned in a private space", "example": false, "readOnly": true, "type": [ @@ -5748,10 +5777,13 @@ "$ref": "#/definitions/dyno-size/definitions/dedicated" }, "dyno_units": { "$ref": "#/definitions/dyno-size/definitions/dyno_units" }, + "precise_dyno_units": { + "$ref": "#/definitions/dyno-size/definitions/precise_dyno_units" + }, "id": { "$ref": "#/definitions/dyno-size/definitions/id" }, "memory": { "$ref": "#/definitions/dyno-size/definitions/memory" @@ -6847,10 +6879,13 @@ { "description": "Information about an enterprise account.", "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", + "targetSchema": { + "$ref": "#/definitions/enterprise-account" + }, "title": "Info" }, { "description": "Update enterprise account properties", "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fidentity)}", @@ -7689,10 +7724,13 @@ { "description": "Retrieve existing invoice address.", "href": "/account/invoice-address", "method": "GET", "rel": "self", + "targetSchema": { + "$ref": "#/definitions/invoice-address" + }, "title": "info" }, { "description": "Update invoice address for an account.", "href": "/account/invoice-address", @@ -7727,10 +7765,13 @@ } }, "type": [ "object" ] + }, + "targetSchema": { + "$ref": "#/definitions/invoice-address" } } ], "properties": { "address_1": { @@ -8067,26 +8108,66 @@ "definitions": { "addon": { "description": "add-on that created the drain", "example": { "id": "01234567-89ab-cdef-0123-456789abcdef", - "name": "singing-swiftly-1242" + "name": "singing-swiftly-1242", + "app": { + "id": "01234567-89ab-cdef-0123-456789abcdef", + "name": "example" + } }, "properties": { "id": { "$ref": "#/definitions/add-on/definitions/id" }, "name": { "$ref": "#/definitions/add-on/definitions/name" + }, + "app": { + "description": "billing application associated with this add-on", + "type": [ + "object" + ], + "properties": { + "id": { + "$ref": "#/definitions/app/definitions/id" + }, + "name": { + "$ref": "#/definitions/app/definitions/name" + } + }, + "strictProperties": true } }, "readOnly": true, "type": [ "object", "null" ] }, + "app": { + "description": "application that is attached to this drain", + "example": { + "id": "01234567-89ab-cdef-0123-456789abcdef", + "name": "example" + }, + "properties": { + "id": { + "$ref": "#/definitions/app/definitions/id" + }, + "name": { + "$ref": "#/definitions/app/definitions/name" + } + }, + "strictProperties": true, + "readOnly": true, + "type": [ + "object", + "null" + ] + }, "created_at": { "description": "when log drain was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, @@ -8249,10 +8330,13 @@ ], "properties": { "addon": { "$ref": "#/definitions/log-drain/definitions/addon" }, + "app": { + "$ref": "#/definitions/log-drain/definitions/app" + }, "created_at": { "$ref": "#/definitions/log-drain/definitions/created_at" }, "id": { "$ref": "#/definitions/log-drain/definitions/id" @@ -9380,14 +9464,20 @@ "properties": { "email": { "$ref": "#/definitions/account/definitions/email" } }, + "required": [ + "email" + ], "type": [ "object" ] }, + "targetSchema": { + "$ref": "#/definitions/password-reset" + }, "title": "Reset Password" }, { "description": "Complete password reset.", "href": "/password-resets/{(%23%2Fdefinitions%2Fpassword-reset%2Fdefinitions%2Freset_password_token)}/actions/finalize", @@ -9400,14 +9490,21 @@ }, "password_confirmation": { "$ref": "#/definitions/password-reset/definitions/password_confirmation" } }, + "required": [ + "password", + "password_confirmation" + ], "type": [ "object" ] }, + "targetSchema": { + "$ref": "#/definitions/password-reset" + }, "title": "Complete Reset Password" } ], "properties": { "created_at": { @@ -9633,18 +9730,24 @@ { "description": "Accept a pending peering connection with a private space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peerings/{(%23%2Fdefinitions%2Fpeering%2Fdefinitions%2Fpcx_id)}/actions/accept", "method": "POST", "rel": "empty", - "title": "Accept" + "title": "Accept", + "targetSchema": { + "$ref": "#/definitions/peering" + } }, { "description": "Destroy an active peering connection with a private space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peerings/{(%23%2Fdefinitions%2Fpeering%2Fdefinitions%2Fpcx_id)}", "rel": "empty", "method": "DELETE", - "title": "Destroy" + "title": "Destroy", + "targetSchema": { + "$ref": "#/definitions/peering" + } }, { "description": "Fetch information for existing peering connection", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peerings/{(%23%2Fdefinitions%2Fpeering%2Fdefinitions%2Fpcx_id)}", "method": "GET", @@ -11265,16 +11368,18 @@ "ap-south-1", "eu-west-1", "ap-southeast-1", "ap-southeast-2", "eu-central-1", + "eu-west-2", "ap-northeast-2", "ap-northeast-1", "us-east-1", "sa-east-1", "us-west-1", - "us-west-2" + "us-west-2", + "ca-central-1" ] } }, "readOnly": true }, @@ -14025,17 +14130,23 @@ }, "type": [ "object" ] }, + "targetSchema": { + "$ref": "#/definitions/team-app" + }, "title": "Create" }, { "description": "Info for a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", + "targetSchema": { + "$ref": "#/definitions/team-app" + }, "title": "Info" }, { "description": "Lock or unlock a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}", @@ -14690,18 +14801,24 @@ "role" ], "type": [ "object" ] + }, + "targetSchema": { + "$ref": "#/definitions/team-invitation" } }, { "description": "Revoke a team invitation.", "title": "Revoke", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/invitations/{(%23%2Fdefinitions%2Fteam-invitation%2Fdefinitions%2Fidentity)}", "method": "DELETE", - "rel": "self" + "rel": "self", + "targetSchema": { + "$ref": "#/definitions/team-invitation" + } }, { "description": "Get an invitation by its token", "title": "Get", "href": "/teams/invitations/{(%23%2Fdefinitions%2Fteam-invitation%2Fdefinitions%2Ftoken)}", @@ -15905,10 +16022,13 @@ { "description": "Info for a team.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", + "targetSchema": { + "$ref": "#/definitions/team" + }, "title": "Info" }, { "description": "Update team properties.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}", @@ -17172,10 +17292,13 @@ { "description": "Destroy existing VPN Connection", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections/{(%23%2Fdefinitions%2Fvpn-connection%2Fdefinitions%2Fidentity)}", "rel": "empty", "method": "DELETE", + "targetSchema": { + "$ref": "#/definitions/vpn-connection" + }, "title": "Destroy" }, { "description": "List VPN connections for a space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections", @@ -17267,12 +17390,9 @@ "allowed-add-on-service": { "$ref": "#/definitions/allowed-add-on-service" }, "app-feature": { "$ref": "#/definitions/app-feature" - }, - "app-formation-set": { - "$ref": "#/definitions/app-formation-set" }, "app-setup": { "$ref": "#/definitions/app-setup" }, "app-transfer": {