schema.json in platform-api-0.7.0 vs schema.json in platform-api-0.8.0

- old
+ new

@@ -925,10 +925,96 @@ "web_url": { "$ref": "#/definitions/addon-attachment/definitions/web_url" } } }, + "addon-config": { + "description": "Configuration of an Add-on", + "$schema": "http://json-schema.org/draft-04/hyper-schema", + "stability": "development", + "strictProperties": true, + "title": "Heroku Platform API - Add-on Config", + "type": [ + "object" + ], + "definitions": { + "identity": { + "anyOf": [ + { + "$ref": "#/definitions/addon-config/definitions/name" + } + ] + }, + "name": { + "description": "unique name of the config", + "example": "FOO", + "type": [ + "string" + ] + }, + "value": { + "description": "value of the config", + "example": "bar", + "type": [ + "string", + "null" + ] + } + }, + "links": [ + { + "description": "Get an add-on's config", + "href": "/addons/{(%23%2Fdefinitions%2Faddon%2Fdefinitions%2Fidentity)}/config", + "method": "GET", + "rel": "instances", + "targetSchema": { + "items": { + "$ref": "#/definitions/addon-config" + }, + "type": [ + "array" + ] + }, + "title": "List" + }, + { + "description": "Update an add-on's config.", + "href": "/addons/{(%23%2Fdefinitions%2Faddon%2Fdefinitions%2Fidentity)}/config", + "method": "PATCH", + "rel": "update", + "schema": { + "properties": { + "config": { + "items": { + "$ref": "#/definitions/addon-config" + }, + "type": [ + "array" + ] + } + }, + "type": [ + "object" + ] + }, + "targetSchema": { + "items": { + "$ref": "#/definitions/addon-config" + } + }, + "title": "Update" + } + ], + "properties": { + "name": { + "$ref": "#/definitions/addon-config/definitions/name" + }, + "value": { + "$ref": "#/definitions/addon-config/definitions/value" + } + } + }, "addon-region-capability": { "description": "Add-on region capabilities represent the relationship between an Add-on Service and a specific Region", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, @@ -2493,10 +2579,25 @@ "strictProperties": true, "type": [ "object" ] }, + "organization": { + "description": "identity of organization", + "properties": { + "id": { + "$ref": "#/definitions/organization/definitions/id" + }, + "name": { + "$ref": "#/definitions/organization/definitions/name" + } + }, + "type": [ + "null", + "object" + ] + }, "region": { "description": "identity of app region", "properties": { "id": { "$ref": "#/definitions/region/definitions/id" @@ -2712,10 +2813,36 @@ "readOnly": true, "type": [ "string" ] }, + "release": { + "description": "release resulting from the build", + "strictProperties": true, + "properties": { + "id": { + "$ref": "#/definitions/release/definitions/id" + } + }, + "example": { + "id": "01234567-89ab-cdef-0123-456789abcdef" + }, + "readOnly": true, + "type": [ + "null", + "object" + ], + "definitions": { + "id": { + "description": "unique identifier of release", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "type": [ + "string" + ] + } + } + }, "source_blob": { "description": "location of gzipped tarball of source code used to create build", "properties": { "checksum": { "description": "an optional checksum of the gzipped tarball for verifying its integrity", @@ -2867,10 +2994,13 @@ "$ref": "#/definitions/build/definitions/output_stream_url" }, "source_blob": { "$ref": "#/definitions/build/definitions/source_blob" }, + "release": { + "$ref": "#/definitions/build/definitions/release" + }, "slug": { "description": "slug created by this build", "properties": { "id": { "$ref": "#/definitions/slug/definitions/id" @@ -3244,17 +3374,17 @@ "$ref": "#/definitions/config-var/definitions/config_vars" }, "title": "Info" }, { - "description": "Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `NULL`.", + "description": "Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `null`.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/config-vars", "method": "PATCH", "rel": "update", "schema": { "additionalProperties": false, - "description": "hash of config changes – update values or delete by seting it to NULL", + "description": "hash of config changes – update values or delete by seting it to `null`", "example": { "FOO": "bar", "BAZ": "qux" }, "patternProperties": { @@ -3466,10 +3596,18 @@ "type": [ "null", "string" ] }, + "status": { + "description": "status of this record's cname", + "example": "pending", + "readOnly": true, + "type": [ + "string" + ] + }, "hostname": { "description": "full hostname", "example": "subdomain.example.com", "format": "uri", "readOnly": true, @@ -3608,10 +3746,13 @@ "kind": { "$ref": "#/definitions/domain/definitions/kind" }, "updated_at": { "$ref": "#/definitions/domain/definitions/updated_at" + }, + "status": { + "$ref": "#/definitions/domain/definitions/status" } } }, "dyno": { "description": "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).", @@ -3730,15 +3871,23 @@ ] }, "type": { "description": "type of process", "example": "run", - "readOnly": true, + "readOnly": false, "type": [ "string" ] }, + "time_to_live": { + "description": "seconds until dyno expires, after which it will soon be killed", + "example": 1800, + "readOnly": false, + "type": [ + "integer" + ] + }, "updated_at": { "description": "when process last changed state", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, @@ -3767,10 +3916,16 @@ "force_no_tty": { "$ref": "#/definitions/dyno/definitions/force_no_tty" }, "size": { "$ref": "#/definitions/dyno/definitions/size" + }, + "type": { + "$ref": "#/definitions/dyno/definitions/type" + }, + "time_to_live": { + "$ref": "#/definitions/dyno/definitions/time_to_live" } }, "required": [ "command" ], @@ -6478,25 +6633,10 @@ "$ref": "#/definitions/collaborator/definitions/created_at" }, "id": { "$ref": "#/definitions/collaborator/definitions/id" }, - "privileges": { - "description": "collborator privileges", - "properties": { - "description": { - "type": [ - "string" - ] - }, - "name": { - "type": [ - "string" - ] - } - } - }, "role": { "$ref": "#/definitions/organization/definitions/role" }, "updated_at": { "$ref": "#/definitions/collaborator/definitions/updated_at" @@ -7043,11 +7183,16 @@ }, "organization-member": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "An organization member is an individual with access to an organization.", "stability": "prototype", - "strictProperties": true, + "additionalProperties": false, + "required": [ + "created_at", + "email", + "updated_at" + ], "title": "Heroku Platform API - Organization Member", "type": [ "object" ], "definitions": { @@ -7077,11 +7222,11 @@ "$ref": "#/definitions/app/definitions/id" } ] }, "two_factor_authentication": { - "description": "whether the organization member has two factor authentication enabled", + "description": "whether the Enterprise organization member has two factor authentication enabled", "example": true, "readOnly": true, "type": [ "boolean" ] @@ -7733,10 +7878,176 @@ "url": { "$ref": "#/definitions/otp-secret/definitions/url" } } }, + "outbound-ruleset": { + "description": "An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with. ", + "$schema": "http://json-schema.org/draft-04/hyper-schema", + "stability": "prototype", + "strictProperties": true, + "title": "Heroku Platform API - Outbound Ruleset", + "type": [ + "object" + ], + "definitions": { + "target": { + "description": "is the target destination in CIDR notation", + "example": "1.1.1.1/1", + "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]))$", + "readOnly": false, + "type": [ + "string" + ] + }, + "created_at": { + "description": "when outbound-ruleset was created", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", + "readOnly": true, + "type": [ + "string" + ] + }, + "id": { + "description": "unique identifier of an outbound-ruleset", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + }, + "port": { + "description": "an endpoint of communication in an operating system.", + "example": 80, + "readOnly": false, + "type": [ + "integer" + ] + }, + "protocol": { + "description": "formal standards and policies comprised of rules, procedures and formats that define communication between two or more devices over a network", + "example": "tcp", + "readOnly": false, + "type": [ + "string" + ] + }, + "identity": { + "anyOf": [ + { + "$ref": "#/definitions/outbound-ruleset/definitions/id" + } + ] + }, + "rule": { + "description": "the combination of an IP address in CIDR notation, a from_port, to_port and protocol.", + "type": [ + "object" + ], + "properties": { + "target": { + "$ref": "#/definitions/outbound-ruleset/definitions/target" + }, + "from_port": { + "$ref": "#/definitions/outbound-ruleset/definitions/port" + }, + "to_port": { + "$ref": "#/definitions/outbound-ruleset/definitions/port" + }, + "protocol": { + "$ref": "#/definitions/outbound-ruleset/definitions/protocol" + } + }, + "required": [ + "target", + "from_port", + "to_port", + "protocol" + ] + } + }, + "links": [ + { + "description": "Current outbound ruleset for a space", + "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset", + "method": "GET", + "rel": "self", + "targetSchema": { + "$ref": "#/definitions/outbound-ruleset" + }, + "title": "Info" + }, + { + "description": "Info on an existing Outbound Ruleset", + "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets/{(%23%2Fdefinitions%2Foutbound-ruleset%2Fdefinitions%2Fidentity)}", + "method": "GET", + "rel": "self", + "targetSchema": { + "$ref": "#/definitions/outbound-ruleset" + }, + "title": "Info" + }, + { + "description": "List all Outbound Rulesets for a space", + "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets", + "method": "GET", + "rel": "instances", + "targetSchema": { + "items": { + "$ref": "#/definitions/outbound-ruleset" + }, + "type": [ + "array" + ] + }, + "title": "List" + }, + { + "description": "Create a new outbound ruleset", + "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset", + "method": "PUT", + "rel": "create", + "schema": { + "type": [ + "object" + ], + "properties": { + "rules": { + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/outbound-ruleset/definitions/rule" + } + } + } + }, + "title": "Create" + } + ], + "properties": { + "id": { + "$ref": "#/definitions/outbound-ruleset/definitions/id" + }, + "created_at": { + "$ref": "#/definitions/outbound-ruleset/definitions/created_at" + }, + "rules": { + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/outbound-ruleset/definitions/rule" + } + }, + "created_by": { + "$ref": "#/definitions/account/definitions/email" + } + } + }, "password-reset": { "description": "A password reset represents a in-process password reset attempt.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, @@ -9074,10 +9385,25 @@ }, "title": "List" } ], "properties": { + "addon_service": { + "description": "identity of add-on service", + "properties": { + "id": { + "$ref": "#/definitions/addon-service/definitions/id" + }, + "name": { + "$ref": "#/definitions/addon-service/definitions/name" + } + }, + "strictProperties": true, + "type": [ + "object" + ] + }, "created_at": { "$ref": "#/definitions/plan/definitions/created_at" }, "default": { "$ref": "#/definitions/plan/definitions/default" @@ -9388,10 +9714,23 @@ "readOnly": true, "type": [ "string" ] }, + "status": { + "description": "current status of the release", + "enum": [ + "failed", + "pending", + "succeeded" + ], + "example": "succeeded", + "readOnly": true, + "type": [ + "string" + ] + }, "id": { "description": "unique identifier of release", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, @@ -11084,10 +11423,13 @@ "$ref": "#/definitions/addon-action" }, "addon-attachment": { "$ref": "#/definitions/addon-attachment" }, + "addon-config": { + "$ref": "#/definitions/addon-config" + }, "addon-region-capability": { "$ref": "#/definitions/addon-region-capability" }, "addon-service": { "$ref": "#/definitions/addon-service" @@ -11200,9 +11542,12 @@ "organization": { "$ref": "#/definitions/organization" }, "otp-secret": { "$ref": "#/definitions/otp-secret" + }, + "outbound-ruleset": { + "$ref": "#/definitions/outbound-ruleset" }, "password-reset": { "$ref": "#/definitions/password-reset" }, "payment-method": {