From 6edcfb0271b23c7a0d422025f47ff9be82daecd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 21:59:13 +0000 Subject: [PATCH] Bump github.com/heroku/heroku-go/v5 from 5.2.1 to 5.5.0 Bumps [github.com/heroku/heroku-go/v5](https://github.com/heroku/heroku-go) from 5.2.1 to 5.5.0. - [Release notes](https://github.com/heroku/heroku-go/releases) - [Commits](https://github.com/heroku/heroku-go/compare/v5.2.1...v5.5.0) --- updated-dependencies: - dependency-name: github.com/heroku/heroku-go/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 5 +- .../github.com/heroku/heroku-go/v5/heroku.go | 503 ++-- .../heroku/heroku-go/v5/schema.json | 2371 ++++++++--------- vendor/modules.txt | 2 +- 5 files changed, 1258 insertions(+), 1625 deletions(-) diff --git a/go.mod b/go.mod index 16e19fb1..74ea5dab 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/gopasspw/gopass v1.15.4 github.com/hashicorp/consul/api v1.8.1 github.com/hashicorp/vault/api v1.0.4 - github.com/heroku/heroku-go/v5 v5.2.1 + github.com/heroku/heroku-go/v5 v5.5.0 github.com/jftuga/ellipsis v1.0.0 github.com/joho/godotenv v1.3.0 github.com/karrick/godirwalk v1.16.1 diff --git a/go.sum b/go.sum index d4bc7073..bd8ba862 100644 --- a/go.sum +++ b/go.sum @@ -550,8 +550,8 @@ github.com/hashicorp/vault/sdk v0.1.13 h1:mOEPeOhT7jl0J4AMl1E705+BcmeRs1VmKNb9F0 github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/heroku/heroku-go/v5 v5.2.1 h1:5g379GyHuOI3qhb1ujFwQ13Kjt96M+KMkV8s7omg+do= -github.com/heroku/heroku-go/v5 v5.2.1/go.mod h1:d+1QrZyjbnQJG1f8xIoVvMQRFLt3XRVZOdlm26Sr73U= +github.com/heroku/heroku-go/v5 v5.5.0 h1:+pKHpiPskqkkarrPHF7RpeUveXl+mAsKLAEI/ZIY9uA= +github.com/heroku/heroku-go/v5 v5.5.0/go.mod h1:Uo3XhGPwaTpniR4X1e50BDjg4SzdFk2Bd2mgYZVkfHo= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -562,7 +562,6 @@ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/interagent/schematic v0.0.0-20180830170528-b5e8ba7aa570/go.mod h1:4X9u5iNUePRrRDdwjok6skjlQBXTcNfWa4C3uS1+5SQ= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= github.com/jftuga/ellipsis v1.0.0 h1:ERi1XBFERM2YpadkvM1P9bxQKgOC40Hr6TCKkvLBDtY= diff --git a/vendor/github.com/heroku/heroku-go/v5/heroku.go b/vendor/github.com/heroku/heroku-go/v5/heroku.go index 81038506..d9967239 100644 --- a/vendor/github.com/heroku/heroku-go/v5/heroku.go +++ b/vendor/github.com/heroku/heroku-go/v5/heroku.go @@ -212,11 +212,10 @@ func String(v string) *string { // An account represents an individual signed up to use the Heroku // platform. type Account struct { - AcknowledgedMsa bool `json:"acknowledged_msa" url:"acknowledged_msa,key"` // whether account has acknowledged the MSA terms of service - AcknowledgedMsaAt *time.Time `json:"acknowledged_msa_at" url:"acknowledged_msa_at,key"` // when account has acknowledged the MSA terms of service - AllowTracking bool `json:"allow_tracking" url:"allow_tracking,key"` // whether to allow third party web activity tracking - Beta bool `json:"beta" url:"beta,key"` // whether allowed to utilize beta Heroku features - CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when account was created + AllowTracking bool `json:"allow_tracking" url:"allow_tracking,key"` // whether to allow third party web activity tracking + Beta bool `json:"beta" url:"beta,key"` // whether allowed to utilize beta Heroku features + CountryOfResidence *string `json:"country_of_residence" url:"country_of_residence,key"` // country where account owner resides + CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when account was created DefaultOrganization *struct { ID string `json:"id" url:"id,key"` // unique identifier of team Name string `json:"name" url:"name,key"` // unique name of team @@ -230,7 +229,8 @@ type Account struct { Federated bool `json:"federated" url:"federated,key"` // whether the user is federated and belongs to an Identity Provider ID string `json:"id" url:"id,key"` // unique identifier of an account IdentityProvider *struct { - ID string `json:"id" url:"id,key"` // unique identifier of this identity provider + ID string `json:"id" url:"id,key"` // unique identifier of this identity provider + Name string `json:"name" url:"name,key"` // user-friendly unique identifier for this identity provider Organization struct { Name string `json:"name" url:"name,key"` // unique name of team } `json:"organization" url:"organization,key"` @@ -243,10 +243,6 @@ type Account struct { Name string `json:"name" url:"name,key"` // unique name of team } `json:"team" url:"team,key"` } `json:"identity_provider" url:"identity_provider,key"` // Identity Provider details for federated users. - ItalianCustomerTerms *string `json:"italian_customer_terms" url:"italian_customer_terms,key"` // whether account has acknowledged the Italian customer terms of - // service - ItalianPartnerTerms *string `json:"italian_partner_terms" url:"italian_partner_terms,key"` // whether account has acknowledged the Italian provider terms of - // service LastLogin *time.Time `json:"last_login" url:"last_login,key"` // when account last authorized with Heroku Name *string `json:"name" url:"name,key"` // full name of the account owner SmsNumber *string `json:"sms_number" url:"sms_number,key"` // SMS number of account @@ -274,7 +270,10 @@ func (s *Service) AccountUpdate(ctx context.Context, o AccountUpdateOpts) (*Acco return &account, s.Patch(ctx, &account, fmt.Sprintf("/account"), o) } -// Delete account. Note that this action cannot be undone. +// 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. func (s *Service) AccountDelete(ctx context.Context) (*Account, error) { var account Account return &account, s.Delete(ctx, &account, fmt.Sprintf("/account")) @@ -298,7 +297,10 @@ func (s *Service) AccountUpdateByUser(ctx context.Context, accountIdentity strin return &account, s.Patch(ctx, &account, fmt.Sprintf("/users/%v", accountIdentity), o) } -// Delete account. Note that this action cannot be undone. +// 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. func (s *Service) AccountDeleteByUser(ctx context.Context, accountIdentity string) (*Account, error) { var account Account return &account, s.Delete(ctx, &account, fmt.Sprintf("/users/%v", accountIdentity)) @@ -1136,9 +1138,10 @@ type App struct { WebURL string `json:"web_url" url:"web_url,key"` // web URL of app } type AppCreateOpts struct { - Name *string `json:"name,omitempty" url:"name,omitempty,key"` // unique name of app - Region *string `json:"region,omitempty" url:"region,omitempty,key"` // unique identifier of region - Stack *string `json:"stack,omitempty" url:"stack,omitempty,key"` // unique name of stack + FeatureFlags []*string `json:"feature_flags,omitempty" url:"feature_flags,omitempty,key"` // unique name of app feature + Name *string `json:"name,omitempty" url:"name,omitempty,key"` // unique name of app + Region *string `json:"region,omitempty" url:"region,omitempty,key"` // unique identifier of region + Stack *string `json:"stack,omitempty" url:"stack,omitempty,key"` // unique name of stack } // Create a new app. @@ -1598,14 +1601,14 @@ func (s *Service) AppWebhookEventList(ctx context.Context, appIdentity string, l type Archive struct { Checksum string `json:"checksum" url:"checksum,key"` // checksum for the archive CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when archive was created - Month int `json:"month" url:"month,key"` // month of the archive + Month string `json:"month" url:"month,key"` // month of the archive Size int `json:"size" url:"size,key"` // size of the archive in bytes URL string `json:"url" url:"url,key"` // url where to download the archive Year int `json:"year" url:"year,key"` // year of the archive } // Get archive for a single month. -func (s *Service) ArchiveInfo(ctx context.Context, enterpriseAccountIdentity string, archiveYear int, archiveMonth int) (*Archive, error) { +func (s *Service) ArchiveInfo(ctx context.Context, enterpriseAccountIdentity string, archiveYear int, archiveMonth string) (*Archive, error) { var archive Archive return &archive, s.Get(ctx, &archive, fmt.Sprintf("/enterprise-accounts/%v/archives/%v/%v", enterpriseAccountIdentity, archiveYear, archiveMonth), nil, nil) } @@ -1648,7 +1651,13 @@ type AuditTrailEvent struct { Type string `json:"type" url:"type,key"` // type of event } -// List existing events. +// 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&act +// ion=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. func (s *Service) AuditTrailEventList(ctx context.Context, enterpriseAccountIdentity string, lr *ListRange) (*AuditTrailEvent, error) { var auditTrailEvent AuditTrailEvent return &auditTrailEvent, s.Get(ctx, &auditTrailEvent, fmt.Sprintf("/enterprise-accounts/%v/events", enterpriseAccountIdentity), nil, lr) @@ -1901,20 +1910,6 @@ type Domain struct { Status string `json:"status" url:"status,key"` // status of this record's cname UpdatedAt time.Time `json:"updated_at" url:"updated_at,key"` // when domain was updated } -type DomainCreateDeprecatedOpts struct { - Hostname string `json:"hostname" url:"hostname,key"` // full hostname -} - -// 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. -func (s *Service) DomainCreateDeprecated(ctx context.Context, appIdentity string, o DomainCreateDeprecatedOpts) (*Domain, error) { - var domain Domain - return &domain, s.Post(ctx, &domain, fmt.Sprintf("/apps/%v/domains", appIdentity), o) -} - type DomainCreateOpts struct { Hostname string `json:"hostname" url:"hostname,key"` // full hostname SniEndpoint *string `json:"sni_endpoint" url:"sni_endpoint,key"` // null or unique identifier or name for SNI endpoint @@ -2108,6 +2103,51 @@ func (s *Service) EnterpriseAccountUpdate(ctx context.Context, enterpriseAccount return &enterpriseAccount, s.Patch(ctx, &enterpriseAccount, fmt.Sprintf("/enterprise-accounts/%v", enterpriseAccountIdentity), o) } +// Usage for an enterprise account at a daily resolution. +type EnterpriseAccountDailyUsage struct { + Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used + Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons + Date string `json:"date" url:"date,key"` // date of the usage + Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used + ID string `json:"id" url:"id,key"` // enterprise account identifier + Name string `json:"name" url:"name,key"` // name of the enterprise account + Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons + Space float64 `json:"space" url:"space,key"` // space credits used + Teams []struct { + Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used + Apps []struct { + Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used + AppName string `json:"app_name" url:"app_name,key"` // unique name of app + Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons + Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used + Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons + } `json:"apps" url:"apps,key"` // app usage in the team + Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons + Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used + ID string `json:"id" url:"id,key"` // team identifier + Name string `json:"name" url:"name,key"` // name of the team + Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons + Space float64 `json:"space" url:"space,key"` // space credits used + } `json:"teams" url:"teams,key"` // usage by team +} +type EnterpriseAccountDailyUsageInfoOpts struct { + End *string `json:"end,omitempty" url:"end,omitempty,key"` // range end date + Start string `json:"start" url:"start,key"` // range start date +} +type EnterpriseAccountDailyUsageInfoResult []EnterpriseAccountDailyUsage + +// 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#ent +// erprise-account-list). +// +func (s *Service) EnterpriseAccountDailyUsageInfo(ctx context.Context, enterpriseAccountID string, o EnterpriseAccountDailyUsageInfoOpts, lr *ListRange) (EnterpriseAccountDailyUsageInfoResult, error) { + var enterpriseAccountDailyUsage EnterpriseAccountDailyUsageInfoResult + return enterpriseAccountDailyUsage, s.Get(ctx, &enterpriseAccountDailyUsage, fmt.Sprintf("/enterprise-accounts/%v/usage/daily", enterpriseAccountID), o, lr) +} + // Enterprise account members are users with access to an enterprise // account. type EnterpriseAccountMember struct { @@ -2173,47 +2213,8 @@ func (s *Service) EnterpriseAccountMemberDelete(ctx context.Context, enterpriseA return &enterpriseAccountMember, s.Delete(ctx, &enterpriseAccountMember, fmt.Sprintf("/enterprise-accounts/%v/members/%v", enterpriseAccountIdentity, enterpriseAccountMemberUserIdentity)) } -// Usage for an enterprise account at a daily resolution. -type EnterpriseAccountUsageDaily struct { - Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used - Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons - Date string `json:"date" url:"date,key"` // date of the usage - Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used - ID string `json:"id" url:"id,key"` // enterprise account identifier - Name string `json:"name" url:"name,key"` // name of the enterprise account - Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons - Space float64 `json:"space" url:"space,key"` // space credits used - Teams []struct { - Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used - Apps []struct { - Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used - AppName string `json:"app_name" url:"app_name,key"` // unique name of app - Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons - Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used - Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons - } `json:"apps" url:"apps,key"` // app usage in the team - Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons - Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used - ID string `json:"id" url:"id,key"` // team identifier - Name string `json:"name" url:"name,key"` // name of the team - Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons - Space float64 `json:"space" url:"space,key"` // space credits used - } `json:"teams" url:"teams,key"` // usage by team -} -type EnterpriseAccountUsageDailyInfoResult []EnterpriseAccountUsageDaily - -// 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. -func (s *Service) EnterpriseAccountUsageDailyInfo(ctx context.Context, enterpriseAccountID string, lr *ListRange) (EnterpriseAccountUsageDailyInfoResult, error) { - var enterpriseAccountUsageDaily EnterpriseAccountUsageDailyInfoResult - return enterpriseAccountUsageDaily, s.Get(ctx, &enterpriseAccountUsageDaily, fmt.Sprintf("/enterprise-accounts/%v/usage/daily", enterpriseAccountID), nil, lr) -} - // Usage for an enterprise account at a monthly resolution. -type EnterpriseAccountUsageMonthly struct { +type EnterpriseAccountMonthlyUsage struct { Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used Connect float64 `json:"connect" url:"connect,key"` // average connect rows synced Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons @@ -2241,17 +2242,23 @@ type EnterpriseAccountUsageMonthly struct { Space float64 `json:"space" url:"space,key"` // space credits used } `json:"teams" url:"teams,key"` // usage by team } -type EnterpriseAccountUsageMonthlyInfoResult []EnterpriseAccountUsageMonthly +type EnterpriseAccountMonthlyUsageInfoOpts struct { + End *string `json:"end,omitempty" url:"end,omitempty,key"` // range end date + Start string `json:"start" url:"start,key"` // range start date +} +type EnterpriseAccountMonthlyUsageInfoResult []EnterpriseAccountMonthlyUsage // 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. -func (s *Service) EnterpriseAccountUsageMonthlyInfo(ctx context.Context, enterpriseAccountID string, lr *ListRange) (EnterpriseAccountUsageMonthlyInfoResult, error) { - var enterpriseAccountUsageMonthly EnterpriseAccountUsageMonthlyInfoResult - return enterpriseAccountUsageMonthly, s.Get(ctx, &enterpriseAccountUsageMonthly, fmt.Sprintf("/enterprise-accounts/%v/usage/monthly", enterpriseAccountID), nil, lr) +// 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#ent +// erprise-account-list). +// +func (s *Service) EnterpriseAccountMonthlyUsageInfo(ctx context.Context, enterpriseAccountID string, o EnterpriseAccountMonthlyUsageInfoOpts, lr *ListRange) (EnterpriseAccountMonthlyUsageInfoResult, error) { + var enterpriseAccountMonthlyUsage EnterpriseAccountMonthlyUsageInfoResult + return enterpriseAccountMonthlyUsage, s.Get(ctx, &enterpriseAccountMonthlyUsage, fmt.Sprintf("/enterprise-accounts/%v/usage/monthly", enterpriseAccountID), o, lr) } // Filters are special endpoints to allow for API consumers to specify a @@ -2375,7 +2382,8 @@ func (s *Service) FormationUpdate(ctx context.Context, appIdentity string, forma return &formation, s.Patch(ctx, &formation, fmt.Sprintf("/apps/%v/formation/%v", appIdentity, formationIdentity), o) } -// Identity Providers represent the SAML configuration of an Team. +// Identity Providers represent the SAML configuration of an Enterprise +// Account or Team. type IdentityProvider struct { Certificate string `json:"certificate" url:"certificate,key"` // raw contents of the public certificate (eg: .crt or .pem file) CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when provider record was created @@ -3086,8 +3094,9 @@ func (s *Service) PipelineUpdate(ctx context.Context, pipelineID string, o Pipel type PipelineListResult []Pipeline // List existing pipelines. -func (s *Service) PipelineList(ctx context.Context, lr *ListRange) error { - return s.Get(ctx, nil, fmt.Sprintf("/pipelines"), nil, lr) +func (s *Service) PipelineList(ctx context.Context, lr *ListRange) (PipelineListResult, error) { + var pipeline PipelineListResult + return pipeline, s.Get(ctx, &pipeline, fmt.Sprintf("/pipelines"), nil, lr) } // Information about latest builds of apps in a pipeline. @@ -3130,9 +3139,9 @@ type PipelineBuildListResult []struct { } // List latest builds for each app in a pipeline -func (s *Service) PipelineBuildList(ctx context.Context, pipelineIdentity string, lr *ListRange) (PipelineBuildListResult, error) { +func (s *Service) PipelineBuildList(ctx context.Context, pipelineID string, lr *ListRange) (PipelineBuildListResult, error) { var pipelineBuild PipelineBuildListResult - return pipelineBuild, s.Get(ctx, &pipelineBuild, fmt.Sprintf("/pipelines/%v/latest-builds", pipelineIdentity), nil, lr) + return pipelineBuild, s.Get(ctx, &pipelineBuild, fmt.Sprintf("/pipelines/%v/latest-builds", pipelineID), nil, lr) } // Pipeline Config Vars allow you to manage the configuration @@ -3271,9 +3280,9 @@ type PipelineDeploymentListResult []struct { } // List latest slug releases for each app in a pipeline -func (s *Service) PipelineDeploymentList(ctx context.Context, pipelineIdentity string, lr *ListRange) (PipelineDeploymentListResult, error) { +func (s *Service) PipelineDeploymentList(ctx context.Context, pipelineID string, lr *ListRange) (PipelineDeploymentListResult, error) { var pipelineDeployment PipelineDeploymentListResult - return pipelineDeployment, s.Get(ctx, &pipelineDeployment, fmt.Sprintf("/pipelines/%v/latest-deployments", pipelineIdentity), nil, lr) + return pipelineDeployment, s.Get(ctx, &pipelineDeployment, fmt.Sprintf("/pipelines/%v/latest-deployments", pipelineID), nil, lr) } // Promotions allow you to move code from an app in a pipeline to all @@ -3376,9 +3385,9 @@ type PipelineReleaseListResult []struct { } // List latest releases for each app in a pipeline -func (s *Service) PipelineReleaseList(ctx context.Context, pipelineIdentity string, lr *ListRange) (PipelineReleaseListResult, error) { +func (s *Service) PipelineReleaseList(ctx context.Context, pipelineID string, lr *ListRange) (PipelineReleaseListResult, error) { var pipelineRelease PipelineReleaseListResult - return pipelineRelease, s.Get(ctx, &pipelineRelease, fmt.Sprintf("/pipelines/%v/latest-releases", pipelineIdentity), nil, lr) + return pipelineRelease, s.Get(ctx, &pipelineRelease, fmt.Sprintf("/pipelines/%v/latest-releases", pipelineID), nil, lr) } // A pipeline's stack is determined by the apps in the pipeline. This is @@ -3394,9 +3403,9 @@ type PipelineStack struct { // The stack for a given pipeline, used for CI and Review Apps that have // no stack defined in app.json. -func (s *Service) PipelineStackDefaultStack(ctx context.Context, pipelineIdentity string) (*PipelineStack, error) { +func (s *Service) PipelineStackDefaultStack(ctx context.Context, pipelineID string) (*PipelineStack, error) { var pipelineStack PipelineStack - return &pipelineStack, s.Get(ctx, &pipelineStack, fmt.Sprintf("/pipelines/%v/pipeline-stack", pipelineIdentity), nil, nil) + return &pipelineStack, s.Get(ctx, &pipelineStack, fmt.Sprintf("/pipelines/%v/pipeline-stack", pipelineID), nil, nil) } // A pipeline transfer is the process of changing pipeline ownership @@ -3802,12 +3811,26 @@ func (s *Service) SmsNumberConfirm(ctx context.Context, accountIdentity string) // SNI Endpoint is a public address serving a custom SSL cert for HTTPS // traffic, using the SNI TLS extension, to a Heroku app. type SniEndpoint struct { - CertificateChain string `json:"certificate_chain" url:"certificate_chain,key"` // raw contents of the public certificate chain (eg: .crt or .pem file) - CName string `json:"cname" url:"cname,key"` // deprecated; refer to GET /apps/:id/domains for valid CNAMEs for this - // app - CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when endpoint was created - ID string `json:"id" url:"id,key"` // unique identifier of this SNI endpoint - Name string `json:"name" url:"name,key"` // unique name for SNI endpoint + App struct { + ID string `json:"id" url:"id,key"` // unique identifier of app + Name string `json:"name" url:"name,key"` // unique name of app + } `json:"app" url:"app,key"` // application that this SSL certificate is on + CertificateChain string `json:"certificate_chain" url:"certificate_chain,key"` // raw contents of the public certificate chain (eg: .crt or .pem file) + CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when endpoint was created + DisplayName *string `json:"display_name" url:"display_name,key"` // unique name for SSL certificate + Domains []string `json:"domains" url:"domains,key"` // domains associated with this SSL certificate + ID string `json:"id" url:"id,key"` // unique identifier of this SNI endpoint + Name string `json:"name" url:"name,key"` // unique name for SNI endpoint + SSLCert struct { + IsCaSigned bool `json:"ca_signed?" url:"ca_signed?,key"` + CertDomains []interface{} `json:"cert_domains" url:"cert_domains,key"` + ExpiresAt time.Time `json:"expires_at" url:"expires_at,key"` + ID string `json:"id" url:"id,key"` // unique identifier of this SSL certificate + Issuer string `json:"issuer" url:"issuer,key"` + IsSelfSigned bool `json:"self_signed?" url:"self_signed?,key"` + StartsAt time.Time `json:"starts_at" url:"starts_at,key"` + Subject string `json:"subject" url:"subject,key"` + } `json:"ssl_cert" url:"ssl_cert,key"` // certificate provided by this endpoint UpdatedAt time.Time `json:"updated_at" url:"updated_at,key"` // when SNI endpoint was updated } type SniEndpointCreateOpts struct { @@ -3875,7 +3898,7 @@ func (s *Service) SourceCreateDeprecated(ctx context.Context, appIdentity string } // A space is an isolated, highly available, secure app execution -// environments, running in the modern VPC substrate. +// environment. type Space struct { CIDR string `json:"cidr" url:"cidr,key"` // 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 @@ -3936,6 +3959,8 @@ type SpaceCreateOpts struct { DataCIDR *string `json:"data_cidr,omitempty" url:"data_cidr,omitempty,key"` // The RFC-1918 CIDR that the Private Space will use for the // Heroku-managed peering connection that's automatically created when // using Heroku Data add-ons. It must be between a /16 and a /20 + LogDrainURL *string `json:"log_drain_url,omitempty" url:"log_drain_url,omitempty,key"` // URL to which all apps will drain logs. Only settable during space + // creation and enables direct logging. Must use HTTPS. Name string `json:"name" url:"name,key"` // unique name of space Region *string `json:"region,omitempty" url:"region,omitempty,key"` // unique identifier of region Shield *bool `json:"shield,omitempty" url:"shield,omitempty,key"` // true if this space has shield enabled @@ -4073,82 +4098,6 @@ func (s *Service) SpaceTransferTransfer(ctx context.Context, spaceIdentity strin return &spaceTransfer, s.Post(ctx, &spaceTransfer, fmt.Sprintf("/spaces/%v/transfer", spaceIdentity), o) } -// [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. -type SSLEndpoint struct { - App struct { - ID string `json:"id" url:"id,key"` // unique identifier of app - Name string `json:"name" url:"name,key"` // unique name of app - } `json:"app" url:"app,key"` // application associated with this ssl-endpoint - CertificateChain string `json:"certificate_chain" url:"certificate_chain,key"` // raw contents of the public certificate chain (eg: .crt or .pem file) - CName string `json:"cname" url:"cname,key"` // canonical name record, the address to point a domain at - CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when endpoint was created - DisplayName string `json:"display_name" url:"display_name,key"` // unique name for SSL endpoint - Domains []string `json:"domains" url:"domains,key"` // domains associated with this endpoint - ID string `json:"id" url:"id,key"` // unique identifier of this SSL endpoint - Name string `json:"name" url:"name,key"` // unique name for SSL endpoint - SSLCert struct { - IsCaSigned bool `json:"ca_signed?" url:"ca_signed?,key"` - CertDomains []interface{} `json:"cert_domains" url:"cert_domains,key"` - ExpiresAt time.Time `json:"expires_at" url:"expires_at,key"` - ID string `json:"id" url:"id,key"` // unique identifier of this SSL certificate - Issuer string `json:"issuer" url:"issuer,key"` - IsSelfSigned bool `json:"self_signed?" url:"self_signed?,key"` - StartsAt time.Time `json:"starts_at" url:"starts_at,key"` - Subject string `json:"subject" url:"subject,key"` - } `json:"ssl_cert" url:"ssl_cert,key"` // certificate provided by this endpoint - UpdatedAt time.Time `json:"updated_at" url:"updated_at,key"` // when endpoint was updated -} -type SSLEndpointCreateOpts struct { - CertificateChain string `json:"certificate_chain" url:"certificate_chain,key"` // raw contents of the public certificate chain (eg: .crt or .pem file) - Preprocess *bool `json:"preprocess,omitempty" url:"preprocess,omitempty,key"` // allow Heroku to modify an uploaded public certificate chain if deemed - // advantageous by adding missing intermediaries, stripping unnecessary - // ones, etc. - PrivateKey string `json:"private_key" url:"private_key,key"` // contents of the private key (eg .key file) -} - -// Create a new SSL endpoint. -func (s *Service) SSLEndpointCreate(ctx context.Context, appIdentity string, o SSLEndpointCreateOpts) (*SSLEndpoint, error) { - var sslEndpoint SSLEndpoint - return &sslEndpoint, s.Post(ctx, &sslEndpoint, fmt.Sprintf("/apps/%v/ssl-endpoints", appIdentity), o) -} - -// Delete existing SSL endpoint. -func (s *Service) SSLEndpointDelete(ctx context.Context, appIdentity string, sslEndpointIdentity string) (*SSLEndpoint, error) { - var sslEndpoint SSLEndpoint - return &sslEndpoint, s.Delete(ctx, &sslEndpoint, fmt.Sprintf("/apps/%v/ssl-endpoints/%v", appIdentity, sslEndpointIdentity)) -} - -// Info for existing SSL endpoint. -func (s *Service) SSLEndpointInfo(ctx context.Context, appIdentity string, sslEndpointIdentity string) (*SSLEndpoint, error) { - var sslEndpoint SSLEndpoint - return &sslEndpoint, s.Get(ctx, &sslEndpoint, fmt.Sprintf("/apps/%v/ssl-endpoints/%v", appIdentity, sslEndpointIdentity), nil, nil) -} - -type SSLEndpointListResult []SSLEndpoint - -// List existing SSL endpoints. -func (s *Service) SSLEndpointList(ctx context.Context, appIdentity string, lr *ListRange) (SSLEndpointListResult, error) { - var sslEndpoint SSLEndpointListResult - return sslEndpoint, s.Get(ctx, &sslEndpoint, fmt.Sprintf("/apps/%v/ssl-endpoints", appIdentity), nil, lr) -} - -type SSLEndpointUpdateOpts struct { - CertificateChain *string `json:"certificate_chain,omitempty" url:"certificate_chain,omitempty,key"` // raw contents of the public certificate chain (eg: .crt or .pem file) - Preprocess *bool `json:"preprocess,omitempty" url:"preprocess,omitempty,key"` // allow Heroku to modify an uploaded public certificate chain if deemed - // advantageous by adding missing intermediaries, stripping unnecessary - // ones, etc. - PrivateKey *string `json:"private_key,omitempty" url:"private_key,omitempty,key"` // contents of the private key (eg .key file) -} - -// Update an existing SSL endpoint. -func (s *Service) SSLEndpointUpdate(ctx context.Context, appIdentity string, sslEndpointIdentity string, o SSLEndpointUpdateOpts) (*SSLEndpoint, error) { - var sslEndpoint SSLEndpoint - return &sslEndpoint, s.Patch(ctx, &sslEndpoint, fmt.Sprintf("/apps/%v/ssl-endpoints/%v", appIdentity, sslEndpointIdentity), o) -} - // Stacks are the different application execution environments available // in the Heroku platform. type Stack struct { @@ -4186,8 +4135,13 @@ type Team struct { } `json:"enterprise_account" url:"enterprise_account,key"` ID string `json:"id" url:"id,key"` // unique identifier of team IdentityProvider *struct { - ID string `json:"id" url:"id,key"` // unique identifier of this identity provider - Slug string `json:"slug" url:"slug,key"` // user-friendly unique identifier for this identity provider + ID string `json:"id" url:"id,key"` // unique identifier of this identity provider + Name string `json:"name" url:"name,key"` // user-friendly unique identifier for this identity provider + Owner struct { + ID string `json:"id" url:"id,key"` // unique identifier of the owner + Name string `json:"name" url:"name,key"` // name of the owner + Type string `json:"type" url:"type,key"` // type of the owner + } `json:"owner" url:"owner,key"` // entity that owns this identity provider } `json:"identity_provider" url:"identity_provider,key"` // Identity Provider associated with the Team MembershipLimit *float64 `json:"membership_limit" url:"membership_limit,key"` // upper limit of members allowed in a team. Name string `json:"name" url:"name,key"` // unique name of team @@ -4498,6 +4452,41 @@ func (s *Service) TeamAppPermissionList(ctx context.Context, lr *ListRange) (Tea return teamAppPermission, s.Get(ctx, &teamAppPermission, fmt.Sprintf("/teams/permissions"), nil, lr) } +// Usage for an enterprise team at a daily resolution. +type TeamDailyUsage struct { + Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used + Apps []struct { + Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used + AppName string `json:"app_name" url:"app_name,key"` // unique name of app + Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons + Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used + Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons + } `json:"apps" url:"apps,key"` // app usage in the team + Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons + Date string `json:"date" url:"date,key"` // date of the usage + Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used + ID string `json:"id" url:"id,key"` // team identifier + Name string `json:"name" url:"name,key"` // name of the team + Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons + Space float64 `json:"space" url:"space,key"` // space credits used +} +type TeamDailyUsageInfoOpts struct { + End *string `json:"end,omitempty" url:"end,omitempty,key"` // range end date + Start string `json:"start" url:"start,key"` // range start date +} +type TeamDailyUsageInfoResult []TeamDailyUsage + +// 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). +// +func (s *Service) TeamDailyUsageInfo(ctx context.Context, teamID string, o TeamDailyUsageInfoOpts, lr *ListRange) (TeamDailyUsageInfoResult, error) { + var teamDailyUsage TeamDailyUsageInfoResult + return teamDailyUsage, s.Get(ctx, &teamDailyUsage, fmt.Sprintf("/teams/%v/usage/daily", teamID), o, lr) +} + // A team feature represents a feature enabled on a team account. type TeamFeature struct { CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when team feature was created @@ -4768,12 +4757,48 @@ func (s *Service) TeamMemberListByMember(ctx context.Context, teamIdentity strin return teamMember, s.Get(ctx, &teamMember, fmt.Sprintf("/teams/%v/members/%v/apps", teamIdentity, teamMemberIdentity), nil, lr) } +// Usage for an enterprise team at a monthly resolution. +type TeamMonthlyUsage struct { + Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used + Apps []struct { + Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used + AppName string `json:"app_name" url:"app_name,key"` // unique name of app + Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons + Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used + Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons + } `json:"apps" url:"apps,key"` // app usage in the team + Connect float64 `json:"connect" url:"connect,key"` // average connect rows synced + Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons + Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used + ID string `json:"id" url:"id,key"` // team identifier + Month string `json:"month" url:"month,key"` // year and month of the usage + Name string `json:"name" url:"name,key"` // name of the team + Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons + Space float64 `json:"space" url:"space,key"` // space credits used +} +type TeamMonthlyUsageInfoOpts struct { + End *string `json:"end,omitempty" url:"end,omitempty,key"` // range end date + Start string `json:"start" url:"start,key"` // range start date +} +type TeamMonthlyUsageInfoResult []TeamMonthlyUsage + +// 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). +// +func (s *Service) TeamMonthlyUsageInfo(ctx context.Context, teamID string, o TeamMonthlyUsageInfoOpts, lr *ListRange) (TeamMonthlyUsageInfoResult, error) { + var teamMonthlyUsage TeamMonthlyUsageInfoResult + return teamMonthlyUsage, s.Get(ctx, &teamMonthlyUsage, fmt.Sprintf("/teams/%v/usage/monthly", teamID), o, lr) +} + // Tracks a Team's Preferences type TeamPreferences struct { AddonsControls *bool `json:"addons-controls" url:"addons-controls,key"` // Whether add-on service rules should be applied to add-on // installations - DefaultPermission *string `json:"default-permission" url:"default-permission,key"` // The default permission used when adding new members to the team - WhitelistingEnabled *bool `json:"whitelisting-enabled" url:"whitelisting-enabled,key"` // Whether whitelisting rules should be applied to add-on installations + DefaultPermission *string `json:"default-permission" url:"default-permission,key"` // The default permission used when adding new members to the team } // Retrieve Team Preferences @@ -4785,7 +4810,6 @@ func (s *Service) TeamPreferencesList(ctx context.Context, teamPreferencesIdenti type TeamPreferencesUpdateOpts struct { AddonsControls *bool `json:"addons-controls,omitempty" url:"addons-controls,omitempty,key"` // Whether add-on service rules should be applied to add-on // installations - WhitelistingEnabled *bool `json:"whitelisting-enabled,omitempty" url:"whitelisting-enabled,omitempty,key"` // Whether whitelisting rules should be applied to add-on installations } // Update Team Preferences @@ -4795,7 +4819,7 @@ func (s *Service) TeamPreferencesUpdate(ctx context.Context, teamPreferencesIden } // A space is an isolated, highly available, secure app execution -// environments, running in the modern VPC substrate. +// environment. type TeamSpace struct{} type TeamSpaceListResult []struct { CIDR string `json:"cidr" url:"cidr,key"` // The RFC-1918 CIDR the Private Space will use. It must be a /16 in @@ -4828,68 +4852,6 @@ func (s *Service) TeamSpaceList(ctx context.Context, teamIdentity string, lr *Li return teamSpace, s.Get(ctx, &teamSpace, fmt.Sprintf("/teams/%v/spaces", teamIdentity), nil, lr) } -// Usage for an enterprise team at a daily resolution. -type TeamUsageDaily struct { - Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used - Apps []struct { - Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used - AppName string `json:"app_name" url:"app_name,key"` // unique name of app - Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons - Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used - Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons - } `json:"apps" url:"apps,key"` // app usage in the team - Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons - Date string `json:"date" url:"date,key"` // date of the usage - Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used - ID string `json:"id" url:"id,key"` // team identifier - Name string `json:"name" url:"name,key"` // name of the team - Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons - Space float64 `json:"space" url:"space,key"` // space credits used -} -type TeamUsageDailyInfoResult []TeamUsageDaily - -// 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?start=2019-01-01&end=2019-01-31' specifies -// all days in January for 2019. -func (s *Service) TeamUsageDailyInfo(ctx context.Context, teamID string, lr *ListRange) (TeamUsageDailyInfoResult, error) { - var teamUsageDaily TeamUsageDailyInfoResult - return teamUsageDaily, s.Get(ctx, &teamUsageDaily, fmt.Sprintf("/teams/%v/usage/daily", teamID), nil, lr) -} - -// Usage for an enterprise team at a monthly resolution. -type TeamUsageMonthly struct { - Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used - Apps []struct { - Addons float64 `json:"addons" url:"addons,key"` // total add-on credits used - AppName string `json:"app_name" url:"app_name,key"` // unique name of app - Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons - Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used - Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons - } `json:"apps" url:"apps,key"` // app usage in the team - Connect float64 `json:"connect" url:"connect,key"` // average connect rows synced - Data float64 `json:"data" url:"data,key"` // total add-on credits used for first party add-ons - Dynos float64 `json:"dynos" url:"dynos,key"` // dynos used - ID string `json:"id" url:"id,key"` // team identifier - Month string `json:"month" url:"month,key"` // year and month of the usage - Name string `json:"name" url:"name,key"` // name of the team - Partner float64 `json:"partner" url:"partner,key"` // total add-on credits used for third party add-ons - Space float64 `json:"space" url:"space,key"` // space credits used -} -type TeamUsageMonthlyInfoResult []TeamUsageMonthly - -// 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?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. -func (s *Service) TeamUsageMonthlyInfo(ctx context.Context, teamID string, lr *ListRange) (TeamUsageMonthlyInfoResult, error) { - var teamUsageMonthly TeamUsageMonthlyInfoResult - return teamUsageMonthly, s.Get(ctx, &teamUsageMonthly, fmt.Sprintf("/teams/%v/usage/monthly", teamID), nil, lr) -} - // A single test case belonging to a test run type TestCase struct { CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when test case was created @@ -4970,11 +4932,10 @@ type TestRun struct { Status string `json:"status" url:"status,key"` // current state of the test run UpdatedAt time.Time `json:"updated_at" url:"updated_at,key"` // when test-run was updated User struct { - AcknowledgedMsa bool `json:"acknowledged_msa" url:"acknowledged_msa,key"` // whether account has acknowledged the MSA terms of service - AcknowledgedMsaAt *time.Time `json:"acknowledged_msa_at" url:"acknowledged_msa_at,key"` // when account has acknowledged the MSA terms of service - AllowTracking bool `json:"allow_tracking" url:"allow_tracking,key"` // whether to allow third party web activity tracking - Beta bool `json:"beta" url:"beta,key"` // whether allowed to utilize beta Heroku features - CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when account was created + AllowTracking bool `json:"allow_tracking" url:"allow_tracking,key"` // whether to allow third party web activity tracking + Beta bool `json:"beta" url:"beta,key"` // whether allowed to utilize beta Heroku features + CountryOfResidence *string `json:"country_of_residence" url:"country_of_residence,key"` // country where account owner resides + CreatedAt time.Time `json:"created_at" url:"created_at,key"` // when account was created DefaultOrganization *struct { ID string `json:"id" url:"id,key"` // unique identifier of team Name string `json:"name" url:"name,key"` // unique name of team @@ -4988,7 +4949,8 @@ type TestRun struct { Federated bool `json:"federated" url:"federated,key"` // whether the user is federated and belongs to an Identity Provider ID string `json:"id" url:"id,key"` // unique identifier of an account IdentityProvider *struct { - ID string `json:"id" url:"id,key"` // unique identifier of this identity provider + ID string `json:"id" url:"id,key"` // unique identifier of this identity provider + Name string `json:"name" url:"name,key"` // user-friendly unique identifier for this identity provider Organization struct { Name string `json:"name" url:"name,key"` // unique name of team } `json:"organization" url:"organization,key"` @@ -5001,10 +4963,6 @@ type TestRun struct { Name string `json:"name" url:"name,key"` // unique name of team } `json:"team" url:"team,key"` } `json:"identity_provider" url:"identity_provider,key"` // Identity Provider details for federated users. - ItalianCustomerTerms *string `json:"italian_customer_terms" url:"italian_customer_terms,key"` // whether account has acknowledged the Italian customer terms of - // service - ItalianPartnerTerms *string `json:"italian_partner_terms" url:"italian_partner_terms,key"` // whether account has acknowledged the Italian provider terms of - // service LastLogin *time.Time `json:"last_login" url:"last_login,key"` // when account last authorized with Heroku Name *string `json:"name" url:"name,key"` // full name of the account owner SmsNumber *string `json:"sms_number" url:"sms_number,key"` // SMS number of account @@ -5158,41 +5116,12 @@ func (s *Service) VPNConnectionInfo(ctx context.Context, spaceIdentity string, v return &vpnConnection, s.Get(ctx, &vpnConnection, fmt.Sprintf("/spaces/%v/vpn-connections/%v", spaceIdentity, vpnConnectionIdentity), nil, nil) } -// Entities that have been whitelisted to be used by an Team -type WhitelistedAddOnService struct { - AddedAt time.Time `json:"added_at" url:"added_at,key"` // when the add-on service was whitelisted - AddedBy struct { - Email string `json:"email" url:"email,key"` // unique email address of account - ID string `json:"id" url:"id,key"` // unique identifier of an account - } `json:"added_by" url:"added_by,key"` // the user which whitelisted the Add-on Service - AddonService struct { - HumanName string `json:"human_name" url:"human_name,key"` // human-readable name of the add-on service provider - ID string `json:"id" url:"id,key"` // unique identifier of this add-on-service - Name string `json:"name" url:"name,key"` // unique name of this add-on-service - } `json:"addon_service" url:"addon_service,key"` // the Add-on Service whitelisted for use - ID string `json:"id" url:"id,key"` // unique identifier for this whitelisting entity -} -type WhitelistedAddOnServiceListByTeamResult []WhitelistedAddOnService - -// List all whitelisted Add-on Services for an Team -func (s *Service) WhitelistedAddOnServiceListByTeam(ctx context.Context, teamIdentity string, lr *ListRange) (WhitelistedAddOnServiceListByTeamResult, error) { - var whitelistedAddOnService WhitelistedAddOnServiceListByTeamResult - return whitelistedAddOnService, s.Get(ctx, &whitelistedAddOnService, fmt.Sprintf("/teams/%v/whitelisted-addon-services", teamIdentity), nil, lr) -} - -type WhitelistedAddOnServiceCreateByTeamOpts struct { - AddonService *string `json:"addon_service,omitempty" url:"addon_service,omitempty,key"` // name of the Add-on to whitelist -} -type WhitelistedAddOnServiceCreateByTeamResult []WhitelistedAddOnService - -// Whitelist an Add-on Service -func (s *Service) WhitelistedAddOnServiceCreateByTeam(ctx context.Context, teamIdentity string, o WhitelistedAddOnServiceCreateByTeamOpts) (WhitelistedAddOnServiceCreateByTeamResult, error) { - var whitelistedAddOnService WhitelistedAddOnServiceCreateByTeamResult - return whitelistedAddOnService, s.Post(ctx, &whitelistedAddOnService, fmt.Sprintf("/teams/%v/whitelisted-addon-services", teamIdentity), o) +type VPNConnectionUpdateOpts struct { + RoutableCidrs []string `json:"routable_cidrs" url:"routable_cidrs,key"` // Routable CIDRs of VPN } -// Remove a whitelisted entity -func (s *Service) WhitelistedAddOnServiceDeleteByTeam(ctx context.Context, teamIdentity string, whitelistedAddOnServiceIdentity string) (*WhitelistedAddOnService, error) { - var whitelistedAddOnService WhitelistedAddOnService - return &whitelistedAddOnService, s.Delete(ctx, &whitelistedAddOnService, fmt.Sprintf("/teams/%v/whitelisted-addon-services/%v", teamIdentity, whitelistedAddOnServiceIdentity)) +// Update a VPN connection in a private space. +func (s *Service) VPNConnectionUpdate(ctx context.Context, spaceIdentity string, vpnConnectionIdentity string, o VPNConnectionUpdateOpts) (*VPNConnection, error) { + var vpnConnection VPNConnection + return &vpnConnection, s.Patch(ctx, &vpnConnection, fmt.Sprintf("/spaces/%v/vpn-connections/%v", spaceIdentity, vpnConnectionIdentity), o) } diff --git a/vendor/github.com/heroku/heroku-go/v5/schema.json b/vendor/github.com/heroku/heroku-go/v5/schema.json index 14acc2ca..3983ff3c 100644 --- a/vendor/github.com/heroku/heroku-go/v5/schema.json +++ b/vendor/github.com/heroku/heroku-go/v5/schema.json @@ -228,6 +228,15 @@ "string" ] }, + "country_of_residence": { + "description": "country where account owner resides", + "example": "United States", + "readOnly": false, + "type": [ + "string", + "null" + ] + }, "email": { "description": "unique email address of account", "example": "username@example.com", @@ -359,42 +368,6 @@ "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": [ @@ -435,7 +408,7 @@ "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", @@ -481,7 +454,7 @@ "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", @@ -512,10 +485,14 @@ }, "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" @@ -537,46 +514,7 @@ } }, "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": [ @@ -608,17 +546,8 @@ "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", @@ -3942,6 +3871,15 @@ }, "stack": { "$ref": "#/definitions/stack/definitions/identity" + }, + "feature_flags": { + "description": "unique name of app feature", + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/app-feature/definitions/name" + } } }, "type": [ @@ -4246,12 +4184,24 @@ }, "month": { "description": "month of the archive", - "example": 10, + "enum": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12" + ], + "example": "10", "readOnly": true, - "minimum": 1, - "maximum": 12, "type": [ - "integer" + "string" ] }, "year": { @@ -4348,13 +4298,6 @@ "string" ] }, - "identity": { - "anyOf": [ - { - "$ref": "#/definitions/audit-trail-event/definitions/id" - } - ] - }, "type": { "description": "type of event", "readOnly": true, @@ -4503,7 +4446,7 @@ }, "links": [ { - "description": "List existing events.", + "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", @@ -5518,30 +5461,6 @@ } }, "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", @@ -6153,18 +6072,51 @@ } } }, - "enterprise-account-member": { + "enterprise-account-daily-usage": { "$schema": "http://json-schema.org/draft-04/hyper-schema", - "description": "Enterprise account members are users with access to an enterprise account.", + "description": "Usage for an enterprise account at a daily resolution.", "stability": "development", "strictProperties": true, - "title": "Heroku Platform API - Enterprise Account Member", + "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": "unique identifier of the member", + "description": "enterprise account identifier", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, @@ -6172,42 +6124,88 @@ "string" ] }, - "identity": { - "anyOf": [ - { - "$ref": "#/definitions/enterprise-account-member/definitions/id" - } + "name": { + "description": "name of the enterprise account", + "example": "example-co", + "readOnly": true, + "type": [ + "string" ] }, - "permission": { - "description": "permission in the enterprise account", - "enum": [ - "view", - "create", - "manage", - "billing" - ], - "example": "view", + "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" ] }, - "permissions": { - "description": "permissions for enterprise account", - "example": [ - "view" - ], + "end_date": { + "description": "range end date", + "example": "2019-02-25", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "readOnly": true, "type": [ - "array" - ], - "items": { - "$ref": "#/definitions/enterprise-account-member/definitions/permission" + "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" }, - "expanded_permissions": { - "description": "enterprise account permissions", + "teams": { + "description": "usage by team", "type": [ "array" ], @@ -6216,33 +6214,152 @@ "object" ], "properties": { - "description": { + "addons": { + "$ref": "#/definitions/team-daily-usage/definitions/addons" + }, + "apps": { + "description": "app usage in the team", "type": [ - "string" + "array" ], - "example": "View enterprise account members and teams." + "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/enterprise-account-member/definitions/permission", - "example": "view" + "$ref": "#/definitions/team-daily-usage/definitions/name" + }, + "partner": { + "$ref": "#/definitions/team-daily-usage/definitions/partner" + }, + "space": { + "$ref": "#/definitions/team-daily-usage/definitions/space" } } } }, - "user_identity": { - "anyOf": [ - { - "$ref": "#/definitions/account/definitions/email" - }, - { - "$ref": "#/definitions/account/definitions/id" - } - ] + "data": { + "$ref": "#/definitions/enterprise-account-daily-usage/definitions/data" }, - "two_factor_authentication": { - "description": "whether the Enterprise Account member has two factor authentication enabled", - "example": true, - "readOnly": true, + "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, + "title": "Heroku Platform API - Enterprise Account Member", + "type": [ + "object" + ], + "definitions": { + "id": { + "description": "unique identifier of the member", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + }, + "identity": { + "anyOf": [ + { + "$ref": "#/definitions/enterprise-account-member/definitions/id" + } + ] + }, + "permission": { + "description": "permission in the enterprise account", + "enum": [ + "view", + "create", + "manage", + "billing" + ], + "example": "view", + "readOnly": true, + "type": [ + "string" + ] + }, + "permissions": { + "description": "permissions for enterprise account", + "example": [ + "view" + ], + "readOnly": true, + "type": [ + "array" + ], + "items": { + "$ref": "#/definitions/enterprise-account-member/definitions/permission" + } + }, + "expanded_permissions": { + "description": "enterprise account permissions", + "type": [ + "array" + ], + "items": { + "type": [ + "object" + ], + "properties": { + "description": { + "type": [ + "string" + ], + "example": "View enterprise account members and teams." + }, + "name": { + "$ref": "#/definitions/enterprise-account-member/definitions/permission", + "example": "view" + } + } + } + }, + "user_identity": { + "anyOf": [ + { + "$ref": "#/definitions/account/definitions/email" + }, + { + "$ref": "#/definitions/account/definitions/id" + } + ] + }, + "two_factor_authentication": { + "description": "whether the Enterprise Account member has two factor authentication enabled", + "example": true, + "readOnly": true, "type": [ "boolean" ] @@ -6406,12 +6523,12 @@ } } }, - "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.", + "description": "Usage for an enterprise account at a monthly resolution.", "stability": "development", "strictProperties": true, - "title": "Heroku Platform API - Enterprise Account Daily Usage", + "title": "Heroku Platform API - Enterprise Account Monthly Usage", "type": [ "object" ], @@ -6424,21 +6541,20 @@ "number" ] }, - "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": { @@ -6449,6 +6565,15 @@ "number" ] }, + "month": { + "description": "year and month of the usage", + "example": "2019-01", + "pattern": "^[0-9]{4}-[0-9]{2}$", + "readOnly": true, + "type": [ + "string" + ] + }, "id": { "description": "enterprise account identifier", "example": "01234567-89ab-cdef-0123-456789abcdef", @@ -6481,18 +6606,52 @@ "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 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", + "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", - "title": "Info", "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-daily" + "$ref": "#/definitions/enterprise-account-monthly-usage" }, "type": [ "array" @@ -6502,7 +6661,7 @@ ], "properties": { "addons": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/addons" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/addons" }, "teams": { "description": "usage by team", @@ -6515,7 +6674,7 @@ ], "properties": { "addons": { - "$ref": "#/definitions/team-usage-daily/definitions/addons" + "$ref": "#/definitions/team-monthly-usage/definitions/addons" }, "apps": { "description": "app usage in the team", @@ -6523,295 +6682,142 @@ "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" }, "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" }, "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" } } } }, - "data": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/data" + "connect": { + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/connect" }, - "date": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/date" + "data": { + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/data" }, "dynos": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/dynos" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/dynos" }, "id": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/id" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/id" + }, + "month": { + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/month" }, "name": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/name" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/name" }, "partner": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/partner" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/partner" }, "space": { - "$ref": "#/definitions/enterprise-account-usage-daily/definitions/space" + "$ref": "#/definitions/enterprise-account-monthly-usage/definitions/space" } } }, - "enterprise-account-usage-monthly": { + "enterprise-account": { "$schema": "http://json-schema.org/draft-04/hyper-schema", - "description": "Usage for an enterprise account at a monthly resolution.", + "description": "Enterprise accounts allow companies to manage their development teams and billing.", "stability": "development", "strictProperties": true, - "title": "Heroku Platform API - Enterprise Account Monthly Usage", + "title": "Heroku Platform API - Enterprise Account", "type": [ "object" ], "definitions": { - "addons": { - "description": "total add-on credits used", - "example": 250.0, + "created_at": { + "description": "when the enterprise account was created", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", "readOnly": true, "type": [ - "number" + "string" ] }, - "connect": { - "description": "average connect rows synced", - "example": 15000, + "id": { + "description": "unique identifier of the enterprise account", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", "readOnly": true, "type": [ - "number" + "string" ] }, - "data": { - "description": "total add-on credits used for first party add-ons", - "example": 34.89, - "readOnly": true, - "type": [ - "number" + "identity": { + "anyOf": [ + { + "$ref": "#/definitions/enterprise-account/definitions/id" + } ] }, - "dynos": { - "description": "dynos used", - "example": 1.548, - "readOnly": true, + "identity_provider": { + "description": "Identity Provider associated with the Enterprise Account", + "strictProperties": true, "type": [ - "number" - ] + "null", + "object" + ], + "properties": { + "id": { + "$ref": "#/definitions/identity-provider/definitions/id" + }, + "name": { + "$ref": "#/definitions/identity-provider/definitions/name" + }, + "owner": { + "$ref": "#/definitions/identity-provider/definitions/owner" + } + } }, - "month": { - "description": "year and month of the usage", - "example": "2019-01", - "pattern": "^[0-9]{4}-[0-9]{2}$", + "name": { + "description": "unique name of the enterprise account", + "example": "example", "readOnly": true, "type": [ "string" ] }, - "id": { - "description": "enterprise account identifier", - "example": "01234567-89ab-cdef-0123-456789abcdef", - "format": "uuid", + "updated_at": { + "description": "when the enterprise account was updated", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", "readOnly": true, "type": [ "string" ] }, - "name": { - "description": "name of the enterprise account", - "example": "example-co", + "permissions": { + "description": "the current user's permissions for this enterprise account", "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 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.", - "href": "/enterprise-accounts/{(%23%2Fdefinitions%2Fenterprise-account%2Fdefinitions%2Fid)}/usage/monthly", - "method": "GET", - "rel": "instances", - "title": "Info", - "targetSchema": { - "items": { - "$ref": "#/definitions/enterprise-account-usage-monthly" - }, - "type": [ - "array" - ] - } - } - ], - "properties": { - "addons": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/addons" - }, - "teams": { - "description": "usage by team", - "type": [ - "array" - ], - "items": { - "type": [ - "object" - ], - "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" - }, - "name": { - "$ref": "#/definitions/team-usage-monthly/definitions/name" - }, - "partner": { - "$ref": "#/definitions/team-usage-monthly/definitions/partner" - }, - "space": { - "$ref": "#/definitions/team-usage-monthly/definitions/space" - } - } - } - }, - "connect": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/connect" - }, - "data": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/data" - }, - "dynos": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/dynos" - }, - "id": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/id" - }, - "month": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/month" - }, - "name": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/name" - }, - "partner": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/partner" - }, - "space": { - "$ref": "#/definitions/enterprise-account-usage-monthly/definitions/space" - } - } - }, - "enterprise-account": { - "$schema": "http://json-schema.org/draft-04/hyper-schema", - "description": "Enterprise accounts allow companies to manage their development teams and billing.", - "stability": "development", - "strictProperties": true, - "title": "Heroku Platform API - Enterprise Account", - "type": [ - "object" - ], - "definitions": { - "created_at": { - "description": "when the enterprise account was created", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", - "readOnly": true, - "type": [ - "string" - ] - }, - "id": { - "description": "unique identifier of the enterprise account", - "example": "01234567-89ab-cdef-0123-456789abcdef", - "format": "uuid", - "readOnly": true, - "type": [ - "string" - ] - }, - "identity": { - "anyOf": [ - { - "$ref": "#/definitions/enterprise-account/definitions/id" - } - ] - }, - "name": { - "description": "unique name of the enterprise account", - "example": "example", - "readOnly": true, - "type": [ - "string" - ] - }, - "updated_at": { - "description": "when the enterprise account was updated", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", - "readOnly": true, - "type": [ - "string" - ] - }, - "permissions": { - "description": "the current user's permissions for this enterprise account", - "readOnly": true, - "type": [ - "array" - ], - "items": { - "example": "view", - "type": [ - "string" - ] - } + "array" + ], + "items": { + "example": "view", + "type": [ + "string" + ] + } }, "trial": { "description": "whether the enterprise account is a trial or not", @@ -6885,27 +6891,7 @@ "$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" } } }, @@ -7202,7 +7188,7 @@ } }, "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, @@ -7245,6 +7231,13 @@ "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", @@ -9787,7 +9780,7 @@ "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": { @@ -10137,7 +10130,7 @@ "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": { @@ -10486,7 +10479,7 @@ "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": { @@ -10513,7 +10506,7 @@ "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": { @@ -10822,11 +10815,11 @@ "targetSchema": { "items": { "$ref": "#/definitions/pipeline" - } + }, + "type": [ + "array" + ] }, - "type": [ - "array" - ], "title": "List" } ], @@ -12524,17 +12517,21 @@ "object" ], "definitions": { - "certificate_chain": { - "description": "raw contents of the public certificate chain (eg: .crt or .pem file)", - "example": "-----BEGIN CERTIFICATE----- ...", - "readOnly": false, + "ca_signed?": { + "readOnly": true, "type": [ - "string" + "boolean" ] }, - "cname": { - "description": "deprecated; refer to GET /apps/:id/domains for valid CNAMEs for this app", - "example": "example.herokussl.com", + "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" @@ -12549,6 +12546,33 @@ "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" + ] + }, + "expires_at": { + "readOnly": true, + "format": "date-time", + "type": [ + "string" + ] + }, "id": { "description": "unique identifier of this SNI endpoint", "example": "01234567-89ab-cdef-0123-456789abcdef", @@ -12568,6 +12592,12 @@ } ] }, + "issuer": { + "readOnly": true, + "type": [ + "string" + ] + }, "name": { "description": "unique name for SNI endpoint", "example": "example", @@ -12585,6 +12615,25 @@ "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 SNI endpoint was updated", "example": "2012-01-01T12:00:00Z", @@ -12690,9 +12739,6 @@ "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" }, @@ -12704,7 +12750,66 @@ }, "updated_at": { "$ref": "#/definitions/sni-endpoint/definitions/updated_at" - } + }, + "display_name": { + "$ref": "#/definitions/sni-endpoint/definitions/display_name" + }, + "domains": { + "$ref": "#/definitions/sni-endpoint/definitions/domains" + }, + "app": { + "description": "application that this SSL certificate is on", + "properties": { + "id": { + "$ref": "#/definitions/app/definitions/id" + }, + "name": { + "$ref": "#/definitions/app/definitions/name" + } + }, + "strictProperties": true, + "type": [ + "object" + ] + }, + "ssl_cert": { + "description": "certificate provided by this endpoint", + "type": [ + "object" + ], + "properties": { + "ca_signed?": { + "$ref": "#/definitions/sni-endpoint/definitions/ca_signed?" + }, + "cert_domains": { + "$ref": "#/definitions/sni-endpoint/definitions/cert_domains" + }, + "expires_at": { + "$ref": "#/definitions/sni-endpoint/definitions/expires_at" + }, + "issuer": { + "$ref": "#/definitions/sni-endpoint/definitions/issuer" + }, + "self_signed?": { + "$ref": "#/definitions/sni-endpoint/definitions/self_signed?" + }, + "starts_at": { + "$ref": "#/definitions/sni-endpoint/definitions/starts_at" + }, + "subject": { + "$ref": "#/definitions/sni-endpoint/definitions/subject" + }, + "id": { + "description": "unique identifier of this SSL certificate", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + } + } + } } }, "source": { @@ -13187,7 +13292,7 @@ ] }, "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, @@ -13263,6 +13368,13 @@ "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", @@ -13362,6 +13474,9 @@ }, "data_cidr": { "$ref": "#/definitions/space/definitions/data_cidr" + }, + "log_drain_url": { + "$ref": "#/definitions/space/definitions/log_drain_url" } }, "required": [ @@ -13445,52 +13560,18 @@ } } }, - "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.", + "stack": { + "description": "Stacks are the different application execution environments available in the Heroku platform.", "$schema": "http://json-schema.org/draft-04/hyper-schema", - "title": "Heroku Platform API - SSL Endpoint", "stability": "production", "strictProperties": true, + "title": "Heroku Platform API - Stack", "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", + "description": "when stack was introduced", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, @@ -13498,24 +13579,16 @@ "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": { + "default": { + "description": "indicates this stack is the default for new apps", + "example": true, "readOnly": true, - "format": "date-time", "type": [ - "string" + "boolean" ] }, "id": { - "description": "unique identifier of this SSL endpoint", + "description": "unique identifier of stack", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, @@ -13526,66 +13599,31 @@ "identity": { "anyOf": [ { - "$ref": "#/definitions/ssl-endpoint/definitions/id" + "$ref": "#/definitions/stack/definitions/name" }, { - "$ref": "#/definitions/ssl-endpoint/definitions/name" + "$ref": "#/definitions/stack/definitions/id" } ] }, - "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": { + "description": "unique name of stack", + "example": "heroku-18", "readOnly": true, - "format": "date-time", "type": [ "string" ] }, - "subject": { + "state": { + "description": "availability of this stack: beta, deprecated or public", + "example": "public", "readOnly": true, "type": [ "string" ] }, "updated_at": { - "description": "when endpoint was updated", + "description": "when stack was last modified", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, @@ -13596,294 +13634,43 @@ }, "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)}", + "description": "Stack info.", + "href": "/stacks/{(%23%2Fdefinitions%2Fstack%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { - "$ref": "#/definitions/ssl-endpoint" + "$ref": "#/definitions/stack" }, "title": "Info" }, { - "description": "List existing SSL endpoints.", - "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints", + "description": "List available stacks.", + "href": "/stacks", "method": "GET", "rel": "instances", "targetSchema": { "items": { - "$ref": "#/definitions/ssl-endpoint" + "$ref": "#/definitions/stack" }, "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" + "default": { + "$ref": "#/definitions/stack/definitions/default" }, "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" - } + "$ref": "#/definitions/stack/definitions/created_at" }, "id": { - "$ref": "#/definitions/ssl-endpoint/definitions/id" + "$ref": "#/definitions/stack/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, - "title": "Heroku Platform API - Stack", - "type": [ - "object" - ], - "definitions": { - "created_at": { - "description": "when stack was introduced", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", - "readOnly": true, - "type": [ - "string" - ] - }, - "default": { - "description": "indicates this stack is the default for new apps", - "example": true, - "readOnly": true, - "type": [ - "boolean" - ] - }, - "id": { - "description": "unique identifier of stack", - "example": "01234567-89ab-cdef-0123-456789abcdef", - "format": "uuid", - "readOnly": true, - "type": [ - "string" - ] - }, - "identity": { - "anyOf": [ - { - "$ref": "#/definitions/stack/definitions/name" - }, - { - "$ref": "#/definitions/stack/definitions/id" - } - ] - }, - "name": { - "description": "unique name of stack", - "example": "heroku-18", - "readOnly": true, - "type": [ - "string" - ] - }, - "state": { - "description": "availability of this stack: beta, deprecated or public", - "example": "public", - "readOnly": true, - "type": [ - "string" - ] - }, - "updated_at": { - "description": "when stack was last modified", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", - "readOnly": true, - "type": [ - "string" - ] - } - }, - "links": [ - { - "description": "Stack info.", - "href": "/stacks/{(%23%2Fdefinitions%2Fstack%2Fdefinitions%2Fidentity)}", - "method": "GET", - "rel": "self", - "targetSchema": { - "$ref": "#/definitions/stack" - }, - "title": "Info" - }, - { - "description": "List available stacks.", - "href": "/stacks", - "method": "GET", - "rel": "instances", - "targetSchema": { - "items": { - "$ref": "#/definitions/stack" - }, - "type": [ - "array" - ] - }, - "title": "List" - } - ], - "properties": { - "default": { - "$ref": "#/definitions/stack/definitions/default" - }, - "created_at": { - "$ref": "#/definitions/stack/definitions/created_at" - }, - "id": { - "$ref": "#/definitions/stack/definitions/id" - }, - "name": { - "$ref": "#/definitions/stack/definitions/name" + "$ref": "#/definitions/stack/definitions/name" }, "state": { "$ref": "#/definitions/stack/definitions/state" @@ -14463,51 +14250,74 @@ } } }, - "team-feature": { - "description": "A team feature represents a feature enabled on a team account.", + "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 Feature", + "title": "Heroku Platform API - Team Daily Usage", "type": [ "object" ], "definitions": { - "created_at": { - "description": "when team feature was created", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", + "addons": { + "description": "total add-on credits used", + "example": 250.0, "readOnly": true, "type": [ - "string" + "number" ] }, - "description": { - "description": "description of team feature", - "example": "Causes account to example.", + "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": [ - "string" + "number" ] }, - "doc_url": { - "description": "documentation URL of team feature", - "example": "http://devcenter.heroku.com/articles/example", + "date": { + "description": "date of the usage", + "example": "2019-01-01", + "format": "date", "readOnly": true, "type": [ "string" ] }, - "enabled": { - "description": "whether or not team feature has been enabled", - "example": true, - "readOnly": false, + "dynos": { + "description": "dynos used", + "example": 1.548, + "readOnly": true, "type": [ - "boolean" + "number" ] }, "id": { - "description": "unique identifier of team feature", + "description": "team identifier", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, @@ -14515,52 +14325,43 @@ "string" ] }, - "identity": { - "anyOf": [ - { - "$ref": "#/definitions/team-feature/definitions/id" - }, - { - "$ref": "#/definitions/team-feature/definitions/name" - } - ] - }, "name": { - "description": "unique name of team feature", - "example": "name", + "description": "name of the team", + "example": "ops", "readOnly": true, "type": [ "string" ] }, - "state": { - "description": "state of team feature", - "example": "public", + "partner": { + "description": "total add-on credits used for third party add-ons", + "example": 12.34, "readOnly": true, "type": [ - "string" + "number" ] }, - "updated_at": { - "description": "when team feature was updated", - "example": "2012-01-01T12:00:00Z", - "format": "date-time", + "space": { + "description": "space credits used", + "example": 1.548, "readOnly": true, "type": [ - "string" + "number" ] }, - "display_name": { - "description": "user readable feature name", - "example": "My Feature", + "start_date": { + "description": "range start date", + "example": "2019-01-25", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "readOnly": true, "type": [ "string" ] }, - "feedback_email": { - "description": "e-mail to send feedback about the feature", - "example": "feedback@heroku.com", + "end_date": { + "description": "range end date", + "example": "2019-02-25", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "readOnly": true, "type": [ "string" @@ -14569,29 +14370,202 @@ }, "links": [ { - "description": "Info for an existing team feature.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/features/{(%23%2Fdefinitions%2Fteam-feature%2Fdefinitions%2Fidentity)}", + "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", - "rel": "self", - "targetSchema": { - "$ref": "#/definitions/team-feature" + "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" + ] }, - "title": "Info" - }, - { - "description": "List existing team features.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/features", - "method": "GET", "rel": "instances", "targetSchema": { "items": { - "$ref": "#/definitions/team-feature" + "$ref": "#/definitions/team-daily-usage" }, "type": [ "array" ] - }, - "title": "List" + } + } + ], + "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, + "title": "Heroku Platform API - Team Feature", + "type": [ + "object" + ], + "definitions": { + "created_at": { + "description": "when team feature was created", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", + "readOnly": true, + "type": [ + "string" + ] + }, + "description": { + "description": "description of team feature", + "example": "Causes account to example.", + "readOnly": true, + "type": [ + "string" + ] + }, + "doc_url": { + "description": "documentation URL of team feature", + "example": "http://devcenter.heroku.com/articles/example", + "readOnly": true, + "type": [ + "string" + ] + }, + "enabled": { + "description": "whether or not team feature has been enabled", + "example": true, + "readOnly": false, + "type": [ + "boolean" + ] + }, + "id": { + "description": "unique identifier of team feature", + "example": "01234567-89ab-cdef-0123-456789abcdef", + "format": "uuid", + "readOnly": true, + "type": [ + "string" + ] + }, + "identity": { + "anyOf": [ + { + "$ref": "#/definitions/team-feature/definitions/id" + }, + { + "$ref": "#/definitions/team-feature/definitions/name" + } + ] + }, + "name": { + "description": "unique name of team feature", + "example": "name", + "readOnly": true, + "type": [ + "string" + ] + }, + "state": { + "description": "state of team feature", + "example": "public", + "readOnly": true, + "type": [ + "string" + ] + }, + "updated_at": { + "description": "when team feature was updated", + "example": "2012-01-01T12:00:00Z", + "format": "date-time", + "readOnly": true, + "type": [ + "string" + ] + }, + "display_name": { + "description": "user readable feature name", + "example": "My Feature", + "readOnly": true, + "type": [ + "string" + ] + }, + "feedback_email": { + "description": "e-mail to send feedback about the feature", + "example": "feedback@heroku.com", + "readOnly": true, + "type": [ + "string" + ] + } + }, + "links": [ + { + "description": "Info for an existing team feature.", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/features/{(%23%2Fdefinitions%2Fteam-feature%2Fdefinitions%2Fidentity)}", + "method": "GET", + "rel": "self", + "targetSchema": { + "$ref": "#/definitions/team-feature" + }, + "title": "Info" + }, + { + "description": "List existing team features.", + "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/features", + "method": "GET", + "rel": "instances", + "targetSchema": { + "items": { + "$ref": "#/definitions/team-feature" + }, + "type": [ + "array" + ] + }, + "title": "List" } ], "properties": { @@ -15345,281 +15319,7 @@ } } }, - "team-preferences": { - "description": "Tracks a Team's Preferences", - "$schema": "http://json-schema.org/draft-04/hyper-schema", - "stability": "development", - "strictProperties": true, - "title": "Heroku Platform API - Team Preferences", - "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": { - "description": "Whether whitelisting rules should be applied to add-on installations", - "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.", - "type": [ - "object" - ], - "properties": { - "addons": { - "$ref": "#/definitions/team-usage-daily/definitions/addons" - }, - "app_name": { - "$ref": "#/definitions/app/definitions/name" - }, - "data": { - "$ref": "#/definitions/team-usage-daily/definitions/data" - }, - "dynos": { - "$ref": "#/definitions/team-usage-daily/definitions/dynos" - }, - "partner": { - "$ref": "#/definitions/team-usage-daily/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" - ] - } - }, - "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?start=2019-01-01&end=2019-01-31' specifies all days in January for 2019.", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fid)}/usage/daily", - "method": "GET", - "title": "Info", - "rel": "instances", - "targetSchema": { - "items": { - "$ref": "#/definitions/team-usage-daily" - }, - "type": [ - "array" - ] - } - } - ], - "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" - }, - "date": { - "$ref": "#/definitions/team-usage-daily/definitions/date" - }, - "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" - } - } - }, - "team-usage-monthly": { + "team-monthly-usage": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Usage for an enterprise team at a monthly resolution.", "stability": "development", @@ -15644,19 +15344,19 @@ ], "properties": { "addons": { - "$ref": "#/definitions/team-usage-monthly/definitions/addons" + "$ref": "#/definitions/team-monthly-usage/definitions/addons" }, "app_name": { "$ref": "#/definitions/app/definitions/name" }, "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" }, "partner": { - "$ref": "#/definitions/team-usage-monthly/definitions/partner" + "$ref": "#/definitions/team-monthly-usage/definitions/partner" } } }, @@ -15725,18 +15425,52 @@ "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 months. Start and end dates can be specified as query parameters using the date format, YYYY-MM format. For example, '/teams/example-team/usage?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 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", - "title": "Info", "targetSchema": { "items": { - "$ref": "#/definitions/team-usage-monthly" + "$ref": "#/definitions/team-monthly-usage" }, "type": [ "array" @@ -15746,7 +15480,7 @@ ], "properties": { "addons": { - "$ref": "#/definitions/team-usage-monthly/definitions/addons" + "$ref": "#/definitions/team-monthly-usage/definitions/addons" }, "apps": { "description": "app usage in the team", @@ -15754,35 +15488,141 @@ "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" }, "month": { - "$ref": "#/definitions/team-usage-monthly/definitions/month" + "$ref": "#/definitions/team-monthly-usage/definitions/month" }, "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" + } + } + }, + "team-preferences": { + "description": "Tracks a Team's Preferences", + "$schema": "http://json-schema.org/draft-04/hyper-schema", + "stability": "development", + "strictProperties": true, + "title": "Heroku Platform API - Team Preferences", + "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" + }, + "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": { + "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" + }, + "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": "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": { "$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.", @@ -15862,12 +15702,11 @@ "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" } } }, @@ -17361,159 +17200,31 @@ "$ref": "#/definitions/vpn-connection" }, "title": "Info" - } - ] - }, - "whitelisted-add-on-service": { - "description": "Entities that have been whitelisted to be used by an Team", - "$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": [ - { - "description": "List all whitelisted Add-on Services for an Team", - "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" }, { - "description": "Whitelist an Add-on Service", - "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/whitelisted-addon-services", - "method": "POST", - "rel": "create", + "description": "Update a VPN connection in a private space.", + "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections/{(%23%2Fdefinitions%2Fvpn-connection%2Fdefinitions%2Fidentity)}", + "rel": "update", "schema": { - "type": [ - "object" - ], "properties": { - "addon_service": { - "description": "name of the Add-on to whitelist", - "example": "heroku-postgresql", - "type": [ - "string" - ] + "routable_cidrs": { + "$ref": "#/definitions/vpn-connection/definitions/routable_cidrs" } - } - }, - "targetSchema": { - "items": { - "$ref": "#/definitions/whitelisted-add-on-service" }, + "required": [ + "routable_cidrs" + ], "type": [ - "array" + "object" ] }, - "title": "Create By Team" - }, - { - "description": "Remove a whitelisted entity", - "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" + "$ref": "#/definitions/vpn-connection" }, - "title": "Delete By Team" - } - ], - "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" + "method": "PATCH", + "title": "Update" } - } + ] } }, "properties": { @@ -17610,14 +17321,14 @@ "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-usage-monthly": { - "$ref": "#/definitions/enterprise-account-usage-monthly" + "enterprise-account-monthly-usage": { + "$ref": "#/definitions/enterprise-account-monthly-usage" }, "enterprise-account": { "$ref": "#/definitions/enterprise-account" @@ -17751,9 +17462,6 @@ "space": { "$ref": "#/definitions/space" }, - "ssl-endpoint": { - "$ref": "#/definitions/ssl-endpoint" - }, "stack": { "$ref": "#/definitions/stack" }, @@ -17769,6 +17477,9 @@ "team-app": { "$ref": "#/definitions/team-app" }, + "team-daily-usage": { + "$ref": "#/definitions/team-daily-usage" + }, "team-feature": { "$ref": "#/definitions/team-feature" }, @@ -17781,18 +17492,15 @@ "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" }, @@ -17810,9 +17518,6 @@ }, "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.", diff --git a/vendor/modules.txt b/vendor/modules.txt index e3a268a8..d6fa0ba8 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -510,7 +510,7 @@ github.com/hashicorp/vault/sdk/helper/hclutil github.com/hashicorp/vault/sdk/helper/jsonutil github.com/hashicorp/vault/sdk/helper/parseutil github.com/hashicorp/vault/sdk/helper/strutil -# github.com/heroku/heroku-go/v5 v5.2.1 +# github.com/heroku/heroku-go/v5 v5.5.0 ## explicit; go 1.12 github.com/heroku/heroku-go/v5 # github.com/inconshreveable/mousetrap v1.0.0