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": {