schema.json in platform-api-3.0.0 vs schema.json in platform-api-3.2.0

- old
+ new

@@ -357,10 +357,46 @@ "example": false, "readOnly": true, "type": [ "boolean" ] + }, + "acknowledged_msa": { + "description": "whether account has acknowledged the MSA terms of service", + "example": false, + "readOnly": true, + "type": [ + "boolean" + ] + }, + "acknowledged_msa_at": { + "description": "when account has acknowledged the MSA terms of service", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", + "readOnly": true, + "type": [ + "string", + "null" + ] + }, + "italian_customer_terms": { + "description": "whether account has acknowledged the Italian customer terms of service", + "example": "affirmatively_accepted", + "readOnly": true, + "type": [ + "string", + "null" + ] + }, + "italian_partner_terms": { + "description": "whether account has acknowledged the Italian provider terms of service", + "example": "affirmatively_accepted", + "readOnly": true, + "type": [ + "string", + "null" + ] } }, "links": [ { "description": "Info for account.", @@ -570,10 +606,22 @@ "$ref": "#/definitions/account/definitions/updated_at" }, "verified": { "$ref": "#/definitions/account/definitions/verified" }, + "acknowledged_msa": { + "$ref": "#/definitions/account/definitions/acknowledged_msa" + }, + "acknowledged_msa_at": { + "$ref": "#/definitions/account/definitions/acknowledged_msa_at" + }, + "italian_customer_terms": { + "$ref": "#/definitions/account/definitions/italian_customer_terms" + }, + "italian_partner_terms": { + "$ref": "#/definitions/account/definitions/italian_partner_terms" + }, "default_organization": { "description": "team selected by default", "properties": { "id": { "$ref": "#/definitions/team/definitions/id" @@ -605,11 +653,11 @@ ] } } }, "add-on-action": { - "description": "Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow whitelisted add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.", + "description": "Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Add-on Action", "type": [ @@ -2138,10 +2186,161 @@ "web_url": { "$ref": "#/definitions/add-on/definitions/web_url" } } }, + "allowed-add-on-service": { + "description": "Entities that have been allowed to be used by a Team", + "$schema": "http://json-schema.org/draft-04/hyper-schema", + "stability": "prototype", + "strictProperties": true, + "title": "Heroku Platform API - Allowed Add-on Service", + "type": [ + "object" + ], + "definitions": { + "added_at": { + "description": "when the add-on service was allowed", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", + "readOnly": true, + "type": [ + "string" + ] + }, + "added_by": { + "description": "the user which allowed the add-on service", + "properties": { + "email": { + "$ref": "#/definitions/account/definitions/email", + "type": [ + "string", + "null" + ] + }, + "id": { + "$ref": "#/definitions/account/definitions/id", + "type": [ + "string", + "null" + ] + } + }, + "readOnly": true, + "type": [ + "object" + ] + }, + "addon_service": { + "description": "the add-on service allowed for use", + "properties": { + "id": { + "$ref": "#/definitions/add-on-service/definitions/id" + }, + "name": { + "$ref": "#/definitions/add-on-service/definitions/name" + }, + "human_name": { + "$ref": "#/definitions/add-on-service/definitions/human_name" + } + }, + "readOnly": true, + "type": [ + "object" + ] + }, + "id": { + "description": "unique identifier for this allowed add-on service record", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + }, + "identity": { + "anyOf": [ + { + "$ref": "#/definitions/allowed-add-on-service/definitions/id" + }, + { + "$ref": "#/definitions/add-on-service/definitions/name" + } + ] + } + }, + "links": [ + { + "description": "List all allowed add-on services for a team", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/allowed-addon-services", + "method": "GET", + "rel": "instances", + "targetSchema": { + "items": { + "$ref": "#/definitions/allowed-add-on-service" + }, + "type": [ + "array" + ] + }, + "title": "List By Team" + }, + { + "description": "Allow an Add-on Service", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/allowed-addon-services", + "method": "POST", + "rel": "create", + "schema": { + "type": [ + "object" + ], + "properties": { + "addon_service": { + "description": "name of the add-on service to allow", + "example": "heroku-postgresql", + "type": [ + "string" + ] + } + } + }, + "targetSchema": { + "items": { + "$ref": "#/definitions/allowed-add-on-service" + }, + "type": [ + "array" + ] + }, + "title": "Create By Team" + }, + { + "description": "Remove an allowed add-on service", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/allowed-addon-services/{(%23%2Fdefinitions%2Fallowed-add-on-service%2Fdefinitions%2Fidentity)}", + "method": "DELETE", + "rel": "destroy", + "targetSchema": { + "$ref": "#/definitions/allowed-add-on-service" + }, + "title": "Delete By Team" + } + ], + "properties": { + "added_at": { + "$ref": "#/definitions/allowed-add-on-service/definitions/added_at" + }, + "added_by": { + "$ref": "#/definitions/allowed-add-on-service/definitions/added_by" + }, + "addon_service": { + "$ref": "#/definitions/allowed-add-on-service/definitions/addon_service" + }, + "id": { + "$ref": "#/definitions/allowed-add-on-service/definitions/id" + } + } + }, "app-feature": { "description": "An app feature represents a Heroku labs capability that can be enabled or disabled for an app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, @@ -4026,11 +4225,11 @@ }, "archive": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - Audit Trail Archive", "description": "An audit trail archive represents a monthly json zipped file containing events", - "stability": "development", + "stability": "production", "strictProperties": true, "type": [ "object" ], "definitions": { @@ -4133,11 +4332,11 @@ }, "audit-trail-event": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - Audit Trail Event", "description": "An audit trail event represents some action on the platform", - "stability": "development", + "stability": "production", "strictProperties": true, "type": [ "object" ], "definitions": { @@ -5307,15 +5506,23 @@ "format": "date-time", "readOnly": true, "type": [ "string" ] + }, + "sni_endpoint": { + "description": "null or unique identifier or name for SNI endpoint", + "type": [ + "null", + "string" + ] } }, "links": [ { - "description": "Create a new domain.", + "deactivate_on": "2021-10-31", + "description": "Create a new domain. Deprecated in favor of this same endpoint, but with a new required attribute of `sni_endpoint`. During the transitional phase sni_endpoint can be omitted entirely (current behavior), can be a valid id, or can be null which will skip auto-association.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains", "method": "POST", "rel": "create", "schema": { "properties": { @@ -5331,13 +5538,63 @@ ] }, "targetSchema": { "$ref": "#/definitions/domain" }, + "title": "Create - Deprecated" + }, + { + "description": "Create a new domain.", + "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains", + "method": "POST", + "rel": "create", + "schema": { + "properties": { + "hostname": { + "$ref": "#/definitions/domain/definitions/hostname" + }, + "sni_endpoint": { + "$ref": "#/definitions/domain/definitions/sni_endpoint" + } + }, + "required": [ + "hostname", + "sni_endpoint" + ], + "type": [ + "object" + ] + }, + "targetSchema": { + "$ref": "#/definitions/domain" + }, "title": "Create" }, { + "description": "Associate an SNI endpoint", + "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains/{(%23%2Fdefinitions%2Fdomain%2Fdefinitions%2Fidentity)}", + "method": "PATCH", + "rel": "update", + "schema": { + "properties": { + "sni_endpoint": { + "$ref": "#/definitions/domain/definitions/sni_endpoint" + } + }, + "required": [ + "sni_endpoint" + ], + "type": [ + "object" + ] + }, + "targetSchema": { + "$ref": "#/definitions/domain" + }, + "title": "Update" + }, + { "description": "Delete an existing domain", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains/{(%23%2Fdefinitions%2Fdomain%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { @@ -5410,10 +5667,25 @@ "updated_at": { "$ref": "#/definitions/domain/definitions/updated_at" }, "status": { "$ref": "#/definitions/domain/definitions/status" + }, + "sni_endpoint": { + "description": "sni endpoint the domain is associated with", + "properties": { + "name": { + "$ref": "#/definitions/sni-endpoint/definitions/name" + }, + "id": { + "$ref": "#/definitions/sni-endpoint/definitions/id" + } + }, + "type": [ + "null", + "object" + ] } } }, "dyno-size": { "description": "Dyno sizes are the values and details of sizes that can be assigned to dynos. This information can also be found at : [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types).", @@ -12120,11 +12392,11 @@ "web": "./bin/web -p $PORT" }, "size": 2048, "stack": { "id": "01234567-89ab-cdef-0123-456789abcdef", - "name": "cedar-14" + "name": "heroku-18" }, "updated_at": "2012-01-01T12:00:00Z" } }, "title": "Create" @@ -12788,11 +13060,14 @@ "example": "1.example-app-90210.app.localspace", "type": [ "string" ] } - } + }, + "type": [ + "object" + ] }, "formation": { "description": "formations for application", "properties": { "id": { @@ -13178,10 +13453,28 @@ "strictProperties": true, "type": [ "object" ], "definitions": { + "acm": { + "readOnly": true, + "type": [ + "boolean" + ] + }, + "ca_signed?": { + "readOnly": true, + "type": [ + "boolean" + ] + }, + "cert_domains": { + "readOnly": true, + "type": [ + "array" + ] + }, "certificate_chain": { "description": "raw contents of the public certificate chain (eg: .crt or .pem file)", "example": "-----BEGIN CERTIFICATE----- ...", "readOnly": false, "type": [ @@ -13203,10 +13496,26 @@ "readOnly": true, "type": [ "string" ] }, + "display_name": { + "description": "unique name for SSL endpoint", + "example": "example", + "pattern": "^[a-z][a-z0-9-]{2,29}$", + "readOnly": false, + "type": [ + "string" + ] + }, + "expires_at": { + "readOnly": true, + "format": "date-time", + "type": [ + "string" + ] + }, "id": { "description": "unique identifier of this SSL endpoint", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, @@ -13222,10 +13531,16 @@ { "$ref": "#/definitions/ssl-endpoint/definitions/name" } ] }, + "issuer": { + "readOnly": true, + "type": [ + "string" + ] + }, "name": { "description": "unique name for SSL endpoint", "example": "example", "pattern": "^[a-z][a-z0-9-]{2,29}$", "readOnly": true, @@ -13248,10 +13563,29 @@ "readOnly": false, "type": [ "string" ] }, + "self_signed?": { + "readOnly": true, + "type": [ + "boolean" + ] + }, + "starts_at": { + "readOnly": true, + "format": "date-time", + "type": [ + "string" + ] + }, + "subject": { + "readOnly": true, + "type": [ + "string" + ] + }, "updated_at": { "description": "when endpoint was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, @@ -13376,16 +13710,66 @@ "$ref": "#/definitions/ssl-endpoint/definitions/cname" }, "created_at": { "$ref": "#/definitions/ssl-endpoint/definitions/created_at" }, + "display_name": { + "$ref": "#/definitions/ssl-endpoint/definitions/display_name" + }, + "domains": { + "description": "domains associated with this endpoint", + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/domain/definitions/id" + } + }, "id": { "$ref": "#/definitions/ssl-endpoint/definitions/id" }, "name": { "$ref": "#/definitions/ssl-endpoint/definitions/name" }, + "ssl_cert": { + "description": "certificate provided by this endpoint", + "type": [ + "object" + ], + "properties": { + "ca_signed?": { + "$ref": "#/definitions/ssl-endpoint/definitions/ca_signed?" + }, + "cert_domains": { + "$ref": "#/definitions/ssl-endpoint/definitions/cert_domains" + }, + "expires_at": { + "$ref": "#/definitions/ssl-endpoint/definitions/expires_at" + }, + "issuer": { + "$ref": "#/definitions/ssl-endpoint/definitions/issuer" + }, + "self_signed?": { + "$ref": "#/definitions/ssl-endpoint/definitions/self_signed?" + }, + "starts_at": { + "$ref": "#/definitions/ssl-endpoint/definitions/starts_at" + }, + "subject": { + "$ref": "#/definitions/ssl-endpoint/definitions/subject" + }, + "id": { + "description": "unique identifier of this SSL certificate", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + } + } + }, "updated_at": { "$ref": "#/definitions/ssl-endpoint/definitions/updated_at" } } }, @@ -13435,11 +13819,11 @@ } ] }, "name": { "description": "unique name of stack", - "example": "cedar-14", + "example": "heroku-18", "readOnly": true, "type": [ "string" ] }, @@ -14995,10 +15379,19 @@ "readOnly": false, "type": [ "boolean", "null" ] + }, + "addons-controls": { + "description": "Whether add-on service rules should be applied to add-on installations", + "example": true, + "readOnly": false, + "type": [ + "boolean", + "null" + ] } }, "links": [ { "description": "Retrieve Team Preferences", @@ -15020,10 +15413,13 @@ "object" ], "properties": { "whitelisting-enabled": { "$ref": "#/definitions/team-preferences/definitions/whitelisting-enabled" + }, + "addons-controls": { + "$ref": "#/definitions/team-preferences/definitions/addons-controls" } } }, "targetSchema": { "$ref": "#/definitions/team-preferences" @@ -15035,10 +15431,13 @@ "default-permission": { "$ref": "#/definitions/team-preferences/definitions/default-permission" }, "whitelisting-enabled": { "$ref": "#/definitions/team-preferences/definitions/whitelisting-enabled" + }, + "addons-controls": { + "$ref": "#/definitions/team-preferences/definitions/addons-controls" } } }, "team-space": { "description": "A space is an isolated, highly available, secure app execution environments, running in the modern VPC substrate.", @@ -17151,9 +17550,12 @@ "add-on-webhook": { "$ref": "#/definitions/add-on-webhook" }, "add-on": { "$ref": "#/definitions/add-on" + }, + "allowed-add-on-service": { + "$ref": "#/definitions/allowed-add-on-service" }, "app-feature": { "$ref": "#/definitions/app-feature" }, "app-formation-set": {