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

- old
+ new

@@ -366,50 +366,10 @@ "example": false, "readOnly": true, "type": [ "boolean" ] - }, - "acknowledged_msa": { - "deprecated": true, - "description": "deprecated. whether account has acknowledged the MSA terms of service", - "example": false, - "readOnly": true, - "type": [ - "boolean" - ] - }, - "acknowledged_msa_at": { - "deprecated": true, - "description": "deprecated. 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": { - "deprecated": true, - "description": "deprecated. whether account has acknowledged the Italian customer terms of service", - "example": "affirmatively_accepted", - "readOnly": true, - "type": [ - "string", - "null" - ] - }, - "italian_partner_terms": { - "deprecated": true, - "description": "deprecated. whether account has acknowledged the Italian provider terms of service", - "example": "affirmatively_accepted", - "readOnly": true, - "type": [ - "string", - "null" - ] } }, "links": [ { "description": "Info for account.", @@ -446,11 +406,11 @@ "$ref": "#/definitions/account" }, "title": "Update" }, { - "description": "Delete account. Note that this action cannot be undone.", + "description": "Delete account. Note that this action cannot be undone. Note: This endpoint requires the HTTP_HEROKU_PASSWORD or HTTP_HEROKU_PASSWORD_BASE64 header be set correctly for the user account.", "href": "/account", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/account" @@ -492,11 +452,11 @@ "$ref": "#/definitions/account" }, "title": "Update By User" }, { - "description": "Delete account. Note that this action cannot be undone.", + "description": "Delete account. Note that this action cannot be undone. Note: This endpoint requires the HTTP_HEROKU_PASSWORD or HTTP_HEROKU_PASSWORD_BASE64 header be set correctly for the user account.", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/account" @@ -523,14 +483,18 @@ "id": { "$ref": "#/definitions/account/definitions/id" }, "identity_provider": { "description": "Identity Provider details for federated users.", + "strictProperties": true, "properties": { "id": { "$ref": "#/definitions/identity-provider/definitions/id" }, + "name": { + "$ref": "#/definitions/identity-provider/definitions/name" + }, "team": { "type": [ "object" ], "properties": { @@ -548,50 +512,11 @@ "$ref": "#/definitions/team/definitions/name" } } }, "owner": { - "description": "entity that owns this identity provider", - "properties": { - "id": { - "description": "unique identifier of the owner", - "example": "01234567-89ab-cdef-0123-456789abcdef", - "format": "uuid", - "readOnly": true, - "type": [ - "string" - ] - }, - "name": { - "description": "name of the owner", - "example": "acme", - "readOnly": true, - "type": [ - "string" - ] - }, - "type": { - "description": "type of the owner", - "enum": [ - "team", - "enterprise-account" - ], - "example": "team", - "readOnly": true, - "type": [ - "string" - ] - } - }, - "readOnly": false, - "required": [ - "id", - "type" - ], - "type": [ - "object" - ] + "$ref": "#/definitions/identity-provider/definitions/owner" } }, "type": [ "object", "null" @@ -619,22 +544,10 @@ "$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" - }, "country_of_residence": { "$ref": "#/definitions/account/definitions/country_of_residence" }, "default_organization": { "description": "team selected by default", @@ -3956,10 +3869,19 @@ "region": { "$ref": "#/definitions/region/definitions/identity" }, "stack": { "$ref": "#/definitions/stack/definitions/identity" + }, + "feature_flags": { + "description": "unique name of app feature", + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/app-feature/definitions/name" + } } }, "type": [ "object" ] @@ -4522,11 +4444,11 @@ ] } }, "links": [ { - "description": "List existing events. Returns all events for one date, defaulting to current date. Order, actor, action, and type, and date query params can be specified as query parameters. For example, '/enterprise-accounts/:id/events?order=desc&actor=user@example.com&action=create&type=app&date=2020-09-30' would return events in descending order and only return app created events by the user with user@example.com email address.", + "description": "List existing events. Returns all events for one day, defaulting to current day. Order, actor, action, and type, and day query params can be specified as query parameters. For example, '/enterprise-accounts/:id/events?order=desc&actor=user@example.com&action=create&type=app&day=2020-09-30' would return events in descending order and only return app created events by the user with user@example.com email address.", "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fidentity)}/events", "method": "GET", "rel": "instances", "title": "List" } @@ -5538,34 +5460,10 @@ ] } }, "links": [ { - "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": { - "hostname": { - "$ref": "#/definitions/domain/definitions/hostname" - } - }, - "required": [ - "hostname" - ], - "type": [ - "object" - ] - }, - "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": { @@ -6172,10 +6070,208 @@ "updated_at": { "$ref": "#/definitions/dyno/definitions/updated_at" } } }, + "enterprise-account-daily-usage": { + "$schema": "http://json-schema.org/draft-04/hyper-schema", + "description": "Usage for an enterprise account at a daily resolution.", + "stability": "development", + "strictProperties": true, + "title": "Heroku Platform API - Enterprise Account Daily Usage", + "type": [ + "object" + ], + "definitions": { + "addons": { + "description": "total add-on credits used", + "example": 250.0, + "readOnly": true, + "type": [ + "number" + ] + }, + "data": { + "description": "total add-on credits used for first party add-ons", + "example": 34.89, + "readOnly": true, + "type": [ + "number" + ] + }, + "date": { + "description": "date of the usage", + "example": "2019-01-01", + "format": "date", + "readOnly": true, + "type": [ + "string" + ] + }, + "dynos": { + "description": "dynos used", + "example": 1.548, + "readOnly": true, + "type": [ + "number" + ] + }, + "id": { + "description": "enterprise account identifier", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + }, + "name": { + "description": "name of the enterprise account", + "example": "example-co", + "readOnly": true, + "type": [ + "string" + ] + }, + "partner": { + "description": "total add-on credits used for third party add-ons", + "example": 12.34, + "readOnly": true, + "type": [ + "number" + ] + }, + "space": { + "description": "space credits used", + "example": 1.548, + "readOnly": true, + "type": [ + "number" + ] + }, + "start_date": { + "description": "range start date", + "example": "2019-01-25", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + }, + "end_date": { + "description": "range end date", + "example": "2019-02-25", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + } + }, + "links": [ + { + "description": "Retrieves usage for an enterprise account for a range of days. Start and end dates can be specified as query parameters using the date format YYYY-MM-DD. The enterprise account identifier can be found from the [enterprise account list](https://devcenter.heroku.com/articles/platform-api-reference#enterprise-account-list).\n", + "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fid)}/usage/daily", + "method": "GET", + "rel": "instances", + "title": "Info", + "schema": { + "properties": { + "start": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/start_date" + }, + "end": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/end_date" + } + }, + "required": [ + "start" + ], + "type": [ + "object" + ] + }, + "targetSchema": { + "items": { + "$ref": "#/definitions/enterprise-account-daily-usage" + }, + "type": [ + "array" + ] + } + } + ], + "properties": { + "addons": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/addons" + }, + "teams": { + "description": "usage by team", + "type": [ + "array" + ], + "items": { + "type": [ + "object" + ], + "properties": { + "addons": { + "$ref": "#/definitions/team-daily-usage/definitions/addons" + }, + "apps": { + "description": "app usage in the team", + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/team-daily-usage/definitions/app_usage_daily" + } + }, + "data": { + "$ref": "#/definitions/team-daily-usage/definitions/data" + }, + "dynos": { + "$ref": "#/definitions/team-daily-usage/definitions/dynos" + }, + "id": { + "$ref": "#/definitions/team-daily-usage/definitions/id" + }, + "name": { + "$ref": "#/definitions/team-daily-usage/definitions/name" + }, + "partner": { + "$ref": "#/definitions/team-daily-usage/definitions/partner" + }, + "space": { + "$ref": "#/definitions/team-daily-usage/definitions/space" + } + } + } + }, + "data": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/data" + }, + "date": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/date" + }, + "dynos": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/dynos" + }, + "id": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/id" + }, + "name": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/name" + }, + "partner": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/partner" + }, + "space": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/space" + } + } + }, "enterprise-account-member": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Enterprise account members are users with access to an enterprise account.", "stability": "development", "strictProperties": true, @@ -6425,176 +6521,12 @@ "identity_provider": { "$ref": "#/definitions/enterprise-account-member/definitions/identity_provider" } } }, - "enterprise-account-usage-daily": { + "enterprise-account-monthly-usage": { "$schema": "http://json-schema.org/draft-04/hyper-schema", - "description": "Usage for an enterprise account at a daily resolution.", - "stability": "development", - "strictProperties": true, - "title": "Heroku Platform API - Enterprise Account Daily Usage", - "type": [ - "object" - ], - "definitions": { - "addons": { - "description": "total add-on credits used", - "example": 250.0, - "readOnly": true, - "type": [ - "number" - ] - }, - "data": { - "description": "total add-on credits used for first party add-ons", - "example": 34.89, - "readOnly": true, - "type": [ - "number" - ] - }, - "date": { - "description": "date of the usage", - "example": "2019-01-01", - "format": "date", - "readOnly": true, - "type": [ - "string" - ] - }, - "dynos": { - "description": "dynos used", - "example": 1.548, - "readOnly": true, - "type": [ - "number" - ] - }, - "id": { - "description": "enterprise account identifier", - "example": "01234567-89ab-cdef-0123-456789abcdef", - "format": "uuid", - "readOnly": true, - "type": [ - "string" - ] - }, - "name": { - "description": "name of the enterprise account", - "example": "example-co", - "readOnly": true, - "type": [ - "string" - ] - }, - "partner": { - "description": "total add-on credits used for third party add-ons", - "example": 12.34, - "readOnly": true, - "type": [ - "number" - ] - }, - "space": { - "description": "space credits used", - "example": 1.548, - "readOnly": true, - "type": [ - "number" - ] - } - }, - "links": [ - { - "description": "Retrieves usage for an enterprise account for a range of days. Start and end dates can be specified as query parameters using the date format, YYYY-MM-DD format. For example, '/enterprise-accounts/example-account/usage/daily?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.", - "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fid)}/usage/daily", - "method": "GET", - "rel": "instances", - "title": "Info", - "targetSchema": { - "items": { - "$ref": "#/definitions/enterprise-account-usage-daily" - }, - "type": [ - "array" - ] - } - } - ], - "properties": { - "addons": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/addons" - }, - "teams": { - "description": "usage by team", - "type": [ - "array" - ], - "items": { - "type": [ - "object" - ], - "properties": { - "addons": { - "$ref": "#/definitions/team-usage-daily/definitions/addons" - }, - "apps": { - "description": "app usage in the team", - "type": [ - "array" - ], - "items": { - "$ref": "#/definitions/team-usage-daily/definitions/app_usage_daily" - } - }, - "data": { - "$ref": "#/definitions/team-usage-daily/definitions/data" - }, - "dynos": { - "$ref": "#/definitions/team-usage-daily/definitions/dynos" - }, - "id": { - "$ref": "#/definitions/team-usage-daily/definitions/id" - }, - "name": { - "$ref": "#/definitions/team-usage-daily/definitions/name" - }, - "partner": { - "$ref": "#/definitions/team-usage-daily/definitions/partner" - }, - "space": { - "$ref": "#/definitions/team-usage-daily/definitions/space" - } - } - } - }, - "data": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/data" - }, - "date": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/date" - }, - "dynos": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/dynos" - }, - "id": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/id" - }, - "name": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/name" - }, - "partner": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/partner" - }, - "space": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/space" - } - } - }, - "enterprise-account-usage-monthly": { - "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Usage for an enterprise account at a monthly resolution.", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Enterprise Account Monthly Usage", "type": [ @@ -6672,32 +6604,66 @@ "example": 1.548, "readOnly": true, "type": [ "number" ] + }, + "start_date": { + "description": "range start date", + "example": "2019-01", + "pattern": "^[0-9]{4}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + }, + "end_date": { + "description": "range end date", + "example": "2019-02", + "pattern": "^[0-9]{4}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] } }, "links": [ { - "description": "Retrieves usage for an enterprise account for a range of months. Start and end dates can be specified as query parameters using the date format, YYYY-MM format. For example, '/enterprise-accounts/example-account/usage/monthly?start=2019-01&end=2019-02' specifies usage in January and February for 2019. If no end date is specified, one month of usage is returned.", + "description": "Retrieves usage for an enterprise account for a range of months. Start and end dates can be specified as query parameters using the date format YYYY-MM. If no end date is specified, one month of usage is returned. The enterprise account identifier can be found from the [enterprise account list](https://devcenter.heroku.com/articles/platform-api-reference#enterprise-account-list).\n", "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fid)}/usage/monthly", "method": "GET", "rel": "instances", "title": "Info", + "schema": { + "properties": { + "start": { + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/start_date" + }, + "end": { + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/end_date" + } + }, + "required": [ + "start" + ], + "type": [ + "object" + ] + }, "targetSchema": { "items": { - "$ref": "#/definitions/enterprise-account-usage-monthly" + "$ref": "#/definitions/enterprise-account-monthly-usage" }, "type": [ "array" ] } } ], "properties": { "addons": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/addons" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/addons" }, "teams": { "description": "usage by team", "type": [ "array" @@ -6706,68 +6672,68 @@ "type": [ "object" ], "properties": { "addons": { - "$ref": "#/definitions/team-usage-monthly/definitions/addons" + "$ref": "#/definitions/team-monthly-usage/definitions/addons" }, "apps": { "description": "app usage in the team", "type": [ "array" ], "items": { - "$ref": "#/definitions/team-usage-monthly/definitions/app_usage_monthly" + "$ref": "#/definitions/team-monthly-usage/definitions/app_usage_monthly" } }, "connect": { - "$ref": "#/definitions/team-usage-monthly/definitions/connect" + "$ref": "#/definitions/team-monthly-usage/definitions/connect" }, "data": { - "$ref": "#/definitions/team-usage-monthly/definitions/data" + "$ref": "#/definitions/team-monthly-usage/definitions/data" }, "dynos": { - "$ref": "#/definitions/team-usage-monthly/definitions/dynos" + "$ref": "#/definitions/team-monthly-usage/definitions/dynos" }, "id": { - "$ref": "#/definitions/team-usage-monthly/definitions/id" + "$ref": "#/definitions/team-monthly-usage/definitions/id" }, "name": { - "$ref": "#/definitions/team-usage-monthly/definitions/name" + "$ref": "#/definitions/team-monthly-usage/definitions/name" }, "partner": { - "$ref": "#/definitions/team-usage-monthly/definitions/partner" + "$ref": "#/definitions/team-monthly-usage/definitions/partner" }, "space": { - "$ref": "#/definitions/team-usage-monthly/definitions/space" + "$ref": "#/definitions/team-monthly-usage/definitions/space" } } } }, "connect": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/connect" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/connect" }, "data": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/data" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/data" }, "dynos": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/dynos" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/dynos" }, "id": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/id" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/id" }, "month": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/month" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/month" }, "name": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/name" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/name" }, "partner": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/partner" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/partner" }, "space": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/space" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/space" } } }, "enterprise-account": { "$schema": "http://json-schema.org/draft-04/hyper-schema", @@ -6802,10 +6768,29 @@ { "$ref": "#/definitions/enterprise-account/definitions/id" } ] }, + "identity_provider": { + "description": "Identity Provider associated with the Enterprise Account", + "strictProperties": true, + "type": [ + "null", + "object" + ], + "properties": { + "id": { + "$ref": "#/definitions/identity-provider/definitions/id" + }, + "name": { + "$ref": "#/definitions/identity-provider/definitions/name" + }, + "owner": { + "$ref": "#/definitions/identity-provider/definitions/owner" + } + } + }, "name": { "description": "unique name of the enterprise account", "example": "example", "readOnly": true, "type": [ @@ -6904,31 +6889,11 @@ }, "trial": { "$ref": "#/definitions/enterprise-account/definitions/trial" }, "identity_provider": { - "description": "Identity Provider associated with the Enterprise Account", - "strictProperties": true, - "type": [ - "null", - "object" - ], - "properties": { - "id": { - "$ref": "#/definitions/identity-provider/definitions/id" - }, - "name": { - "description": "user-friendly unique identifier for this identity provider", - "example": "acme-sso", - "type": [ - "string" - ] - }, - "owner": { - "$ref": "#/definitions/identity-provider/definitions/owner" - } - } + "$ref": "#/definitions/enterprise-account/definitions/identity_provider" } } }, "filter-apps": { "description": "Filters are special endpoints to allow for API consumers to specify a subset of resources to consume in order to reduce the number of requests that are performed. Each filter endpoint endpoint is responsible for determining its supported request format. The endpoints are over POST in order to handle large request bodies without hitting request uri query length limitations, but the requests themselves are idempotent and will not have side effects.", @@ -7221,11 +7186,11 @@ "$ref": "#/definitions/formation/definitions/updated_at" } } }, "identity-provider": { - "description": "Identity Providers represent the SAML configuration of an Team.", + "description": "Identity Providers represent the SAML configuration of an Enterprise Account or Team.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Identity Provider", "type": [ @@ -7264,10 +7229,17 @@ "readOnly": true, "type": [ "string" ] }, + "name": { + "description": "user-friendly unique identifier for this identity provider", + "example": "acme-sso", + "type": [ + "string" + ] + }, "slo_target_url": { "description": "single log out URL for this identity provider", "example": "https://example.com/idp/logout", "readOnly": false, "type": [ @@ -9806,11 +9778,11 @@ "definitions": { }, "links": [ { "description": "List latest builds for each app in a pipeline", - "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fidentity)}/latest-builds", + "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/latest-builds", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/build" @@ -10156,11 +10128,11 @@ "definitions": { }, "links": [ { "description": "List latest slug releases for each app in a pipeline", - "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fidentity)}/latest-deployments", + "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/latest-deployments", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/release" @@ -10505,11 +10477,11 @@ "definitions": { }, "links": [ { "description": "List latest releases for each app in a pipeline", - "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fidentity)}/latest-releases", + "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/latest-releases", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/release" @@ -10532,11 +10504,11 @@ "object" ], "links": [ { "description": "The stack for a given pipeline, used for CI and Review Apps that have no stack defined in app.json.", - "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fidentity)}/pipeline-stack", + "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/pipeline-stack", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/pipeline-stack" }, @@ -10841,15 +10813,15 @@ "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/pipeline" - } + }, + "type": [ + "array" + ] }, - "type": [ - "array" - ], "title": "List" } ], "properties": { "created_at": { @@ -12543,32 +12515,62 @@ "strictProperties": true, "type": [ "object" ], "definitions": { + "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": [ "string" ] }, - "cname": { - "description": "deprecated; refer to GET /apps/:id/domains for valid CNAMEs for this app", - "example": "example.herokussl.com", + "created_at": { + "description": "when endpoint was created", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", + "readOnly": true, + "type": [ + "string" + ] + }, + "domains": { + "description": "domains associated with this SSL certificate", + "type": [ + "array" + ], + "readOnly": true, + "items": { + "$ref": "#/definitions/domain/definitions/id" + } + }, + "display_name": { + "description": "unique name for SSL certificate", + "example": "example", + "pattern": "^[a-z][a-z0-9-]{2,29}$", "readOnly": false, "type": [ "string", "null" ] }, - "created_at": { - "description": "when endpoint was created", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", + "expires_at": { "readOnly": true, + "format": "date-time", "type": [ "string" ] }, "id": { @@ -12588,10 +12590,16 @@ { "$ref": "#/definitions/sni-endpoint/definitions/name" } ] }, + "issuer": { + "readOnly": true, + "type": [ + "string" + ] + }, "name": { "description": "unique name for SNI endpoint", "example": "example", "pattern": "^[a-z][a-z0-9-]{2,29}$", "readOnly": true, @@ -12605,37 +12613,36 @@ "readOnly": false, "type": [ "string" ] }, - "updated_at": { - "description": "when SNI endpoint was updated", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", + "self_signed?": { "readOnly": true, "type": [ - "string" + "boolean" ] }, - "domains": { - "description": "domains associated with this SSL certificate", + "starts_at": { + "readOnly": true, + "format": "date-time", "type": [ - "array" - ], + "string" + ] + }, + "subject": { "readOnly": true, - "items": { - "$ref": "#/definitions/domain/definitions/id" - } + "type": [ + "string" + ] }, - "display_name": { - "description": "unique name for SSL certificate", - "example": "example", - "pattern": "^[a-z][a-z0-9-]{2,29}$", - "readOnly": false, + "updated_at": { + "description": "when SNI endpoint was updated", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", + "readOnly": true, "type": [ - "string", - "null" + "string" ] } }, "links": [ { @@ -12730,13 +12737,10 @@ ], "properties": { "certificate_chain": { "$ref": "#/definitions/sni-endpoint/definitions/certificate_chain" }, - "cname": { - "$ref": "#/definitions/sni-endpoint/definitions/cname" - }, "created_at": { "$ref": "#/definitions/sni-endpoint/definitions/created_at" }, "id": { "$ref": "#/definitions/sni-endpoint/definitions/id" @@ -12773,29 +12777,29 @@ "type": [ "object" ], "properties": { "ca_signed?": { - "$ref": "#/definitions/ssl-endpoint/definitions/ca_signed?" + "$ref": "#/definitions/sni-endpoint/definitions/ca_signed?" }, "cert_domains": { - "$ref": "#/definitions/ssl-endpoint/definitions/cert_domains" + "$ref": "#/definitions/sni-endpoint/definitions/cert_domains" }, "expires_at": { - "$ref": "#/definitions/ssl-endpoint/definitions/expires_at" + "$ref": "#/definitions/sni-endpoint/definitions/expires_at" }, "issuer": { - "$ref": "#/definitions/ssl-endpoint/definitions/issuer" + "$ref": "#/definitions/sni-endpoint/definitions/issuer" }, "self_signed?": { - "$ref": "#/definitions/ssl-endpoint/definitions/self_signed?" + "$ref": "#/definitions/sni-endpoint/definitions/self_signed?" }, "starts_at": { - "$ref": "#/definitions/ssl-endpoint/definitions/starts_at" + "$ref": "#/definitions/sni-endpoint/definitions/starts_at" }, "subject": { - "$ref": "#/definitions/ssl-endpoint/definitions/subject" + "$ref": "#/definitions/sni-endpoint/definitions/subject" }, "id": { "description": "unique identifier of this SSL certificate", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", @@ -13286,11 +13290,11 @@ "title": "transfer" } ] }, "space": { - "description": "A space is an isolated, highly available, secure app execution environments, running in the modern VPC substrate.", + "description": "A space is an isolated, highly available, secure app execution environment.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Space", "type": [ @@ -13362,10 +13366,17 @@ "readOnly": true, "type": [ "string" ] }, + "log_drain_url": { + "description": "URL to which all apps will drain logs. Only settable during space creation and enables direct logging. Must use HTTPS.", + "example": "https://example.com/logs", + "type": [ + "string" + ] + }, "cidr": { "description": "The RFC-1918 CIDR the Private Space will use. It must be a /16 in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16", "example": "172.20.20.30/16", "default": "10.0.0.0/16", "pattern": "^((?:10|172\\.(?:1[6-9]|2[0-9]|3[01])|192\\.168)\\..*.+\\/16)$", @@ -13461,10 +13472,13 @@ "cidr": { "$ref": "#/definitions/space/definitions/cidr" }, "data_cidr": { "$ref": "#/definitions/space/definitions/data_cidr" + }, + "log_drain_url": { + "$ref": "#/definitions/space/definitions/log_drain_url" } }, "required": [ "name", "team" @@ -13544,339 +13558,10 @@ "data_cidr": { "$ref": "#/definitions/space/definitions/data_cidr" } } }, - "ssl-endpoint": { - "description": "[SSL Endpoint](https://devcenter.heroku.com/articles/ssl-endpoint) is a public address serving custom SSL cert for HTTPS traffic to a Heroku app. Note that an app must have the `ssl:endpoint` add-on installed before it can provision an SSL Endpoint using these APIs.", - "$schema": "http://json-schema.org/draft-04/hyper-schema", - "title": "Heroku Platform API - SSL Endpoint", - "stability": "production", - "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": [ - "string" - ] - }, - "cname": { - "description": "canonical name record, the address to point a domain at", - "example": "example.herokussl.com", - "readOnly": false, - "type": [ - "string" - ] - }, - "created_at": { - "description": "when endpoint was created", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", - "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", - "null" - ] - }, - "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, - "type": [ - "string" - ] - }, - "identity": { - "anyOf": [ - { - "$ref": "#/definitions/ssl-endpoint/definitions/id" - }, - { - "$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, - "type": [ - "string" - ] - }, - "preprocess": { - "default": true, - "description": "allow Heroku to modify an uploaded public certificate chain if deemed advantageous by adding missing intermediaries, stripping unnecessary ones, etc.", - "example": true, - "readOnly": false, - "type": [ - "boolean" - ] - }, - "private_key": { - "description": "contents of the private key (eg .key file)", - "example": "-----BEGIN RSA PRIVATE KEY----- ...", - "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, - "type": [ - "string" - ] - } - }, - "links": [ - { - "description": "Create a new SSL endpoint.", - "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints", - "method": "POST", - "rel": "create", - "schema": { - "properties": { - "certificate_chain": { - "$ref": "#/definitions/ssl-endpoint/definitions/certificate_chain" - }, - "preprocess": { - "$ref": "#/definitions/ssl-endpoint/definitions/preprocess" - }, - "private_key": { - "$ref": "#/definitions/ssl-endpoint/definitions/private_key" - } - }, - "required": [ - "certificate_chain", - "private_key" - ], - "type": [ - "object" - ] - }, - "targetSchema": { - "$ref": "#/definitions/ssl-endpoint" - }, - "title": "Create" - }, - { - "description": "Delete existing SSL endpoint.", - "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints/{(%23%2Fdefinitions%2Fssl-endpoint%2Fdefinitions%2Fidentity)}", - "method": "DELETE", - "rel": "destroy", - "targetSchema": { - "$ref": "#/definitions/ssl-endpoint" - }, - "title": "Delete" - }, - { - "description": "Info for existing SSL endpoint.", - "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints/{(%23%2Fdefinitions%2Fssl-endpoint%2Fdefinitions%2Fidentity)}", - "method": "GET", - "rel": "self", - "targetSchema": { - "$ref": "#/definitions/ssl-endpoint" - }, - "title": "Info" - }, - { - "description": "List existing SSL endpoints.", - "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints", - "method": "GET", - "rel": "instances", - "targetSchema": { - "items": { - "$ref": "#/definitions/ssl-endpoint" - }, - "type": [ - "array" - ] - }, - "title": "List" - }, - { - "description": "Update an existing SSL endpoint.", - "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints/{(%23%2Fdefinitions%2Fssl-endpoint%2Fdefinitions%2Fidentity)}", - "method": "PATCH", - "rel": "update", - "schema": { - "properties": { - "certificate_chain": { - "$ref": "#/definitions/ssl-endpoint/definitions/certificate_chain" - }, - "preprocess": { - "$ref": "#/definitions/ssl-endpoint/definitions/preprocess" - }, - "private_key": { - "$ref": "#/definitions/ssl-endpoint/definitions/private_key" - } - }, - "type": [ - "object" - ] - }, - "targetSchema": { - "$ref": "#/definitions/ssl-endpoint" - }, - "title": "Update" - } - ], - "properties": { - "app": { - "description": "application associated with this ssl-endpoint", - "type": [ - "object" - ], - "properties": { - "id": { - "$ref": "#/definitions/app/definitions/id" - }, - "name": { - "$ref": "#/definitions/app/definitions/name" - } - }, - "strictProperties": true - }, - "certificate_chain": { - "$ref": "#/definitions/ssl-endpoint/definitions/certificate_chain" - }, - "cname": { - "$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" - } - } - }, "stack": { "description": "Stacks are the different application execution environments available in the Heroku platform.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, @@ -14563,10 +14248,197 @@ "web_url": { "$ref": "#/definitions/app/definitions/web_url" } } }, + "team-daily-usage": { + "$schema": "http://json-schema.org/draft-04/hyper-schema", + "description": "Usage for an enterprise team at a daily resolution.", + "stability": "development", + "strictProperties": true, + "title": "Heroku Platform API - Team Daily Usage", + "type": [ + "object" + ], + "definitions": { + "addons": { + "description": "total add-on credits used", + "example": 250.0, + "readOnly": true, + "type": [ + "number" + ] + }, + "app_usage_daily": { + "description": "Usage for an app at a daily resolution.", + "type": [ + "object" + ], + "properties": { + "addons": { + "$ref": "#/definitions/team-daily-usage/definitions/addons" + }, + "app_name": { + "$ref": "#/definitions/app/definitions/name" + }, + "data": { + "$ref": "#/definitions/team-daily-usage/definitions/data" + }, + "dynos": { + "$ref": "#/definitions/team-daily-usage/definitions/dynos" + }, + "partner": { + "$ref": "#/definitions/team-daily-usage/definitions/partner" + } + } + }, + "data": { + "description": "total add-on credits used for first party add-ons", + "example": 34.89, + "readOnly": true, + "type": [ + "number" + ] + }, + "date": { + "description": "date of the usage", + "example": "2019-01-01", + "format": "date", + "readOnly": true, + "type": [ + "string" + ] + }, + "dynos": { + "description": "dynos used", + "example": 1.548, + "readOnly": true, + "type": [ + "number" + ] + }, + "id": { + "description": "team identifier", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + }, + "name": { + "description": "name of the team", + "example": "ops", + "readOnly": true, + "type": [ + "string" + ] + }, + "partner": { + "description": "total add-on credits used for third party add-ons", + "example": 12.34, + "readOnly": true, + "type": [ + "number" + ] + }, + "space": { + "description": "space credits used", + "example": 1.548, + "readOnly": true, + "type": [ + "number" + ] + }, + "start_date": { + "description": "range start date", + "example": "2019-01-25", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + }, + "end_date": { + "description": "range end date", + "example": "2019-02-25", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + } + }, + "links": [ + { + "description": "Retrieves usage for an enterprise team for a range of days. Start and end dates can be specified as query parameters using the date format YYYY-MM-DD. The team identifier can be found from the [team list endpoint](https://devcenter.heroku.com/articles/platform-api-reference#team-list).\n", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fid)}/usage/daily", + "method": "GET", + "title": "Info", + "schema": { + "properties": { + "start": { + "$ref": "#/definitions/team-daily-usage/definitions/start_date" + }, + "end": { + "$ref": "#/definitions/team-daily-usage/definitions/end_date" + } + }, + "required": [ + "start" + ], + "type": [ + "object" + ] + }, + "rel": "instances", + "targetSchema": { + "items": { + "$ref": "#/definitions/team-daily-usage" + }, + "type": [ + "array" + ] + } + } + ], + "properties": { + "addons": { + "$ref": "#/definitions/team-daily-usage/definitions/addons" + }, + "apps": { + "description": "app usage in the team", + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/team-daily-usage/definitions/app_usage_daily" + } + }, + "data": { + "$ref": "#/definitions/team-daily-usage/definitions/data" + }, + "date": { + "$ref": "#/definitions/team-daily-usage/definitions/date" + }, + "dynos": { + "$ref": "#/definitions/team-daily-usage/definitions/dynos" + }, + "id": { + "$ref": "#/definitions/team-daily-usage/definitions/id" + }, + "name": { + "$ref": "#/definitions/team-daily-usage/definitions/name" + }, + "partner": { + "$ref": "#/definitions/team-daily-usage/definitions/partner" + }, + "space": { + "$ref": "#/definitions/team-daily-usage/definitions/space" + } + } + }, "team-feature": { "description": "A team feature represents a feature enabled on a team account.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "strictProperties": true, @@ -15445,188 +15317,65 @@ "object" ] } } }, - "team-preferences": { - "description": "Tracks a Team's Preferences", + "team-monthly-usage": { "$schema": "http://json-schema.org/draft-04/hyper-schema", + "description": "Usage for an enterprise team at a monthly resolution.", "stability": "development", "strictProperties": true, - "title": "Heroku Platform API - Team Preferences", + "title": "Heroku Platform API - Team Monthly Usage", "type": [ "object" ], "definitions": { - "default-permission": { - "description": "The default permission used when adding new members to the team", - "example": "member", - "readOnly": false, - "enum": [ - "admin", - "member", - "viewer", - null - ], - "type": [ - "null", - "string" - ] - }, - "identity": { - "$ref": "#/definitions/team/definitions/identity" - }, - "whitelisting-enabled": { - "deactivate_on": "2021-02-05", - "description": "Whether whitelisting rules should be applied to add-on installations. Deprecated in favor of `addons-controls`", - "example": true, - "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", - "href": "/teams/{(%23%2Fdefinitions%2Fteam-preferences%2Fdefinitions%2Fidentity)}/preferences", - "method": "GET", - "rel": "self", - "targetSchema": { - "$ref": "#/definitions/team-preferences" - }, - "title": "List" - }, - { - "description": "Update Team Preferences", - "href": "/teams/{(%23%2Fdefinitions%2Fteam-preferences%2Fdefinitions%2Fidentity)}/preferences", - "method": "PATCH", - "rel": "update", - "schema": { - "type": [ - "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" - }, - "title": "Update" - } - ], - "properties": { - "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.", - "$schema": "http://json-schema.org/draft-04/hyper-schema", - "stability": "prototype", - "strictProperties": true, - "title": "Heroku Platform API - Space", - "type": [ - "object" - ], - "links": [ - { - "description": "List spaces owned by the team", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/spaces", - "method": "GET", - "rel": "instances", - "targetSchema": { - "items": { - "$ref": "#/definitions/space" - }, - "type": [ - "array" - ] - }, - "title": "List" - } - ] - }, - "team-usage-daily": { - "$schema": "http://json-schema.org/draft-04/hyper-schema", - "description": "Usage for an enterprise team at a daily resolution.", - "stability": "development", - "strictProperties": true, - "title": "Heroku Platform API - Team Daily Usage", - "type": [ - "object" - ], - "definitions": { "addons": { "description": "total add-on credits used", "example": 250.0, "readOnly": true, "type": [ "number" ] }, - "app_usage_daily": { - "description": "Usage for an app at a daily resolution.", + "app_usage_monthly": { + "description": "Usage for an app at a monthly resolution.", "type": [ "object" ], "properties": { "addons": { - "$ref": "#/definitions/team-usage-daily/definitions/addons" + "$ref": "#/definitions/team-monthly-usage/definitions/addons" }, "app_name": { "$ref": "#/definitions/app/definitions/name" }, "data": { - "$ref": "#/definitions/team-usage-daily/definitions/data" + "$ref": "#/definitions/team-monthly-usage/definitions/data" }, "dynos": { - "$ref": "#/definitions/team-usage-daily/definitions/dynos" + "$ref": "#/definitions/team-monthly-usage/definitions/dynos" }, "partner": { - "$ref": "#/definitions/team-usage-daily/definitions/partner" + "$ref": "#/definitions/team-monthly-usage/definitions/partner" } } }, - "data": { - "description": "total add-on credits used for first party add-ons", - "example": 34.89, + "connect": { + "description": "average connect rows synced", + "example": 15000, "readOnly": true, "type": [ "number" ] }, - "date": { - "description": "date of the usage", - "example": "2019-01-01", - "format": "date", + "data": { + "description": "total add-on credits used for first party add-ons", + "example": 34.89, "readOnly": true, "type": [ - "string" + "number" ] }, "dynos": { "description": "dynos used", "example": 1.548, @@ -15642,10 +15391,19 @@ "readOnly": true, "type": [ "string" ] }, + "month": { + "description": "year and month of the usage", + "example": "2019-01", + "pattern": "^[0-9]{4}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + }, "name": { "description": "name of the team", "example": "ops", "readOnly": true, "type": [ @@ -15665,228 +15423,207 @@ "example": 1.548, "readOnly": true, "type": [ "number" ] + }, + "start_date": { + "description": "range start date", + "example": "2019-01", + "pattern": "^[0-9]{4}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + }, + "end_date": { + "description": "range end date", + "example": "2019-02", + "pattern": "^[0-9]{4}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] } }, "links": [ { - "description": "Retrieves usage for an enterprise team for a range of days. Start and end dates can be specified as query parameters using the date format, YYYY-MM-DD format. For example, '/teams/example-team/usage/daily?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fid)}/usage/daily", + "description": "Retrieves usage for an enterprise team for a range of months. Start and end dates can be specified as query parameters using the date, YYYY-MM. If no end date is specified, one month of usage is returned. The team identifier can be found from the [team list endpoint](https://devcenter.heroku.com/articles/platform-api-reference#team-list).\n", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fid)}/usage/monthly", "method": "GET", "title": "Info", + "schema": { + "properties": { + "start": { + "$ref": "#/definitions/team-monthly-usage/definitions/start_date" + }, + "end": { + "$ref": "#/definitions/team-monthly-usage/definitions/end_date" + } + }, + "required": [ + "start" + ], + "type": [ + "object" + ] + }, "rel": "instances", "targetSchema": { "items": { - "$ref": "#/definitions/team-usage-daily" + "$ref": "#/definitions/team-monthly-usage" }, "type": [ "array" ] } } ], "properties": { "addons": { - "$ref": "#/definitions/team-usage-daily/definitions/addons" + "$ref": "#/definitions/team-monthly-usage/definitions/addons" }, "apps": { "description": "app usage in the team", "type": [ "array" ], "items": { - "$ref": "#/definitions/team-usage-daily/definitions/app_usage_daily" + "$ref": "#/definitions/team-monthly-usage/definitions/app_usage_monthly" } }, + "connect": { + "$ref": "#/definitions/team-monthly-usage/definitions/connect" + }, "data": { - "$ref": "#/definitions/team-usage-daily/definitions/data" + "$ref": "#/definitions/team-monthly-usage/definitions/data" }, - "date": { - "$ref": "#/definitions/team-usage-daily/definitions/date" - }, "dynos": { - "$ref": "#/definitions/team-usage-daily/definitions/dynos" + "$ref": "#/definitions/team-monthly-usage/definitions/dynos" }, "id": { - "$ref": "#/definitions/team-usage-daily/definitions/id" + "$ref": "#/definitions/team-monthly-usage/definitions/id" }, + "month": { + "$ref": "#/definitions/team-monthly-usage/definitions/month" + }, "name": { - "$ref": "#/definitions/team-usage-daily/definitions/name" + "$ref": "#/definitions/team-monthly-usage/definitions/name" }, "partner": { - "$ref": "#/definitions/team-usage-daily/definitions/partner" + "$ref": "#/definitions/team-monthly-usage/definitions/partner" }, "space": { - "$ref": "#/definitions/team-usage-daily/definitions/space" + "$ref": "#/definitions/team-monthly-usage/definitions/space" } } }, - "team-usage-monthly": { + "team-preferences": { + "description": "Tracks a Team's Preferences", "$schema": "http://json-schema.org/draft-04/hyper-schema", - "description": "Usage for an enterprise team at a monthly resolution.", "stability": "development", "strictProperties": true, - "title": "Heroku Platform API - Team Monthly Usage", + "title": "Heroku Platform API - Team Preferences", "type": [ "object" ], "definitions": { - "addons": { - "description": "total add-on credits used", - "example": 250.0, - "readOnly": true, - "type": [ - "number" - ] - }, - "app_usage_monthly": { - "description": "Usage for an app at a monthly resolution.", - "type": [ - "object" + "default-permission": { + "description": "The default permission used when adding new members to the team", + "example": "member", + "readOnly": false, + "enum": [ + "admin", + "member", + "viewer", + null ], - "properties": { - "addons": { - "$ref": "#/definitions/team-usage-monthly/definitions/addons" - }, - "app_name": { - "$ref": "#/definitions/app/definitions/name" - }, - "data": { - "$ref": "#/definitions/team-usage-monthly/definitions/data" - }, - "dynos": { - "$ref": "#/definitions/team-usage-monthly/definitions/dynos" - }, - "partner": { - "$ref": "#/definitions/team-usage-monthly/definitions/partner" - } - } - }, - "connect": { - "description": "average connect rows synced", - "example": 15000, - "readOnly": true, "type": [ - "number" - ] - }, - "data": { - "description": "total add-on credits used for first party add-ons", - "example": 34.89, - "readOnly": true, - "type": [ - "number" - ] - }, - "dynos": { - "description": "dynos used", - "example": 1.548, - "readOnly": true, - "type": [ - "number" - ] - }, - "id": { - "description": "team identifier", - "example": "01234567-89ab-cdef-0123-456789abcdef", - "format": "uuid", - "readOnly": true, - "type": [ + "null", "string" ] }, - "month": { - "description": "year and month of the usage", - "example": "2019-01", - "pattern": "^[0-9]{4}-[0-9]{2}$", - "readOnly": true, - "type": [ - "string" - ] + "identity": { + "$ref": "#/definitions/team/definitions/identity" }, - "name": { - "description": "name of the team", - "example": "ops", - "readOnly": true, + "addons-controls": { + "description": "Whether add-on service rules should be applied to add-on installations", + "example": true, + "readOnly": false, "type": [ - "string" + "boolean", + "null" ] + } + }, + "links": [ + { + "description": "Retrieve Team Preferences", + "href": "/teams/{(%23%2Fdefinitions%2Fteam-preferences%2Fdefinitions%2Fidentity)}/preferences", + "method": "GET", + "rel": "self", + "targetSchema": { + "$ref": "#/definitions/team-preferences" + }, + "title": "List" }, - "partner": { - "description": "total add-on credits used for third party add-ons", - "example": 12.34, - "readOnly": true, - "type": [ - "number" - ] + { + "description": "Update Team Preferences", + "href": "/teams/{(%23%2Fdefinitions%2Fteam-preferences%2Fdefinitions%2Fidentity)}/preferences", + "method": "PATCH", + "rel": "update", + "schema": { + "type": [ + "object" + ], + "properties": { + "addons-controls": { + "$ref": "#/definitions/team-preferences/definitions/addons-controls" + } + } + }, + "targetSchema": { + "$ref": "#/definitions/team-preferences" + }, + "title": "Update" + } + ], + "properties": { + "default-permission": { + "$ref": "#/definitions/team-preferences/definitions/default-permission" }, - "space": { - "description": "space credits used", - "example": 1.548, - "readOnly": true, - "type": [ - "number" - ] + "addons-controls": { + "$ref": "#/definitions/team-preferences/definitions/addons-controls" } - }, + } + }, + "team-space": { + "description": "A space is an isolated, highly available, secure app execution environment.", + "$schema": "http://json-schema.org/draft-04/hyper-schema", + "stability": "prototype", + "strictProperties": true, + "title": "Heroku Platform API - Team Space", + "type": [ + "object" + ], "links": [ { - "description": "Retrieves usage for an enterprise team for a range of months. Start and end dates can be specified as query parameters using the date format, YYYY-MM format. For example, '/teams/example-team/usage/monthly?start=2019-01&end=2019-02' specifies usage in January and February for 2019. If no end date is specified, one month of usage is returned.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fid)}/usage/monthly", + "description": "List spaces owned by the team", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/spaces", "method": "GET", - "title": "Info", "rel": "instances", "targetSchema": { "items": { - "$ref": "#/definitions/team-usage-monthly" + "$ref": "#/definitions/space" }, "type": [ "array" ] - } + }, + "title": "List" } - ], - "properties": { - "addons": { - "$ref": "#/definitions/team-usage-monthly/definitions/addons" - }, - "apps": { - "description": "app usage in the team", - "type": [ - "array" - ], - "items": { - "$ref": "#/definitions/team-usage-monthly/definitions/app_usage_monthly" - } - }, - "connect": { - "$ref": "#/definitions/team-usage-monthly/definitions/connect" - }, - "data": { - "$ref": "#/definitions/team-usage-monthly/definitions/data" - }, - "dynos": { - "$ref": "#/definitions/team-usage-monthly/definitions/dynos" - }, - "id": { - "$ref": "#/definitions/team-usage-monthly/definitions/id" - }, - "month": { - "$ref": "#/definitions/team-usage-monthly/definitions/month" - }, - "name": { - "$ref": "#/definitions/team-usage-monthly/definitions/name" - }, - "partner": { - "$ref": "#/definitions/team-usage-monthly/definitions/partner" - }, - "space": { - "$ref": "#/definitions/team-usage-monthly/definitions/space" - } - } + ] }, "team": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Teams allow you to manage access to a shared group of applications and other resources.", "stability": "development", @@ -15963,16 +15700,15 @@ ], "properties": { "id": { "$ref": "#/definitions/identity-provider/definitions/id" }, - "slug": { - "description": "user-friendly unique identifier for this identity provider", - "example": "acme-sso", - "type": [ - "string" - ] + "name": { + "$ref": "#/definitions/identity-provider/definitions/name" + }, + "owner": { + "$ref": "#/definitions/identity-provider/definitions/owner" } } }, "device_data": { "type": [ @@ -17487,164 +17223,10 @@ }, "method": "PATCH", "title": "Update" } ] - }, - "whitelisted-add-on-service": { - "description": "Entities that have been whitelisted to be used by a Team. Deprecated in favor of [Allowed Add-on Service](#allowed-add-on-service) endpoints.", - "$schema": "http://json-schema.org/draft-04/hyper-schema", - "stability": "prototype", - "strictProperties": true, - "title": "Heroku Platform API - Whitelisted Entity", - "type": [ - "object" - ], - "definitions": { - "added_at": { - "description": "when the add-on service was whitelisted", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", - "readOnly": true, - "type": [ - "string" - ] - }, - "added_by": { - "description": "the user which whitelisted 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 whitelisted 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 whitelisting entity", - "example": "01234567-89ab-cdef-0123-456789abcdef", - "format": "uuid", - "readOnly": true, - "type": [ - "string" - ] - }, - "identity": { - "anyOf": [ - { - "$ref": "#/definitions/whitelisted-add-on-service/definitions/id" - }, - { - "$ref": "#/definitions/add-on-service/definitions/name" - } - ] - } - }, - "links": [ - { - "deactivate_on": "2021-02-05", - "description": "List all whitelisted Add-on Services for a Team - Deprecated in favor of [`GET /teams/{team_name_or_id}/allowed-addon-services`](#allowed-add-on-service-list-by-team) endpoint.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/whitelisted-addon-services", - "method": "GET", - "rel": "instances", - "targetSchema": { - "items": { - "$ref": "#/definitions/whitelisted-add-on-service" - }, - "type": [ - "array" - ] - }, - "title": "List By Team - Deprecated" - }, - { - "deactivate_on": "2021-02-05", - "description": "Whitelist an Add-on Service - Deprecated in favor of [`POST /teams/{team_name_or_id}/allowed-addon-services`](#allowed-add-on-service-create-by-team) endpoint.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/whitelisted-addon-services", - "method": "POST", - "rel": "create", - "schema": { - "type": [ - "object" - ], - "properties": { - "addon_service": { - "description": "name of the Add-on to whitelist", - "example": "heroku-postgresql", - "type": [ - "string" - ] - } - } - }, - "targetSchema": { - "items": { - "$ref": "#/definitions/whitelisted-add-on-service" - }, - "type": [ - "array" - ] - }, - "title": "Create By Team - Deprecated" - }, - { - "deactivate_on": "2021-02-05", - "description": "Remove a whitelisted entity - Deprecated in favor of [`DELETE /teams/{team_name_or_id}/allowed-addon-services/{allowed_add_on_service_id_or_name}`](#allowed-add-on-service-delete-by-team) endpoint.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/whitelisted-addon-services/{(%23%2Fdefinitions%2Fwhitelisted-add-on-service%2Fdefinitions%2Fidentity)}", - "method": "DELETE", - "rel": "destroy", - "targetSchema": { - "$ref": "#/definitions/whitelisted-add-on-service" - }, - "title": "Delete By Team - Deprecated" - } - ], - "properties": { - "added_at": { - "$ref": "#/definitions/whitelisted-add-on-service/definitions/added_at" - }, - "added_by": { - "$ref": "#/definitions/whitelisted-add-on-service/definitions/added_by" - }, - "addon_service": { - "$ref": "#/definitions/whitelisted-add-on-service/definitions/addon_service" - }, - "id": { - "$ref": "#/definitions/whitelisted-add-on-service/definitions/id" - } - } } }, "properties": { "account-feature": { "$ref": "#/definitions/account-feature" @@ -17737,19 +17319,19 @@ "$ref": "#/definitions/dyno-size" }, "dyno": { "$ref": "#/definitions/dyno" }, + "enterprise-account-daily-usage": { + "$ref": "#/definitions/enterprise-account-daily-usage" + }, "enterprise-account-member": { "$ref": "#/definitions/enterprise-account-member" }, - "enterprise-account-usage-daily": { - "$ref": "#/definitions/enterprise-account-usage-daily" + "enterprise-account-monthly-usage": { + "$ref": "#/definitions/enterprise-account-monthly-usage" }, - "enterprise-account-usage-monthly": { - "$ref": "#/definitions/enterprise-account-usage-monthly" - }, "enterprise-account": { "$ref": "#/definitions/enterprise-account" }, "filter-apps": { "$ref": "#/definitions/filter-apps" @@ -17878,13 +17460,10 @@ "$ref": "#/definitions/space-transfer" }, "space": { "$ref": "#/definitions/space" }, - "ssl-endpoint": { - "$ref": "#/definitions/ssl-endpoint" - }, "stack": { "$ref": "#/definitions/stack" }, "team-add-on": { "$ref": "#/definitions/team-add-on" @@ -17896,10 +17475,13 @@ "$ref": "#/definitions/team-app-permission" }, "team-app": { "$ref": "#/definitions/team-app" }, + "team-daily-usage": { + "$ref": "#/definitions/team-daily-usage" + }, "team-feature": { "$ref": "#/definitions/team-feature" }, "team-invitation": { "$ref": "#/definitions/team-invitation" @@ -17908,22 +17490,19 @@ "$ref": "#/definitions/team-invoice" }, "team-member": { "$ref": "#/definitions/team-member" }, + "team-monthly-usage": { + "$ref": "#/definitions/team-monthly-usage" + }, "team-preferences": { "$ref": "#/definitions/team-preferences" }, "team-space": { "$ref": "#/definitions/team-space" }, - "team-usage-daily": { - "$ref": "#/definitions/team-usage-daily" - }, - "team-usage-monthly": { - "$ref": "#/definitions/team-usage-monthly" - }, "team": { "$ref": "#/definitions/team" }, "test-case": { "$ref": "#/definitions/test-case" @@ -17937,12 +17516,9 @@ "user-preferences": { "$ref": "#/definitions/user-preferences" }, "vpn-connection": { "$ref": "#/definitions/vpn-connection" - }, - "whitelisted-add-on-service": { - "$ref": "#/definitions/whitelisted-add-on-service" } }, "description": "The platform API empowers developers to automate, extend and combine Heroku with other services.", "id": "http://api.heroku.com/schema#", "links": [