# encoding: utf-8 # frozen_string_literal: true # # WARNING: Do not edit by hand, this file was generated by Heroics: # # https://github.com/interagent/heroics # require 'heroics' require 'uri' require 'moneta' module PlatformAPI # Get a Client configured to use HTTP Basic or header-based authentication. # # @param api_key [String] The API key to use when connecting. # @param options [Hash] Optionally, custom settings # to use with the client. Allowed options are `default_headers`, # `cache`, `user` and `url`. # @return [Client] A client configured to use the API with HTTP Basic # or header-based authentication. def self.connect(api_key, options=nil) options = custom_options(options) uri = URI.parse(options[:url]) if options[:user] uri.user = URI.encode_www_form_component options[:user] end if api_key uri.user ||= 'user' uri.password = api_key end client = Heroics.client_from_schema(SCHEMA, uri.to_s, options) Client.new(client) end # Get a Client configured to use OAuth authentication. # # @param oauth_token [String] The OAuth token to use with the API. # @param options [Hash] Optionally, custom settings # to use with the client. Allowed options are `default_headers`, # `cache` and `url`. # @return [Client] A client configured to use the API with OAuth # authentication. def self.connect_oauth(oauth_token, options=nil) options = custom_options(options) url = options[:url] client = Heroics.oauth_client_from_schema(oauth_token, SCHEMA, url, options) Client.new(client) end # Get a Client configured to use Token authentication. # # @param token [String] The token to use with the API. # @param options [Hash] Optionally, custom settings # to use with the client. Allowed options are `default_headers`, # `cache` and `url`. # @return [Client] A client configured to use the API with OAuth # authentication. def self.connect_token(token, options=nil) options = custom_options(options) url = options[:url] client = Heroics.token_client_from_schema(token, SCHEMA, url, options) Client.new(client) end # Get customized options. def self.custom_options(options) return default_options if options.nil? final_options = default_options if options[:default_headers] final_options[:default_headers].merge!(options[:default_headers]) end final_options[:cache] = options[:cache] || Moneta.new(:File, dir: "#{Dir.home}/.heroics/platform-api") final_options[:url] = options[:url] if options[:url] final_options[:user] = options[:user] if options[:user] final_options end # Get the default options. def self.default_options default_headers = {"Accept"=>"application/vnd.heroku+json; version=3", "User-Agent"=>"platform-api/2.2.0"} { default_headers: default_headers, url: "https://api.heroku.com" } end private_class_method :default_options, :custom_options # The platform API empowers developers to automate, extend and combine Heroku with other services. class Client def initialize(client) @client = client end # An account feature represents a Heroku labs capability that can be enabled or disabled for an account on Heroku. # # @return [AccountFeature] def account_feature @account_feature_resource ||= AccountFeature.new(@client) end # An account represents an individual signed up to use the Heroku platform. # # @return [Account] def account @account_resource ||= Account.new(@client) end # Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow whitelisted add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete. # # @return [AddonAction] def addon_action @addon_action_resource ||= AddonAction.new(@client) end # An add-on attachment represents a connection between an app and an add-on that it has been given access to. # # @return [AddonAttachment] def addon_attachment @addon_attachment_resource ||= AddonAttachment.new(@client) end # Configuration of an Add-on # # @return [AddonConfig] def addon_config @addon_config_resource ||= AddonConfig.new(@client) end # Add-on Plan Actions are Provider functionality for specific add-on installations # # @return [AddonPlanAction] def addon_plan_action @addon_plan_action_resource ||= AddonPlanAction.new(@client) end # Add-on region capabilities represent the relationship between an Add-on Service and a specific Region. Only Beta and GA add-ons are returned by these endpoints. # # @return [AddonRegionCapability] def addon_region_capability @addon_region_capability_resource ||= AddonRegionCapability.new(@client) end # Add-on services represent add-ons that may be provisioned for apps. Endpoints under add-on services can be accessed without authentication. # # @return [AddonService] def addon_service @addon_service_resource ||= AddonService.new(@client) end # Represents the delivery of a webhook notification, including its current status. # # @return [AddonWebhookDelivery] def addon_webhook_delivery @addon_webhook_delivery_resource ||= AddonWebhookDelivery.new(@client) end # Represents a webhook event that occurred. # # @return [AddonWebhookEvent] def addon_webhook_event @addon_webhook_event_resource ||= AddonWebhookEvent.new(@client) end # Represents the details of a webhook subscription # # @return [AddonWebhook] def addon_webhook @addon_webhook_resource ||= AddonWebhook.new(@client) end # Add-ons represent add-ons that have been provisioned and attached to one or more apps. # # @return [Addon] def addon @addon_resource ||= Addon.new(@client) end # An app feature represents a Heroku labs capability that can be enabled or disabled for an app on Heroku. # # @return [AppFeature] def app_feature @app_feature_resource ||= AppFeature.new(@client) end # App formation set describes the combination of process types with their quantities and sizes as well as application process tier # # @return [AppFormationSet] def app_formation_set @app_formation_set_resource ||= AppFormationSet.new(@client) end # An app setup represents an app on Heroku that is setup using an environment, addons, and scripts described in an app.json manifest file. # # @return [AppSetup] def app_setup @app_setup_resource ||= AppSetup.new(@client) end # An app transfer represents a two party interaction for transferring ownership of an app. # # @return [AppTransfer] def app_transfer @app_transfer_resource ||= AppTransfer.new(@client) end # Represents the delivery of a webhook notification, including its current status. # # @return [AppWebhookDelivery] def app_webhook_delivery @app_webhook_delivery_resource ||= AppWebhookDelivery.new(@client) end # Represents a webhook event that occurred. # # @return [AppWebhookEvent] def app_webhook_event @app_webhook_event_resource ||= AppWebhookEvent.new(@client) end # Represents the details of a webhook subscription # # @return [AppWebhook] def app_webhook @app_webhook_resource ||= AppWebhook.new(@client) end # An app represents the program that you would like to deploy and run on Heroku. # # @return [App] def app @app_resource ||= App.new(@client) end # A build result contains the output from a build. # # @return [BuildResult] def build_result @build_result_resource ||= BuildResult.new(@client) end # A build represents the process of transforming a code tarball into a slug # # @return [Build] def build @build_resource ||= Build.new(@client) end # A buildpack installation represents a buildpack that will be run against an app. # # @return [BuildpackInstallation] def buildpack_installation @buildpack_installation_resource ||= BuildpackInstallation.new(@client) end # A collaborator represents an account that has been given access to an app on Heroku. # # @return [Collaborator] def collaborator @collaborator_resource ||= Collaborator.new(@client) end # Config Vars allow you to manage the configuration information provided to an app on Heroku. # # @return [ConfigVar] def config_var @config_var_resource ||= ConfigVar.new(@client) end # A credit represents value that will be used up before further charges are assigned to an account. # # @return [Credit] def credit @credit_resource ||= Credit.new(@client) end # Domains define what web routes should be routed to an app on Heroku. # # @return [Domain] def domain @domain_resource ||= Domain.new(@client) end # Dyno sizes are the values and details of sizes that can be assigned to dynos. This information can also be found at : [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types). # # @return [DynoSize] def dyno_size @dyno_size_resource ||= DynoSize.new(@client) end # Dynos encapsulate running processes of an app on Heroku. Detailed information about dyno sizes can be found at: [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types). # # @return [Dyno] def dyno @dyno_resource ||= Dyno.new(@client) end # Filters are special endpoints to allow for API consumers to specify a subset of resources to consume in order to reduce the number of requests that are performed. Each filter endpoint endpoint is responsible for determining its supported request format. The endpoints are over POST in order to handle large request bodies without hitting request uri query length limitations, but the requests themselves are idempotent and will not have side effects. # # @return [FilterApps] def filter_apps @filter_apps_resource ||= FilterApps.new(@client) end # The formation of processes that should be maintained for an app. Update the formation to scale processes or change dyno sizes. Available process type names and commands are defined by the `process_types` attribute for the [slug](#slug) currently released on an app. # # @return [Formation] def formation @formation_resource ||= Formation.new(@client) end # Identity Providers represent the SAML configuration of an Organization. # # @return [IdentityProvider] def identity_provider @identity_provider_resource ||= IdentityProvider.new(@client) end # An inbound-ruleset is a collection of rules that specify what hosts can or cannot connect to an application. # # @return [InboundRuleset] def inbound_ruleset @inbound_ruleset_resource ||= InboundRuleset.new(@client) end # An invoice address represents the address that should be listed on an invoice. # # @return [InvoiceAddress] def invoice_address @invoice_address_resource ||= InvoiceAddress.new(@client) end # An invoice is an itemized bill of goods for an account which includes pricing and charges. # # @return [Invoice] def invoice @invoice_resource ||= Invoice.new(@client) end # Keys represent public SSH keys associated with an account and are used to authorize accounts as they are performing git operations. # # @return [Key] def key @key_resource ||= Key.new(@client) end # [Log drains](https://devcenter.heroku.com/articles/log-drains) provide a way to forward your Heroku logs to an external syslog server for long-term archiving. This external service must be configured to receive syslog packets from Heroku, whereupon its URL can be added to an app using this API. Some add-ons will add a log drain when they are provisioned to an app. These drains can only be removed by removing the add-on. # # @return [LogDrain] def log_drain @log_drain_resource ||= LogDrain.new(@client) end # A log session is a reference to the http based log stream for an app. # # @return [LogSession] def log_session @log_session_resource ||= LogSession.new(@client) end # OAuth authorizations represent clients that a Heroku user has authorized to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth) # # @return [OauthAuthorization] def oauth_authorization @oauth_authorization_resource ||= OauthAuthorization.new(@client) end # OAuth clients are applications that Heroku users can authorize to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth). # # @return [OauthClient] def oauth_client @oauth_client_resource ||= OauthClient.new(@client) end # OAuth grants are used to obtain authorizations on behalf of a user. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth) # # @return [OauthGrant] def oauth_grant @oauth_grant_resource ||= OauthGrant.new(@client) end # OAuth tokens provide access for authorized clients to act on behalf of a Heroku user to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth) # # @return [OauthToken] def oauth_token @oauth_token_resource ||= OauthToken.new(@client) end # Deprecated: A list of add-ons the Organization uses across all apps # # @return [OrganizationAddon] def organization_addon @organization_addon_resource ||= OrganizationAddon.new(@client) end # Deprecated: An organization collaborator represents an account that has been given access to an organization app on Heroku. # # @return [OrganizationAppCollaborator] def organization_app_collaborator @organization_app_collaborator_resource ||= OrganizationAppCollaborator.new(@client) end # Deprecated: An organization app encapsulates the organization specific functionality of Heroku apps. # # @return [OrganizationApp] def organization_app @organization_app_resource ||= OrganizationApp.new(@client) end # Deprecated: An organization feature represents a feature enabled on an organization account. # # @return [OrganizationFeature] def organization_feature @organization_feature_resource ||= OrganizationFeature.new(@client) end # Deprecated: An organization invitation represents an invite to an organization. # # @return [OrganizationInvitation] def organization_invitation @organization_invitation_resource ||= OrganizationInvitation.new(@client) end # Deprecated: An organization invoice is an itemized bill of goods for an organization which includes pricing and charges. # # @return [OrganizationInvoice] def organization_invoice @organization_invoice_resource ||= OrganizationInvoice.new(@client) end # Deprecated: An organization member is an individual with access to an organization. # # @return [OrganizationMember] def organization_member @organization_member_resource ||= OrganizationMember.new(@client) end # Deprecated: Tracks an organization's preferences # # @return [OrganizationPreferences] def organization_preferences @organization_preferences_resource ||= OrganizationPreferences.new(@client) end # Deprecated: Organizations allow you to manage access to a shared group of applications across your development team. # # @return [Organization] def organization @organization_resource ||= Organization.new(@client) end # An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with. # # @return [OutboundRuleset] def outbound_ruleset @outbound_ruleset_resource ||= OutboundRuleset.new(@client) end # A password reset represents a in-process password reset attempt. # # @return [PasswordReset] def password_reset @password_reset_resource ||= PasswordReset.new(@client) end # [Peering Info](https://devcenter.heroku.com/articles/private-space-vpc-peering) gives you the information necessary to peer an AWS VPC to a Private Space. # # @return [PeeringInfo] def peering_info @peering_info_resource ||= PeeringInfo.new(@client) end # [Peering](https://devcenter.heroku.com/articles/private-space-vpc-peering) provides a way to peer your Private Space VPC to another AWS VPC. # # @return [Peering] def peering @peering_resource ||= Peering.new(@client) end # Deprecated: An organization app permission is a behavior that is assigned to a user in an organization app. # # @return [OrganizationAppPermission] def organization_app_permission @organization_app_permission_resource ||= OrganizationAppPermission.new(@client) end # Information about an app's coupling to a pipeline # # @return [PipelineCoupling] def pipeline_coupling @pipeline_coupling_resource ||= PipelineCoupling.new(@client) end # Promotion targets represent an individual app being promoted to # # @return [PipelinePromotionTarget] def pipeline_promotion_target @pipeline_promotion_target_resource ||= PipelinePromotionTarget.new(@client) end # Promotions allow you to move code from an app in a pipeline to all targets # # @return [PipelinePromotion] def pipeline_promotion @pipeline_promotion_resource ||= PipelinePromotion.new(@client) end # A pipeline allows grouping of apps into different stages. # # @return [Pipeline] def pipeline @pipeline_resource ||= Pipeline.new(@client) end # Plans represent different configurations of add-ons that may be added to apps. Endpoints under add-on services can be accessed without authentication. # # @return [Plan] def plan @plan_resource ||= Plan.new(@client) end # Rate Limit represents the number of request tokens each account holds. Requests to this endpoint do not count towards the rate limit. # # @return [RateLimit] def rate_limit @rate_limit_resource ||= RateLimit.new(@client) end # A region represents a geographic location in which your application may run. # # @return [Region] def region @region_resource ||= Region.new(@client) end # A release represents a combination of code, config vars and add-ons for an app on Heroku. # # @return [Release] def release @release_resource ||= Release.new(@client) end # A slug is a snapshot of your application code that is ready to run on the platform. # # @return [Slug] def slug @slug_resource ||= Slug.new(@client) end # SMS numbers are used for recovery on accounts with two-factor authentication enabled. # # @return [SmsNumber] def sms_number @sms_number_resource ||= SmsNumber.new(@client) end # SNI Endpoint is a public address serving a custom SSL cert for HTTPS traffic, using the SNI TLS extension, to a Heroku app. # # @return [SniEndpoint] def sni_endpoint @sni_endpoint_resource ||= SniEndpoint.new(@client) end # A source is a location for uploading and downloading an application's source code. # # @return [Source] def source @source_resource ||= Source.new(@client) end # Space access represents the permissions a particular user has on a particular space. # # @return [SpaceAppAccess] def space_app_access @space_app_access_resource ||= SpaceAppAccess.new(@client) end # Network address translation (NAT) for stable outbound IP addresses from a space # # @return [SpaceNat] def space_nat @space_nat_resource ||= SpaceNat.new(@client) end # A space is an isolated, highly available, secure app execution environments, running in the modern VPC substrate. # # @return [Space] def space @space_resource ||= Space.new(@client) end # [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. # # @return [SSLEndpoint] def ssl_endpoint @ssl_endpoint_resource ||= SSLEndpoint.new(@client) end # Stacks are the different application execution environments available in the Heroku platform. # # @return [Stack] def stack @stack_resource ||= Stack.new(@client) end # A team collaborator represents an account that has been given access to a team app on Heroku. # # @return [TeamAppCollaborator] def team_app_collaborator @team_app_collaborator_resource ||= TeamAppCollaborator.new(@client) end # A team app permission is a behavior that is assigned to a user in a team app. # # @return [TeamAppPermission] def team_app_permission @team_app_permission_resource ||= TeamAppPermission.new(@client) end # A team app encapsulates the team specific functionality of Heroku apps. # # @return [TeamApp] def team_app @team_app_resource ||= TeamApp.new(@client) end # A team feature represents a feature enabled on a team account. # # @return [TeamFeature] def team_feature @team_feature_resource ||= TeamFeature.new(@client) end # A team invitation represents an invite to a team. # # @return [TeamInvitation] def team_invitation @team_invitation_resource ||= TeamInvitation.new(@client) end # A Team Invoice is an itemized bill of goods for a team which includes pricing and charges. # # @return [TeamInvoice] def team_invoice @team_invoice_resource ||= TeamInvoice.new(@client) end # A team member is an individual with access to a team. # # @return [TeamMember] def team_member @team_member_resource ||= TeamMember.new(@client) end # Tracks a Team's Preferences # # @return [TeamPreferences] def team_preferences @team_preferences_resource ||= TeamPreferences.new(@client) end # Teams allow you to manage access to a shared group of applications and other resources. # # @return [Team] def team @team_resource ||= Team.new(@client) end # A single test case belonging to a test run # # @return [TestCase] def test_case @test_case_resource ||= TestCase.new(@client) end # A single test node belonging to a test run # # @return [TestNode] def test_node @test_node_resource ||= TestNode.new(@client) end # An execution or trial of one or more tests # # @return [TestRun] def test_run @test_run_resource ||= TestRun.new(@client) end # Tracks a user's preferences and message dismissals # # @return [UserPreferences] def user_preferences @user_preferences_resource ||= UserPreferences.new(@client) end # [VPN](https://devcenter.heroku.com/articles/private-spaces-vpn?preview=1) provides a way to connect your Private Spaces to your network via VPN. # # @return [VpnConnection] def vpn_connection @vpn_connection_resource ||= VpnConnection.new(@client) end # Entities that have been whitelisted to be used by an Organization # # @return [WhitelistedAddonService] def whitelisted_addon_service @whitelisted_addon_service_resource ||= WhitelistedAddonService.new(@client) end end private # An account feature represents a Heroku labs capability that can be enabled or disabled for an account on Heroku. class AccountFeature def initialize(client) @client = client end # Info for an existing account feature. # # @param account_feature_id_or_account_feature_name: unique identifier of account feature or unique name of account feature def info(account_feature_id_or_account_feature_name) @client.account_feature.info(account_feature_id_or_account_feature_name) end # List existing account features. def list() @client.account_feature.list() end # Update an existing account feature. # # @param account_feature_id_or_account_feature_name: unique identifier of account feature or unique name of account feature # @param body: the object to pass as the request payload def update(account_feature_id_or_account_feature_name, body = {}) @client.account_feature.update(account_feature_id_or_account_feature_name, body) end end # An account represents an individual signed up to use the Heroku platform. class Account def initialize(client) @client = client end # Info for account. def info() @client.account.info() end # Update account. # # @param body: the object to pass as the request payload def update(body = {}) @client.account.update(body) end # Delete account. Note that this action cannot be undone. def delete() @client.account.delete() end # Info for account. # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def info_by_user(account_email_or_account_id_or_account_self) @client.account.info_by_user(account_email_or_account_id_or_account_self) end # Update account. # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user # @param body: the object to pass as the request payload def update_by_user(account_email_or_account_id_or_account_self, body = {}) @client.account.update_by_user(account_email_or_account_id_or_account_self, body) end # Delete account. Note that this action cannot be undone. # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def delete_by_user(account_email_or_account_id_or_account_self) @client.account.delete_by_user(account_email_or_account_id_or_account_self) end end # Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow whitelisted add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete. class AddonAction def initialize(client) @client = client end # Mark an add-on as provisioned for use. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def provision(addon_id_or_addon_name) @client.addon_action.provision(addon_id_or_addon_name) end # Mark an add-on as deprovisioned. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def deprovision(addon_id_or_addon_name) @client.addon_action.deprovision(addon_id_or_addon_name) end end # An add-on attachment represents a connection between an app and an add-on that it has been given access to. class AddonAttachment def initialize(client) @client = client end # Create a new add-on attachment. # # @param body: the object to pass as the request payload def create(body = {}) @client.addon_attachment.create(body) end # Delete an existing add-on attachment. # # @param addon_attachment_id: unique identifier of this add-on attachment def delete(addon_attachment_id) @client.addon_attachment.delete(addon_attachment_id) end # Info for existing add-on attachment. # # @param addon_attachment_id: unique identifier of this add-on attachment def info(addon_attachment_id) @client.addon_attachment.info(addon_attachment_id) end # List existing add-on attachments. def list() @client.addon_attachment.list() end # List existing add-on attachments for an add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def list_by_addon(addon_id_or_addon_name) @client.addon_attachment.list_by_addon(addon_id_or_addon_name) end # List existing add-on attachments for an app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list_by_app(app_id_or_app_name) @client.addon_attachment.list_by_app(app_id_or_app_name) end # Info for existing add-on attachment for an app. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param addon_attachment_id_or_addon_attachment_name: unique identifier of this add-on attachment or unique name for this add-on attachment to this app def info_by_app(app_id_or_app_name, addon_attachment_id_or_addon_attachment_name) @client.addon_attachment.info_by_app(app_id_or_app_name, addon_attachment_id_or_addon_attachment_name) end # Resolve an add-on attachment from a name, optionally passing an app name. If there are matches it returns at least one add-on attachment (exact match) or many. # # @param body: the object to pass as the request payload def resolution(body = {}) @client.addon_attachment.resolution(body) end end # Configuration of an Add-on class AddonConfig def initialize(client) @client = client end # Get an add-on's config. Accessible by customers with access and by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def list(addon_id_or_addon_name) @client.addon_config.list(addon_id_or_addon_name) end # Update an add-on's config. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param body: the object to pass as the request payload def update(addon_id_or_addon_name, body = {}) @client.addon_config.update(addon_id_or_addon_name, body) end end # Add-on Plan Actions are Provider functionality for specific add-on installations class AddonPlanAction def initialize(client) @client = client end end # Add-on region capabilities represent the relationship between an Add-on Service and a specific Region. Only Beta and GA add-ons are returned by these endpoints. class AddonRegionCapability def initialize(client) @client = client end # List all existing add-on region capabilities. def list() @client.addon_region_capability.list() end # List existing add-on region capabilities for an add-on-service # # @param addon_service_id_or_addon_service_name: unique identifier of this add-on-service or unique name of this add-on-service def list_by_addon_service(addon_service_id_or_addon_service_name) @client.addon_region_capability.list_by_addon_service(addon_service_id_or_addon_service_name) end # List existing add-on region capabilities for a region. # # @param region_id_or_region_name: unique identifier of region or unique name of region def list_by_region(region_id_or_region_name) @client.addon_region_capability.list_by_region(region_id_or_region_name) end end # Add-on services represent add-ons that may be provisioned for apps. Endpoints under add-on services can be accessed without authentication. class AddonService def initialize(client) @client = client end # Info for existing add-on-service. # # @param addon_service_id_or_addon_service_name: unique identifier of this add-on-service or unique name of this add-on-service def info(addon_service_id_or_addon_service_name) @client.addon_service.info(addon_service_id_or_addon_service_name) end # List existing add-on-services. def list() @client.addon_service.list() end end # Represents the delivery of a webhook notification, including its current status. class AddonWebhookDelivery def initialize(client) @client = client end # Returns the info for an existing delivery. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param app_webhook_delivery_id: the delivery's unique identifier def info(addon_id_or_addon_name, app_webhook_delivery_id) @client.addon_webhook_delivery.info(addon_id_or_addon_name, app_webhook_delivery_id) end # Lists existing deliveries for an add-on. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def list(addon_id_or_addon_name) @client.addon_webhook_delivery.list(addon_id_or_addon_name) end end # Represents a webhook event that occurred. class AddonWebhookEvent def initialize(client) @client = client end # Returns the info for a specified webhook event. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param app_webhook_event_id: the event's unique identifier def info(addon_id_or_addon_name, app_webhook_event_id) @client.addon_webhook_event.info(addon_id_or_addon_name, app_webhook_event_id) end # Lists existing webhook events for an add-on. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def list(addon_id_or_addon_name) @client.addon_webhook_event.list(addon_id_or_addon_name) end end # Represents the details of a webhook subscription class AddonWebhook def initialize(client) @client = client end # Create an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param body: the object to pass as the request payload def create(addon_id_or_addon_name, body = {}) @client.addon_webhook.create(addon_id_or_addon_name, body) end # Removes an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param app_webhook_id: the webhook's unique identifier def delete(addon_id_or_addon_name, app_webhook_id) @client.addon_webhook.delete(addon_id_or_addon_name, app_webhook_id) end # Returns the info for an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param app_webhook_id: the webhook's unique identifier def info(addon_id_or_addon_name, app_webhook_id) @client.addon_webhook.info(addon_id_or_addon_name, app_webhook_id) end # List all webhook subscriptions for a particular add-on. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def list(addon_id_or_addon_name) @client.addon_webhook.list(addon_id_or_addon_name) end # Updates the details of an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param app_webhook_id: the webhook's unique identifier # @param body: the object to pass as the request payload def update(addon_id_or_addon_name, app_webhook_id, body = {}) @client.addon_webhook.update(addon_id_or_addon_name, app_webhook_id, body) end end # Add-ons represent add-ons that have been provisioned and attached to one or more apps. class Addon def initialize(client) @client = client end # List all existing add-ons. def list() @client.addon.list() end # Info for an existing add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def info(addon_id_or_addon_name) @client.addon.info(addon_id_or_addon_name) end # Create a new add-on. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.addon.create(app_id_or_app_name, body) end # Delete an existing add-on. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def delete(app_id_or_app_name, addon_id_or_addon_name) @client.addon.delete(app_id_or_app_name, addon_id_or_addon_name) end # Info for an existing add-on. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def info_by_app(app_id_or_app_name, addon_id_or_addon_name) @client.addon.info_by_app(app_id_or_app_name, addon_id_or_addon_name) end # List existing add-ons for an app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list_by_app(app_id_or_app_name) @client.addon.list_by_app(app_id_or_app_name) end # Change add-on plan. Some add-ons may not support changing plans. In that case, an error will be returned. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param body: the object to pass as the request payload def update(app_id_or_app_name, addon_id_or_addon_name, body = {}) @client.addon.update(app_id_or_app_name, addon_id_or_addon_name, body) end # List all existing add-ons a user has access to # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def list_by_user(account_email_or_account_id_or_account_self) @client.addon.list_by_user(account_email_or_account_id_or_account_self) end # List add-ons used across all Team apps # # @param team_name_or_team_id: unique name of team or unique identifier of team def list_by_team(team_name_or_team_id) @client.addon.list_by_team(team_name_or_team_id) end # Resolve an add-on from a name, optionally passing an app name. If there are matches it returns at least one add-on (exact match) or many. # # @param body: the object to pass as the request payload def resolution(body = {}) @client.addon.resolution(body) end end # An app feature represents a Heroku labs capability that can be enabled or disabled for an app on Heroku. class AppFeature def initialize(client) @client = client end # Info for an existing app feature. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param app_feature_id_or_app_feature_name: unique identifier of app feature or unique name of app feature def info(app_id_or_app_name, app_feature_id_or_app_feature_name) @client.app_feature.info(app_id_or_app_name, app_feature_id_or_app_feature_name) end # List existing app features. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.app_feature.list(app_id_or_app_name) end # Update an existing app feature. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param app_feature_id_or_app_feature_name: unique identifier of app feature or unique name of app feature # @param body: the object to pass as the request payload def update(app_id_or_app_name, app_feature_id_or_app_feature_name, body = {}) @client.app_feature.update(app_id_or_app_name, app_feature_id_or_app_feature_name, body) end end # App formation set describes the combination of process types with their quantities and sizes as well as application process tier class AppFormationSet def initialize(client) @client = client end end # An app setup represents an app on Heroku that is setup using an environment, addons, and scripts described in an app.json manifest file. class AppSetup def initialize(client) @client = client end # Create a new app setup from a gzipped tar archive containing an app.json manifest file. # # @param body: the object to pass as the request payload def create(body = {}) @client.app_setup.create(body) end # Get the status of an app setup. # # @param app_setup_id: unique identifier of app setup def info(app_setup_id) @client.app_setup.info(app_setup_id) end end # An app transfer represents a two party interaction for transferring ownership of an app. class AppTransfer def initialize(client) @client = client end # Create a new app transfer. # # @param body: the object to pass as the request payload def create(body = {}) @client.app_transfer.create(body) end # Delete an existing app transfer # # @param app_transfer_id_or_app_name: unique identifier of app transfer or unique name of app def delete(app_transfer_id_or_app_name) @client.app_transfer.delete(app_transfer_id_or_app_name) end # Info for existing app transfer. # # @param app_transfer_id_or_app_name: unique identifier of app transfer or unique name of app def info(app_transfer_id_or_app_name) @client.app_transfer.info(app_transfer_id_or_app_name) end # List existing apps transfers. def list() @client.app_transfer.list() end # Update an existing app transfer. # # @param app_transfer_id_or_app_name: unique identifier of app transfer or unique name of app # @param body: the object to pass as the request payload def update(app_transfer_id_or_app_name, body = {}) @client.app_transfer.update(app_transfer_id_or_app_name, body) end end # Represents the delivery of a webhook notification, including its current status. class AppWebhookDelivery def initialize(client) @client = client end # Returns the info for an existing delivery. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param app_webhook_delivery_id: the delivery's unique identifier def info(app_id_or_app_name, app_webhook_delivery_id) @client.app_webhook_delivery.info(app_id_or_app_name, app_webhook_delivery_id) end # Lists existing deliveries for an app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.app_webhook_delivery.list(app_id_or_app_name) end end # Represents a webhook event that occurred. class AppWebhookEvent def initialize(client) @client = client end # Returns the info for a specified webhook event. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param app_webhook_event_id: the event's unique identifier def info(app_id_or_app_name, app_webhook_event_id) @client.app_webhook_event.info(app_id_or_app_name, app_webhook_event_id) end # Lists existing webhook events for an app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.app_webhook_event.list(app_id_or_app_name) end end # Represents the details of a webhook subscription class AppWebhook def initialize(client) @client = client end # Create an app webhook subscription. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.app_webhook.create(app_id_or_app_name, body) end # Removes an app webhook subscription. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param app_webhook_id: the webhook's unique identifier def delete(app_id_or_app_name, app_webhook_id) @client.app_webhook.delete(app_id_or_app_name, app_webhook_id) end # Returns the info for an app webhook subscription. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param app_webhook_id: the webhook's unique identifier def info(app_id_or_app_name, app_webhook_id) @client.app_webhook.info(app_id_or_app_name, app_webhook_id) end # List all webhook subscriptions for a particular app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.app_webhook.list(app_id_or_app_name) end # Updates the details of an app webhook subscription. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param app_webhook_id: the webhook's unique identifier # @param body: the object to pass as the request payload def update(app_id_or_app_name, app_webhook_id, body = {}) @client.app_webhook.update(app_id_or_app_name, app_webhook_id, body) end end # An app represents the program that you would like to deploy and run on Heroku. class App def initialize(client) @client = client end # Create a new app. # # @param body: the object to pass as the request payload def create(body = {}) @client.app.create(body) end # Delete an existing app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def delete(app_id_or_app_name) @client.app.delete(app_id_or_app_name) end # Info for existing app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def info(app_id_or_app_name) @client.app.info(app_id_or_app_name) end # List existing apps. def list() @client.app.list() end # List owned and collaborated apps (excludes team apps). # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def list_owned_and_collaborated(account_email_or_account_id_or_account_self) @client.app.list_owned_and_collaborated(account_email_or_account_id_or_account_self) end # Update an existing app. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def update(app_id_or_app_name, body = {}) @client.app.update(app_id_or_app_name, body) end # Enable ACM flag for an app # # @param app_id_or_app_name: unique identifier of app or unique name of app def enable_acm(app_id_or_app_name) @client.app.enable_acm(app_id_or_app_name) end # Disable ACM flag for an app # # @param app_id_or_app_name: unique identifier of app or unique name of app def disable_acm(app_id_or_app_name) @client.app.disable_acm(app_id_or_app_name) end # Refresh ACM for an app # # @param app_id_or_app_name: unique identifier of app or unique name of app def refresh_acm(app_id_or_app_name) @client.app.refresh_acm(app_id_or_app_name) end end # A build result contains the output from a build. class BuildResult def initialize(client) @client = client end # Info for existing result. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param build_id: unique identifier of build def info(app_id_or_app_name, build_id) @client.build_result.info(app_id_or_app_name, build_id) end end # A build represents the process of transforming a code tarball into a slug class Build def initialize(client) @client = client end # Create a new build. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.build.create(app_id_or_app_name, body) end # Info for existing build. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param build_id: unique identifier of build def info(app_id_or_app_name, build_id) @client.build.info(app_id_or_app_name, build_id) end # List existing build. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.build.list(app_id_or_app_name) end # Destroy a build cache. # # @param app_id_or_app_name: unique identifier of app or unique name of app def delete_cache(app_id_or_app_name) @client.build.delete_cache(app_id_or_app_name) end end # A buildpack installation represents a buildpack that will be run against an app. class BuildpackInstallation def initialize(client) @client = client end # Update an app's buildpack installations. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def update(app_id_or_app_name, body = {}) @client.buildpack_installation.update(app_id_or_app_name, body) end # List an app's existing buildpack installations. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.buildpack_installation.list(app_id_or_app_name) end end # A collaborator represents an account that has been given access to an app on Heroku. class Collaborator def initialize(client) @client = client end # Create a new collaborator. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.collaborator.create(app_id_or_app_name, body) end # Delete an existing collaborator. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param collaborator_email_or_collaborator_id: invited email address of collaborator or unique identifier of collaborator def delete(app_id_or_app_name, collaborator_email_or_collaborator_id) @client.collaborator.delete(app_id_or_app_name, collaborator_email_or_collaborator_id) end # Info for existing collaborator. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param collaborator_email_or_collaborator_id: invited email address of collaborator or unique identifier of collaborator def info(app_id_or_app_name, collaborator_email_or_collaborator_id) @client.collaborator.info(app_id_or_app_name, collaborator_email_or_collaborator_id) end # List existing collaborators. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.collaborator.list(app_id_or_app_name) end end # Config Vars allow you to manage the configuration information provided to an app on Heroku. class ConfigVar def initialize(client) @client = client end # Get config-vars for app. # # @param app_id_or_app_name: unique identifier of app or unique name of app def info_for_app(app_id_or_app_name) @client.config_var.info_for_app(app_id_or_app_name) end # Get config-vars for a release. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param release_id_or_release_version: unique identifier of release or unique version assigned to the release def info_for_app_release(app_id_or_app_name, release_id_or_release_version) @client.config_var.info_for_app_release(app_id_or_app_name, release_id_or_release_version) end # Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `null`. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def update(app_id_or_app_name, body = {}) @client.config_var.update(app_id_or_app_name, body) end end # A credit represents value that will be used up before further charges are assigned to an account. class Credit def initialize(client) @client = client end # Create a new credit. # # @param body: the object to pass as the request payload def create(body = {}) @client.credit.create(body) end # Info for existing credit. # # @param credit_id: unique identifier of credit def info(credit_id) @client.credit.info(credit_id) end # List existing credits. def list() @client.credit.list() end end # Domains define what web routes should be routed to an app on Heroku. class Domain def initialize(client) @client = client end # Create a new domain. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.domain.create(app_id_or_app_name, body) end # Delete an existing domain # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param domain_id_or_domain_hostname: unique identifier of this domain or full hostname def delete(app_id_or_app_name, domain_id_or_domain_hostname) @client.domain.delete(app_id_or_app_name, domain_id_or_domain_hostname) end # Info for existing domain. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param domain_id_or_domain_hostname: unique identifier of this domain or full hostname def info(app_id_or_app_name, domain_id_or_domain_hostname) @client.domain.info(app_id_or_app_name, domain_id_or_domain_hostname) end # List existing domains. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.domain.list(app_id_or_app_name) end end # Dyno sizes are the values and details of sizes that can be assigned to dynos. This information can also be found at : [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types). class DynoSize def initialize(client) @client = client end # Info for existing dyno size. # # @param dyno_size_id_or_dyno_size_name: unique identifier of this dyno size or the name of this dyno-size def info(dyno_size_id_or_dyno_size_name) @client.dyno_size.info(dyno_size_id_or_dyno_size_name) end # List existing dyno sizes. def list() @client.dyno_size.list() end end # Dynos encapsulate running processes of an app on Heroku. Detailed information about dyno sizes can be found at: [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types). class Dyno def initialize(client) @client = client end # Create a new dyno. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.dyno.create(app_id_or_app_name, body) end # Restart dyno. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param dyno_id_or_dyno_name: unique identifier of this dyno or the name of this process on this dyno def restart(app_id_or_app_name, dyno_id_or_dyno_name) @client.dyno.restart(app_id_or_app_name, dyno_id_or_dyno_name) end # Restart all dynos. # # @param app_id_or_app_name: unique identifier of app or unique name of app def restart_all(app_id_or_app_name) @client.dyno.restart_all(app_id_or_app_name) end # Stop dyno. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param dyno_id_or_dyno_name: unique identifier of this dyno or the name of this process on this dyno def stop(app_id_or_app_name, dyno_id_or_dyno_name) @client.dyno.stop(app_id_or_app_name, dyno_id_or_dyno_name) end # Info for existing dyno. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param dyno_id_or_dyno_name: unique identifier of this dyno or the name of this process on this dyno def info(app_id_or_app_name, dyno_id_or_dyno_name) @client.dyno.info(app_id_or_app_name, dyno_id_or_dyno_name) end # List existing dynos. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.dyno.list(app_id_or_app_name) end end # Filters are special endpoints to allow for API consumers to specify a subset of resources to consume in order to reduce the number of requests that are performed. Each filter endpoint endpoint is responsible for determining its supported request format. The endpoints are over POST in order to handle large request bodies without hitting request uri query length limitations, but the requests themselves are idempotent and will not have side effects. class FilterApps def initialize(client) @client = client end # Request an apps list filtered by app id. # # @param body: the object to pass as the request payload def apps(body = {}) @client.filter_apps.apps(body) end end # The formation of processes that should be maintained for an app. Update the formation to scale processes or change dyno sizes. Available process type names and commands are defined by the `process_types` attribute for the [slug](#slug) currently released on an app. class Formation def initialize(client) @client = client end # Info for a process type # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param formation_id_or_formation_type: unique identifier of this process type or type of process to maintain def info(app_id_or_app_name, formation_id_or_formation_type) @client.formation.info(app_id_or_app_name, formation_id_or_formation_type) end # List process type formation # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.formation.list(app_id_or_app_name) end # Batch update process types # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def batch_update(app_id_or_app_name, body = {}) @client.formation.batch_update(app_id_or_app_name, body) end # Update process type # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param formation_id_or_formation_type: unique identifier of this process type or type of process to maintain # @param body: the object to pass as the request payload def update(app_id_or_app_name, formation_id_or_formation_type, body = {}) @client.formation.update(app_id_or_app_name, formation_id_or_formation_type, body) end end # Identity Providers represent the SAML configuration of an Organization. class IdentityProvider def initialize(client) @client = client end # Get a list of an organization's Identity Providers # # @param organization_name: unique name of organization def list_by_organization(organization_name) @client.identity_provider.list_by_organization(organization_name) end # Create an Identity Provider for an organization # # @param organization_name: unique name of organization # @param body: the object to pass as the request payload def create_by_organization(organization_name, body = {}) @client.identity_provider.create_by_organization(organization_name, body) end # Update an organization's Identity Provider # # @param organization_name: unique name of organization # @param identity_provider_id: unique identifier of this identity provider # @param body: the object to pass as the request payload def update_by_organization(organization_name, identity_provider_id, body = {}) @client.identity_provider.update_by_organization(organization_name, identity_provider_id, body) end # Delete an organization's Identity Provider # # @param organization_name: unique name of organization # @param identity_provider_id: unique identifier of this identity provider def delete_by_organization(organization_name, identity_provider_id) @client.identity_provider.delete_by_organization(organization_name, identity_provider_id) end # Get a list of a team's Identity Providers # # @param team_name_or_team_id: unique name of team or unique identifier of team def list_by_team(team_name_or_team_id) @client.identity_provider.list_by_team(team_name_or_team_id) end # Create an Identity Provider for a team # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param body: the object to pass as the request payload def create_by_team(team_name_or_team_id, body = {}) @client.identity_provider.create_by_team(team_name_or_team_id, body) end # Update a team's Identity Provider # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param identity_provider_id: unique identifier of this identity provider # @param body: the object to pass as the request payload def update_by_team(team_name_or_team_id, identity_provider_id, body = {}) @client.identity_provider.update_by_team(team_name_or_team_id, identity_provider_id, body) end # Delete a team's Identity Provider # # @param team_name: unique name of team # @param identity_provider_id: unique identifier of this identity provider def delete_by_team(team_name, identity_provider_id) @client.identity_provider.delete_by_team(team_name, identity_provider_id) end end # An inbound-ruleset is a collection of rules that specify what hosts can or cannot connect to an application. class InboundRuleset def initialize(client) @client = client end # Current inbound ruleset for a space # # @param space_id_or_space_name: unique identifier of space or unique name of space def current(space_id_or_space_name) @client.inbound_ruleset.current(space_id_or_space_name) end # Info on an existing Inbound Ruleset # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param inbound_ruleset_id: unique identifier of an inbound-ruleset def info(space_id_or_space_name, inbound_ruleset_id) @client.inbound_ruleset.info(space_id_or_space_name, inbound_ruleset_id) end # List all inbound rulesets for a space # # @param space_id_or_space_name: unique identifier of space or unique name of space def list(space_id_or_space_name) @client.inbound_ruleset.list(space_id_or_space_name) end # Create a new inbound ruleset # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param body: the object to pass as the request payload def create(space_id_or_space_name, body = {}) @client.inbound_ruleset.create(space_id_or_space_name, body) end end # An invoice address represents the address that should be listed on an invoice. class InvoiceAddress def initialize(client) @client = client end # Retrieve existing invoice address. def info() @client.invoice_address.info() end # Update invoice address for an account. # # @param body: the object to pass as the request payload def update(body = {}) @client.invoice_address.update(body) end end # An invoice is an itemized bill of goods for an account which includes pricing and charges. class Invoice def initialize(client) @client = client end # Info for existing invoice. # # @param invoice_number: human readable invoice number def info(invoice_number) @client.invoice.info(invoice_number) end # List existing invoices. def list() @client.invoice.list() end end # Keys represent public SSH keys associated with an account and are used to authorize accounts as they are performing git operations. class Key def initialize(client) @client = client end # Info for existing key. # # @param key_id_or_key_fingerprint: unique identifier of this key or a unique identifying string based on contents def info(key_id_or_key_fingerprint) @client.key.info(key_id_or_key_fingerprint) end # List existing keys. def list() @client.key.list() end end # [Log drains](https://devcenter.heroku.com/articles/log-drains) provide a way to forward your Heroku logs to an external syslog server for long-term archiving. This external service must be configured to receive syslog packets from Heroku, whereupon its URL can be added to an app using this API. Some add-ons will add a log drain when they are provisioned to an app. These drains can only be removed by removing the add-on. class LogDrain def initialize(client) @client = client end # Create a new log drain. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.log_drain.create(app_id_or_app_name, body) end # Update an add-on owned log drain. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on # @param log_drain_id_or_log_drain_url_or_log_drain_token: unique identifier of this log drain or url associated with the log drain or token associated with the log drain # @param body: the object to pass as the request payload def update(addon_id_or_addon_name, log_drain_id_or_log_drain_url_or_log_drain_token, body = {}) @client.log_drain.update(addon_id_or_addon_name, log_drain_id_or_log_drain_url_or_log_drain_token, body) end # Delete an existing log drain. Log drains added by add-ons can only be removed by removing the add-on. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param log_drain_id_or_log_drain_url_or_log_drain_token: unique identifier of this log drain or url associated with the log drain or token associated with the log drain def delete(app_id_or_app_name, log_drain_id_or_log_drain_url_or_log_drain_token) @client.log_drain.delete(app_id_or_app_name, log_drain_id_or_log_drain_url_or_log_drain_token) end # Info for existing log drain. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param log_drain_id_or_log_drain_url_or_log_drain_token: unique identifier of this log drain or url associated with the log drain or token associated with the log drain def info(app_id_or_app_name, log_drain_id_or_log_drain_url_or_log_drain_token) @client.log_drain.info(app_id_or_app_name, log_drain_id_or_log_drain_url_or_log_drain_token) end # List existing log drains for an add-on. # # @param addon_id_or_addon_name: unique identifier of add-on or globally unique name of the add-on def list_by_addon(addon_id_or_addon_name) @client.log_drain.list_by_addon(addon_id_or_addon_name) end # List existing log drains. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.log_drain.list(app_id_or_app_name) end end # A log session is a reference to the http based log stream for an app. class LogSession def initialize(client) @client = client end # Create a new log session. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.log_session.create(app_id_or_app_name, body) end end # OAuth authorizations represent clients that a Heroku user has authorized to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth) class OauthAuthorization def initialize(client) @client = client end # Create a new OAuth authorization. # # @param body: the object to pass as the request payload def create(body = {}) @client.oauth_authorization.create(body) end # Delete OAuth authorization. # # @param oauth_authorization_id: unique identifier of OAuth authorization def delete(oauth_authorization_id) @client.oauth_authorization.delete(oauth_authorization_id) end # Info for an OAuth authorization. # # @param oauth_authorization_id: unique identifier of OAuth authorization def info(oauth_authorization_id) @client.oauth_authorization.info(oauth_authorization_id) end # List OAuth authorizations. def list() @client.oauth_authorization.list() end # Regenerate OAuth tokens. This endpoint is only available to direct authorizations or privileged OAuth clients. # # @param oauth_authorization_id: unique identifier of OAuth authorization def regenerate(oauth_authorization_id) @client.oauth_authorization.regenerate(oauth_authorization_id) end end # OAuth clients are applications that Heroku users can authorize to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth). class OauthClient def initialize(client) @client = client end # Create a new OAuth client. # # @param body: the object to pass as the request payload def create(body = {}) @client.oauth_client.create(body) end # Delete OAuth client. # # @param oauth_client_id: unique identifier of this OAuth client def delete(oauth_client_id) @client.oauth_client.delete(oauth_client_id) end # Info for an OAuth client # # @param oauth_client_id: unique identifier of this OAuth client def info(oauth_client_id) @client.oauth_client.info(oauth_client_id) end # List OAuth clients def list() @client.oauth_client.list() end # Update OAuth client # # @param oauth_client_id: unique identifier of this OAuth client # @param body: the object to pass as the request payload def update(oauth_client_id, body = {}) @client.oauth_client.update(oauth_client_id, body) end # Rotate credentials for an OAuth client # # @param oauth_client_id: unique identifier of this OAuth client def rotate_credentials(oauth_client_id) @client.oauth_client.rotate_credentials(oauth_client_id) end end # OAuth grants are used to obtain authorizations on behalf of a user. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth) class OauthGrant def initialize(client) @client = client end end # OAuth tokens provide access for authorized clients to act on behalf of a Heroku user to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth) class OauthToken def initialize(client) @client = client end # Create a new OAuth token. # # @param body: the object to pass as the request payload def create(body = {}) @client.oauth_token.create(body) end # Revoke OAuth access token. # # @param oauth_token_id: unique identifier of OAuth token def delete(oauth_token_id) @client.oauth_token.delete(oauth_token_id) end end # Deprecated: A list of add-ons the Organization uses across all apps class OrganizationAddon def initialize(client) @client = client end # List add-ons used across all Organization apps # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def list_for_organization(organization_name_or_organization_id) @client.organization_addon.list_for_organization(organization_name_or_organization_id) end end # Deprecated: An organization collaborator represents an account that has been given access to an organization app on Heroku. class OrganizationAppCollaborator def initialize(client) @client = client end # Create a new collaborator on an organization app. Use this endpoint instead of the `/apps/{app_id_or_name}/collaborator` endpoint when you want the collaborator to be granted [permissions] (https://devcenter.heroku.com/articles/org-users-access#roles-and-app-permissions) according to their role in the organization. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.organization_app_collaborator.create(app_id_or_app_name, body) end # Delete an existing collaborator from an organization app. # # @param app_name: unique name of app # @param collaborator_email: invited email address of collaborator def delete(app_name, collaborator_email) @client.organization_app_collaborator.delete(app_name, collaborator_email) end # Info for a collaborator on an organization app. # # @param app_name: unique name of app # @param collaborator_email: invited email address of collaborator def info(app_name, collaborator_email) @client.organization_app_collaborator.info(app_name, collaborator_email) end # Update an existing collaborator from an organization app. # # @param app_name: unique name of app # @param collaborator_email: invited email address of collaborator # @param body: the object to pass as the request payload def update(app_name, collaborator_email, body = {}) @client.organization_app_collaborator.update(app_name, collaborator_email, body) end # List collaborators on an organization app. # # @param app_name: unique name of app def list(app_name) @client.organization_app_collaborator.list(app_name) end end # Deprecated: An organization app encapsulates the organization specific functionality of Heroku apps. class OrganizationApp def initialize(client) @client = client end # Create a new app in the specified organization, in the default organization if unspecified, or in personal account, if default organization is not set. # # @param body: the object to pass as the request payload def create(body = {}) @client.organization_app.create(body) end # List organization apps. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def list_for_organization(organization_name_or_organization_id) @client.organization_app.list_for_organization(organization_name_or_organization_id) end # Info for an organization app. # # @param app_name: unique name of app def info(app_name) @client.organization_app.info(app_name) end # Lock or unlock an organization app. # # @param app_name: unique name of app # @param body: the object to pass as the request payload def update_locked(app_name, body = {}) @client.organization_app.update_locked(app_name, body) end # Transfer an existing organization app to another Heroku account. # # @param app_name: unique name of app # @param body: the object to pass as the request payload def transfer_to_account(app_name, body = {}) @client.organization_app.transfer_to_account(app_name, body) end # Transfer an existing organization app to another organization. # # @param app_name: unique name of app # @param body: the object to pass as the request payload def transfer_to_organization(app_name, body = {}) @client.organization_app.transfer_to_organization(app_name, body) end end # Deprecated: An organization feature represents a feature enabled on an organization account. class OrganizationFeature def initialize(client) @client = client end # Info for an existing organization feature. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param organization_feature_id_or_organization_feature_name: unique identifier of organization feature or unique name of organization feature def info(organization_name_or_organization_id, organization_feature_id_or_organization_feature_name) @client.organization_feature.info(organization_name_or_organization_id, organization_feature_id_or_organization_feature_name) end # List existing organization features. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def list(organization_name_or_organization_id) @client.organization_feature.list(organization_name_or_organization_id) end # Update an existing organization feature. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param organization_feature_id_or_organization_feature_name: unique identifier of organization feature or unique name of organization feature # @param body: the object to pass as the request payload def update(organization_name_or_organization_id, organization_feature_id_or_organization_feature_name, body = {}) @client.organization_feature.update(organization_name_or_organization_id, organization_feature_id_or_organization_feature_name, body) end end # Deprecated: An organization invitation represents an invite to an organization. class OrganizationInvitation def initialize(client) @client = client end # Get a list of an organization's Identity Providers # # @param organization_name: unique name of organization def list(organization_name) @client.organization_invitation.list(organization_name) end # Create Organization Invitation # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param body: the object to pass as the request payload def create(organization_name_or_organization_id, body = {}) @client.organization_invitation.create(organization_name_or_organization_id, body) end # Revoke an organization invitation. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param organization_invitation_id: Unique identifier of an invitation def revoke(organization_name_or_organization_id, organization_invitation_id) @client.organization_invitation.revoke(organization_name_or_organization_id, organization_invitation_id) end # Get an invitation by its token # # @param organization_invitation_token: Special token for invitation def get(organization_invitation_token) @client.organization_invitation.get(organization_invitation_token) end # Accept Organization Invitation # # @param organization_invitation_token: Special token for invitation def accept(organization_invitation_token) @client.organization_invitation.accept(organization_invitation_token) end end # Deprecated: An organization invoice is an itemized bill of goods for an organization which includes pricing and charges. class OrganizationInvoice def initialize(client) @client = client end # Info for existing invoice. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param organization_invoice_number: human readable invoice number def info(organization_name_or_organization_id, organization_invoice_number) @client.organization_invoice.info(organization_name_or_organization_id, organization_invoice_number) end # List existing invoices. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def list(organization_name_or_organization_id) @client.organization_invoice.list(organization_name_or_organization_id) end end # Deprecated: An organization member is an individual with access to an organization. class OrganizationMember def initialize(client) @client = client end # Create a new organization member, or update their role. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param body: the object to pass as the request payload def create_or_update(organization_name_or_organization_id, body = {}) @client.organization_member.create_or_update(organization_name_or_organization_id, body) end # Create a new organization member. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param body: the object to pass as the request payload def create(organization_name_or_organization_id, body = {}) @client.organization_member.create(organization_name_or_organization_id, body) end # Update an organization member. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param body: the object to pass as the request payload def update(organization_name_or_organization_id, body = {}) @client.organization_member.update(organization_name_or_organization_id, body) end # Remove a member from the organization. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param organization_member_email_or_organization_member_id: email address of the organization member or unique identifier of organization member def delete(organization_name_or_organization_id, organization_member_email_or_organization_member_id) @client.organization_member.delete(organization_name_or_organization_id, organization_member_email_or_organization_member_id) end # List members of the organization. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def list(organization_name_or_organization_id) @client.organization_member.list(organization_name_or_organization_id) end # List the apps of a member. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param organization_member_email_or_organization_member_id: email address of the organization member or unique identifier of organization member def app_list(organization_name_or_organization_id, organization_member_email_or_organization_member_id) @client.organization_member.app_list(organization_name_or_organization_id, organization_member_email_or_organization_member_id) end end # Deprecated: Tracks an organization's preferences class OrganizationPreferences def initialize(client) @client = client end # Retrieve Organization Preferences # # @param organization_preferences_identity: def list(organization_preferences_identity) @client.organization_preferences.list(organization_preferences_identity) end # Update Organization Preferences # # @param organization_preferences_identity: # @param body: the object to pass as the request payload def update(organization_preferences_identity, body = {}) @client.organization_preferences.update(organization_preferences_identity, body) end end # Deprecated: Organizations allow you to manage access to a shared group of applications across your development team. class Organization def initialize(client) @client = client end # List organizations in which you are a member. def list() @client.organization.list() end # Info for an organization. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def info(organization_name_or_organization_id) @client.organization.info(organization_name_or_organization_id) end # Update organization properties. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param body: the object to pass as the request payload def update(organization_name_or_organization_id, body = {}) @client.organization.update(organization_name_or_organization_id, body) end # Create a new organization. # # @param body: the object to pass as the request payload def create(body = {}) @client.organization.create(body) end # Delete an existing organization. # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def delete(organization_name_or_organization_id) @client.organization.delete(organization_name_or_organization_id) end end # An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with. class OutboundRuleset def initialize(client) @client = client end # Current outbound ruleset for a space # # @param space_id_or_space_name: unique identifier of space or unique name of space def current(space_id_or_space_name) @client.outbound_ruleset.current(space_id_or_space_name) end # Info on an existing Outbound Ruleset # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param outbound_ruleset_id: unique identifier of an outbound-ruleset def info(space_id_or_space_name, outbound_ruleset_id) @client.outbound_ruleset.info(space_id_or_space_name, outbound_ruleset_id) end # List all Outbound Rulesets for a space # # @param space_id_or_space_name: unique identifier of space or unique name of space def list(space_id_or_space_name) @client.outbound_ruleset.list(space_id_or_space_name) end # Create a new outbound ruleset # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param body: the object to pass as the request payload def create(space_id_or_space_name, body = {}) @client.outbound_ruleset.create(space_id_or_space_name, body) end end # A password reset represents a in-process password reset attempt. class PasswordReset def initialize(client) @client = client end # Reset account's password. This will send a reset password link to the user's email address. # # @param body: the object to pass as the request payload def reset_password(body = {}) @client.password_reset.reset_password(body) end # Complete password reset. # # @param password_reset_reset_password_token: unique identifier of a password reset attempt # @param body: the object to pass as the request payload def complete_reset_password(password_reset_reset_password_token, body = {}) @client.password_reset.complete_reset_password(password_reset_reset_password_token, body) end end # [Peering Info](https://devcenter.heroku.com/articles/private-space-vpc-peering) gives you the information necessary to peer an AWS VPC to a Private Space. class PeeringInfo def initialize(client) @client = client end # Provides the necessary information to establish an AWS VPC Peering with your private space. # # @param space_id_or_space_name: unique identifier of space or unique name of space def info(space_id_or_space_name) @client.peering_info.info(space_id_or_space_name) end end # [Peering](https://devcenter.heroku.com/articles/private-space-vpc-peering) provides a way to peer your Private Space VPC to another AWS VPC. class Peering def initialize(client) @client = client end # List peering connections of a private space. # # @param space_id_or_space_name: unique identifier of space or unique name of space def list(space_id_or_space_name) @client.peering.list(space_id_or_space_name) end # Accept a pending peering connection with a private space. # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param peering_pcx_id: The AWS VPC Peering Connection ID of the peering. def accept(space_id_or_space_name, peering_pcx_id) @client.peering.accept(space_id_or_space_name, peering_pcx_id) end # Destroy an active peering connection with a private space. # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param peering_pcx_id: The AWS VPC Peering Connection ID of the peering. def destroy(space_id_or_space_name, peering_pcx_id) @client.peering.destroy(space_id_or_space_name, peering_pcx_id) end # Fetch information for existing peering connection # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param peering_pcx_id: The AWS VPC Peering Connection ID of the peering. def info(space_id_or_space_name, peering_pcx_id) @client.peering.info(space_id_or_space_name, peering_pcx_id) end end # Deprecated: An organization app permission is a behavior that is assigned to a user in an organization app. class OrganizationAppPermission def initialize(client) @client = client end # Lists permissions available to organizations. def list() @client.organization_app_permission.list() end end # Information about an app's coupling to a pipeline class PipelineCoupling def initialize(client) @client = client end # List couplings for a pipeline # # @param pipeline_id: unique identifier of pipeline def list_by_pipeline(pipeline_id) @client.pipeline_coupling.list_by_pipeline(pipeline_id) end # List pipeline couplings. def list() @client.pipeline_coupling.list() end # Create a new pipeline coupling. # # @param body: the object to pass as the request payload def create(body = {}) @client.pipeline_coupling.create(body) end # Info for an existing pipeline coupling. # # @param pipeline_coupling_id: unique identifier of pipeline coupling def info(pipeline_coupling_id) @client.pipeline_coupling.info(pipeline_coupling_id) end # Delete an existing pipeline coupling. # # @param pipeline_coupling_id: unique identifier of pipeline coupling def delete(pipeline_coupling_id) @client.pipeline_coupling.delete(pipeline_coupling_id) end # Update an existing pipeline coupling. # # @param pipeline_coupling_id: unique identifier of pipeline coupling # @param body: the object to pass as the request payload def update(pipeline_coupling_id, body = {}) @client.pipeline_coupling.update(pipeline_coupling_id, body) end # Info for an existing app pipeline coupling. # # @param app_id_or_app_name: unique identifier of app or unique name of app def info_by_app(app_id_or_app_name) @client.pipeline_coupling.info_by_app(app_id_or_app_name) end end # Promotion targets represent an individual app being promoted to class PipelinePromotionTarget def initialize(client) @client = client end # List promotion targets belonging to an existing promotion. # # @param pipeline_promotion_id: unique identifier of promotion def list(pipeline_promotion_id) @client.pipeline_promotion_target.list(pipeline_promotion_id) end end # Promotions allow you to move code from an app in a pipeline to all targets class PipelinePromotion def initialize(client) @client = client end # Create a new promotion. # # @param body: the object to pass as the request payload def create(body = {}) @client.pipeline_promotion.create(body) end # Info for existing pipeline promotion. # # @param pipeline_promotion_id: unique identifier of promotion def info(pipeline_promotion_id) @client.pipeline_promotion.info(pipeline_promotion_id) end end # A pipeline allows grouping of apps into different stages. class Pipeline def initialize(client) @client = client end # Create a new pipeline. # # @param body: the object to pass as the request payload def create(body = {}) @client.pipeline.create(body) end # Info for existing pipeline. # # @param pipeline_id_or_pipeline_name: unique identifier of pipeline or name of pipeline def info(pipeline_id_or_pipeline_name) @client.pipeline.info(pipeline_id_or_pipeline_name) end # Delete an existing pipeline. # # @param pipeline_id: unique identifier of pipeline def delete(pipeline_id) @client.pipeline.delete(pipeline_id) end # Update an existing pipeline. # # @param pipeline_id: unique identifier of pipeline # @param body: the object to pass as the request payload def update(pipeline_id, body = {}) @client.pipeline.update(pipeline_id, body) end # List existing pipelines. def list() @client.pipeline.list() end end # Plans represent different configurations of add-ons that may be added to apps. Endpoints under add-on services can be accessed without authentication. class Plan def initialize(client) @client = client end # Info for existing plan. # # @param plan_id_or_plan_name: unique identifier of this plan or unique name of this plan def info(plan_id_or_plan_name) @client.plan.info(plan_id_or_plan_name) end # Info for existing plan by Add-on. # # @param addon_service_id_or_addon_service_name: unique identifier of this add-on-service or unique name of this add-on-service # @param plan_id_or_plan_name: unique identifier of this plan or unique name of this plan def info_by_addon(addon_service_id_or_addon_service_name, plan_id_or_plan_name) @client.plan.info_by_addon(addon_service_id_or_addon_service_name, plan_id_or_plan_name) end # List existing plans by Add-on. # # @param addon_service_id_or_addon_service_name: unique identifier of this add-on-service or unique name of this add-on-service def list_by_addon(addon_service_id_or_addon_service_name) @client.plan.list_by_addon(addon_service_id_or_addon_service_name) end end # Rate Limit represents the number of request tokens each account holds. Requests to this endpoint do not count towards the rate limit. class RateLimit def initialize(client) @client = client end # Info for rate limits. def info() @client.rate_limit.info() end end # A region represents a geographic location in which your application may run. class Region def initialize(client) @client = client end # Info for existing region. # # @param region_id_or_region_name: unique identifier of region or unique name of region def info(region_id_or_region_name) @client.region.info(region_id_or_region_name) end # List existing regions. def list() @client.region.list() end end # A release represents a combination of code, config vars and add-ons for an app on Heroku. class Release def initialize(client) @client = client end # Info for existing release. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param release_id_or_release_version: unique identifier of release or unique version assigned to the release def info(app_id_or_app_name, release_id_or_release_version) @client.release.info(app_id_or_app_name, release_id_or_release_version) end # List existing releases. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.release.list(app_id_or_app_name) end # Create new release. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.release.create(app_id_or_app_name, body) end # Rollback to an existing release. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def rollback(app_id_or_app_name, body = {}) @client.release.rollback(app_id_or_app_name, body) end end # A slug is a snapshot of your application code that is ready to run on the platform. class Slug def initialize(client) @client = client end # Info for existing slug. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param slug_id: unique identifier of slug def info(app_id_or_app_name, slug_id) @client.slug.info(app_id_or_app_name, slug_id) end # Create a new slug. For more information please refer to [Deploying Slugs using the Platform API](https://devcenter.heroku.com/articles/platform-api-deploying-slugs). # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.slug.create(app_id_or_app_name, body) end end # SMS numbers are used for recovery on accounts with two-factor authentication enabled. class SmsNumber def initialize(client) @client = client end # Recover an account using an SMS recovery code # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def sms_number(account_email_or_account_id_or_account_self) @client.sms_number.sms_number(account_email_or_account_id_or_account_self) end # Recover an account using an SMS recovery code # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def recover(account_email_or_account_id_or_account_self) @client.sms_number.recover(account_email_or_account_id_or_account_self) end # Confirm an SMS number change with a confirmation code # # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def confirm(account_email_or_account_id_or_account_self) @client.sms_number.confirm(account_email_or_account_id_or_account_self) end end # SNI Endpoint is a public address serving a custom SSL cert for HTTPS traffic, using the SNI TLS extension, to a Heroku app. class SniEndpoint def initialize(client) @client = client end # Create a new SNI endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.sni_endpoint.create(app_id_or_app_name, body) end # Delete existing SNI endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param sni_endpoint_id_or_sni_endpoint_name: unique identifier of this SNI endpoint or unique name for SNI endpoint def delete(app_id_or_app_name, sni_endpoint_id_or_sni_endpoint_name) @client.sni_endpoint.delete(app_id_or_app_name, sni_endpoint_id_or_sni_endpoint_name) end # Info for existing SNI endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param sni_endpoint_id_or_sni_endpoint_name: unique identifier of this SNI endpoint or unique name for SNI endpoint def info(app_id_or_app_name, sni_endpoint_id_or_sni_endpoint_name) @client.sni_endpoint.info(app_id_or_app_name, sni_endpoint_id_or_sni_endpoint_name) end # List existing SNI endpoints. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.sni_endpoint.list(app_id_or_app_name) end # Update an existing SNI endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param sni_endpoint_id_or_sni_endpoint_name: unique identifier of this SNI endpoint or unique name for SNI endpoint # @param body: the object to pass as the request payload def update(app_id_or_app_name, sni_endpoint_id_or_sni_endpoint_name, body = {}) @client.sni_endpoint.update(app_id_or_app_name, sni_endpoint_id_or_sni_endpoint_name, body) end end # A source is a location for uploading and downloading an application's source code. class Source def initialize(client) @client = client end # Create URLs for uploading and downloading source. def create() @client.source.create() end # Create URLs for uploading and downloading source. Deprecated in favor of `POST /sources` # # @param app_id_or_app_name: unique identifier of app or unique name of app def create_deprecated(app_id_or_app_name) @client.source.create_deprecated(app_id_or_app_name) end end # Space access represents the permissions a particular user has on a particular space. class SpaceAppAccess def initialize(client) @client = client end # List permissions for a given user on a given space. # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user def info(space_id_or_space_name, account_email_or_account_id_or_account_self) @client.space_app_access.info(space_id_or_space_name, account_email_or_account_id_or_account_self) end # Update an existing user's set of permissions on a space. # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param account_email_or_account_id_or_account_self: unique email address of account or unique identifier of an account or Implicit reference to currently authorized user # @param body: the object to pass as the request payload def update(space_id_or_space_name, account_email_or_account_id_or_account_self, body = {}) @client.space_app_access.update(space_id_or_space_name, account_email_or_account_id_or_account_self, body) end # List all users and their permissions on a space. # # @param space_id_or_space_name: unique identifier of space or unique name of space def list(space_id_or_space_name) @client.space_app_access.list(space_id_or_space_name) end end # Network address translation (NAT) for stable outbound IP addresses from a space class SpaceNat def initialize(client) @client = client end # Current state of network address translation for a space. # # @param space_id_or_space_name: unique identifier of space or unique name of space def info(space_id_or_space_name) @client.space_nat.info(space_id_or_space_name) end end # A space is an isolated, highly available, secure app execution environments, running in the modern VPC substrate. class Space def initialize(client) @client = client end # List existing spaces. def list() @client.space.list() end # Info for existing space. # # @param space_id_or_space_name: unique identifier of space or unique name of space def info(space_id_or_space_name) @client.space.info(space_id_or_space_name) end # Update an existing space. # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param body: the object to pass as the request payload def update(space_id_or_space_name, body = {}) @client.space.update(space_id_or_space_name, body) end # Delete an existing space. # # @param space_id_or_space_name: unique identifier of space or unique name of space def delete(space_id_or_space_name) @client.space.delete(space_id_or_space_name) end # Create a new space. # # @param body: the object to pass as the request payload def create(body = {}) @client.space.create(body) end end # [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. class SSLEndpoint def initialize(client) @client = client end # Create a new SSL endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.ssl_endpoint.create(app_id_or_app_name, body) end # Delete existing SSL endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param ssl_endpoint_id_or_ssl_endpoint_name: unique identifier of this SSL endpoint or unique name for SSL endpoint def delete(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name) @client.ssl_endpoint.delete(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name) end # Info for existing SSL endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param ssl_endpoint_id_or_ssl_endpoint_name: unique identifier of this SSL endpoint or unique name for SSL endpoint def info(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name) @client.ssl_endpoint.info(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name) end # List existing SSL endpoints. # # @param app_id_or_app_name: unique identifier of app or unique name of app def list(app_id_or_app_name) @client.ssl_endpoint.list(app_id_or_app_name) end # Update an existing SSL endpoint. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param ssl_endpoint_id_or_ssl_endpoint_name: unique identifier of this SSL endpoint or unique name for SSL endpoint # @param body: the object to pass as the request payload def update(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name, body = {}) @client.ssl_endpoint.update(app_id_or_app_name, ssl_endpoint_id_or_ssl_endpoint_name, body) end end # Stacks are the different application execution environments available in the Heroku platform. class Stack def initialize(client) @client = client end # Stack info. # # @param stack_name_or_stack_id: unique name of stack or unique identifier of stack def info(stack_name_or_stack_id) @client.stack.info(stack_name_or_stack_id) end # List available stacks. def list() @client.stack.list() end end # A team collaborator represents an account that has been given access to a team app on Heroku. class TeamAppCollaborator def initialize(client) @client = client end # Create a new collaborator on a team app. Use this endpoint instead of the `/apps/{app_id_or_name}/collaborator` endpoint when you want the collaborator to be granted [permissions] (https://devcenter.heroku.com/articles/org-users-access#roles-and-app-permissions) according to their role in the team. # # @param app_id_or_app_name: unique identifier of app or unique name of app # @param body: the object to pass as the request payload def create(app_id_or_app_name, body = {}) @client.team_app_collaborator.create(app_id_or_app_name, body) end # Delete an existing collaborator from a team app. # # @param app_name: unique name of app # @param collaborator_email: invited email address of collaborator def delete(app_name, collaborator_email) @client.team_app_collaborator.delete(app_name, collaborator_email) end # Info for a collaborator on a team app. # # @param app_name: unique name of app # @param collaborator_email: invited email address of collaborator def info(app_name, collaborator_email) @client.team_app_collaborator.info(app_name, collaborator_email) end # Update an existing collaborator from a team app. # # @param app_name: unique name of app # @param collaborator_email: invited email address of collaborator # @param body: the object to pass as the request payload def update(app_name, collaborator_email, body = {}) @client.team_app_collaborator.update(app_name, collaborator_email, body) end # List collaborators on a team app. # # @param app_name: unique name of app def list(app_name) @client.team_app_collaborator.list(app_name) end end # A team app permission is a behavior that is assigned to a user in a team app. class TeamAppPermission def initialize(client) @client = client end # Lists permissions available to teams. def list() @client.team_app_permission.list() end end # A team app encapsulates the team specific functionality of Heroku apps. class TeamApp def initialize(client) @client = client end # Create a new app in the specified team, in the default team if unspecified, or in personal account, if default team is not set. # # @param body: the object to pass as the request payload def create(body = {}) @client.team_app.create(body) end # Info for a team app. # # @param app_name: unique name of app def info(app_name) @client.team_app.info(app_name) end # Lock or unlock a team app. # # @param app_name: unique name of app # @param body: the object to pass as the request payload def update_locked(app_name, body = {}) @client.team_app.update_locked(app_name, body) end # Transfer an existing team app to another Heroku account. # # @param app_name: unique name of app # @param body: the object to pass as the request payload def transfer_to_account(app_name, body = {}) @client.team_app.transfer_to_account(app_name, body) end # Transfer an existing team app to another team. # # @param app_name: unique name of app # @param body: the object to pass as the request payload def transfer_to_team(app_name, body = {}) @client.team_app.transfer_to_team(app_name, body) end # List team apps. # # @param team_name_or_team_id: unique name of team or unique identifier of team def list_by_team(team_name_or_team_id) @client.team_app.list_by_team(team_name_or_team_id) end end # A team feature represents a feature enabled on a team account. class TeamFeature def initialize(client) @client = client end # Info for an existing team feature. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param team_feature_id_or_team_feature_name: unique identifier of team feature or unique name of team feature def info(team_name_or_team_id, team_feature_id_or_team_feature_name) @client.team_feature.info(team_name_or_team_id, team_feature_id_or_team_feature_name) end # List existing team features. # # @param team_name_or_team_id: unique name of team or unique identifier of team def list(team_name_or_team_id) @client.team_feature.list(team_name_or_team_id) end end # A team invitation represents an invite to a team. class TeamInvitation def initialize(client) @client = client end # Get a list of a team's Identity Providers # # @param team_name: unique name of team def list(team_name) @client.team_invitation.list(team_name) end # Create Team Invitation # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param body: the object to pass as the request payload def create(team_name_or_team_id, body = {}) @client.team_invitation.create(team_name_or_team_id, body) end # Revoke a team invitation. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param team_invitation_id: unique identifier of an invitation def revoke(team_name_or_team_id, team_invitation_id) @client.team_invitation.revoke(team_name_or_team_id, team_invitation_id) end # Get an invitation by its token # # @param team_invitation_token: special token for invitation def get(team_invitation_token) @client.team_invitation.get(team_invitation_token) end # Accept Team Invitation # # @param team_invitation_token: special token for invitation def accept(team_invitation_token) @client.team_invitation.accept(team_invitation_token) end end # A Team Invoice is an itemized bill of goods for a team which includes pricing and charges. class TeamInvoice def initialize(client) @client = client end # Info for existing invoice. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param team_invoice_number: human readable invoice number def info(team_name_or_team_id, team_invoice_number) @client.team_invoice.info(team_name_or_team_id, team_invoice_number) end # List existing invoices. # # @param team_name_or_team_id: unique name of team or unique identifier of team def list(team_name_or_team_id) @client.team_invoice.list(team_name_or_team_id) end end # A team member is an individual with access to a team. class TeamMember def initialize(client) @client = client end # Create a new team member, or update their role. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param body: the object to pass as the request payload def create_or_update(team_name_or_team_id, body = {}) @client.team_member.create_or_update(team_name_or_team_id, body) end # Create a new team member. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param body: the object to pass as the request payload def create(team_name_or_team_id, body = {}) @client.team_member.create(team_name_or_team_id, body) end # Update a team member. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param body: the object to pass as the request payload def update(team_name_or_team_id, body = {}) @client.team_member.update(team_name_or_team_id, body) end # Remove a member from the team. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param team_member_email_or_team_member_id: email address of the team member or unique identifier of the team member def delete(team_name_or_team_id, team_member_email_or_team_member_id) @client.team_member.delete(team_name_or_team_id, team_member_email_or_team_member_id) end # List members of the team. # # @param team_name_or_team_id: unique name of team or unique identifier of team def list(team_name_or_team_id) @client.team_member.list(team_name_or_team_id) end # List the apps of a team member. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param team_member_email_or_team_member_id: email address of the team member or unique identifier of the team member def list_by_member(team_name_or_team_id, team_member_email_or_team_member_id) @client.team_member.list_by_member(team_name_or_team_id, team_member_email_or_team_member_id) end end # Tracks a Team's Preferences class TeamPreferences def initialize(client) @client = client end # Retrieve Team Preferences # # @param team_preferences_identity: def list(team_preferences_identity) @client.team_preferences.list(team_preferences_identity) end # Update Team Preferences # # @param team_preferences_identity: # @param body: the object to pass as the request payload def update(team_preferences_identity, body = {}) @client.team_preferences.update(team_preferences_identity, body) end end # Teams allow you to manage access to a shared group of applications and other resources. class Team def initialize(client) @client = client end # List teams in which you are a member. def list() @client.team.list() end # Info for a team. # # @param team_name_or_team_id: unique name of team or unique identifier of team def info(team_name_or_team_id) @client.team.info(team_name_or_team_id) end # Update team properties. # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param body: the object to pass as the request payload def update(team_name_or_team_id, body = {}) @client.team.update(team_name_or_team_id, body) end # Create a new team. # # @param body: the object to pass as the request payload def create(body = {}) @client.team.create(body) end # Delete an existing team. # # @param team_name_or_team_id: unique name of team or unique identifier of team def delete(team_name_or_team_id) @client.team.delete(team_name_or_team_id) end end # A single test case belonging to a test run class TestCase def initialize(client) @client = client end # List test cases # # @param test_run_id: unique identifier of a test run def list(test_run_id) @client.test_case.list(test_run_id) end end # A single test node belonging to a test run class TestNode def initialize(client) @client = client end # List test nodes # # @param test_run_id: unique identifier of a test run def list(test_run_id) @client.test_node.list(test_run_id) end end # An execution or trial of one or more tests class TestRun def initialize(client) @client = client end # Create a new test-run. # # @param body: the object to pass as the request payload def create(body = {}) @client.test_run.create(body) end # Info for existing test-run. # # @param test_run_id: unique identifier of a test run def info(test_run_id) @client.test_run.info(test_run_id) end # List existing test-runs for a pipeline. # # @param pipeline_id: unique identifier of pipeline def list(pipeline_id) @client.test_run.list(pipeline_id) end # Info for existing test-run by Pipeline # # @param pipeline_id: unique identifier of pipeline # @param test_run_number: the auto incrementing test run number def info_by_pipeline(pipeline_id, test_run_number) @client.test_run.info_by_pipeline(pipeline_id, test_run_number) end # Update a test-run's status. # # @param test_run_number: the auto incrementing test run number # @param body: the object to pass as the request payload def update(test_run_number, body = {}) @client.test_run.update(test_run_number, body) end end # Tracks a user's preferences and message dismissals class UserPreferences def initialize(client) @client = client end # Retrieve User Preferences # # @param user_preferences_self: Implicit reference to currently authorized user def list(user_preferences_self) @client.user_preferences.list(user_preferences_self) end # Update User Preferences # # @param user_preferences_self: Implicit reference to currently authorized user # @param body: the object to pass as the request payload def update(user_preferences_self, body = {}) @client.user_preferences.update(user_preferences_self, body) end end # [VPN](https://devcenter.heroku.com/articles/private-spaces-vpn?preview=1) provides a way to connect your Private Spaces to your network via VPN. class VpnConnection def initialize(client) @client = client end # Create a new VPN connection in a private space. # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param body: the object to pass as the request payload def create(space_id_or_space_name, body = {}) @client.vpn_connection.create(space_id_or_space_name, body) end # Destroy existing VPN Connection # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param vpn_connection_id_or_vpn_connection_name: VPN ID or VPN Name def destroy(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name) @client.vpn_connection.destroy(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name) end # List VPN connections for a space. # # @param space_id_or_space_name: unique identifier of space or unique name of space def list(space_id_or_space_name) @client.vpn_connection.list(space_id_or_space_name) end # Info for an existing vpn-connection. # # @param space_id_or_space_name: unique identifier of space or unique name of space # @param vpn_connection_id_or_vpn_connection_name: VPN ID or VPN Name def info(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name) @client.vpn_connection.info(space_id_or_space_name, vpn_connection_id_or_vpn_connection_name) end end # Entities that have been whitelisted to be used by an Organization class WhitelistedAddonService def initialize(client) @client = client end # List all whitelisted Add-on Services for an Organization # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization def list_by_organization(organization_name_or_organization_id) @client.whitelisted_addon_service.list_by_organization(organization_name_or_organization_id) end # Whitelist an Add-on Service # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param body: the object to pass as the request payload def create_by_organization(organization_name_or_organization_id, body = {}) @client.whitelisted_addon_service.create_by_organization(organization_name_or_organization_id, body) end # Remove a whitelisted entity # # @param organization_name_or_organization_id: unique name of organization or unique identifier of organization # @param whitelisted_addon_service_id_or_addon_service_name: unique identifier for this whitelisting entity or unique name of this add-on-service def delete_by_organization(organization_name_or_organization_id, whitelisted_addon_service_id_or_addon_service_name) @client.whitelisted_addon_service.delete_by_organization(organization_name_or_organization_id, whitelisted_addon_service_id_or_addon_service_name) end # List all whitelisted Add-on Services for a Team # # @param team_name_or_team_id: unique name of team or unique identifier of team def list_by_team(team_name_or_team_id) @client.whitelisted_addon_service.list_by_team(team_name_or_team_id) end # Whitelist an Add-on Service # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param body: the object to pass as the request payload def create_by_team(team_name_or_team_id, body = {}) @client.whitelisted_addon_service.create_by_team(team_name_or_team_id, body) end # Remove a whitelisted entity # # @param team_name_or_team_id: unique name of team or unique identifier of team # @param whitelisted_addon_service_id_or_addon_service_name: unique identifier for this whitelisting entity or unique name of this add-on-service def delete_by_team(team_name_or_team_id, whitelisted_addon_service_id_or_addon_service_name) @client.whitelisted_addon_service.delete_by_team(team_name_or_team_id, whitelisted_addon_service_id_or_addon_service_name) end end SCHEMA = Heroics::Schema.new(MultiJson.load(<<-'HEROICS_SCHEMA')) { "$schema": "http://interagent.github.io/interagent-hyper-schema", "type": [ "object" ], "definitions": { "account-feature": { "description": "An account feature represents a Heroku labs capability that can be enabled or disabled for an account on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Account Feature", "type": [ "object" ], "definitions": { "created_at": { "description": "when account feature was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "description": { "description": "description of account feature", "example": "Causes account to example.", "readOnly": true, "type": [ "string" ] }, "doc_url": { "description": "documentation URL of account feature", "example": "http://devcenter.heroku.com/articles/example", "readOnly": true, "type": [ "string" ] }, "enabled": { "description": "whether or not account feature has been enabled", "example": true, "readOnly": false, "type": [ "boolean" ] }, "id": { "description": "unique identifier of account feature", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/account-feature/definitions/id" }, { "$ref": "#/definitions/account-feature/definitions/name" } ] }, "name": { "description": "unique name of account feature", "example": "name", "readOnly": true, "type": [ "string" ] }, "state": { "description": "state of account feature", "example": "public", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when account 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 account feature.", "href": "/account/features/{(%23%2Fdefinitions%2Faccount-feature%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/account-feature" }, "title": "Info" }, { "description": "List existing account features.", "href": "/account/features", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/account-feature" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update an existing account feature.", "href": "/account/features/{(%23%2Fdefinitions%2Faccount-feature%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "enabled": { "$ref": "#/definitions/account-feature/definitions/enabled" } }, "required": [ "enabled" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/account-feature" }, "title": "Update" } ], "properties": { "created_at": { "$ref": "#/definitions/account-feature/definitions/created_at" }, "description": { "$ref": "#/definitions/account-feature/definitions/description" }, "doc_url": { "$ref": "#/definitions/account-feature/definitions/doc_url" }, "enabled": { "$ref": "#/definitions/account-feature/definitions/enabled" }, "id": { "$ref": "#/definitions/account-feature/definitions/id" }, "name": { "$ref": "#/definitions/account-feature/definitions/name" }, "state": { "$ref": "#/definitions/account-feature/definitions/state" }, "updated_at": { "$ref": "#/definitions/account-feature/definitions/updated_at" }, "display_name": { "$ref": "#/definitions/account-feature/definitions/display_name" }, "feedback_email": { "$ref": "#/definitions/account-feature/definitions/feedback_email" } } }, "account": { "description": "An account represents an individual signed up to use the Heroku platform.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Account", "type": [ "object" ], "definitions": { "allow_tracking": { "default": true, "description": "whether to allow third party web activity tracking", "example": true, "readOnly": false, "type": [ "boolean" ] }, "beta": { "default": false, "description": "whether allowed to utilize beta Heroku features", "example": false, "readOnly": false, "type": [ "boolean" ] }, "created_at": { "description": "when account was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "email": { "description": "unique email address of account", "example": "username@example.com", "format": "email", "readOnly": false, "type": [ "string" ] }, "federated": { "description": "whether the user is federated and belongs to an Identity Provider", "example": false, "readOnly": true, "type": [ "boolean" ] }, "id": { "description": "unique identifier of an account", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/account/definitions/email" }, { "$ref": "#/definitions/account/definitions/id" }, { "$ref": "#/definitions/account/definitions/self" } ] }, "last_login": { "description": "when account last authorized with Heroku", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string", "null" ] }, "name": { "description": "full name of the account owner", "example": "Tina Edmonds", "readOnly": false, "type": [ "string", "null" ] }, "password": { "description": "current password on the account", "example": "currentpassword", "readOnly": true, "type": [ "string" ] }, "self": { "description": "Implicit reference to currently authorized user", "enum": [ "~" ], "example": "~", "readOnly": true, "type": [ "string" ] }, "sms_number": { "description": "SMS number of account", "example": "+1 ***-***-1234", "readOnly": true, "type": [ "string", "null" ] }, "suspended_at": { "description": "when account was suspended", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string", "null" ] }, "delinquent_at": { "description": "when account became delinquent", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string", "null" ] }, "two_factor_authentication": { "description": "whether two-factor auth is enabled on the account", "example": false, "readOnly": true, "type": [ "boolean" ] }, "updated_at": { "description": "when account was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "verified": { "default": false, "description": "whether account has been verified with billing information", "example": false, "readOnly": true, "type": [ "boolean" ] } }, "links": [ { "description": "Info for account.", "href": "/account", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/account" }, "title": "Info" }, { "description": "Update account.", "href": "/account", "method": "PATCH", "rel": "update", "schema": { "properties": { "allow_tracking": { "$ref": "#/definitions/account/definitions/allow_tracking" }, "beta": { "$ref": "#/definitions/account/definitions/beta" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/account" }, "title": "Update" }, { "description": "Delete account. Note that this action cannot be undone.", "href": "/account", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/account" }, "title": "Delete" }, { "description": "Info for account.", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/account" }, "title": "Info By User" }, { "description": "Update account.", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "allow_tracking": { "$ref": "#/definitions/account/definitions/allow_tracking" }, "beta": { "$ref": "#/definitions/account/definitions/beta" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/account" }, "title": "Update By User" }, { "description": "Delete account. Note that this action cannot be undone.", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/account" }, "title": "Delete By User" } ], "properties": { "allow_tracking": { "$ref": "#/definitions/account/definitions/allow_tracking" }, "beta": { "$ref": "#/definitions/account/definitions/beta" }, "created_at": { "$ref": "#/definitions/account/definitions/created_at" }, "email": { "$ref": "#/definitions/account/definitions/email" }, "federated": { "$ref": "#/definitions/account/definitions/federated" }, "id": { "$ref": "#/definitions/account/definitions/id" }, "identity_provider": { "description": "Identity Provider details for federated users.", "properties": { "id": { "$ref": "#/definitions/identity-provider/definitions/id" }, "organization": { "type": [ "object" ], "properties": { "name": { "$ref": "#/definitions/organization/definitions/name" } } }, "owner": { "description": "entity that owns this identity provider", "properties": { "id": { "description": "unique identifier of the owner", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "name": { "description": "name of the owner", "example": "acme", "readOnly": true, "type": [ "string" ] }, "type": { "description": "type of the owner", "enum": [ "team", "enterprise-account" ], "example": "team", "readOnly": true, "type": [ "string" ] } }, "readOnly": false, "required": [ "id", "type" ], "type": [ "object" ] } }, "type": [ "object", "null" ] }, "last_login": { "$ref": "#/definitions/account/definitions/last_login" }, "name": { "$ref": "#/definitions/account/definitions/name" }, "sms_number": { "$ref": "#/definitions/account/definitions/sms_number" }, "suspended_at": { "$ref": "#/definitions/account/definitions/suspended_at" }, "delinquent_at": { "$ref": "#/definitions/account/definitions/delinquent_at" }, "two_factor_authentication": { "$ref": "#/definitions/account/definitions/two_factor_authentication" }, "updated_at": { "$ref": "#/definitions/account/definitions/updated_at" }, "verified": { "$ref": "#/definitions/account/definitions/verified" }, "default_organization": { "description": "organization selected by default", "properties": { "id": { "$ref": "#/definitions/organization/definitions/id" }, "name": { "$ref": "#/definitions/organization/definitions/name" } }, "strictProperties": true, "type": [ "object", "null" ] } } }, "add-on-action": { "description": "Add-on Actions are lifecycle operations for add-on provisioning and deprovisioning. They allow whitelisted add-on providers to (de)provision add-ons in the background and then report back when (de)provisioning is complete.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Add-on Action", "type": [ "object" ], "definitions": { }, "links": [ { "description": "Mark an add-on as provisioned for use.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/actions/provision", "method": "POST", "rel": "create", "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Provision" }, { "description": "Mark an add-on as deprovisioned.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/actions/deprovision", "method": "POST", "rel": "create", "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Deprovision" } ], "properties": { } }, "add-on-attachment": { "description": "An add-on attachment represents a connection between an app and an add-on that it has been given access to.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Add-on Attachment", "type": [ "object" ], "definitions": { "confirm": { "description": "name of owning app for confirmation", "example": "example", "type": [ "string" ] }, "created_at": { "description": "when add-on attachment was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this add-on attachment", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/add-on-attachment/definitions/id" } ] }, "scopedIdentity": { "anyOf": [ { "$ref": "#/definitions/add-on-attachment/definitions/id" }, { "$ref": "#/definitions/add-on-attachment/definitions/name" } ] }, "name": { "description": "unique name for this add-on attachment to this app", "example": "DATABASE", "readOnly": true, "type": [ "string" ] }, "namespace": { "description": "attachment namespace", "example": "role:analytics", "readOnly": true, "type": [ "null", "string" ] }, "updated_at": { "description": "when add-on attachment was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "web_url": { "description": "URL for logging into web interface of add-on in attached app context", "example": "https://postgres.heroku.com/databases/01234567-89ab-cdef-0123-456789abcdef", "format": "uri", "readOnly": true, "type": [ "null", "string" ] } }, "links": [ { "description": "Create a new add-on attachment.", "href": "/addon-attachments", "method": "POST", "rel": "create", "schema": { "properties": { "addon": { "$ref": "#/definitions/add-on/definitions/identity" }, "app": { "$ref": "#/definitions/app/definitions/identity" }, "confirm": { "$ref": "#/definitions/add-on-attachment/definitions/confirm" }, "name": { "$ref": "#/definitions/add-on-attachment/definitions/name" }, "namespace": { "$ref": "#/definitions/add-on-attachment/definitions/namespace" } }, "required": [ "addon", "app" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/add-on-attachment" }, "title": "Create" }, { "description": "Delete an existing add-on attachment.", "href": "/addon-attachments/{(%23%2Fdefinitions%2Fadd-on-attachment%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/add-on-attachment" }, "title": "Delete" }, { "description": "Info for existing add-on attachment.", "href": "/addon-attachments/{(%23%2Fdefinitions%2Fadd-on-attachment%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/add-on-attachment" }, "title": "Info" }, { "description": "List existing add-on attachments.", "href": "/addon-attachments", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-attachment" }, "type": [ "array" ] }, "title": "List" }, { "description": "List existing add-on attachments for an add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/addon-attachments", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-attachment" }, "type": [ "array" ] }, "title": "List by Add-on" }, { "description": "List existing add-on attachments for an app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/addon-attachments", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-attachment" }, "type": [ "array" ] }, "title": "List by App" }, { "description": "Info for existing add-on attachment for an app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/addon-attachments/{(%23%2Fdefinitions%2Fadd-on-attachment%2Fdefinitions%2FscopedIdentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/add-on-attachment" }, "title": "Info by App" }, { "description": "Resolve an add-on attachment from a name, optionally passing an app name. If there are matches it returns at least one add-on attachment (exact match) or many.", "href": "/actions/addon-attachments/resolve", "method": "POST", "rel": "resolve", "schema": { "properties": { "addon_attachment": { "$ref": "#/definitions/add-on-attachment/definitions/name" }, "app": { "$ref": "#/definitions/app/definitions/name" }, "addon_service": { "$ref": "#/definitions/add-on-service/definitions/name" } }, "required": [ "addon_attachment" ] }, "targetSchema": { "items": { "$ref": "#/definitions/add-on-attachment" }, "type": [ "array" ] }, "title": "Resolution" } ], "properties": { "addon": { "description": "identity of add-on", "properties": { "id": { "$ref": "#/definitions/add-on/definitions/id" }, "name": { "$ref": "#/definitions/add-on/definitions/name" }, "app": { "description": "billing application associated with this add-on", "type": [ "object" ], "properties": { "id": { "$ref": "#/definitions/app/definitions/id" }, "name": { "$ref": "#/definitions/app/definitions/name" } }, "strictProperties": true } }, "additionalProperties": false, "required": [ "id", "name", "app" ], "type": [ "object" ] }, "app": { "description": "application that is attached to add-on", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" }, "name": { "$ref": "#/definitions/app/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/add-on-attachment/definitions/created_at" }, "id": { "$ref": "#/definitions/add-on-attachment/definitions/id" }, "name": { "$ref": "#/definitions/add-on-attachment/definitions/name" }, "namespace": { "$ref": "#/definitions/add-on-attachment/definitions/namespace" }, "updated_at": { "$ref": "#/definitions/add-on-attachment/definitions/updated_at" }, "web_url": { "$ref": "#/definitions/add-on-attachment/definitions/web_url" } } }, "add-on-config": { "description": "Configuration of an Add-on", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Add-on Config", "type": [ "object" ], "definitions": { "identity": { "anyOf": [ { "$ref": "#/definitions/add-on-config/definitions/name" } ] }, "name": { "description": "unique name of the config", "example": "FOO", "type": [ "string" ] }, "value": { "description": "value of the config", "example": "bar", "type": [ "string", "null" ] } }, "links": [ { "description": "Get an add-on's config. Accessible by customers with access and by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/config", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-config" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update an add-on's config. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/config", "method": "PATCH", "rel": "update", "schema": { "properties": { "config": { "items": { "$ref": "#/definitions/add-on-config" }, "type": [ "array" ] } }, "type": [ "object" ] }, "targetSchema": { "type": [ "array" ], "items": { "$ref": "#/definitions/add-on-config" } }, "title": "Update" } ], "properties": { "name": { "$ref": "#/definitions/add-on-config/definitions/name" }, "value": { "$ref": "#/definitions/add-on-config/definitions/value" } } }, "add-on-plan-action": { "description": "Add-on Plan Actions are Provider functionality for specific add-on installations", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Add-on Plan Action", "type": [ "object" ], "definitions": { "id": { "description": "a unique identifier", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "$ref": "#/definitions/add-on-plan-action/definitions/id" }, "label": { "description": "the display text shown in Dashboard", "example": "Example", "readOnly": true, "type": [ "string" ] }, "action": { "description": "identifier of the action to take that is sent via SSO", "example": "example", "readOnly": true, "type": [ "string" ] }, "url": { "description": "absolute URL to use instead of an action", "example": "http://example.com?resource_id=:resource_id", "readOnly": true, "type": [ "string" ] }, "requires_owner": { "description": "if the action requires the user to own the app", "example": true, "readOnly": true, "type": [ "boolean" ] } }, "properties": { "id": { "$ref": "#/definitions/add-on-plan-action/definitions/id" }, "label": { "$ref": "#/definitions/add-on-plan-action/definitions/label" }, "action": { "$ref": "#/definitions/add-on-plan-action/definitions/action" }, "url": { "$ref": "#/definitions/add-on-plan-action/definitions/url" }, "requires_owner": { "$ref": "#/definitions/add-on-plan-action/definitions/requires_owner" } } }, "add-on-region-capability": { "description": "Add-on region capabilities represent the relationship between an Add-on Service and a specific Region. Only Beta and GA add-ons are returned by these endpoints.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Add-on Region Capability", "type": [ "object" ], "definitions": { "id": { "description": "unique identifier of this add-on-region-capability", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "supports_private_networking": { "description": "whether the add-on can be installed to a Space", "readOnly": true, "type": [ "boolean" ] }, "identity": { "$ref": "#/definitions/add-on-region-capability/definitions/id" } }, "links": [ { "description": "List all existing add-on region capabilities.", "href": "/addon-region-capabilities", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-region-capability" }, "type": [ "array" ] }, "title": "List" }, { "description": "List existing add-on region capabilities for an add-on-service", "href": "/addon-services/{(%23%2Fdefinitions%2Fadd-on-service%2Fdefinitions%2Fidentity)}/region-capabilities", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-region-capability" }, "type": [ "array" ] }, "title": "List by Add-on Service" }, { "description": "List existing add-on region capabilities for a region.", "href": "/regions/{(%23%2Fdefinitions%2Fregion%2Fdefinitions%2Fidentity)}/addon-region-capabilities", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-region-capability" }, "type": [ "array" ] }, "title": "List By Region" } ], "properties": { "id": { "$ref": "#/definitions/add-on-region-capability/definitions/id" }, "supports_private_networking": { "$ref": "#/definitions/add-on-region-capability/definitions/supports_private_networking" }, "addon_service": { "$ref": "#/definitions/add-on-service" }, "region": { "$ref": "#/definitions/region" } } }, "add-on-service": { "description": "Add-on services represent add-ons that may be provisioned for apps. Endpoints under add-on services can be accessed without authentication.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Add-on Service", "type": [ "object" ], "definitions": { "cli_plugin_name": { "description": "npm package name of the add-on service's Heroku CLI plugin", "example": "heroku-papertrail", "readOnly": true, "type": [ "string", "null" ] }, "created_at": { "description": "when add-on-service was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "human_name": { "description": "human-readable name of the add-on service provider", "example": "Heroku Postgres", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this add-on-service", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/add-on-service/definitions/id" }, { "$ref": "#/definitions/add-on-service/definitions/name" } ] }, "name": { "description": "unique name of this add-on-service", "example": "heroku-postgresql", "readOnly": true, "type": [ "string" ] }, "state": { "description": "release status for add-on service", "enum": [ "alpha", "beta", "ga", "shutdown" ], "example": "ga", "readOnly": true, "type": [ "string" ] }, "supports_multiple_installations": { "default": false, "description": "whether or not apps can have access to more than one instance of this add-on at the same time", "example": false, "readOnly": true, "type": [ "boolean" ] }, "supports_sharing": { "default": false, "description": "whether or not apps can have access to add-ons billed to a different app", "example": false, "readOnly": true, "type": [ "boolean" ] }, "updated_at": { "description": "when add-on-service was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Info for existing add-on-service.", "href": "/addon-services/{(%23%2Fdefinitions%2Fadd-on-service%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/add-on-service" }, "title": "Info" }, { "description": "List existing add-on-services.", "href": "/addon-services", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-service" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "cli_plugin_name": { "$ref": "#/definitions/add-on-service/definitions/cli_plugin_name" }, "created_at": { "$ref": "#/definitions/add-on-service/definitions/created_at" }, "human_name": { "$ref": "#/definitions/add-on-service/definitions/human_name" }, "id": { "$ref": "#/definitions/add-on-service/definitions/id" }, "name": { "$ref": "#/definitions/add-on-service/definitions/name" }, "state": { "$ref": "#/definitions/add-on-service/definitions/state" }, "supports_multiple_installations": { "$ref": "#/definitions/add-on-service/definitions/supports_multiple_installations" }, "supports_sharing": { "$ref": "#/definitions/add-on-service/definitions/supports_sharing" }, "updated_at": { "$ref": "#/definitions/add-on-service/definitions/updated_at" } } }, "add-on-webhook-delivery": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - Add-on Webhook Delivery", "description": "Represents the delivery of a webhook notification, including its current status.", "stability": "production", "strictProperties": true, "type": [ "object" ], "links": [ { "description": "Returns the info for an existing delivery. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhook-deliveries/{(%23%2Fdefinitions%2Fapp-webhook-delivery%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app-webhook-delivery" }, "title": "Info" }, { "description": "Lists existing deliveries for an add-on. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhook-deliveries", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app-webhook-delivery" }, "type": [ "array" ] }, "title": "List" } ] }, "add-on-webhook-event": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - Add-on Webhook Event", "description": "Represents a webhook event that occurred.", "stability": "production", "strictProperties": true, "type": [ "object" ], "links": [ { "description": "Returns the info for a specified webhook event. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhook-events/{(%23%2Fdefinitions%2Fapp-webhook-event%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app-webhook-event" }, "title": "Info" }, { "description": "Lists existing webhook events for an add-on. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhook-events", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app-webhook-event" }, "type": [ "array" ] }, "title": "List" } ] }, "add-on-webhook": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - Add-on Webhook", "description": "Represents the details of a webhook subscription", "stability": "production", "strictProperties": false, "additionalProperties": false, "required": [ "created_at", "id", "include", "level", "updated_at", "url" ], "type": [ "object" ], "definitions": { "addon_webhook": { "properties": { "addon": { "description": "identity of add-on. Only used for add-on partner webhooks.", "properties": { "id": { "$ref": "#/definitions/add-on/definitions/id" }, "name": { "$ref": "#/definitions/add-on/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/app-webhook/definitions/created_at" }, "id": { "$ref": "#/definitions/app-webhook/definitions/id" }, "include": { "$ref": "#/definitions/app-webhook/definitions/include" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" }, "updated_at": { "$ref": "#/definitions/app-webhook/definitions/updated_at" }, "url": { "$ref": "#/definitions/app-webhook/definitions/url" } }, "description": "add-on webhook", "type": [ "object" ] } }, "links": [ { "description": "Create an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhooks", "method": "POST", "rel": "create", "schema": { "properties": { "authorization": { "$ref": "#/definitions/app-webhook/definitions/authorization" }, "include": { "$ref": "#/definitions/app-webhook/definitions/include" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" }, "secret": { "$ref": "#/definitions/app-webhook/definitions/secret" }, "url": { "$ref": "#/definitions/app-webhook/definitions/url" } }, "additionalProperties": false, "required": [ "include", "level", "url" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/add-on-webhook/definitions/addon_webhook" }, "title": "Create" }, { "description": "Removes an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhooks/{(%23%2Fdefinitions%2Fapp-webhook%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/add-on-webhook/definitions/addon_webhook" }, "title": "Delete" }, { "description": "Returns the info for an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhooks/{(%23%2Fdefinitions%2Fapp-webhook%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/add-on-webhook/definitions/addon_webhook" }, "title": "Info" }, { "description": "List all webhook subscriptions for a particular add-on. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhooks", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on-webhook/definitions/addon_webhook" }, "type": [ "array" ] }, "title": "List" }, { "description": "Updates the details of an add-on webhook subscription. Can only be accessed by the add-on partner providing this add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/webhooks/{(%23%2Fdefinitions%2Fapp-webhook%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "authorization": { "$ref": "#/definitions/app-webhook/definitions/authorization" }, "include": { "$ref": "#/definitions/app-webhook/definitions/include" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" }, "secret": { "$ref": "#/definitions/app-webhook/definitions/secret" }, "url": { "$ref": "#/definitions/app-webhook/definitions/url" } }, "strictProperties": false, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/add-on-webhook/definitions/addon_webhook" }, "title": "Update" } ], "properties": { "created_at": { "$ref": "#/definitions/app-webhook/definitions/created_at" }, "id": { "$ref": "#/definitions/app-webhook/definitions/id" }, "include": { "$ref": "#/definitions/app-webhook/definitions/include" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" }, "updated_at": { "$ref": "#/definitions/app-webhook/definitions/updated_at" }, "url": { "$ref": "#/definitions/app-webhook/definitions/url" } } }, "add-on": { "description": "Add-ons represent add-ons that have been provisioned and attached to one or more apps.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Add-on", "type": [ "object" ], "definitions": { "actions": { "description": "provider actions for this specific add-on", "type": [ "array" ], "items": { "type": [ "object" ] }, "readOnly": true, "properties": { "id": { "$ref": "#/definitions/add-on-plan-action/definitions/id" }, "label": { "$ref": "#/definitions/add-on-plan-action/definitions/label" }, "action": { "$ref": "#/definitions/add-on-plan-action/definitions/action" }, "url": { "$ref": "#/definitions/add-on-plan-action/definitions/url" }, "requires_owner": { "$ref": "#/definitions/add-on-plan-action/definitions/requires_owner" } } }, "cents": { "description": "price in cents per unit of add-on", "example": 0, "readOnly": true, "type": [ "integer" ] }, "config_vars": { "description": "config vars exposed to the owning app by this add-on", "example": [ "FOO", "BAZ" ], "items": { "type": [ "string" ] }, "readOnly": true, "type": [ "array" ] }, "confirm": { "description": "name of billing entity for confirmation", "example": "example", "type": [ "string" ] }, "created_at": { "description": "when add-on was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of add-on", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/add-on/definitions/id" }, { "$ref": "#/definitions/add-on/definitions/name" } ] }, "name": { "description": "globally unique name of the add-on", "example": "acme-inc-primary-database", "pattern": "^[a-zA-Z][A-Za-z0-9_-]+$", "readOnly": true, "type": [ "string" ] }, "provider_id": { "description": "id of this add-on with its provider", "example": "abcd1234", "readOnly": true, "type": [ "string" ] }, "state": { "description": "state in the add-on's lifecycle", "enum": [ "provisioning", "provisioned", "deprovisioned" ], "example": "provisioned", "readOnly": true, "type": [ "string" ] }, "unit": { "description": "unit of price for add-on", "example": "month", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when add-on was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "web_url": { "description": "URL for logging into web interface of add-on (e.g. a dashboard)", "example": "https://postgres.heroku.com/databases/01234567-89ab-cdef-0123-456789abcdef", "format": "uri", "readOnly": true, "type": [ "null", "string" ] } }, "links": [ { "description": "List all existing add-ons.", "href": "/addons", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on" }, "type": [ "array" ] }, "title": "List" }, { "description": "Info for an existing add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Info" }, { "description": "Create a new add-on.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/addons", "method": "POST", "rel": "create", "schema": { "properties": { "attachment": { "description": "name for add-on's initial attachment", "example": { "name": "DATABASE_FOLLOWER" }, "properties": { "name": { "$ref": "#/definitions/add-on-attachment/definitions/name" } }, "type": [ "object" ] }, "config": { "additionalProperties": false, "description": "custom add-on provisioning options", "example": { "db-version": "1.2.3" }, "patternProperties": { "^\\w+$": { "type": [ "string" ] } }, "type": [ "object" ] }, "confirm": { "$ref": "#/definitions/add-on/definitions/confirm" }, "plan": { "$ref": "#/definitions/plan/definitions/identity" }, "name": { "$ref": "#/definitions/add-on/definitions/name" } }, "required": [ "plan" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Create" }, { "description": "Delete an existing add-on.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Delete" }, { "description": "Info for an existing add-on.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/add-on" }, "title": "Info By App" }, { "description": "List existing add-ons for an app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/addons", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on" }, "type": [ "array" ] }, "title": "List By App" }, { "description": "Change add-on plan. Some add-ons may not support changing plans. In that case, an error will be returned.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "plan": { "$ref": "#/definitions/plan/definitions/identity" } }, "required": [ "plan" ], "type": [ "object" ] }, "title": "Update" }, { "description": "List all existing add-ons a user has access to", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}/addons", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on" }, "type": [ "array" ] }, "title": "List By User" }, { "description": "List add-ons used across all Team apps", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/addons", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on" }, "type": [ "array" ] }, "title": "List By Team" }, { "description": "Resolve an add-on from a name, optionally passing an app name. If there are matches it returns at least one add-on (exact match) or many.", "href": "/actions/addons/resolve", "method": "POST", "rel": "resolve", "schema": { "properties": { "addon": { "$ref": "#/definitions/add-on/definitions/name" }, "app": { "$ref": "#/definitions/app/definitions/name" }, "addon_service": { "$ref": "#/definitions/add-on-service/definitions/name" } }, "required": [ "addon" ] }, "targetSchema": { "items": { "$ref": "#/definitions/add-on" }, "type": [ "array" ] }, "title": "Resolution" } ], "properties": { "actions": { "$ref": "#/definitions/add-on/definitions/actions" }, "addon_service": { "description": "identity of add-on service", "properties": { "id": { "$ref": "#/definitions/add-on-service/definitions/id" }, "name": { "$ref": "#/definitions/add-on-service/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "billing_entity": { "description": "billing entity associated with this add-on", "type": [ "object" ], "properties": { "id": { "description": "unique identifier of the billing entity", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "name": { "description": "name of the billing entity", "example": "example", "readOnly": true, "type": [ "string" ] }, "type": { "description": "type of Object of the billing entity; new types allowed at any time.", "enum": [ "app", "team" ], "example": "app", "readOnly": true, "type": [ "string" ] } }, "strictProperties": true }, "app": { "description": "billing application associated with this add-on", "type": [ "object" ], "properties": { "id": { "$ref": "#/definitions/app/definitions/id" }, "name": { "$ref": "#/definitions/app/definitions/name" } }, "strictProperties": true }, "billed_price": { "description": "billed price", "properties": { "cents": { "$ref": "#/definitions/plan/definitions/cents" }, "contract": { "$ref": "#/definitions/plan/definitions/contract" }, "unit": { "$ref": "#/definitions/plan/definitions/unit" } }, "strictProperties": true, "type": [ "object", "null" ] }, "config_vars": { "$ref": "#/definitions/add-on/definitions/config_vars" }, "created_at": { "$ref": "#/definitions/add-on/definitions/created_at" }, "id": { "$ref": "#/definitions/add-on/definitions/id" }, "name": { "$ref": "#/definitions/add-on/definitions/name" }, "plan": { "description": "identity of add-on plan", "properties": { "id": { "$ref": "#/definitions/plan/definitions/id" }, "name": { "$ref": "#/definitions/plan/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "provider_id": { "$ref": "#/definitions/add-on/definitions/provider_id" }, "state": { "$ref": "#/definitions/add-on/definitions/state" }, "updated_at": { "$ref": "#/definitions/add-on/definitions/updated_at" }, "web_url": { "$ref": "#/definitions/add-on/definitions/web_url" } } }, "app-feature": { "description": "An app feature represents a Heroku labs capability that can be enabled or disabled for an app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - App Feature", "type": [ "object" ], "definitions": { "created_at": { "description": "when app feature was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "description": { "description": "description of app feature", "example": "Causes app to example.", "readOnly": true, "type": [ "string" ] }, "doc_url": { "description": "documentation URL of app feature", "example": "http://devcenter.heroku.com/articles/example", "readOnly": true, "type": [ "string" ] }, "enabled": { "description": "whether or not app feature has been enabled", "example": true, "readOnly": false, "type": [ "boolean" ] }, "id": { "description": "unique identifier of app feature", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app-feature/definitions/id" }, { "$ref": "#/definitions/app-feature/definitions/name" } ] }, "name": { "description": "unique name of app feature", "example": "name", "readOnly": true, "type": [ "string" ] }, "state": { "description": "state of app feature", "example": "public", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when app 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 app feature.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/features/{(%23%2Fdefinitions%2Fapp-feature%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app-feature" }, "title": "Info" }, { "description": "List existing app features.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/features", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app-feature" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update an existing app feature.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/features/{(%23%2Fdefinitions%2Fapp-feature%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "enabled": { "$ref": "#/definitions/app-feature/definitions/enabled" } }, "required": [ "enabled" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/app-feature" }, "title": "Update" } ], "properties": { "created_at": { "$ref": "#/definitions/app-feature/definitions/created_at" }, "description": { "$ref": "#/definitions/app-feature/definitions/description" }, "doc_url": { "$ref": "#/definitions/app-feature/definitions/doc_url" }, "enabled": { "$ref": "#/definitions/app-feature/definitions/enabled" }, "id": { "$ref": "#/definitions/app-feature/definitions/id" }, "name": { "$ref": "#/definitions/app-feature/definitions/name" }, "state": { "$ref": "#/definitions/app-feature/definitions/state" }, "updated_at": { "$ref": "#/definitions/app-feature/definitions/updated_at" }, "display_name": { "$ref": "#/definitions/app-feature/definitions/display_name" }, "feedback_email": { "$ref": "#/definitions/app-feature/definitions/feedback_email" } } }, "app-formation-set": { "description": "App formation set describes the combination of process types with their quantities and sizes as well as application process tier", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Application Formation Set", "type": [ "object" ], "properties": { "description": { "description": "a string representation of the formation set", "example": "web@2:Standard-2X worker@3:Performance-M", "readOnly": true, "type": [ "string" ] }, "process_tier": { "description": "application process tier", "enum": [ "production", "free", "hobby", "private" ], "example": "production", "readOnly": true, "type": [ "string" ] }, "app": { "description": "app being described by the formation-set", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "type": [ "object" ] }, "updated_at": { "description": "last time fomation-set was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } } }, "app-setup": { "description": "An app setup represents an app on Heroku that is setup using an environment, addons, and scripts described in an app.json manifest file.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Setup API - App Setup", "type": [ "object" ], "definitions": { "id": { "description": "unique identifier of app setup", "example": "01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "type": [ "string" ], "format": "uuid" }, "identity": { "anyOf": [ { "$ref": "#/definitions/app-setup/definitions/id" } ] }, "buildpack_override": { "description": "a buildpack override", "properties": { "url": { "description": "location of the buildpack", "example": "https://example.com/buildpack.tgz", "type": [ "string" ] } }, "type": [ "object" ] }, "created_at": { "description": "when app setup was created", "example": "2012-01-01T12:00:00Z", "readOnly": true, "type": [ "string" ], "format": "date-time" }, "updated_at": { "description": "when app setup was updated", "example": "2012-01-01T12:00:00Z", "readOnly": true, "type": [ "string" ], "format": "date-time" }, "status": { "description": "the overall status of app setup", "example": "failed", "enum": [ "failed", "pending", "succeeded" ], "readOnly": true, "type": [ "string" ] }, "resolved_success_url": { "description": "fully qualified success url", "example": "https://example.herokuapp.com/welcome", "readOnly": true, "type": [ "string", "null" ] }, "failure_message": { "description": "reason that app setup has failed", "example": "invalid app.json", "readOnly": true, "type": [ "string", "null" ] }, "manifest_errors": { "description": "errors associated with invalid app.json manifest file", "example": [ "config var FOO is required" ], "readOnly": true, "items": { "type": [ "string" ] }, "type": [ "array" ] }, "overrides": { "description": "overrides of keys in the app.json manifest file", "example": { "buildpacks": [ { "url": "https://example.com/buildpack.tgz" } ], "env": { "FOO": "bar", "BAZ": "qux" } }, "properties": { "buildpacks": { "description": "overrides the buildpacks specified in the app.json manifest file", "example": [ { "url": "https://example.com/buildpack.tgz" } ], "items": { "$ref": "#/definitions/app-setup/definitions/buildpack_override" }, "type": [ "array" ] }, "env": { "description": "overrides of the env specified in the app.json manifest file", "example": { "FOO": "bar", "BAZ": "qux" }, "readOnly": true, "additionalProperties": false, "patternProperties": { "^\\w+$": { "type": [ "string" ] } }, "type": [ "object" ] } }, "type": [ "object" ] }, "postdeploy": { "description": "result of postdeploy script", "type": [ "object", "null" ], "properties": { "output": { "description": "output of the postdeploy script", "example": "assets precompiled", "readOnly": true, "type": [ "string" ] }, "exit_code": { "description": "The exit code of the postdeploy script", "example": 1, "readOnly": true, "type": [ "integer" ] } }, "readOnly": true } }, "properties": { "id": { "$ref": "#/definitions/app-setup/definitions/id" }, "created_at": { "$ref": "#/definitions/app-setup/definitions/created_at" }, "updated_at": { "$ref": "#/definitions/app-setup/definitions/updated_at" }, "status": { "$ref": "#/definitions/app-setup/definitions/status" }, "failure_message": { "$ref": "#/definitions/app-setup/definitions/failure_message" }, "app": { "description": "identity of app", "strictProperties": true, "type": [ "object" ], "properties": { "id": { "$ref": "#/definitions/app/definitions/id" }, "name": { "$ref": "#/definitions/app/definitions/name" } } }, "build": { "description": "identity and status of build", "strictProperties": true, "type": [ "null", "object" ], "properties": { "id": { "$ref": "#/definitions/build/definitions/id" }, "status": { "$ref": "#/definitions/build/definitions/status" }, "output_stream_url": { "$ref": "#/definitions/build/definitions/output_stream_url" } } }, "manifest_errors": { "$ref": "#/definitions/app-setup/definitions/manifest_errors" }, "postdeploy": { "$ref": "#/definitions/app-setup/definitions/postdeploy" }, "resolved_success_url": { "$ref": "#/definitions/app-setup/definitions/resolved_success_url" } }, "links": [ { "description": "Create a new app setup from a gzipped tar archive containing an app.json manifest file.", "title": "Create", "rel": "create", "method": "POST", "href": "/app-setups", "schema": { "required": [ "source_blob" ], "type": [ "object" ], "properties": { "app": { "description": "optional parameters for created app", "properties": { "locked": { "$ref": "#/definitions/organization-app/definitions/locked" }, "name": { "$ref": "#/definitions/app/definitions/name" }, "organization": { "$ref": "#/definitions/organization/definitions/name" }, "personal": { "$ref": "#/definitions/organization-app/definitions/personal" }, "region": { "$ref": "#/definitions/region/definitions/name" }, "space": { "$ref": "#/definitions/space/definitions/name" }, "stack": { "$ref": "#/definitions/stack/definitions/name" } }, "type": [ "object" ] }, "source_blob": { "description": "gzipped tarball of source code containing app.json manifest file", "properties": { "checksum": { "description": "an optional checksum of the gzipped tarball for verifying its integrity", "example": "SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "readOnly": true, "type": [ "null", "string" ] }, "url": { "description": "URL of gzipped tarball of source code containing app.json manifest file", "example": "https://example.com/source.tgz?token=xyz", "readOnly": true, "type": [ "string" ] }, "version": { "description": "Version of the gzipped tarball.", "example": "v1.3.0", "readOnly": true, "type": [ "string", "null" ] } }, "type": [ "object" ] }, "overrides": { "$ref": "#/definitions/app-setup/definitions/overrides" } } }, "targetSchema": { "$ref": "#/definitions/app-setup" } }, { "description": "Get the status of an app setup.", "title": "Info", "rel": "self", "method": "GET", "href": "/app-setups/{(%23%2Fdefinitions%2Fapp-setup%2Fdefinitions%2Fidentity)}", "targetSchema": { "$ref": "#/definitions/app-setup" } } ] }, "app-transfer": { "description": "An app transfer represents a two party interaction for transferring ownership of an app.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - App Transfer", "type": [ "object" ], "definitions": { "created_at": { "description": "when app transfer was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of app transfer", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app-transfer/definitions/id" }, { "$ref": "#/definitions/app/definitions/name" } ] }, "silent": { "default": false, "description": "whether to suppress email notification when transferring apps", "example": false, "readOnly": true, "type": [ "boolean" ] }, "state": { "description": "the current state of an app transfer", "enum": [ "pending", "accepted", "declined" ], "example": "pending", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when app transfer was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new app transfer.", "href": "/account/app-transfers", "method": "POST", "rel": "create", "schema": { "properties": { "app": { "$ref": "#/definitions/app/definitions/identity" }, "recipient": { "$ref": "#/definitions/account/definitions/identity" }, "silent": { "$ref": "#/definitions/app-transfer/definitions/silent" } }, "required": [ "app", "recipient" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/app-transfer" }, "title": "Create" }, { "description": "Delete an existing app transfer", "href": "/account/app-transfers/{(%23%2Fdefinitions%2Fapp-transfer%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/app-transfer" }, "title": "Delete" }, { "description": "Info for existing app transfer.", "href": "/account/app-transfers/{(%23%2Fdefinitions%2Fapp-transfer%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app-transfer" }, "title": "Info" }, { "description": "List existing apps transfers.", "href": "/account/app-transfers", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app-transfer" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update an existing app transfer.", "href": "/account/app-transfers/{(%23%2Fdefinitions%2Fapp-transfer%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "state": { "$ref": "#/definitions/app-transfer/definitions/state" } }, "required": [ "state" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/app-transfer" }, "title": "Update" } ], "properties": { "app": { "description": "app involved in the transfer", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/app-transfer/definitions/created_at" }, "id": { "$ref": "#/definitions/app-transfer/definitions/id" }, "owner": { "description": "identity of the owner of the transfer", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "recipient": { "description": "identity of the recipient of the transfer", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "state": { "$ref": "#/definitions/app-transfer/definitions/state" }, "updated_at": { "$ref": "#/definitions/app-transfer/definitions/updated_at" } } }, "app-webhook-delivery": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - App Webhook Delivery", "description": "Represents the delivery of a webhook notification, including its current status.", "stability": "production", "strictProperties": true, "type": [ "object" ], "definitions": { "attempt_id": { "description": "unique identifier of attempt", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "attempt_error_class": { "description": "error class encountered during attempt", "readOnly": true, "type": [ "string", "null" ] }, "attempt_code": { "description": "http response code received during attempt", "readOnly": true, "type": [ "integer", "null" ] }, "attempt_created_at": { "description": "when attempt was created", "format": "date-time", "type": [ "string" ] }, "attempt_updated_at": { "description": "when attempt was updated", "format": "date-time", "type": [ "string" ] }, "attempt_status": { "description": "status of an attempt", "enum": [ "scheduled", "succeeded", "failed" ], "example": "scheduled", "type": [ "string" ] }, "created_at": { "description": "when the delivery was created", "format": "date-time", "type": [ "string" ] }, "id": { "description": "the delivery's unique identifier", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "num_attempts": { "description": "number of times a delivery has been attempted", "readOnly": true, "type": [ "integer" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app-webhook-delivery/definitions/id" } ] }, "next_attempt_at": { "description": "when delivery will be attempted again", "format": "date-time", "type": [ "string", "null" ] }, "status": { "description": "the delivery's status", "enum": [ "pending", "scheduled", "retrying", "failed", "succeeded" ], "example": "pending", "type": [ "string" ] }, "updated_at": { "description": "when the delivery was last updated", "format": "date-time", "type": [ "string" ] } }, "links": [ { "description": "Returns the info for an existing delivery.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhook-deliveries/{(%23%2Fdefinitions%2Fapp-webhook-delivery%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app-webhook-delivery" }, "title": "Info" }, { "description": "Lists existing deliveries for an app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhook-deliveries", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app-webhook-delivery" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "created_at": { "$ref": "#/definitions/app-webhook-delivery/definitions/created_at" }, "event": { "description": "identity of event", "properties": { "id": { "$ref": "#/definitions/app-webhook-event/definitions/id" }, "include": { "$ref": "#/definitions/app-webhook-event/definitions/include" } }, "strictProperties": true, "type": [ "object" ] }, "id": { "$ref": "#/definitions/app-webhook-delivery/definitions/id" }, "num_attempts": { "$ref": "#/definitions/app-webhook-delivery/definitions/num_attempts" }, "next_attempt_at": { "$ref": "#/definitions/app-webhook-delivery/definitions/next_attempt_at" }, "last_attempt": { "description": "last attempt of a delivery", "properties": { "id": { "$ref": "#/definitions/app-webhook-delivery/definitions/attempt_id" }, "code": { "$ref": "#/definitions/app-webhook-delivery/definitions/attempt_code" }, "error_class": { "$ref": "#/definitions/app-webhook-delivery/definitions/attempt_error_class" }, "status": { "$ref": "#/definitions/app-webhook-delivery/definitions/attempt_status" }, "created_at": { "$ref": "#/definitions/app-webhook-delivery/definitions/attempt_created_at" }, "updated_at": { "$ref": "#/definitions/app-webhook-delivery/definitions/attempt_updated_at" } }, "strictProperties": true, "type": [ "object", "null" ] }, "status": { "$ref": "#/definitions/app-webhook-delivery/definitions/status" }, "updated_at": { "$ref": "#/definitions/app-webhook-delivery/definitions/updated_at" }, "webhook": { "description": "identity of webhook", "properties": { "id": { "$ref": "#/definitions/app-webhook/definitions/id" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" } }, "strictProperties": true, "type": [ "object" ] } } }, "app-webhook-event": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - App Webhook Event", "description": "Represents a webhook event that occurred.", "stability": "production", "strictProperties": true, "type": [ "object" ], "definitions": { "action": { "description": "the type of event that occurred", "example": "create", "type": [ "string" ] }, "actor": { "description": "user that caused event", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "description": "when event was created", "format": "date-time", "type": [ "string" ] }, "data": { "description": "the current details of the event", "type": [ "object" ] }, "id": { "description": "the event's unique identifier", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app-webhook-event/definitions/id" } ] }, "include": { "description": "the type of entity that the event is related to", "example": "api:release", "type": [ "string" ] }, "payload": { "description": "payload of event", "properties": { "action": { "$ref": "#/definitions/app-webhook-event/definitions/action" }, "actor": { "$ref": "#/definitions/app-webhook-event/definitions/actor" }, "data": { "$ref": "#/definitions/app-webhook-event/definitions/data" }, "previous_data": { "$ref": "#/definitions/app-webhook-event/definitions/previous_data" }, "resource": { "$ref": "#/definitions/app-webhook-event/definitions/resource" }, "version": { "$ref": "#/definitions/app-webhook-event/definitions/version" } }, "strictProperties": true, "type": [ "object" ] }, "previous_data": { "description": "previous details of the event (if any)", "type": [ "object" ] }, "resource": { "description": "the type of resource associated with the event", "example": "release", "type": [ "string" ] }, "updated_at": { "description": "when the event was last updated", "format": "date-time", "type": [ "string" ] }, "version": { "description": "the version of the details provided for the event", "example": "1", "type": [ "string" ] } }, "links": [ { "description": "Returns the info for a specified webhook event.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhook-events/{(%23%2Fdefinitions%2Fapp-webhook-event%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app-webhook-event" }, "title": "Info" }, { "description": "Lists existing webhook events for an app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhook-events", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app-webhook-event" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "created_at": { "$ref": "#/definitions/app-webhook-event/definitions/created_at" }, "id": { "$ref": "#/definitions/app-webhook-event/definitions/id" }, "include": { "$ref": "#/definitions/app-webhook-event/definitions/include" }, "payload": { "$ref": "#/definitions/app-webhook-event/definitions/payload" }, "updated_at": { "$ref": "#/definitions/app-webhook-event/definitions/updated_at" } } }, "app-webhook": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - App Webhook", "description": "Represents the details of a webhook subscription", "stability": "production", "strictProperties": false, "additionalProperties": false, "required": [ "created_at", "id", "include", "level", "updated_at", "url" ], "type": [ "object" ], "definitions": { "authorization": { "description": "a custom `Authorization` header that Heroku will include with all webhook notifications", "example": "Bearer 9266671b2767f804c9d5809c2d384ed57d8f8ce1abd1043e1fb3fbbcb8c3", "type": [ "null", "string" ] }, "created_at": { "description": "when the webhook was created", "format": "date-time", "type": [ "string" ] }, "id": { "description": "the webhook's unique identifier", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "include": { "description": "the entities that the subscription provides notifications for", "items": { "example": "api:release", "type": [ "string" ] }, "type": [ "array" ] }, "level": { "description": "if `notify`, Heroku makes a single, fire-and-forget delivery attempt. If `sync`, Heroku attempts multiple deliveries until the request is successful or a limit is reached", "enum": [ "notify", "sync" ], "example": "notify", "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app-webhook/definitions/id" } ] }, "secret": { "description": "a value that Heroku will use to sign all webhook notification requests (the signature is included in the request’s `Heroku-Webhook-Hmac-SHA256` header)", "example": "dcbff0c4430a2960a2552389d587bc58d30a37a8cf3f75f8fb77abe667ad", "type": [ "null", "string" ] }, "updated_at": { "description": "when the webhook was updated", "format": "date-time", "type": [ "string" ] }, "url": { "description": "the URL where the webhook's notification requests are sent", "format": "uri", "type": [ "string" ] }, "app_webhook": { "properties": { "app": { "description": "identity of app. Only used for customer webhooks.", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" }, "name": { "$ref": "#/definitions/app/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/app-webhook/definitions/created_at" }, "id": { "$ref": "#/definitions/app-webhook/definitions/id" }, "include": { "$ref": "#/definitions/app-webhook/definitions/include" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" }, "updated_at": { "$ref": "#/definitions/app-webhook/definitions/updated_at" }, "url": { "$ref": "#/definitions/app-webhook/definitions/url" } }, "description": "app webhook", "type": [ "object" ] } }, "links": [ { "description": "Create an app webhook subscription.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhooks", "method": "POST", "rel": "create", "schema": { "properties": { "authorization": { "$ref": "#/definitions/app-webhook/definitions/authorization" }, "include": { "$ref": "#/definitions/app-webhook/definitions/include" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" }, "secret": { "$ref": "#/definitions/app-webhook/definitions/secret" }, "url": { "$ref": "#/definitions/app-webhook/definitions/url" } }, "additionalProperties": false, "required": [ "include", "level", "url" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/app-webhook/definitions/app_webhook" }, "title": "Create" }, { "description": "Removes an app webhook subscription.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhooks/{(%23%2Fdefinitions%2Fapp-webhook%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/app-webhook/definitions/app_webhook" }, "title": "Delete" }, { "description": "Returns the info for an app webhook subscription.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhooks/{(%23%2Fdefinitions%2Fapp-webhook%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app-webhook/definitions/app_webhook" }, "title": "Info" }, { "description": "List all webhook subscriptions for a particular app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhooks", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app-webhook/definitions/app_webhook" }, "type": [ "array" ] }, "title": "List" }, { "description": "Updates the details of an app webhook subscription.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/webhooks/{(%23%2Fdefinitions%2Fapp-webhook%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "authorization": { "$ref": "#/definitions/app-webhook/definitions/authorization" }, "include": { "$ref": "#/definitions/app-webhook/definitions/include" }, "level": { "$ref": "#/definitions/app-webhook/definitions/level" }, "secret": { "$ref": "#/definitions/app-webhook/definitions/secret" }, "url": { "$ref": "#/definitions/app-webhook/definitions/url" } }, "strictProperties": false, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/app-webhook/definitions/app_webhook" }, "title": "Update" } ] }, "app": { "description": "An app represents the program that you would like to deploy and run on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - App", "type": [ "object" ], "definitions": { "archived_at": { "description": "when app was archived", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "null", "string" ] }, "buildpack_provided_description": { "description": "description from buildpack of app", "example": "Ruby/Rack", "readOnly": true, "type": [ "null", "string" ] }, "created_at": { "description": "when app was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "git_url": { "description": "git repo URL of app", "example": "https://git.heroku.com/example.git", "pattern": "^https://git\\.heroku\\.com/[a-z][a-z0-9-]{2,29}\\.git$", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of app", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app/definitions/id" }, { "$ref": "#/definitions/app/definitions/name" } ] }, "maintenance": { "default": false, "description": "maintenance status of app", "example": false, "readOnly": false, "type": [ "boolean" ] }, "name": { "description": "unique name of app", "example": "example", "pattern": "^[a-z][a-z0-9-]{2,29}$", "readOnly": false, "type": [ "string" ] }, "released_at": { "default": null, "description": "when app was released", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "null", "string" ] }, "repo_size": { "default": null, "description": "git repo size in bytes of app", "example": 0, "readOnly": true, "type": [ "integer", "null" ] }, "slug_size": { "default": null, "description": "slug size in bytes of app", "example": 0, "readOnly": true, "type": [ "integer", "null" ] }, "updated_at": { "description": "when app was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "web_url": { "description": "web URL of app", "example": "https://example.herokuapp.com/", "format": "uri", "pattern": "^https?://[a-z][a-z0-9-]{3,30}\\.herokuapp\\.com/$", "readOnly": true, "type": [ "string" ] }, "acm": { "description": "ACM status of this app", "default": false, "example": false, "readOnly": true, "type": [ "boolean" ] } }, "links": [ { "description": "Create a new app.", "href": "/apps", "method": "POST", "rel": "create", "schema": { "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "region": { "$ref": "#/definitions/region/definitions/identity" }, "stack": { "$ref": "#/definitions/stack/definitions/identity" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/app" }, "title": "Create" }, { "description": "Delete an existing app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/app" }, "title": "Delete" }, { "description": "Info for existing app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/app" }, "title": "Info" }, { "description": "List existing apps.", "href": "/apps", "method": "GET", "ranges": [ "id", "name", "updated_at" ], "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app" }, "type": [ "array" ] }, "title": "List" }, { "description": "List owned and collaborated apps (excludes team apps).", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}/apps", "method": "GET", "ranges": [ "id", "name", "updated_at" ], "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/app" }, "type": [ "array" ] }, "title": "List Owned and Collaborated" }, { "description": "Update an existing app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "build_stack": { "$ref": "#/definitions/stack/definitions/identity" }, "maintenance": { "$ref": "#/definitions/app/definitions/maintenance" }, "name": { "$ref": "#/definitions/app/definitions/name" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/app" }, "title": "Update" }, { "description": "Enable ACM flag for an app", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/acm", "method": "POST", "rel": "update", "targetSchema": { "$ref": "#/definitions/app" }, "title": "Enable ACM" }, { "description": "Disable ACM flag for an app", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/acm", "method": "DELETE", "rel": "delete", "targetSchema": { "$ref": "#/definitions/app" }, "title": "Disable ACM" }, { "description": "Refresh ACM for an app", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/acm", "method": "PATCH", "rel": "update", "targetSchema": { "$ref": "#/definitions/app" }, "title": "Refresh ACM" } ], "properties": { "acm": { "$ref": "#/definitions/app/definitions/acm" }, "archived_at": { "$ref": "#/definitions/app/definitions/archived_at" }, "buildpack_provided_description": { "$ref": "#/definitions/app/definitions/buildpack_provided_description" }, "build_stack": { "description": "identity of the stack that will be used for new builds", "properties": { "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/app/definitions/created_at" }, "git_url": { "$ref": "#/definitions/app/definitions/git_url" }, "id": { "$ref": "#/definitions/app/definitions/id" }, "internal_routing": { "$ref": "#/definitions/team-app/definitions/internal_routing" }, "maintenance": { "$ref": "#/definitions/app/definitions/maintenance" }, "name": { "$ref": "#/definitions/app/definitions/name" }, "owner": { "description": "identity of app owner", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "organization": { "description": "identity of organization", "properties": { "id": { "$ref": "#/definitions/organization/definitions/id" }, "name": { "$ref": "#/definitions/organization/definitions/name" } }, "type": [ "null", "object" ] }, "team": { "description": "identity of team", "properties": { "id": { "$ref": "#/definitions/team/definitions/id" }, "name": { "$ref": "#/definitions/team/definitions/name" } }, "type": [ "null", "object" ] }, "region": { "description": "identity of app region", "properties": { "id": { "$ref": "#/definitions/region/definitions/id" }, "name": { "$ref": "#/definitions/region/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "released_at": { "$ref": "#/definitions/app/definitions/released_at" }, "repo_size": { "$ref": "#/definitions/app/definitions/repo_size" }, "slug_size": { "$ref": "#/definitions/app/definitions/slug_size" }, "space": { "description": "identity of space", "properties": { "id": { "$ref": "#/definitions/space/definitions/id" }, "name": { "$ref": "#/definitions/space/definitions/name" }, "shield": { "$ref": "#/definitions/space/definitions/shield" } }, "type": [ "null", "object" ] }, "stack": { "description": "identity of app stack", "properties": { "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "updated_at": { "$ref": "#/definitions/app/definitions/updated_at" }, "web_url": { "$ref": "#/definitions/app/definitions/web_url" } } }, "build-result": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "deactivate_on": "2016-10-01", "description": "A build result contains the output from a build.", "title": "Heroku Build API - Build Result", "stability": "deprecation", "strictProperties": true, "type": [ "object" ], "definitions": { "identity": { }, "exit_code": { "description": "status from the build", "example": 0, "readOnly": true, "type": [ "number" ] }, "line": { "description": "a single line of output to STDOUT or STDERR from the build.", "strictProperties": true, "type": [ "object" ], "example": { "stream": "STDOUT", "line": "-----> Ruby app detected\n" }, "readOnly": true, "definitions": { "stream": { "type": [ "string" ], "enum": [ "STDOUT", "STDERR" ], "description": "The output stream where the line was sent.", "example": "STDOUT", "readOnly": true }, "line": { "type": [ "string" ], "example": "-----> Ruby app detected\n", "readOnly": true, "description": "A line of output from the build." } }, "properties": { "stream": { "$ref": "#/definitions/build-result/definitions/line/definitions/stream" }, "line": { "$ref": "#/definitions/build-result/definitions/line/definitions/line" } } } }, "links": [ { "description": "Info for existing result.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/builds/{(%23%2Fdefinitions%2Fbuild%2Fdefinitions%2Fidentity)}/result", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/build-result" }, "title": "Info" } ], "properties": { "build": { "description": "identity of build", "properties": { "id": { "$ref": "#/definitions/build/definitions/id" }, "status": { "$ref": "#/definitions/build/definitions/status" }, "output_stream_url": { "$ref": "#/definitions/build/definitions/output_stream_url" } }, "type": [ "object" ] }, "exit_code": { "$ref": "#/definitions/build-result/definitions/exit_code" }, "lines": { "type": [ "array" ], "items": { "$ref": "#/definitions/build-result/definitions/line" }, "description": "A list of all the lines of a build's output. This has been replaced by the `output_stream_url` attribute on the build resource.", "example": [ { "line": "-----> Ruby app detected\n", "stream": "STDOUT" } ] } } }, "build": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "A build represents the process of transforming a code tarball into a slug", "title": "Heroku Build API - Build", "stability": "production", "strictProperties": true, "type": [ "object" ], "definitions": { "buildpacks": { "description": "buildpacks executed for this build, in order", "type": [ "array", "null" ], "items": { "description": "Buildpack to execute in a build", "type": [ "object" ], "properties": { "url": { "$ref": "#/definitions/buildpack-installation/definitions/url" } } } }, "created_at": { "description": "when build was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of build", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/build/definitions/id" } ] }, "output_stream_url": { "description": "Build process output will be available from this URL as a stream. The stream is available as either `text/plain` or `text/event-stream`. Clients should be prepared to handle disconnects and can resume the stream by sending a `Range` header (for `text/plain`) or a `Last-Event-Id` header (for `text/event-stream`).", "example": "https://build-output.heroku.com/streams/01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "type": [ "string" ] }, "release": { "description": "release resulting from the build", "strictProperties": true, "properties": { "id": { "$ref": "#/definitions/release/definitions/id" } }, "example": { "id": "01234567-89ab-cdef-0123-456789abcdef" }, "readOnly": true, "type": [ "null", "object" ], "definitions": { "id": { "description": "unique identifier of release", "example": "01234567-89ab-cdef-0123-456789abcdef", "type": [ "string" ] } } }, "source_blob": { "description": "location of gzipped tarball of source code used to create build", "properties": { "checksum": { "description": "an optional checksum of the gzipped tarball for verifying its integrity", "example": "SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "readOnly": true, "type": [ "null", "string" ] }, "url": { "description": "URL where gzipped tar archive of source code for build was downloaded.", "example": "https://example.com/source.tgz?token=xyz", "readOnly": true, "type": [ "string" ] }, "version": { "description": "Version of the gzipped tarball.", "example": "v1.3.0", "readOnly": true, "type": [ "string", "null" ] } }, "strictProperties": true, "type": [ "object" ] }, "stack": { "description": "stack of build", "example": "heroku-16", "readOnly": true, "type": [ "string" ] }, "status": { "description": "status of build", "enum": [ "failed", "pending", "succeeded" ], "example": "succeeded", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when build was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new build.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/builds", "method": "POST", "rel": "create", "schema": { "type": [ "object" ], "properties": { "buildpacks": { "$ref": "#/definitions/build/definitions/buildpacks" }, "source_blob": { "$ref": "#/definitions/build/definitions/source_blob" } }, "required": [ "source_blob" ] }, "targetSchema": { "$ref": "#/definitions/build" }, "title": "Create" }, { "description": "Info for existing build.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/builds/{(%23%2Fdefinitions%2Fbuild%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/build" }, "title": "Info" }, { "description": "List existing build.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/builds", "method": "GET", "ranges": [ "id", "started_at" ], "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/build" }, "type": [ "array" ] }, "title": "List" }, { "description": "Destroy a build cache.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/build-cache", "method": "DELETE", "rel": "empty", "title": "Delete cache" } ], "properties": { "app": { "description": "app that the build belongs to", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "buildpacks": { "$ref": "#/definitions/build/definitions/buildpacks" }, "created_at": { "$ref": "#/definitions/build/definitions/created_at" }, "id": { "$ref": "#/definitions/build/definitions/id" }, "output_stream_url": { "$ref": "#/definitions/build/definitions/output_stream_url" }, "source_blob": { "$ref": "#/definitions/build/definitions/source_blob" }, "release": { "$ref": "#/definitions/build/definitions/release" }, "slug": { "description": "slug created by this build", "properties": { "id": { "$ref": "#/definitions/slug/definitions/id" } }, "strictProperties": true, "type": [ "object", "null" ] }, "stack": { "$ref": "#/definitions/build/definitions/stack" }, "status": { "$ref": "#/definitions/build/definitions/status" }, "updated_at": { "$ref": "#/definitions/build/definitions/updated_at" }, "user": { "description": "user that started the build", "properties": { "id": { "$ref": "#/definitions/account/definitions/id" }, "email": { "$ref": "#/definitions/account/definitions/email" } }, "strictProperties": true, "type": [ "object" ] } } }, "buildpack-installation": { "description": "A buildpack installation represents a buildpack that will be run against an app.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Buildpack Installations", "type": [ "object" ], "definitions": { "ordinal": { "description": "determines the order in which the buildpacks will execute", "example": 0, "readOnly": true, "type": [ "integer" ] }, "update": { "additionalProperties": false, "description": "Properties to update a buildpack installation", "properties": { "buildpack": { "$ref": "#/definitions/buildpack-installation/definitions/url" } }, "readOnly": false, "required": [ "buildpack" ], "type": [ "object" ] }, "url": { "description": "location of the buildpack for the app. Either a url (unofficial buildpacks) or an internal urn (heroku official buildpacks).", "example": "https://github.com/heroku/heroku-buildpack-ruby", "readOnly": false, "type": [ "string" ] }, "name": { "description": "either the shorthand name (heroku official buildpacks) or url (unofficial buildpacks) of the buildpack for the app", "example": "heroku/ruby", "readOnly": false, "type": [ "string" ] } }, "links": [ { "description": "Update an app's buildpack installations.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/buildpack-installations", "method": "PUT", "rel": "update", "schema": { "properties": { "updates": { "description": "The buildpack attribute can accept a name, a url, or a urn.", "items": { "$ref": "#/definitions/buildpack-installation/definitions/update" }, "type": [ "array" ] } }, "required": [ "updates" ], "type": [ "object" ] }, "targetSchema": { "items": { "$ref": "#/definitions/buildpack-installation" }, "type": [ "array" ] }, "title": "Update" }, { "description": "List an app's existing buildpack installations.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/buildpack-installations", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/buildpack-installation" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "ordinal": { "$ref": "#/definitions/buildpack-installation/definitions/ordinal" }, "buildpack": { "description": "buildpack", "properties": { "url": { "$ref": "#/definitions/buildpack-installation/definitions/url" }, "name": { "$ref": "#/definitions/buildpack-installation/definitions/name" } }, "type": [ "object" ] } } }, "collaborator": { "description": "A collaborator represents an account that has been given access to an app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "additionalProperties": false, "required": [ "app", "created_at", "id", "updated_at", "user" ], "stability": "production", "title": "Heroku Platform API - Collaborator", "type": [ "object" ], "definitions": { "created_at": { "description": "when collaborator was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "email": { "description": "invited email address of collaborator", "example": "collaborator@example.com", "format": "email", "readOnly": false, "type": [ "string" ] }, "id": { "description": "unique identifier of collaborator", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/collaborator/definitions/email" }, { "$ref": "#/definitions/collaborator/definitions/id" } ] }, "silent": { "default": false, "description": "whether to suppress email invitation when creating collaborator", "example": false, "readOnly": false, "type": [ "boolean" ] }, "updated_at": { "description": "when collaborator was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new collaborator.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/collaborators", "method": "POST", "rel": "create", "schema": { "properties": { "silent": { "$ref": "#/definitions/collaborator/definitions/silent" }, "user": { "$ref": "#/definitions/account/definitions/identity" } }, "required": [ "user" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/collaborator" }, "title": "Create" }, { "description": "Delete an existing collaborator.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Fcollaborator%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/collaborator" }, "title": "Delete" }, { "description": "Info for existing collaborator.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Fcollaborator%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/collaborator" }, "title": "Info" }, { "description": "List existing collaborators.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/collaborators", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/collaborator" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "app": { "description": "app collaborator belongs to", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/collaborator/definitions/created_at" }, "id": { "$ref": "#/definitions/collaborator/definitions/id" }, "permissions": { "type": [ "array" ], "items": { "$ref": "#/definitions/team-app-permission" } }, "role": { "$ref": "#/definitions/team/definitions/role" }, "updated_at": { "$ref": "#/definitions/collaborator/definitions/updated_at" }, "user": { "description": "identity of collaborated account", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "federated": { "$ref": "#/definitions/account/definitions/federated" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } }, "config-var": { "description": "Config Vars allow you to manage the configuration information provided to an app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Config Vars", "type": [ "object" ], "definitions": { "config_vars": { "additionalProperties": false, "description": "hash of config vars", "example": { "FOO": "bar", "BAZ": "qux" }, "patternProperties": { "^\\w+$": { "type": [ "string", "null" ] } }, "type": [ "object" ] } }, "links": [ { "description": "Get config-vars for app.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/config-vars", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/config-var/definitions/config_vars" }, "title": "Info for App" }, { "description": "Get config-vars for a release.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/releases/{(%23%2Fdefinitions%2Frelease%2Fdefinitions%2Fidentity)}/config-vars", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/config-var/definitions/config_vars" }, "title": "Info for App Release" }, { "description": "Update config-vars for app. You can update existing config-vars by setting them again, and remove by setting it to `null`.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/config-vars", "method": "PATCH", "rel": "update", "schema": { "additionalProperties": false, "description": "hash of config changes – update values or delete by seting it to `null`", "example": { "FOO": "bar", "BAZ": "qux" }, "patternProperties": { "^\\w+$": { "type": [ "string", "null" ] } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/config-var/definitions/config_vars" }, "title": "Update" } ], "example": { "FOO": "bar", "BAZ": "qux" }, "patternProperties": { "^\\w+$": { "type": [ "string" ] } } }, "credit": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "A credit represents value that will be used up before further charges are assigned to an account.", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Credit", "type": [ "object" ], "definitions": { "amount": { "description": "total value of credit in cents", "example": 10000, "type": [ "number" ] }, "balance": { "description": "remaining value of credit in cents", "example": 5000, "type": [ "number" ] }, "created_at": { "description": "when credit was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "type": [ "string" ] }, "expires_at": { "description": "when credit will expire", "example": "2012-01-01T12:00:00Z", "format": "date-time", "type": [ "string" ] }, "id": { "description": "unique identifier of credit", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/credit/definitions/id" } ] }, "title": { "description": "a name for credit", "example": "gift card", "type": [ "string" ] }, "updated_at": { "description": "when credit was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "type": [ "string" ] } }, "links": [ { "description": "Create a new credit.", "href": "/account/credits", "method": "POST", "rel": "create", "schema": { "properties": { "code1": { "description": "first code from a discount card", "example": "012abc", "type": [ "string" ] }, "code2": { "description": "second code from a discount card", "example": "012abc", "type": [ "string" ] } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/credit" }, "title": "Create" }, { "description": "Info for existing credit.", "href": "/account/credits/{(%23%2Fdefinitions%2Fcredit%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/credit" }, "title": "Info" }, { "description": "List existing credits.", "href": "/account/credits", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/credit" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "amount": { "$ref": "#/definitions/credit/definitions/amount" }, "balance": { "$ref": "#/definitions/credit/definitions/balance" }, "created_at": { "$ref": "#/definitions/credit/definitions/created_at" }, "expires_at": { "$ref": "#/definitions/credit/definitions/expires_at" }, "id": { "$ref": "#/definitions/credit/definitions/id" }, "title": { "$ref": "#/definitions/credit/definitions/title" }, "updated_at": { "$ref": "#/definitions/credit/definitions/updated_at" } } }, "domain": { "description": "Domains define what web routes should be routed to an app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Domain", "type": [ "object" ], "definitions": { "acm_status": { "description": "status of this record's ACM", "example": "pending", "readOnly": true, "type": [ "null", "string" ] }, "acm_status_reason": { "description": "reason for the status of this record's ACM", "example": "Failing CCA check", "readOnly": true, "type": [ "null", "string" ] }, "created_at": { "description": "when domain was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "cname": { "description": "canonical name record, the address to point a domain at", "example": "example.herokudns.com", "readOnly": true, "type": [ "null", "string" ] }, "status": { "description": "status of this record's cname", "example": "pending", "readOnly": true, "type": [ "string" ] }, "hostname": { "description": "full hostname", "example": "subdomain.example.com", "format": "uri", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this domain", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/domain/definitions/id" }, { "$ref": "#/definitions/domain/definitions/hostname" } ] }, "kind": { "description": "type of domain name", "enum": [ "heroku", "custom" ], "example": "custom", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when domain was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new domain.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains", "method": "POST", "rel": "create", "schema": { "properties": { "hostname": { "$ref": "#/definitions/domain/definitions/hostname" } }, "required": [ "hostname" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/domain" }, "title": "Create" }, { "description": "Delete an existing domain", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains/{(%23%2Fdefinitions%2Fdomain%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/domain" }, "title": "Delete" }, { "description": "Info for existing domain.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains/{(%23%2Fdefinitions%2Fdomain%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/domain" }, "title": "Info" }, { "description": "List existing domains.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/domains", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/domain" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "acm_status": { "$ref": "#/definitions/domain/definitions/acm_status" }, "acm_status_reason": { "$ref": "#/definitions/domain/definitions/acm_status_reason" }, "app": { "description": "app that owns the domain", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "type": [ "object" ] }, "cname": { "$ref": "#/definitions/domain/definitions/cname" }, "created_at": { "$ref": "#/definitions/domain/definitions/created_at" }, "hostname": { "$ref": "#/definitions/domain/definitions/hostname" }, "id": { "$ref": "#/definitions/domain/definitions/id" }, "kind": { "$ref": "#/definitions/domain/definitions/kind" }, "updated_at": { "$ref": "#/definitions/domain/definitions/updated_at" }, "status": { "$ref": "#/definitions/domain/definitions/status" } } }, "dyno-size": { "description": "Dyno sizes are the values and details of sizes that can be assigned to dynos. This information can also be found at : [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types).", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Dyno Size", "type": [ "object" ], "definitions": { "compute": { "description": "minimum vCPUs, non-dedicated may get more depending on load", "example": 1, "readOnly": true, "type": [ "integer" ] }, "dedicated": { "description": "whether this dyno will be dedicated to one user", "example": false, "readOnly": true, "type": [ "boolean" ] }, "id": { "description": "unique identifier of this dyno size", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/dyno-size/definitions/id" }, { "$ref": "#/definitions/dyno-size/definitions/name" } ] }, "memory": { "description": "amount of RAM in GB", "example": 0.5, "readOnly": true, "type": [ "number" ] }, "name": { "description": "the name of this dyno-size", "example": "free", "readOnly": true, "type": [ "string" ] }, "cost": { "description": "price information for this dyno size", "readOnly": true, "type": [ "null", "object" ], "definitions": { "cents": { "description": "price in cents per unit time", "example": 0, "readOnly": true, "type": [ "integer" ] }, "unit": { "description": "unit of price for dyno", "readOnly": true, "example": "month", "type": [ "string" ] } } }, "dyno_units": { "description": "unit of consumption for Heroku Enterprise customers", "example": 0, "readOnly": true, "type": [ "integer" ] }, "private_space_only": { "description": "whether this dyno can only be provisioned in a private space", "example": false, "readOnly": true, "type": [ "boolean" ] } }, "links": [ { "description": "Info for existing dyno size.", "href": "/dyno-sizes/{(%23%2Fdefinitions%2Fdyno-size%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/dyno-size" }, "title": "Info" }, { "description": "List existing dyno sizes.", "href": "/dyno-sizes", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/dyno-size" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "compute": { "$ref": "#/definitions/dyno-size/definitions/compute" }, "cost": { "$ref": "#/definitions/dyno-size/definitions/cost" }, "dedicated": { "$ref": "#/definitions/dyno-size/definitions/dedicated" }, "dyno_units": { "$ref": "#/definitions/dyno-size/definitions/dyno_units" }, "id": { "$ref": "#/definitions/dyno-size/definitions/id" }, "memory": { "$ref": "#/definitions/dyno-size/definitions/memory" }, "name": { "$ref": "#/definitions/dyno-size/definitions/name" }, "private_space_only": { "$ref": "#/definitions/dyno-size/definitions/private_space_only" } } }, "dyno": { "description": "Dynos encapsulate running processes of an app on Heroku. Detailed information about dyno sizes can be found at: [https://devcenter.heroku.com/articles/dyno-types](https://devcenter.heroku.com/articles/dyno-types).", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Dyno", "type": [ "object" ], "definitions": { "attach": { "description": "whether to stream output or not", "example": true, "readOnly": false, "type": [ "boolean" ] }, "attach_url": { "description": "a URL to stream output from for attached processes or null for non-attached processes", "example": "rendezvous://rendezvous.runtime.heroku.com:5000/{rendezvous-id}", "readOnly": true, "type": [ "string", "null" ] }, "command": { "description": "command used to start this process", "example": "bash", "readOnly": false, "type": [ "string" ] }, "created_at": { "description": "when dyno was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "env": { "additionalProperties": false, "description": "custom environment to add to the dyno config vars", "example": { "COLUMNS": "80", "LINES": "24" }, "patternProperties": { "^\\w+$": { "type": [ "string" ] } }, "readOnly": false, "strictProperties": true, "type": [ "object" ] }, "id": { "description": "unique identifier of this dyno", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/dyno/definitions/id" }, { "$ref": "#/definitions/dyno/definitions/name" } ] }, "name": { "description": "the name of this process on this dyno", "example": "run.1", "readOnly": true, "type": [ "string" ] }, "force_no_tty": { "description": "force an attached one-off dyno to not run in a tty", "example": null, "readOnly": false, "type": [ "boolean", "null" ] }, "size": { "description": "dyno size (default: \"standard-1X\")", "example": "standard-1X", "readOnly": false, "type": [ "string" ] }, "state": { "description": "current status of process (either: crashed, down, idle, starting, or up)", "example": "up", "readOnly": true, "type": [ "string" ] }, "type": { "description": "type of process", "example": "run", "readOnly": false, "type": [ "string" ] }, "time_to_live": { "description": "seconds until dyno expires, after which it will soon be killed", "example": 1800, "readOnly": false, "type": [ "integer" ] }, "updated_at": { "description": "when process last changed state", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new dyno.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos", "method": "POST", "rel": "create", "schema": { "properties": { "attach": { "$ref": "#/definitions/dyno/definitions/attach" }, "command": { "$ref": "#/definitions/dyno/definitions/command" }, "env": { "$ref": "#/definitions/dyno/definitions/env" }, "force_no_tty": { "$ref": "#/definitions/dyno/definitions/force_no_tty" }, "size": { "$ref": "#/definitions/dyno/definitions/size" }, "type": { "$ref": "#/definitions/dyno/definitions/type" }, "time_to_live": { "$ref": "#/definitions/dyno/definitions/time_to_live" } }, "required": [ "command" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/dyno" }, "title": "Create" }, { "description": "Restart dyno.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "empty", "targetSchema": { "additionalProperties": false, "type": [ "object" ] }, "title": "Restart" }, { "description": "Restart all dynos.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos", "method": "DELETE", "rel": "empty", "targetSchema": { "additionalProperties": false, "type": [ "object" ] }, "title": "Restart all" }, { "description": "Stop dyno.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fidentity)}/actions/stop", "method": "POST", "rel": "empty", "targetSchema": { "additionalProperties": false, "type": [ "object" ] }, "title": "Stop" }, { "description": "Info for existing dyno.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos/{(%23%2Fdefinitions%2Fdyno%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/dyno" }, "title": "Info" }, { "description": "List existing dynos.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/dynos", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/dyno" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "attach_url": { "$ref": "#/definitions/dyno/definitions/attach_url" }, "command": { "$ref": "#/definitions/dyno/definitions/command" }, "created_at": { "$ref": "#/definitions/dyno/definitions/created_at" }, "id": { "$ref": "#/definitions/dyno/definitions/id" }, "name": { "$ref": "#/definitions/dyno/definitions/name" }, "release": { "description": "app release of the dyno", "properties": { "id": { "$ref": "#/definitions/release/definitions/id" }, "version": { "$ref": "#/definitions/release/definitions/version" } }, "strictProperties": true, "type": [ "object" ] }, "app": { "description": "app formation belongs to", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "type": [ "object" ] }, "size": { "$ref": "#/definitions/dyno/definitions/size" }, "state": { "$ref": "#/definitions/dyno/definitions/state" }, "type": { "$ref": "#/definitions/dyno/definitions/type" }, "updated_at": { "$ref": "#/definitions/dyno/definitions/updated_at" } } }, "filter-apps": { "description": "Filters are special endpoints to allow for API consumers to specify a subset of resources to consume in order to reduce the number of requests that are performed. Each filter endpoint endpoint is responsible for determining its supported request format. The endpoints are over POST in order to handle large request bodies without hitting request uri query length limitations, but the requests themselves are idempotent and will not have side effects.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "title": "Heroku Platform API - Filters", "type": [ "object" ], "definitions": { "filter": { "type": [ "object" ], "properties": { "in": { "$ref": "#/definitions/filter-apps/definitions/in" } } }, "in": { "type": [ "object" ], "properties": { "id": { "$ref": "#/definitions/filter-apps/definitions/id" } } }, "id": { "type": [ "array" ], "items": { "$ref": "#/definitions/app/definitions/id" } } }, "links": [ { "description": "Request an apps list filtered by app id.", "title": "Apps", "href": "/filters/apps", "method": "POST", "ranges": [ "id", "name", "updated_at" ], "rel": "instances", "schema": { "$ref": "#/definitions/filter-apps/definitions/filter" }, "targetSchema": { "items": { "$ref": "#/definitions/team-app" }, "type": [ "array" ] } } ] }, "formation": { "description": "The formation of processes that should be maintained for an app. Update the formation to scale processes or change dyno sizes. Available process type names and commands are defined by the `process_types` attribute for the [slug](#slug) currently released on an app.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Formation", "type": [ "object" ], "definitions": { "command": { "description": "command to use to launch this process", "example": "bundle exec rails server -p $PORT", "readOnly": false, "type": [ "string" ] }, "created_at": { "description": "when process type was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this process type", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/formation/definitions/id" }, { "$ref": "#/definitions/formation/definitions/type" } ] }, "quantity": { "description": "number of processes to maintain", "example": 1, "readOnly": false, "type": [ "integer" ] }, "size": { "description": "dyno size (default: \"standard-1X\")", "example": "standard-1X", "readOnly": false, "type": [ "string" ] }, "type": { "description": "type of process to maintain", "example": "web", "readOnly": true, "pattern": "^[-\\w]{1,128}$", "type": [ "string" ] }, "updated_at": { "description": "when dyno type was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "update": { "additionalProperties": false, "description": "Properties to update a process type", "properties": { "quantity": { "$ref": "#/definitions/formation/definitions/quantity" }, "size": { "$ref": "#/definitions/formation/definitions/size" }, "type": { "$ref": "#/definitions/formation/definitions/type" } }, "readOnly": false, "required": [ "type" ], "type": [ "object" ] } }, "links": [ { "description": "Info for a process type", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formation/{(%23%2Fdefinitions%2Fformation%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/formation" }, "title": "Info" }, { "description": "List process type formation", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formation", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/formation" }, "type": [ "array" ] }, "title": "List" }, { "description": "Batch update process types", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formation", "method": "PATCH", "rel": "update", "schema": { "properties": { "updates": { "type": [ "array" ], "items": { "$ref": "#/definitions/formation/definitions/update" }, "description": "Array with formation updates. Each element must have \"type\", the id or name of the process type to be updated, and can optionally update its \"quantity\" or \"size\"." } }, "required": [ "updates" ], "type": [ "object" ] }, "targetSchema": { "items": { "$ref": "#/definitions/formation" }, "type": [ "array" ] }, "title": "Batch Update" }, { "description": "Update process type", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/formation/{(%23%2Fdefinitions%2Fformation%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "quantity": { "$ref": "#/definitions/formation/definitions/quantity" }, "size": { "$ref": "#/definitions/formation/definitions/size" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/formation" }, "title": "Update", "type": [ "object" ] } ], "properties": { "app": { "description": "app formation belongs to", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "type": [ "object" ] }, "command": { "$ref": "#/definitions/formation/definitions/command" }, "created_at": { "$ref": "#/definitions/formation/definitions/created_at" }, "id": { "$ref": "#/definitions/formation/definitions/id" }, "quantity": { "$ref": "#/definitions/formation/definitions/quantity" }, "size": { "$ref": "#/definitions/formation/definitions/size" }, "type": { "$ref": "#/definitions/formation/definitions/type" }, "updated_at": { "$ref": "#/definitions/formation/definitions/updated_at" } } }, "identity-provider": { "description": "Identity Providers represent the SAML configuration of an Organization.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Identity Provider", "type": [ "object" ], "definitions": { "certificate": { "description": "raw contents of the public certificate (eg: .crt or .pem file)", "example": "-----BEGIN CERTIFICATE----- ...", "readOnly": false, "type": [ "string" ] }, "created_at": { "description": "when provider record was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "entity_id": { "description": "URL identifier provided by the identity provider", "example": "https://customer-domain.idp.com", "readOnly": false, "type": [ "string" ] }, "id": { "description": "unique identifier of this identity provider", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "slo_target_url": { "description": "single log out URL for this identity provider", "example": "https://example.com/idp/logout", "readOnly": false, "type": [ "string" ] }, "sso_target_url": { "description": "single sign on URL for this identity provider", "example": "https://example.com/idp/login", "readOnly": false, "type": [ "string" ] }, "updated_at": { "description": "when the identity provider record was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "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" ] } }, "links": [ { "description": "Get a list of an organization's Identity Providers", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fname)}/identity-providers", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/identity-provider" }, "type": [ "array" ] }, "title": "List By Organization" }, { "description": "Create an Identity Provider for an organization", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fname)}/identity-providers", "method": "POST", "rel": "create", "schema": { "properties": { "certificate": { "$ref": "#/definitions/identity-provider/definitions/certificate" }, "entity_id": { "$ref": "#/definitions/identity-provider/definitions/entity_id" }, "slo_target_url": { "$ref": "#/definitions/identity-provider/definitions/slo_target_url" }, "sso_target_url": { "$ref": "#/definitions/identity-provider/definitions/sso_target_url" } }, "required": [ "certificate", "sso_target_url", "entity_id" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/identity-provider" }, "title": "Create By Organization" }, { "description": "Update an organization's Identity Provider", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fname)}/identity-providers/{(%23%2Fdefinitions%2Fidentity-provider%2Fdefinitions%2Fid)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "certificate": { "$ref": "#/definitions/identity-provider/definitions/certificate" }, "entity_id": { "$ref": "#/definitions/identity-provider/definitions/entity_id" }, "slo_target_url": { "$ref": "#/definitions/identity-provider/definitions/slo_target_url" }, "sso_target_url": { "$ref": "#/definitions/identity-provider/definitions/sso_target_url" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/identity-provider" }, "title": "Update By Organization" }, { "description": "Delete an organization's Identity Provider", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fname)}/identity-providers/{(%23%2Fdefinitions%2Fidentity-provider%2Fdefinitions%2Fid)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/identity-provider" }, "title": "Delete By Organization" }, { "description": "Get a list of a team's Identity Providers", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/identity-providers", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/identity-provider" }, "type": [ "array" ] }, "title": "List By Team" }, { "description": "Create an Identity Provider for a team", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/identity-providers", "method": "POST", "rel": "create", "schema": { "properties": { "certificate": { "$ref": "#/definitions/identity-provider/definitions/certificate" }, "entity_id": { "$ref": "#/definitions/identity-provider/definitions/entity_id" }, "slo_target_url": { "$ref": "#/definitions/identity-provider/definitions/slo_target_url" }, "sso_target_url": { "$ref": "#/definitions/identity-provider/definitions/sso_target_url" } }, "required": [ "certificate", "sso_target_url", "entity_id" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/identity-provider" }, "title": "Create By Team" }, { "description": "Update a team's Identity Provider", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/identity-providers/{(%23%2Fdefinitions%2Fidentity-provider%2Fdefinitions%2Fid)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "certificate": { "$ref": "#/definitions/identity-provider/definitions/certificate" }, "entity_id": { "$ref": "#/definitions/identity-provider/definitions/entity_id" }, "slo_target_url": { "$ref": "#/definitions/identity-provider/definitions/slo_target_url" }, "sso_target_url": { "$ref": "#/definitions/identity-provider/definitions/sso_target_url" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/identity-provider" }, "title": "Update By Team" }, { "description": "Delete a team's Identity Provider", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fname)}/identity-providers/{(%23%2Fdefinitions%2Fidentity-provider%2Fdefinitions%2Fid)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/identity-provider" }, "title": "Delete By Team" } ], "properties": { "certificate": { "$ref": "#/definitions/identity-provider/definitions/certificate" }, "created_at": { "$ref": "#/definitions/identity-provider/definitions/created_at" }, "entity_id": { "$ref": "#/definitions/identity-provider/definitions/entity_id" }, "id": { "$ref": "#/definitions/identity-provider/definitions/id" }, "slo_target_url": { "$ref": "#/definitions/identity-provider/definitions/slo_target_url" }, "sso_target_url": { "$ref": "#/definitions/identity-provider/definitions/sso_target_url" }, "organization": { "description": "organization associated with this identity provider", "properties": { "name": { "$ref": "#/definitions/organization/definitions/name" } }, "type": [ "null", "object" ] }, "updated_at": { "$ref": "#/definitions/identity-provider/definitions/updated_at" }, "owner": { "$ref": "#/definitions/identity-provider/definitions/owner" } } }, "inbound-ruleset": { "description": "An inbound-ruleset is a collection of rules that specify what hosts can or cannot connect to an application.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Inbound Ruleset", "type": [ "object" ], "definitions": { "action": { "description": "states whether the connection is allowed or denied", "example": "allow", "readOnly": false, "type": [ "string" ], "enum": [ "allow", "deny" ] }, "source": { "description": "is the request’s source in CIDR notation", "example": "1.1.1.1/1", "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", "readOnly": false, "type": [ "string" ] }, "created_at": { "description": "when inbound-ruleset was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of an inbound-ruleset", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/inbound-ruleset/definitions/id" } ] }, "rule": { "description": "the combination of an IP address in CIDR notation and whether to allow or deny it's traffic.", "type": [ "object" ], "properties": { "action": { "$ref": "#/definitions/inbound-ruleset/definitions/action" }, "source": { "$ref": "#/definitions/inbound-ruleset/definitions/source" } }, "required": [ "source", "action" ] } }, "links": [ { "description": "Current inbound ruleset for a space", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/inbound-ruleset", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/inbound-ruleset" }, "title": "Current" }, { "description": "Info on an existing Inbound Ruleset", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/inbound-rulesets/{(%23%2Fdefinitions%2Finbound-ruleset%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/inbound-ruleset" }, "title": "Info" }, { "description": "List all inbound rulesets for a space", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/inbound-rulesets", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/inbound-ruleset" }, "type": [ "array" ] }, "title": "List" }, { "description": "Create a new inbound ruleset", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/inbound-ruleset", "method": "PUT", "rel": "create", "schema": { "type": [ "object" ], "properties": { "rules": { "type": [ "array" ], "items": { "$ref": "#/definitions/inbound-ruleset/definitions/rule" } } } }, "title": "Create" } ], "properties": { "id": { "$ref": "#/definitions/inbound-ruleset/definitions/id" }, "space": { "description": "identity of space", "properties": { "id": { "$ref": "#/definitions/space/definitions/id" }, "name": { "$ref": "#/definitions/space/definitions/name" } }, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/inbound-ruleset/definitions/created_at" }, "rules": { "type": [ "array" ], "items": { "$ref": "#/definitions/inbound-ruleset/definitions/rule" } }, "created_by": { "$ref": "#/definitions/account/definitions/email" } } }, "invoice-address": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "An invoice address represents the address that should be listed on an invoice.", "title": "Heroku Vault API - Invoice Address", "stability": "development", "type": [ "object" ], "definitions": { "address_1": { "type": [ "string" ], "description": "invoice street address line 1", "example": "40 Hickory Blvd." }, "address_2": { "type": [ "string" ], "description": "invoice street address line 2", "example": "Suite 300" }, "city": { "type": [ "string" ], "description": "invoice city", "example": "Seattle" }, "country": { "type": [ "string" ], "description": "country", "example": "US" }, "heroku_id": { "type": [ "string" ], "description": "heroku_id identifier reference", "example": "user930223902@heroku.com", "readOnly": true }, "identity": { "anyOf": [ { "$ref": "#/definitions/invoice-address/definitions/heroku_id" } ] }, "other": { "type": [ "string" ], "description": "metadata / additional information to go on invoice", "example": "Company ABC Inc. VAT 903820" }, "postal_code": { "type": [ "string" ], "description": "invoice zip code", "example": "98101" }, "state": { "type": [ "string" ], "description": "invoice state", "example": "WA" }, "use_invoice_address": { "type": [ "boolean" ], "description": "flag to use the invoice address for an account or not", "example": true, "default": false } }, "links": [ { "description": "Retrieve existing invoice address.", "href": "/account/invoice-address", "method": "GET", "rel": "self", "title": "info" }, { "description": "Update invoice address for an account.", "href": "/account/invoice-address", "method": "PUT", "rel": "self", "title": "update", "schema": { "properties": { "address_1": { "$ref": "#/definitions/invoice-address/definitions/address_1" }, "address_2": { "$ref": "#/definitions/invoice-address/definitions/address_2" }, "city": { "$ref": "#/definitions/invoice-address/definitions/city" }, "country": { "$ref": "#/definitions/invoice-address/definitions/country" }, "other": { "$ref": "#/definitions/invoice-address/definitions/other" }, "postal_code": { "$ref": "#/definitions/invoice-address/definitions/postal_code" }, "state": { "$ref": "#/definitions/invoice-address/definitions/state" }, "use_invoice_address": { "$ref": "#/definitions/invoice-address/definitions/use_invoice_address" } }, "type": [ "object" ] } } ], "properties": { "address_1": { "$ref": "#/definitions/invoice-address/definitions/address_1" }, "address_2": { "$ref": "#/definitions/invoice-address/definitions/address_2" }, "city": { "$ref": "#/definitions/invoice-address/definitions/city" }, "country": { "$ref": "#/definitions/invoice-address/definitions/country" }, "heroku_id": { "$ref": "#/definitions/invoice-address/definitions/identity" }, "other": { "$ref": "#/definitions/invoice-address/definitions/other" }, "postal_code": { "$ref": "#/definitions/invoice-address/definitions/postal_code" }, "state": { "$ref": "#/definitions/invoice-address/definitions/state" }, "use_invoice_address": { "$ref": "#/definitions/invoice-address/definitions/use_invoice_address" } } }, "invoice": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "An invoice is an itemized bill of goods for an account which includes pricing and charges.", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Invoice", "type": [ "object" ], "definitions": { "charges_total": { "description": "total charges on this invoice", "example": 100.0, "readOnly": true, "type": [ "number" ] }, "created_at": { "description": "when invoice was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "credits_total": { "description": "total credits on this invoice", "example": 100.0, "readOnly": true, "type": [ "number" ] }, "id": { "description": "unique identifier of this invoice", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/invoice/definitions/number" } ] }, "number": { "description": "human readable invoice number", "example": 9403943, "readOnly": true, "type": [ "integer" ] }, "period_end": { "description": "the ending date that the invoice covers", "example": "01/31/2014", "readOnly": true, "type": [ "string" ] }, "period_start": { "description": "the starting date that this invoice covers", "example": "01/01/2014", "readOnly": true, "type": [ "string" ] }, "state": { "description": "payment status for this invoice (pending, successful, failed)", "example": 1, "readOnly": true, "type": [ "integer" ] }, "total": { "description": "combined total of charges and credits on this invoice", "example": 100.0, "readOnly": true, "type": [ "number" ] }, "updated_at": { "description": "when invoice was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Info for existing invoice.", "href": "/account/invoices/{(%23%2Fdefinitions%2Finvoice%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/invoice" }, "title": "Info" }, { "description": "List existing invoices.", "href": "/account/invoices", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/invoice" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "charges_total": { "$ref": "#/definitions/invoice/definitions/charges_total" }, "created_at": { "$ref": "#/definitions/invoice/definitions/created_at" }, "credits_total": { "$ref": "#/definitions/invoice/definitions/credits_total" }, "id": { "$ref": "#/definitions/invoice/definitions/id" }, "number": { "$ref": "#/definitions/invoice/definitions/number" }, "period_end": { "$ref": "#/definitions/invoice/definitions/period_end" }, "period_start": { "$ref": "#/definitions/invoice/definitions/period_start" }, "state": { "$ref": "#/definitions/invoice/definitions/state" }, "total": { "$ref": "#/definitions/invoice/definitions/total" }, "updated_at": { "$ref": "#/definitions/invoice/definitions/updated_at" } } }, "key": { "description": "Keys represent public SSH keys associated with an account and are used to authorize accounts as they are performing git operations.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Key", "type": [ "object" ], "definitions": { "comment": { "description": "comment on the key", "example": "username@host", "readOnly": true, "type": [ "string" ] }, "created_at": { "description": "when key was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "email": { "deprecated": true, "description": "deprecated. Please refer to 'comment' instead", "example": "username@host", "readOnly": true, "type": [ "string" ] }, "fingerprint": { "description": "a unique identifying string based on contents", "example": "17:63:a4:ba:24:d3:7f:af:17:c8:94:82:7e:80:56:bf", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this key", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/key/definitions/id" }, { "$ref": "#/definitions/key/definitions/fingerprint" } ] }, "public_key": { "description": "full public_key as uploaded", "example": "ssh-rsa AAAAB3NzaC1ycVc/../839Uv username@example.com", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when key was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Info for existing key.", "href": "/account/keys/{(%23%2Fdefinitions%2Fkey%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/key" }, "title": "Info" }, { "description": "List existing keys.", "href": "/account/keys", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/key" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "comment": { "$ref": "#/definitions/key/definitions/comment" }, "created_at": { "$ref": "#/definitions/key/definitions/created_at" }, "email": { "$ref": "#/definitions/key/definitions/email" }, "fingerprint": { "$ref": "#/definitions/key/definitions/fingerprint" }, "id": { "$ref": "#/definitions/key/definitions/id" }, "public_key": { "$ref": "#/definitions/key/definitions/public_key" }, "updated_at": { "$ref": "#/definitions/key/definitions/updated_at" } } }, "log-drain": { "description": "[Log drains](https://devcenter.heroku.com/articles/log-drains) provide a way to forward your Heroku logs to an external syslog server for long-term archiving. This external service must be configured to receive syslog packets from Heroku, whereupon its URL can be added to an app using this API. Some add-ons will add a log drain when they are provisioned to an app. These drains can only be removed by removing the add-on.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Log Drain", "type": [ "object" ], "definitions": { "addon": { "description": "add-on that created the drain", "example": { "id": "01234567-89ab-cdef-0123-456789abcdef", "name": "singing-swiftly-1242" }, "properties": { "id": { "$ref": "#/definitions/add-on/definitions/id" }, "name": { "$ref": "#/definitions/add-on/definitions/name" } }, "readOnly": true, "type": [ "object", "null" ] }, "created_at": { "description": "when log drain was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this log drain", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "query_identity": { "anyOf": [ { "$ref": "#/definitions/log-drain/definitions/id" }, { "$ref": "#/definitions/log-drain/definitions/url" }, { "$ref": "#/definitions/log-drain/definitions/token" } ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/log-drain/definitions/url" } ] }, "token": { "description": "token associated with the log drain", "example": "d.01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when log drain was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "url": { "description": "url associated with the log drain", "example": "https://example.com/drain", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new log drain.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/log-drains", "method": "POST", "rel": "create", "schema": { "properties": { "url": { "$ref": "#/definitions/log-drain/definitions/url" } }, "required": [ "url" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/log-drain" }, "title": "Create" }, { "description": "Update an add-on owned log drain.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/log-drains/{(%23%2Fdefinitions%2Flog-drain%2Fdefinitions%2Fquery_identity)}", "method": "PUT", "rel": "update", "schema": { "properties": { "url": { "$ref": "#/definitions/log-drain/definitions/url" } }, "required": [ "url" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/log-drain" }, "title": "Update" }, { "description": "Delete an existing log drain. Log drains added by add-ons can only be removed by removing the add-on.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/log-drains/{(%23%2Fdefinitions%2Flog-drain%2Fdefinitions%2Fquery_identity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/log-drain" }, "title": "Delete" }, { "description": "Info for existing log drain.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/log-drains/{(%23%2Fdefinitions%2Flog-drain%2Fdefinitions%2Fquery_identity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/log-drain" }, "title": "Info" }, { "description": "List existing log drains for an add-on.", "href": "/addons/{(%23%2Fdefinitions%2Fadd-on%2Fdefinitions%2Fidentity)}/log-drains", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/log-drain" }, "type": [ "array" ] }, "title": "List By Add-on" }, { "description": "List existing log drains.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/log-drains", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/log-drain" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "addon": { "$ref": "#/definitions/log-drain/definitions/addon" }, "created_at": { "$ref": "#/definitions/log-drain/definitions/created_at" }, "id": { "$ref": "#/definitions/log-drain/definitions/id" }, "token": { "$ref": "#/definitions/log-drain/definitions/token" }, "updated_at": { "$ref": "#/definitions/log-drain/definitions/updated_at" }, "url": { "$ref": "#/definitions/log-drain/definitions/url" } } }, "log-session": { "description": "A log session is a reference to the http based log stream for an app.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Log Session", "type": [ "object" ], "definitions": { "created_at": { "description": "when log connection was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "dyno": { "description": "dyno to limit results to", "example": "web.1", "readOnly": false, "type": [ "string" ] }, "id": { "description": "unique identifier of this log session", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/log-session/definitions/id" } ] }, "lines": { "description": "number of log lines to stream at once", "example": 10, "readOnly": false, "type": [ "integer" ] }, "logplex_url": { "description": "URL for log streaming session", "example": "https://logplex.heroku.com/sessions/01234567-89ab-cdef-0123-456789abcdef?srv=1325419200", "readOnly": true, "type": [ "string" ] }, "source": { "description": "log source to limit results to", "example": "app", "readOnly": false, "type": [ "string" ] }, "tail": { "description": "whether to stream ongoing logs", "example": true, "readOnly": false, "type": [ "boolean" ] }, "updated_at": { "description": "when log session was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new log session.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/log-sessions", "method": "POST", "rel": "create", "schema": { "properties": { "dyno": { "$ref": "#/definitions/log-session/definitions/dyno" }, "lines": { "$ref": "#/definitions/log-session/definitions/lines" }, "source": { "$ref": "#/definitions/log-session/definitions/source" }, "tail": { "$ref": "#/definitions/log-session/definitions/tail" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/log-session" }, "title": "Create" } ], "properties": { "created_at": { "$ref": "#/definitions/log-session/definitions/created_at" }, "id": { "$ref": "#/definitions/log-session/definitions/id" }, "logplex_url": { "$ref": "#/definitions/log-session/definitions/logplex_url" }, "updated_at": { "$ref": "#/definitions/log-session/definitions/updated_at" } } }, "oauth-authorization": { "description": "OAuth authorizations represent clients that a Heroku user has authorized to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth)", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - OAuth Authorization", "type": [ "object" ], "definitions": { "created_at": { "description": "when OAuth authorization was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "description": { "description": "human-friendly description of this OAuth authorization", "example": "sample authorization", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of OAuth authorization", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/oauth-authorization/definitions/id" } ] }, "scope": { "description": "The scope of access OAuth authorization allows", "example": [ "global" ], "readOnly": true, "type": [ "array" ], "items": { "type": [ "string" ] } }, "updated_at": { "description": "when OAuth authorization was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new OAuth authorization.", "href": "/oauth/authorizations", "method": "POST", "rel": "create", "schema": { "properties": { "client": { "$ref": "#/definitions/oauth-client/definitions/identity" }, "description": { "$ref": "#/definitions/oauth-authorization/definitions/description" }, "expires_in": { "$ref": "#/definitions/oauth-token/definitions/expires_in" }, "scope": { "$ref": "#/definitions/oauth-authorization/definitions/scope" } }, "required": [ "scope" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/oauth-authorization" }, "title": "Create" }, { "description": "Delete OAuth authorization.", "href": "/oauth/authorizations/{(%23%2Fdefinitions%2Foauth-authorization%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/oauth-authorization" }, "title": "Delete" }, { "description": "Info for an OAuth authorization.", "href": "/oauth/authorizations/{(%23%2Fdefinitions%2Foauth-authorization%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/oauth-authorization" }, "title": "Info" }, { "description": "List OAuth authorizations.", "href": "/oauth/authorizations", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/oauth-authorization" }, "type": [ "array" ] }, "title": "List" }, { "description": "Regenerate OAuth tokens. This endpoint is only available to direct authorizations or privileged OAuth clients.", "href": "/oauth/authorizations/{(%23%2Fdefinitions%2Foauth-authorization%2Fdefinitions%2Fidentity)}/actions/regenerate-tokens", "method": "POST", "rel": "update", "targetSchema": { "$ref": "#/definitions/oauth-authorization" }, "title": "Regenerate" } ], "properties": { "access_token": { "description": "access token for this authorization", "properties": { "expires_in": { "$ref": "#/definitions/oauth-token/definitions/expires_in" }, "id": { "$ref": "#/definitions/oauth-token/definitions/id" }, "token": { "$ref": "#/definitions/oauth-token/definitions/token" } }, "type": [ "null", "object" ] }, "client": { "description": "identifier of the client that obtained this authorization, if any", "properties": { "id": { "$ref": "#/definitions/oauth-client/definitions/id" }, "name": { "$ref": "#/definitions/oauth-client/definitions/name" }, "redirect_uri": { "$ref": "#/definitions/oauth-client/definitions/redirect_uri" } }, "type": [ "null", "object" ] }, "created_at": { "$ref": "#/definitions/oauth-authorization/definitions/created_at" }, "grant": { "description": "this authorization's grant", "properties": { "code": { "$ref": "#/definitions/oauth-grant/definitions/code" }, "expires_in": { "$ref": "#/definitions/oauth-grant/definitions/expires_in" }, "id": { "$ref": "#/definitions/oauth-grant/definitions/id" } }, "strictProperties": true, "type": [ "null", "object" ] }, "id": { "$ref": "#/definitions/oauth-authorization/definitions/id" }, "refresh_token": { "description": "refresh token for this authorization", "properties": { "expires_in": { "$ref": "#/definitions/oauth-token/definitions/expires_in" }, "id": { "$ref": "#/definitions/oauth-token/definitions/id" }, "token": { "$ref": "#/definitions/oauth-token/definitions/token" } }, "strictProperties": true, "type": [ "null", "object" ] }, "scope": { "$ref": "#/definitions/oauth-authorization/definitions/scope" }, "updated_at": { "$ref": "#/definitions/oauth-authorization/definitions/updated_at" }, "user": { "description": "authenticated user associated with this authorization", "properties": { "id": { "$ref": "#/definitions/account/definitions/id" }, "email": { "$ref": "#/definitions/account/definitions/email" }, "full_name": { "$ref": "#/definitions/account/definitions/name" } }, "strictProperties": true, "type": [ "object" ] } } }, "oauth-client": { "description": "OAuth clients are applications that Heroku users can authorize to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth).", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - OAuth Client", "type": [ "object" ], "definitions": { "created_at": { "description": "when OAuth client was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this OAuth client", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/oauth-client/definitions/id" } ] }, "ignores_delinquent": { "description": "whether the client is still operable given a delinquent account", "example": false, "readOnly": true, "type": [ "boolean", "null" ] }, "name": { "description": "OAuth client name", "example": "example", "readOnly": true, "type": [ "string" ] }, "redirect_uri": { "description": "endpoint for redirection after authorization with OAuth client", "example": "https://example.com/auth/heroku/callback", "readOnly": true, "type": [ "string" ] }, "secret": { "description": "secret used to obtain OAuth authorizations under this client", "example": "01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when OAuth client was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new OAuth client.", "href": "/oauth/clients", "method": "POST", "rel": "create", "schema": { "properties": { "name": { "$ref": "#/definitions/oauth-client/definitions/name" }, "redirect_uri": { "$ref": "#/definitions/oauth-client/definitions/redirect_uri" } }, "required": [ "name", "redirect_uri" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/oauth-client" }, "title": "Create" }, { "description": "Delete OAuth client.", "href": "/oauth/clients/{(%23%2Fdefinitions%2Foauth-client%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/oauth-client" }, "title": "Delete" }, { "description": "Info for an OAuth client", "href": "/oauth/clients/{(%23%2Fdefinitions%2Foauth-client%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "title": "Info" }, { "description": "List OAuth clients", "href": "/oauth/clients", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/oauth-client" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update OAuth client", "href": "/oauth/clients/{(%23%2Fdefinitions%2Foauth-client%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "name": { "$ref": "#/definitions/oauth-client/definitions/name" }, "redirect_uri": { "$ref": "#/definitions/oauth-client/definitions/redirect_uri" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/oauth-client" }, "title": "Update" }, { "description": "Rotate credentials for an OAuth client", "href": "/oauth/clients/{(%23%2Fdefinitions%2Foauth-client%2Fdefinitions%2Fidentity)}/actions/rotate-credentials", "method": "POST", "rel": "update", "targetSchema": { "$ref": "#/definitions/oauth-client" }, "title": "Rotate Credentials" } ], "properties": { "created_at": { "$ref": "#/definitions/oauth-client/definitions/created_at" }, "id": { "$ref": "#/definitions/oauth-client/definitions/id" }, "ignores_delinquent": { "$ref": "#/definitions/oauth-client/definitions/ignores_delinquent" }, "name": { "$ref": "#/definitions/oauth-client/definitions/name" }, "redirect_uri": { "$ref": "#/definitions/oauth-client/definitions/redirect_uri" }, "secret": { "$ref": "#/definitions/oauth-client/definitions/secret" }, "updated_at": { "$ref": "#/definitions/oauth-client/definitions/updated_at" } } }, "oauth-grant": { "description": "OAuth grants are used to obtain authorizations on behalf of a user. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth)", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - OAuth Grant", "type": [ "object" ], "definitions": { "code": { "description": "grant code received from OAuth web application authorization", "example": "01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "type": [ "string" ] }, "expires_in": { "description": "seconds until OAuth grant expires", "example": 2592000, "readOnly": true, "type": [ "integer" ] }, "id": { "description": "unique identifier of OAuth grant", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/oauth-grant/definitions/id" } ] }, "type": { "description": "type of grant requested, one of `authorization_code` or `refresh_token`", "example": "authorization_code", "readOnly": false, "type": [ "string" ] } }, "links": [ ], "properties": { } }, "oauth-token": { "description": "OAuth tokens provide access for authorized clients to act on behalf of a Heroku user to automate, customize or extend their usage of the platform. For more information please refer to the [Heroku OAuth documentation](https://devcenter.heroku.com/articles/oauth)", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - OAuth Token", "type": [ "object" ], "definitions": { "created_at": { "description": "when OAuth token was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "expires_in": { "description": "seconds until OAuth token expires; may be `null` for tokens with indefinite lifetime", "example": 2592000, "readOnly": true, "type": [ "null", "integer" ] }, "id": { "description": "unique identifier of OAuth token", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/oauth-token/definitions/id" } ] }, "token": { "description": "contents of the token to be used for authorization", "example": "01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when OAuth token was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new OAuth token.", "href": "/oauth/tokens", "method": "POST", "rel": "create", "schema": { "properties": { "client": { "type": [ "object" ], "properties": { "secret": { "$ref": "#/definitions/oauth-client/definitions/secret" } } }, "grant": { "type": [ "object" ], "properties": { "code": { "$ref": "#/definitions/oauth-grant/definitions/code" }, "type": { "$ref": "#/definitions/oauth-grant/definitions/type" } } }, "refresh_token": { "type": [ "object" ], "properties": { "token": { "$ref": "#/definitions/oauth-token/definitions/token" } } } }, "required": [ "grant", "client", "refresh_token" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/oauth-token" }, "title": "Create" }, { "description": "Revoke OAuth access token.", "href": "/oauth/tokens/{(%23%2Fdefinitions%2Foauth-token%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/oauth-token" }, "title": "Delete" } ], "properties": { "access_token": { "description": "current access token", "properties": { "expires_in": { "$ref": "#/definitions/oauth-token/definitions/expires_in" }, "id": { "$ref": "#/definitions/oauth-token/definitions/id" }, "token": { "$ref": "#/definitions/oauth-token/definitions/token" } }, "strictProperties": true, "type": [ "object" ] }, "authorization": { "description": "authorization for this set of tokens", "properties": { "id": { "$ref": "#/definitions/oauth-authorization/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "client": { "description": "OAuth client secret used to obtain token", "properties": { "secret": { "$ref": "#/definitions/oauth-client/definitions/secret" } }, "strictProperties": true, "type": [ "null", "object" ] }, "created_at": { "$ref": "#/definitions/oauth-token/definitions/created_at" }, "grant": { "description": "grant used on the underlying authorization", "properties": { "code": { "$ref": "#/definitions/oauth-grant/definitions/code" }, "type": { "$ref": "#/definitions/oauth-grant/definitions/type" } }, "strictProperties": true, "type": [ "object" ] }, "id": { "$ref": "#/definitions/oauth-token/definitions/id" }, "refresh_token": { "description": "refresh token for this authorization", "properties": { "expires_in": { "$ref": "#/definitions/oauth-token/definitions/expires_in" }, "id": { "$ref": "#/definitions/oauth-token/definitions/id" }, "token": { "$ref": "#/definitions/oauth-token/definitions/token" } }, "strictProperties": true, "type": [ "object" ] }, "session": { "description": "OAuth session using this token", "properties": { "id": { "$ref": "#/definitions/oauth-token/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "updated_at": { "$ref": "#/definitions/oauth-token/definitions/updated_at" }, "user": { "description": "Reference to the user associated with this token", "properties": { "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } }, "organization-add-on": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Deprecated: A list of add-ons the Organization uses across all apps", "stability": "production", "deprecated_at": "2017-04-10", "title": "Heroku Platform API - Organization Add-on", "type": [ "object" ], "links": [ { "description": "List add-ons used across all Organization apps", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/addons", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/add-on" }, "type": [ "array" ] }, "title": "List For Organization" } ] }, "organization-app-collaborator": { "description": "Deprecated: An organization collaborator represents an account that has been given access to an organization app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "deprecated_at": "2017-04-10", "title": "Heroku Platform API - Organization App Collaborator", "type": [ "object" ], "definitions": { "identity": { "anyOf": [ { "$ref": "#/definitions/collaborator/definitions/email" } ] } }, "links": [ { "description": "Create a new collaborator on an organization app. Use this endpoint instead of the `/apps/{app_id_or_name}/collaborator` endpoint when you want the collaborator to be granted [permissions] (https://devcenter.heroku.com/articles/org-users-access#roles-and-app-permissions) according to their role in the organization.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/collaborators", "method": "POST", "rel": "create", "schema": { "properties": { "permissions": { "type": [ "array" ], "items": { "$ref": "#/definitions/organization-app-permission/definitions/name" }, "description": "An array of permissions to give to the collaborator." }, "silent": { "$ref": "#/definitions/collaborator/definitions/silent" }, "user": { "$ref": "#/definitions/account/definitions/identity" } }, "required": [ "user" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-app-collaborator" }, "title": "Create" }, { "description": "Delete an existing collaborator from an organization app.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Forganization-app-collaborator%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/organization-app-collaborator" }, "title": "Delete" }, { "description": "Info for a collaborator on an organization app.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Forganization-app-collaborator%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/organization-app-collaborator" }, "title": "Info" }, { "description": "Update an existing collaborator from an organization app.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Forganization-app-collaborator%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "permissions": { "type": [ "array" ], "items": { "$ref": "#/definitions/organization-app-permission/definitions/name" }, "description": "An array of permissions to give to the collaborator." } }, "required": [ "permissions" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-app-collaborator" }, "title": "Update" }, { "description": "List collaborators on an organization app.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}/collaborators", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-app-collaborator" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "app": { "description": "app collaborator belongs to", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/collaborator/definitions/created_at" }, "id": { "$ref": "#/definitions/collaborator/definitions/id" }, "role": { "$ref": "#/definitions/organization/definitions/role" }, "updated_at": { "$ref": "#/definitions/collaborator/definitions/updated_at" }, "user": { "description": "identity of collaborated account", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "federated": { "$ref": "#/definitions/account/definitions/federated" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } }, "organization-app": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Deprecated: An organization app encapsulates the organization specific functionality of Heroku apps.", "stability": "prototype", "deprecated_at": "2017-04-10", "title": "Heroku Platform API - Organization App", "type": [ "object" ], "definitions": { "locked": { "default": false, "description": "are other organization members forbidden from joining this app.", "example": false, "type": [ "boolean" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app/definitions/name" } ] }, "joined": { "default": false, "description": "is the current member a collaborator on this app.", "example": false, "type": [ "boolean" ] }, "personal": { "default": false, "description": "force creation of the app in the user account even if a default org is set.", "example": false, "type": [ "boolean" ] } }, "links": [ { "description": "Create a new app in the specified organization, in the default organization if unspecified, or in personal account, if default organization is not set.", "href": "/organizations/apps", "method": "POST", "rel": "create", "schema": { "properties": { "locked": { "$ref": "#/definitions/organization-app/definitions/locked" }, "name": { "$ref": "#/definitions/app/definitions/name" }, "organization": { "$ref": "#/definitions/organization/definitions/name" }, "personal": { "$ref": "#/definitions/organization-app/definitions/personal" }, "region": { "$ref": "#/definitions/region/definitions/name" }, "space": { "$ref": "#/definitions/space/definitions/name" }, "stack": { "$ref": "#/definitions/stack/definitions/name" } }, "type": [ "object" ] }, "title": "Create" }, { "description": "List organization apps.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/apps", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-app" }, "type": [ "array" ] }, "title": "List For Organization" }, { "description": "Info for an organization app.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "title": "Info" }, { "description": "Lock or unlock an organization app.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "locked": { "$ref": "#/definitions/organization-app/definitions/locked" } }, "required": [ "locked" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-app" }, "title": "Update Locked" }, { "description": "Transfer an existing organization app to another Heroku account.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "owner": { "$ref": "#/definitions/account/definitions/identity" } }, "required": [ "owner" ], "type": [ "object" ] }, "title": "Transfer to Account" }, { "description": "Transfer an existing organization app to another organization.", "href": "/organizations/apps/{(%23%2Fdefinitions%2Forganization-app%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "owner": { "$ref": "#/definitions/organization/definitions/name" } }, "required": [ "owner" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-app" }, "title": "Transfer to Organization" } ], "properties": { "archived_at": { "$ref": "#/definitions/app/definitions/archived_at" }, "buildpack_provided_description": { "$ref": "#/definitions/app/definitions/buildpack_provided_description" }, "build_stack": { "description": "identity of the stack that will be used for new builds", "properties": { "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" } }, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/app/definitions/created_at" }, "git_url": { "$ref": "#/definitions/app/definitions/git_url" }, "id": { "$ref": "#/definitions/app/definitions/id" }, "joined": { "$ref": "#/definitions/organization-app/definitions/joined" }, "locked": { "$ref": "#/definitions/organization-app/definitions/locked" }, "maintenance": { "$ref": "#/definitions/app/definitions/maintenance" }, "name": { "$ref": "#/definitions/app/definitions/name" }, "organization": { "description": "organization that owns this app", "properties": { "name": { "$ref": "#/definitions/organization/definitions/name" } }, "type": [ "null", "object" ] }, "owner": { "description": "identity of app owner", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "type": [ "null", "object" ] }, "region": { "description": "identity of app region", "properties": { "id": { "$ref": "#/definitions/region/definitions/id" }, "name": { "$ref": "#/definitions/region/definitions/name" } }, "type": [ "object" ] }, "released_at": { "$ref": "#/definitions/app/definitions/released_at" }, "repo_size": { "$ref": "#/definitions/app/definitions/repo_size" }, "slug_size": { "$ref": "#/definitions/app/definitions/slug_size" }, "space": { "description": "identity of space", "properties": { "id": { "$ref": "#/definitions/space/definitions/id" }, "name": { "$ref": "#/definitions/space/definitions/name" } }, "type": [ "null", "object" ] }, "stack": { "description": "identity of app stack", "properties": { "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" } }, "type": [ "object" ] }, "updated_at": { "$ref": "#/definitions/app/definitions/updated_at" }, "web_url": { "$ref": "#/definitions/app/definitions/web_url" } } }, "organization-feature": { "description": "Deprecated: An organization feature represents a feature enabled on an organization account.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "deprecated_at": "2017-04-10", "strictProperties": true, "title": "Heroku Platform API - Organization Feature", "type": [ "object" ], "definitions": { "created_at": { "description": "when organization feature was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "description": { "description": "description of organization feature", "example": "Causes account to example.", "readOnly": true, "type": [ "string" ] }, "doc_url": { "description": "documentation URL of organization feature", "example": "http://devcenter.heroku.com/articles/example", "readOnly": true, "type": [ "string" ] }, "enabled": { "description": "whether or not organization feature has been enabled", "example": true, "readOnly": false, "type": [ "boolean" ] }, "id": { "description": "unique identifier of organization feature", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/organization-feature/definitions/id" }, { "$ref": "#/definitions/organization-feature/definitions/name" } ] }, "name": { "description": "unique name of organization feature", "example": "name", "readOnly": true, "type": [ "string" ] }, "state": { "description": "state of organization feature", "example": "public", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when organization 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 organization feature.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/features/{(%23%2Fdefinitions%2Forganization-feature%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/organization-feature" }, "title": "Info" }, { "description": "List existing organization features.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/features", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-feature" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update an existing organization feature.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/features/{(%23%2Fdefinitions%2Forganization-feature%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "enabled": { "$ref": "#/definitions/organization-feature/definitions/enabled" } }, "required": [ "enabled" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-feature" }, "title": "Update" } ], "properties": { "created_at": { "$ref": "#/definitions/organization-feature/definitions/created_at" }, "description": { "$ref": "#/definitions/organization-feature/definitions/description" }, "doc_url": { "$ref": "#/definitions/organization-feature/definitions/doc_url" }, "enabled": { "$ref": "#/definitions/organization-feature/definitions/enabled" }, "id": { "$ref": "#/definitions/organization-feature/definitions/id" }, "name": { "$ref": "#/definitions/organization-feature/definitions/name" }, "state": { "$ref": "#/definitions/organization-feature/definitions/state" }, "updated_at": { "$ref": "#/definitions/organization-feature/definitions/updated_at" }, "display_name": { "$ref": "#/definitions/organization-feature/definitions/display_name" }, "feedback_email": { "$ref": "#/definitions/organization-feature/definitions/feedback_email" } } }, "organization-invitation": { "description": "Deprecated: An organization invitation represents an invite to an organization.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "deprecated_at": "2017-04-10", "strictProperties": true, "title": "Heroku Platform API - Organization Invitation", "type": [ "object" ], "definitions": { "created_at": { "description": "when invitation was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/organization-invitation/definitions/id" } ] }, "id": { "description": "Unique identifier of an invitation", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "token": { "description": "Special token for invitation", "example": "614ae25aa2d4802096cd7c18625b526c", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when invitation was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Get a list of an organization's Identity Providers", "title": "List", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fname)}/invitations", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-invitation" }, "type": [ "array" ] } }, { "description": "Create Organization Invitation", "title": "Create", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/invitations", "method": "PUT", "rel": "update", "schema": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "role": { "$ref": "#/definitions/organization/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] } }, { "description": "Revoke an organization invitation.", "title": "Revoke", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/invitations/{(%23%2Fdefinitions%2Forganization-invitation%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "self" }, { "description": "Get an invitation by its token", "title": "Get", "href": "/organizations/invitations/{(%23%2Fdefinitions%2Forganization-invitation%2Fdefinitions%2Ftoken)}", "method": "GET", "rel": "instances", "targetSchema": { "$ref": "#/definitions/organization-invitation" } }, { "description": "Accept Organization Invitation", "title": "Accept", "href": "/organizations/invitations/{(%23%2Fdefinitions%2Forganization-invitation%2Fdefinitions%2Ftoken)}/accept", "method": "POST", "rel": "create", "targetSchema": { "$ref": "#/definitions/organization-member" } } ], "properties": { "created_at": { "$ref": "#/definitions/organization-invitation/definitions/created_at" }, "id": { "$ref": "#/definitions/organization-invitation/definitions/id" }, "invited_by": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "organization": { "properties": { "id": { "$ref": "#/definitions/organization/definitions/id" }, "name": { "$ref": "#/definitions/organization/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "role": { "$ref": "#/definitions/organization/definitions/role" }, "updated_at": { "$ref": "#/definitions/organization-invitation/definitions/updated_at" }, "user": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "strictProperties": true, "type": [ "object" ] } } }, "organization-invoice": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Deprecated: An organization invoice is an itemized bill of goods for an organization which includes pricing and charges.", "stability": "prototype", "deprecated_at": "2017-04-10", "strictProperties": true, "title": "Heroku Platform API - Organization Invoice", "type": [ "object" ], "definitions": { "addons_total": { "description": "total add-ons charges in on this invoice", "example": 25000, "readOnly": true, "type": [ "integer" ] }, "database_total": { "description": "total database charges on this invoice", "example": 25000, "readOnly": true, "type": [ "integer" ] }, "charges_total": { "description": "total charges on this invoice", "example": 0, "readOnly": true, "type": [ "integer" ] }, "created_at": { "description": "when invoice was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "credits_total": { "description": "total credits on this invoice", "example": 100000, "readOnly": true, "type": [ "integer" ] }, "dyno_units": { "description": "The total amount of dyno units consumed across dyno types.", "example": 1.92, "readOnly": true, "type": [ "number" ] }, "id": { "description": "unique identifier of this invoice", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/organization-invoice/definitions/number" } ] }, "number": { "description": "human readable invoice number", "example": 9403943, "readOnly": true, "type": [ "integer" ] }, "payment_status": { "description": "Status of the invoice payment.", "example": "Paid", "readOnly": true, "type": [ "string" ] }, "platform_total": { "description": "total platform charges on this invoice", "example": 50000, "readOnly": true, "type": [ "integer" ] }, "period_end": { "description": "the ending date that the invoice covers", "example": "01/31/2014", "readOnly": true, "type": [ "string" ] }, "period_start": { "description": "the starting date that this invoice covers", "example": "01/01/2014", "readOnly": true, "type": [ "string" ] }, "state": { "description": "payment status for this invoice (pending, successful, failed)", "example": 1, "readOnly": true, "type": [ "integer" ] }, "total": { "description": "combined total of charges and credits on this invoice", "example": 100000, "readOnly": true, "type": [ "integer" ] }, "updated_at": { "description": "when invoice was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "weighted_dyno_hours": { "description": "The total amount of hours consumed across dyno types.", "example": 1488, "readOnly": true, "type": [ "number" ] } }, "links": [ { "description": "Info for existing invoice.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/invoices/{(%23%2Fdefinitions%2Forganization-invoice%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/organization-invoice" }, "title": "Info" }, { "description": "List existing invoices.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/invoices", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-invoice" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "addons_total": { "$ref": "#/definitions/organization-invoice/definitions/addons_total" }, "database_total": { "$ref": "#/definitions/organization-invoice/definitions/database_total" }, "charges_total": { "$ref": "#/definitions/organization-invoice/definitions/charges_total" }, "created_at": { "$ref": "#/definitions/organization-invoice/definitions/created_at" }, "credits_total": { "$ref": "#/definitions/organization-invoice/definitions/credits_total" }, "dyno_units": { "$ref": "#/definitions/organization-invoice/definitions/dyno_units" }, "id": { "$ref": "#/definitions/organization-invoice/definitions/id" }, "number": { "$ref": "#/definitions/organization-invoice/definitions/number" }, "payment_status": { "$ref": "#/definitions/organization-invoice/definitions/payment_status" }, "period_end": { "$ref": "#/definitions/organization-invoice/definitions/period_end" }, "period_start": { "$ref": "#/definitions/organization-invoice/definitions/period_start" }, "platform_total": { "$ref": "#/definitions/organization-invoice/definitions/platform_total" }, "state": { "$ref": "#/definitions/organization-invoice/definitions/state" }, "total": { "$ref": "#/definitions/organization-invoice/definitions/total" }, "updated_at": { "$ref": "#/definitions/organization-invoice/definitions/updated_at" }, "weighted_dyno_hours": { "$ref": "#/definitions/organization-invoice/definitions/weighted_dyno_hours" } } }, "organization-member": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Deprecated: An organization member is an individual with access to an organization.", "stability": "prototype", "deprecated_at": "2017-04-10", "additionalProperties": false, "required": [ "created_at", "email", "federated", "updated_at" ], "title": "Heroku Platform API - Organization Member", "type": [ "object" ], "definitions": { "created_at": { "description": "when the membership record was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "email": { "description": "email address of the organization member", "example": "someone@example.org", "readOnly": true, "type": [ "string" ] }, "federated": { "description": "whether the user is federated and belongs to an Identity Provider", "example": false, "readOnly": true, "type": [ "boolean" ] }, "id": { "description": "unique identifier of organization member", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/organization-member/definitions/email" }, { "$ref": "#/definitions/organization-member/definitions/id" } ] }, "name": { "description": "full name of the organization member", "example": "Tina Edmonds", "readOnly": true, "type": [ "string", "null" ] }, "two_factor_authentication": { "description": "whether the Enterprise organization member has two factor authentication enabled", "example": true, "readOnly": true, "type": [ "boolean" ] }, "updated_at": { "description": "when the membership record was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new organization member, or update their role.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/members", "method": "PUT", "rel": "create", "schema": { "properties": { "email": { "$ref": "#/definitions/organization-member/definitions/email" }, "federated": { "$ref": "#/definitions/organization-member/definitions/federated" }, "role": { "$ref": "#/definitions/organization/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-member" }, "title": "Create or Update" }, { "description": "Create a new organization member.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/members", "method": "POST", "rel": "create", "schema": { "properties": { "email": { "$ref": "#/definitions/organization-member/definitions/email" }, "federated": { "$ref": "#/definitions/organization-member/definitions/federated" }, "role": { "$ref": "#/definitions/organization/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-member" }, "title": "Create" }, { "description": "Update an organization member.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/members", "method": "PATCH", "rel": "update", "schema": { "properties": { "email": { "$ref": "#/definitions/organization-member/definitions/email" }, "federated": { "$ref": "#/definitions/organization-member/definitions/federated" }, "role": { "$ref": "#/definitions/organization/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization-member" }, "title": "update" }, { "description": "Remove a member from the organization.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/members/{(%23%2Fdefinitions%2Forganization-member%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/organization-member" }, "title": "Delete" }, { "description": "List members of the organization.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/members", "method": "GET", "ranges": [ "email" ], "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-member" }, "type": [ "array" ] }, "title": "List" }, { "description": "List the apps of a member.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/members/{(%23%2Fdefinitions%2Forganization-member%2Fdefinitions%2Fidentity)}/apps", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-app" }, "type": [ "array" ] }, "title": "App List" } ], "properties": { "created_at": { "$ref": "#/definitions/organization-member/definitions/created_at" }, "email": { "$ref": "#/definitions/organization-member/definitions/email" }, "federated": { "$ref": "#/definitions/organization-member/definitions/federated" }, "id": { "$ref": "#/definitions/organization-member/definitions/id" }, "role": { "$ref": "#/definitions/organization/definitions/role" }, "two_factor_authentication": { "$ref": "#/definitions/organization-member/definitions/two_factor_authentication" }, "updated_at": { "$ref": "#/definitions/organization-member/definitions/updated_at" }, "user": { "description": "user information for the membership", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "strictProperties": true, "type": [ "object" ] } } }, "organization-preferences": { "description": "Deprecated: Tracks an organization's preferences", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "deprecated_at": "2017-04-10", "strictProperties": true, "title": "Heroku Platform API - Organization Preferences", "type": [ "object" ], "definitions": { "default-permission": { "description": "The default permission used when adding new members to the organization", "example": "member", "readOnly": false, "enum": [ "admin", "member", "viewer", null ], "type": [ "null", "string" ] }, "identity": { "$ref": "#/definitions/organization/definitions/identity" }, "whitelisting-enabled": { "description": "Whether whitelisting rules should be applied to add-on installations", "example": true, "readOnly": false, "type": [ "boolean", "null" ] } }, "links": [ { "description": "Retrieve Organization Preferences", "href": "/organizations/{(%23%2Fdefinitions%2Forganization-preferences%2Fdefinitions%2Fidentity)}/preferences", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/organization-preferences" }, "title": "List" }, { "description": "Update Organization Preferences", "href": "/organizations/{(%23%2Fdefinitions%2Forganization-preferences%2Fdefinitions%2Fidentity)}/preferences", "method": "PATCH", "rel": "update", "schema": { "type": [ "object" ], "properties": { "whitelisting-enabled": { "$ref": "#/definitions/organization-preferences/definitions/whitelisting-enabled" } } }, "targetSchema": { "$ref": "#/definitions/organization-preferences" }, "title": "Update" } ], "properties": { "default-permission": { "$ref": "#/definitions/organization-preferences/definitions/default-permission" }, "whitelisting-enabled": { "$ref": "#/definitions/organization-preferences/definitions/whitelisting-enabled" } } }, "organization": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Deprecated: Organizations allow you to manage access to a shared group of applications across your development team.", "stability": "prototype", "deprecated_at": "2017-04-10", "strictProperties": true, "title": "Heroku Platform API - Organization", "type": [ "object" ], "definitions": { "created_at": { "description": "when the organization was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "credit_card_collections": { "description": "whether charges incurred by the org are paid by credit card.", "example": true, "readOnly": true, "type": [ "boolean" ] }, "default": { "description": "whether to use this organization when none is specified", "example": true, "readOnly": false, "type": [ "boolean" ] }, "id": { "description": "unique identifier of organization", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/organization/definitions/name" }, { "$ref": "#/definitions/organization/definitions/id" } ] }, "address_1": { "type": [ "string" ], "description": "street address line 1", "example": "40 Hickory Lane" }, "address_2": { "type": [ "string" ], "description": "street address line 2", "example": "Suite 103" }, "card_number": { "type": [ "string" ], "description": "encrypted card number of payment method", "example": "encrypted-card-number" }, "city": { "type": [ "string" ], "description": "city", "example": "San Francisco" }, "country": { "type": [ "string" ], "description": "country", "example": "US" }, "cvv": { "type": [ "string" ], "description": "card verification value", "example": "123" }, "expiration_month": { "type": [ "string" ], "description": "expiration month", "example": "11" }, "expiration_year": { "type": [ "string" ], "description": "expiration year", "example": "2014" }, "first_name": { "type": [ "string" ], "description": "the first name for payment method", "example": "Jason" }, "last_name": { "type": [ "string" ], "description": "the last name for payment method", "example": "Walker" }, "other": { "type": [ "string" ], "description": "metadata", "example": "Additional information for payment method" }, "postal_code": { "type": [ "string" ], "description": "postal code", "example": "90210" }, "state": { "type": [ "string" ], "description": "state", "example": "CA" }, "membership_limit": { "description": "upper limit of members allowed in an organization.", "example": 25, "readOnly": true, "type": [ "number", "null" ] }, "name": { "description": "unique name of organization", "example": "example", "readOnly": true, "type": [ "string" ] }, "provisioned_licenses": { "description": "whether the org is provisioned licenses by salesforce.", "example": true, "readOnly": true, "type": [ "boolean" ] }, "role": { "description": "role in the organization", "enum": [ "admin", "collaborator", "member", "owner", null ], "example": "admin", "readOnly": true, "type": [ "null", "string" ] }, "type": { "description": "type of organization.", "example": "team", "enum": [ "enterprise", "team" ], "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when the organization was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "List organizations in which you are a member.", "href": "/organizations", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization" }, "type": [ "array" ] }, "title": "List" }, { "description": "Info for an organization.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "title": "Info" }, { "description": "Update organization properties.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "default": { "$ref": "#/definitions/organization/definitions/default" }, "name": { "$ref": "#/definitions/organization/definitions/name" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization" }, "title": "Update" }, { "description": "Create a new organization.", "href": "/organizations", "method": "POST", "rel": "create", "schema": { "properties": { "name": { "$ref": "#/definitions/organization/definitions/name" }, "address_1": { "$ref": "#/definitions/organization/definitions/address_1" }, "address_2": { "$ref": "#/definitions/organization/definitions/address_2" }, "card_number": { "$ref": "#/definitions/organization/definitions/card_number" }, "city": { "$ref": "#/definitions/organization/definitions/city" }, "country": { "$ref": "#/definitions/organization/definitions/country" }, "cvv": { "$ref": "#/definitions/organization/definitions/cvv" }, "expiration_month": { "$ref": "#/definitions/organization/definitions/expiration_month" }, "expiration_year": { "$ref": "#/definitions/organization/definitions/expiration_year" }, "first_name": { "$ref": "#/definitions/organization/definitions/first_name" }, "last_name": { "$ref": "#/definitions/organization/definitions/last_name" }, "other": { "$ref": "#/definitions/organization/definitions/other" }, "postal_code": { "$ref": "#/definitions/organization/definitions/postal_code" }, "state": { "$ref": "#/definitions/organization/definitions/state" } }, "required": [ "name" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/organization" }, "title": "Create" }, { "description": "Delete an existing organization.", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/organization" }, "title": "Delete" } ], "properties": { "id": { "$ref": "#/definitions/organization/definitions/id" }, "created_at": { "$ref": "#/definitions/organization/definitions/created_at" }, "credit_card_collections": { "$ref": "#/definitions/organization/definitions/credit_card_collections" }, "default": { "$ref": "#/definitions/organization/definitions/default" }, "membership_limit": { "$ref": "#/definitions/organization/definitions/membership_limit" }, "name": { "$ref": "#/definitions/organization/definitions/name" }, "provisioned_licenses": { "$ref": "#/definitions/organization/definitions/provisioned_licenses" }, "role": { "$ref": "#/definitions/organization/definitions/role" }, "type": { "$ref": "#/definitions/organization/definitions/type" }, "updated_at": { "$ref": "#/definitions/organization/definitions/updated_at" } } }, "outbound-ruleset": { "description": "An outbound-ruleset is a collection of rules that specify what hosts Dynos are allowed to communicate with. ", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Outbound Ruleset", "type": [ "object" ], "definitions": { "target": { "description": "is the target destination in CIDR notation", "example": "1.1.1.1/1", "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$", "readOnly": false, "type": [ "string" ] }, "created_at": { "description": "when outbound-ruleset was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of an outbound-ruleset", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "port": { "description": "an endpoint of communication in an operating system.", "example": 80, "readOnly": false, "type": [ "integer" ] }, "protocol": { "description": "formal standards and policies comprised of rules, procedures and formats that define communication between two or more devices over a network", "example": "tcp", "readOnly": false, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/outbound-ruleset/definitions/id" } ] }, "rule": { "description": "the combination of an IP address in CIDR notation, a from_port, to_port and protocol.", "type": [ "object" ], "properties": { "target": { "$ref": "#/definitions/outbound-ruleset/definitions/target" }, "from_port": { "$ref": "#/definitions/outbound-ruleset/definitions/port" }, "to_port": { "$ref": "#/definitions/outbound-ruleset/definitions/port" }, "protocol": { "$ref": "#/definitions/outbound-ruleset/definitions/protocol" } }, "required": [ "target", "from_port", "to_port", "protocol" ] } }, "links": [ { "description": "Current outbound ruleset for a space", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/outbound-ruleset" }, "title": "Current" }, { "description": "Info on an existing Outbound Ruleset", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets/{(%23%2Fdefinitions%2Foutbound-ruleset%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/outbound-ruleset" }, "title": "Info" }, { "description": "List all Outbound Rulesets for a space", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-rulesets", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/outbound-ruleset" }, "type": [ "array" ] }, "title": "List" }, { "description": "Create a new outbound ruleset", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/outbound-ruleset", "method": "PUT", "rel": "create", "schema": { "type": [ "object" ], "properties": { "rules": { "type": [ "array" ], "items": { "$ref": "#/definitions/outbound-ruleset/definitions/rule" } } } }, "title": "Create" } ], "properties": { "id": { "$ref": "#/definitions/outbound-ruleset/definitions/id" }, "space": { "description": "identity of space", "properties": { "id": { "$ref": "#/definitions/space/definitions/id" }, "name": { "$ref": "#/definitions/space/definitions/name" } }, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/outbound-ruleset/definitions/created_at" }, "rules": { "type": [ "array" ], "items": { "$ref": "#/definitions/outbound-ruleset/definitions/rule" } }, "created_by": { "$ref": "#/definitions/account/definitions/email" } } }, "password-reset": { "description": "A password reset represents a in-process password reset attempt.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - PasswordReset", "type": [ "object" ], "definitions": { "created_at": { "description": "when password reset was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/account/definitions/email" } ] }, "password_confirmation": { "description": "confirmation of the new password", "example": "newpassword", "readOnly": true, "type": [ "string" ] }, "reset_password_token": { "description": "unique identifier of a password reset attempt", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Reset account's password. This will send a reset password link to the user's email address.", "href": "/password-resets", "method": "POST", "rel": "self", "schema": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" } }, "type": [ "object" ] }, "title": "Reset Password" }, { "description": "Complete password reset.", "href": "/password-resets/{(%23%2Fdefinitions%2Fpassword-reset%2Fdefinitions%2Freset_password_token)}/actions/finalize", "method": "POST", "rel": "self", "schema": { "properties": { "password": { "$ref": "#/definitions/account/definitions/password" }, "password_confirmation": { "$ref": "#/definitions/password-reset/definitions/password_confirmation" } }, "type": [ "object" ] }, "title": "Complete Reset Password" } ], "properties": { "created_at": { "$ref": "#/definitions/password-reset/definitions/created_at" }, "user": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } }, "peering-info": { "description": "[Peering Info](https://devcenter.heroku.com/articles/private-space-vpc-peering) gives you the information necessary to peer an AWS VPC to a Private Space.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Peering Info", "type": [ "object" ], "properties": { "aws_account_id": { "$ref": "#/definitions/peering/definitions/aws_account_id" }, "aws_region": { "$ref": "#/definitions/region/definitions/provider/properties/region" }, "vpc_id": { "$ref": "#/definitions/peering/definitions/vpc_id" }, "vpc_cidr": { "description": "The CIDR range of the Private Space VPC", "$ref": "#/definitions/peering/definitions/cidr" }, "dyno_cidr_blocks": { "description": "The CIDR ranges that should be routed to the Private Space VPC.", "type": [ "array" ], "items": { "$ref": "#/definitions/peering/definitions/cidr" } }, "unavailable_cidr_blocks": { "description": "The CIDR ranges that you must not conflict with.", "type": [ "array" ], "items": { "$ref": "#/definitions/peering/definitions/cidr" } }, "space_cidr_blocks": { "description": "The CIDR ranges that should be routed to the Private Space VPC.", "type": [ "array" ], "items": { "$ref": "#/definitions/peering/definitions/cidr" } } }, "links": [ { "description": "Provides the necessary information to establish an AWS VPC Peering with your private space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peering-info", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/peering-info" }, "title": "Info" } ] }, "peering": { "description": "[Peering](https://devcenter.heroku.com/articles/private-space-vpc-peering) provides a way to peer your Private Space VPC to another AWS VPC.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Peering", "type": [ "object" ], "definitions": { "aws_account_id": { "description": "The AWS account ID of your Private Space.", "example": "123456789012", "readOnly": true, "type": [ "string" ] }, "aws_region": { "description": "The AWS region of the peer connection.", "example": "us-east-1", "readOnly": true, "type": [ "string" ] }, "vpc_id": { "description": "The AWS VPC ID of the peer.", "example": "vpc-1234567890", "readOnly": true, "type": [ "string" ] }, "type": { "description": "The type of peering connection.", "example": "heroku-managed", "type": [ "string" ], "enum": [ "heroku-managed", "customer-managed", "unknown" ] }, "status": { "description": "The status of the peering connection.", "example": "pending-acceptance", "enum": [ "initiating-request", "pending-acceptance", "provisioning", "active", "failed", "expired", "rejected", "deleted" ], "type": [ "string" ], "readOnly": true }, "pcx_id": { "description": "The AWS VPC Peering Connection ID of the peering.", "example": "pcx-123456789012", "readOnly": true, "type": [ "string" ] }, "cidr": { "description": "An IP address and the number of significant bits that make up the routing or networking portion.", "example": "10.0.0.0/16", "type": [ "string" ] }, "expires": { "description": "When a peering connection will expire.", "example": "2020-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "properties": { "type": { "$ref": "#/definitions/peering/definitions/type" }, "pcx_id": { "$ref": "#/definitions/peering/definitions/pcx_id" }, "cidr_blocks": { "description": "The CIDR blocks of the peer.", "type": [ "array" ], "items": { "$ref": "#/definitions/peering/definitions/cidr" } }, "status": { "$ref": "#/definitions/peering/definitions/status" }, "aws_vpc_id": { "$ref": "#/definitions/peering/definitions/vpc_id" }, "aws_region": { "$ref": "#/definitions/peering/definitions/aws_region" }, "aws_account_id": { "$ref": "#/definitions/peering/definitions/aws_account_id" }, "expires": { "$ref": "#/definitions/peering/definitions/expires" } }, "links": [ { "description": "List peering connections of a private space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peerings", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/peering" }, "type": [ "array" ] }, "title": "List" }, { "description": "Accept a pending peering connection with a private space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peerings/{(%23%2Fdefinitions%2Fpeering%2Fdefinitions%2Fpcx_id)}/actions/accept", "method": "POST", "rel": "empty", "title": "Accept" }, { "description": "Destroy an active peering connection with a private space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peerings/{(%23%2Fdefinitions%2Fpeering%2Fdefinitions%2Fpcx_id)}", "rel": "empty", "method": "DELETE", "title": "Destroy" }, { "description": "Fetch information for existing peering connection", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/peerings/{(%23%2Fdefinitions%2Fpeering%2Fdefinitions%2Fpcx_id)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/peering" }, "title": "Info" } ] }, "organization-app-permission": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Deprecated: An organization app permission is a behavior that is assigned to a user in an organization app.", "stability": "prototype", "deprecated_at": "2017-04-10", "title": "Heroku Platform API - Organization App Permission", "type": [ "object" ], "definitions": { "identity": { "anyOf": [ { "$ref": "#/definitions/organization-app-permission/definitions/name" } ] }, "name": { "description": "The name of the app permission.", "example": "view", "readOnly": true, "type": [ "string" ] }, "description": { "description": "A description of what the app permission allows.", "example": "Can manage config, deploy, run commands and restart the app.", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Lists permissions available to organizations.", "href": "/organizations/permissions", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/organization-app-permission" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "name": { "$ref": "#/definitions/organization-app-permission/definitions/name" }, "description": { "$ref": "#/definitions/organization-app-permission/definitions/description" } } }, "pipeline-coupling": { "description": "Information about an app's coupling to a pipeline", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "title": "Heroku Platform API - Pipeline Coupling", "type": [ "object" ], "definitions": { "created_at": { "description": "when pipeline coupling was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of pipeline coupling", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/pipeline-coupling/definitions/id" } ] }, "stage": { "description": "target pipeline stage", "example": "production", "enum": [ "test", "review", "development", "staging", "production" ], "type": [ "string" ] }, "updated_at": { "description": "when pipeline coupling was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "List couplings for a pipeline", "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/pipeline-couplings", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/pipeline-coupling" }, "type": [ "array" ] }, "title": "List By Pipeline" }, { "description": "List pipeline couplings.", "href": "/pipeline-couplings", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/pipeline-coupling" }, "type": [ "array" ] }, "title": "List" }, { "description": "Create a new pipeline coupling.", "href": "/pipeline-couplings", "method": "POST", "rel": "create", "schema": { "properties": { "app": { "$ref": "#/definitions/app/definitions/identity" }, "pipeline": { "$ref": "#/definitions/pipeline/definitions/id" }, "stage": { "$ref": "#/definitions/pipeline-coupling/definitions/stage" } }, "required": [ "app", "pipeline", "stage" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/pipeline-coupling" }, "title": "Create" }, { "description": "Info for an existing pipeline coupling.", "href": "/pipeline-couplings/{(%23%2Fdefinitions%2Fpipeline-coupling%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/pipeline-coupling" }, "title": "Info" }, { "description": "Delete an existing pipeline coupling.", "href": "/pipeline-couplings/{(%23%2Fdefinitions%2Fpipeline-coupling%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "delete", "targetSchema": { "$ref": "#/definitions/pipeline-coupling" }, "title": "Delete" }, { "description": "Update an existing pipeline coupling.", "href": "/pipeline-couplings/{(%23%2Fdefinitions%2Fpipeline-coupling%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "stage": { "$ref": "#/definitions/pipeline-coupling/definitions/stage" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/pipeline-coupling" }, "title": "Update" }, { "description": "Info for an existing app pipeline coupling.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/pipeline-couplings", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/pipeline-coupling" }, "title": "Info By App" } ], "properties": { "app": { "description": "app involved in the pipeline coupling", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" } }, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/pipeline-coupling/definitions/created_at" }, "id": { "$ref": "#/definitions/pipeline-coupling/definitions/id" }, "pipeline": { "description": "pipeline involved in the coupling", "properties": { "id": { "$ref": "#/definitions/pipeline/definitions/id" } }, "type": [ "object" ] }, "stage": { "$ref": "#/definitions/pipeline-coupling/definitions/stage" }, "updated_at": { "$ref": "#/definitions/pipeline-coupling/definitions/updated_at" } } }, "pipeline-promotion-target": { "description": "Promotion targets represent an individual app being promoted to", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Pipeline Promotion Target", "type": [ "object" ], "definitions": { "error_message": { "description": "an error message for why the promotion failed", "example": "User does not have access to that app", "type": [ "null", "string" ] }, "id": { "description": "unique identifier of promotion target", "example": "01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/pipeline-promotion-target/definitions/id" } ] }, "status": { "description": "status of promotion", "example": "pending", "readOnly": true, "enum": [ "pending", "succeeded", "failed" ], "type": [ "string" ] } }, "links": [ { "description": "List promotion targets belonging to an existing promotion.", "href": "/pipeline-promotions/{(%23%2Fdefinitions%2Fpipeline-promotion%2Fdefinitions%2Fid)}/promotion-targets", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/pipeline-promotion-target" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "app": { "description": "the app which was promoted to", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "error_message": { "$ref": "#/definitions/pipeline-promotion-target/definitions/error_message" }, "id": { "$ref": "#/definitions/pipeline-promotion-target/definitions/id" }, "pipeline_promotion": { "description": "the promotion which the target belongs to", "properties": { "id": { "$ref": "#/definitions/pipeline-promotion/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "release": { "description": "the release which was created on the target app", "properties": { "id": { "$ref": "#/definitions/release/definitions/id" } }, "type": [ "object", "null" ] }, "status": { "$ref": "#/definitions/pipeline-promotion-target/definitions/status" } } }, "pipeline-promotion": { "description": "Promotions allow you to move code from an app in a pipeline to all targets", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Pipeline Promotion", "type": [ "object" ], "definitions": { "created_at": { "description": "when promotion was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "type": [ "string" ] }, "id": { "description": "unique identifier of promotion", "example": "01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/pipeline-promotion/definitions/id" } ] }, "status": { "description": "status of promotion", "example": "pending", "readOnly": true, "enum": [ "pending", "completed" ], "type": [ "string" ] }, "updated_at": { "description": "when promotion was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "type": [ "string", "null" ] } }, "links": [ { "description": "Create a new promotion.", "href": "/pipeline-promotions", "method": "POST", "rel": "create", "schema": { "properties": { "pipeline": { "description": "pipeline involved in the promotion", "properties": { "id": { "$ref": "#/definitions/pipeline/definitions/id" } }, "required": [ "id" ], "type": [ "object" ] }, "source": { "description": "the app being promoted from", "type": [ "object" ], "properties": { "app": { "description": "the app which was promoted from", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } }, "targets": { "type": [ "array" ], "items": { "type": [ "object" ], "properties": { "app": { "description": "the app is being promoted to", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } } } }, "required": [ "pipeline", "source", "targets" ], "type": [ "object" ] }, "title": "Create" }, { "description": "Info for existing pipeline promotion.", "href": "/pipeline-promotions/{(%23%2Fdefinitions%2Fpipeline-promotion%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/pipeline-promotion" }, "title": "Info" } ], "properties": { "created_at": { "$ref": "#/definitions/pipeline-promotion/definitions/created_at" }, "id": { "$ref": "#/definitions/pipeline-promotion/definitions/id" }, "pipeline": { "description": "the pipeline which the promotion belongs to", "properties": { "id": { "$ref": "#/definitions/pipeline/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "source": { "description": "the app being promoted from", "properties": { "app": { "description": "the app which was promoted from", "properties": { "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "release": { "description": "the release used to promoted from", "properties": { "id": { "$ref": "#/definitions/release/definitions/id" } }, "type": [ "object" ] } }, "strictProperties": true, "type": [ "object" ] }, "status": { "$ref": "#/definitions/pipeline-promotion/definitions/status" }, "updated_at": { "$ref": "#/definitions/pipeline-promotion/definitions/updated_at" } } }, "pipeline": { "description": "A pipeline allows grouping of apps into different stages.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Pipeline", "type": [ "object" ], "definitions": { "created_at": { "description": "when pipeline was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of pipeline", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/pipeline/definitions/id" }, { "$ref": "#/definitions/pipeline/definitions/name" } ] }, "name": { "description": "name of pipeline", "example": "example", "pattern": "^[a-z][a-z0-9-]{2,29}$", "readOnly": false, "type": [ "string" ] }, "updated_at": { "description": "when pipeline was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new pipeline.", "href": "/pipelines", "method": "POST", "rel": "create", "schema": { "properties": { "name": { "$ref": "#/definitions/pipeline/definitions/name" } }, "required": [ "name" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/pipeline" }, "title": "Create" }, { "description": "Info for existing pipeline.", "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/pipeline" }, "title": "Info" }, { "description": "Delete an existing pipeline.", "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}", "method": "DELETE", "rel": "delete", "targetSchema": { "$ref": "#/definitions/pipeline" }, "title": "Delete" }, { "description": "Update an existing pipeline.", "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "name": { "$ref": "#/definitions/pipeline/definitions/name" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/pipeline" }, "title": "Update" }, { "description": "List existing pipelines.", "href": "/pipelines", "method": "GET", "rel": "instances", "targetSchema": { "type": [ "array" ], "items": { "$ref": "#/definitions/pipeline" } }, "title": "List" } ], "properties": { "created_at": { "$ref": "#/definitions/pipeline/definitions/created_at" }, "id": { "$ref": "#/definitions/pipeline/definitions/id" }, "name": { "$ref": "#/definitions/pipeline/definitions/name" }, "updated_at": { "$ref": "#/definitions/pipeline/definitions/updated_at" } } }, "plan": { "description": "Plans represent different configurations of add-ons that may be added to apps. Endpoints under add-on services can be accessed without authentication.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Plan", "type": [ "object" ], "definitions": { "created_at": { "description": "when plan was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "compliance": { "description": "the compliance regimes applied to an add-on plan", "example": [ "HIPAA" ], "readOnly": false, "type": [ "null", "array" ], "items": { "$ref": "#/definitions/plan/definitions/regime" } }, "default": { "description": "whether this plan is the default for its add-on service", "example": false, "readOnly": true, "type": [ "boolean" ] }, "description": { "description": "description of plan", "example": "Heroku Postgres Dev", "readOnly": true, "type": [ "string" ] }, "human_name": { "description": "human readable name of the add-on plan", "example": "Dev", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this plan", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "installable_inside_private_network": { "description": "whether this plan is installable to a Private Spaces app", "example": false, "readOnly": true, "type": [ "boolean" ] }, "installable_outside_private_network": { "description": "whether this plan is installable to a Common Runtime app", "example": true, "readOnly": true, "type": [ "boolean" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/plan/definitions/id" }, { "$ref": "#/definitions/plan/definitions/name" } ] }, "name": { "description": "unique name of this plan", "example": "heroku-postgresql:dev", "readOnly": true, "type": [ "string" ] }, "regime": { "description": "compliance requirements an add-on plan must adhere to", "readOnly": true, "example": "HIPAA", "type": [ "string" ], "enum": [ "HIPAA", "PCI" ] }, "cents": { "description": "price in cents per unit of plan", "example": 0, "readOnly": true, "type": [ "integer" ] }, "contract": { "description": "price is negotiated in a contract outside of monthly add-on billing", "example": false, "readOnly": true, "type": [ "boolean" ] }, "unit": { "description": "unit of price for plan", "example": "month", "readOnly": true, "type": [ "string" ] }, "space_default": { "description": "whether this plan is the default for apps in Private Spaces", "example": false, "readOnly": true, "type": [ "boolean" ] }, "state": { "description": "release status for plan", "example": "public", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when plan was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "visible": { "description": "whether this plan is publicly visible", "example": true, "readOnly": true, "type": [ "boolean" ] } }, "links": [ { "description": "Info for existing plan.", "href": "/plans/{(%23%2Fdefinitions%2Fplan%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/plan" }, "title": "Info" }, { "description": "Info for existing plan by Add-on.", "href": "/addon-services/{(%23%2Fdefinitions%2Fadd-on-service%2Fdefinitions%2Fidentity)}/plans/{(%23%2Fdefinitions%2Fplan%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/plan" }, "title": "Info By Add-on" }, { "description": "List existing plans by Add-on.", "href": "/addon-services/{(%23%2Fdefinitions%2Fadd-on-service%2Fdefinitions%2Fidentity)}/plans", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/plan" }, "type": [ "array" ] }, "title": "List By Add-on" } ], "properties": { "addon_service": { "description": "identity of add-on service", "properties": { "id": { "$ref": "#/definitions/add-on-service/definitions/id" }, "name": { "$ref": "#/definitions/add-on-service/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/plan/definitions/created_at" }, "compliance": { "$ref": "#/definitions/plan/definitions/compliance" }, "default": { "$ref": "#/definitions/plan/definitions/default" }, "description": { "$ref": "#/definitions/plan/definitions/description" }, "human_name": { "$ref": "#/definitions/plan/definitions/human_name" }, "id": { "$ref": "#/definitions/plan/definitions/id" }, "installable_inside_private_network": { "$ref": "#/definitions/plan/definitions/installable_inside_private_network" }, "installable_outside_private_network": { "$ref": "#/definitions/plan/definitions/installable_outside_private_network" }, "name": { "$ref": "#/definitions/plan/definitions/name" }, "price": { "description": "price", "properties": { "cents": { "$ref": "#/definitions/plan/definitions/cents" }, "contract": { "$ref": "#/definitions/plan/definitions/contract" }, "unit": { "$ref": "#/definitions/plan/definitions/unit" } }, "strictProperties": true, "type": [ "object" ] }, "space_default": { "$ref": "#/definitions/plan/definitions/space_default" }, "state": { "$ref": "#/definitions/plan/definitions/state" }, "updated_at": { "$ref": "#/definitions/plan/definitions/updated_at" }, "visible": { "$ref": "#/definitions/plan/definitions/visible" } } }, "rate-limit": { "description": "Rate Limit represents the number of request tokens each account holds. Requests to this endpoint do not count towards the rate limit.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Rate Limit", "type": [ "object" ], "definitions": { "identity": { }, "remaining": { "description": "allowed requests remaining in current interval", "example": 2399, "readOnly": true, "type": [ "integer" ] } }, "links": [ { "description": "Info for rate limits.", "href": "/account/rate-limits", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/rate-limit" }, "title": "Info" } ], "properties": { "remaining": { "$ref": "#/definitions/rate-limit/definitions/remaining" } } }, "region": { "description": "A region represents a geographic location in which your application may run.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Region", "type": [ "object" ], "definitions": { "country": { "description": "country where the region exists", "example": "United States", "readOnly": true, "type": [ "string" ] }, "created_at": { "description": "when region was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "description": { "description": "description of region", "example": "United States", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of region", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/region/definitions/id" }, { "$ref": "#/definitions/region/definitions/name" } ] }, "locale": { "description": "area in the country where the region exists", "example": "Virginia", "readOnly": true, "type": [ "string" ] }, "name": { "description": "unique name of region", "example": "us", "readOnly": true, "type": [ "string" ] }, "private_capable": { "description": "whether or not region is available for creating a Private Space", "example": false, "readOnly": true, "type": [ "boolean" ] }, "provider": { "description": "provider of underlying substrate", "type": [ "object" ], "properties": { "name": { "description": "name of provider", "example": "amazon-web-services", "readOnly": true, "type": [ "string" ] }, "region": { "description": "region name used by provider", "example": "us-east-1", "readOnly": true, "type": [ "string" ], "enum": [ "ap-south-1", "eu-west-1", "ap-southeast-1", "ap-southeast-2", "eu-central-1", "ap-northeast-2", "ap-northeast-1", "us-east-1", "sa-east-1", "us-west-1", "us-west-2" ] } }, "readOnly": true }, "updated_at": { "description": "when region was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Info for existing region.", "href": "/regions/{(%23%2Fdefinitions%2Fregion%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/region" }, "title": "Info" }, { "description": "List existing regions.", "href": "/regions", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/region" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "country": { "$ref": "#/definitions/region/definitions/country" }, "created_at": { "$ref": "#/definitions/region/definitions/created_at" }, "description": { "$ref": "#/definitions/region/definitions/description" }, "id": { "$ref": "#/definitions/region/definitions/id" }, "locale": { "$ref": "#/definitions/region/definitions/locale" }, "name": { "$ref": "#/definitions/region/definitions/name" }, "private_capable": { "$ref": "#/definitions/region/definitions/private_capable" }, "provider": { "$ref": "#/definitions/region/definitions/provider" }, "updated_at": { "$ref": "#/definitions/region/definitions/updated_at" } } }, "release": { "description": "A release represents a combination of code, config vars and add-ons for an app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Release", "type": [ "object" ], "definitions": { "created_at": { "description": "when release was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "description": { "description": "description of changes in this release", "example": "Added new feature", "readOnly": true, "type": [ "string" ] }, "status": { "description": "current status of the release", "enum": [ "failed", "pending", "succeeded" ], "example": "succeeded", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of release", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/release/definitions/id" }, { "$ref": "#/definitions/release/definitions/version" } ] }, "updated_at": { "description": "when release was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "version": { "description": "unique version assigned to the release", "example": 11, "readOnly": true, "type": [ "integer" ] }, "current": { "description": "indicates this release as being the current one for the app", "example": true, "readOnly": true, "type": [ "boolean" ] }, "output_stream_url": { "description": "Release command output will be available from this URL as a stream. The stream is available as either `text/plain` or `text/event-stream`. Clients should be prepared to handle disconnects and can resume the stream by sending a `Range` header (for `text/plain`) or a `Last-Event-Id` header (for `text/event-stream`).", "example": "https://release-output.heroku.com/streams/01234567-89ab-cdef-0123-456789abcdef", "readOnly": true, "type": [ "string", "null" ] } }, "links": [ { "description": "Info for existing release.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/releases/{(%23%2Fdefinitions%2Frelease%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/release" }, "title": "Info" }, { "description": "List existing releases.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/releases", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/release" }, "type": [ "array" ] }, "title": "List" }, { "description": "Create new release.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/releases", "method": "POST", "rel": "create", "schema": { "properties": { "description": { "$ref": "#/definitions/release/definitions/description" }, "slug": { "$ref": "#/definitions/slug/definitions/identity" } }, "required": [ "slug" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/release" }, "title": "Create" }, { "description": "Rollback to an existing release.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/releases", "method": "POST", "rel": "create", "schema": { "properties": { "release": { "$ref": "#/definitions/release/definitions/id" } }, "required": [ "release" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/release" }, "title": "Rollback" } ], "properties": { "addon_plan_names": { "description": "add-on plans installed on the app for this release", "type": [ "array" ], "items": { "$ref": "#/definitions/plan/definitions/name" } }, "app": { "description": "app involved in the release", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/release/definitions/created_at" }, "description": { "$ref": "#/definitions/release/definitions/description" }, "id": { "$ref": "#/definitions/release/definitions/id" }, "updated_at": { "$ref": "#/definitions/release/definitions/updated_at" }, "slug": { "description": "slug running in this release", "properties": { "id": { "$ref": "#/definitions/slug/definitions/id" } }, "strictProperties": true, "type": [ "object", "null" ] }, "status": { "$ref": "#/definitions/release/definitions/status" }, "user": { "description": "user that created the release", "properties": { "id": { "$ref": "#/definitions/account/definitions/id" }, "email": { "$ref": "#/definitions/account/definitions/email" } }, "strictProperties": true, "type": [ "object" ] }, "version": { "$ref": "#/definitions/release/definitions/version" }, "current": { "$ref": "#/definitions/release/definitions/current" }, "output_stream_url": { "$ref": "#/definitions/release/definitions/output_stream_url" } } }, "slug": { "description": "A slug is a snapshot of your application code that is ready to run on the platform.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Slug", "type": [ "object" ], "definitions": { "buildpack_provided_description": { "description": "description from buildpack of slug", "example": "Ruby/Rack", "readOnly": false, "type": [ "null", "string" ] }, "checksum": { "description": "an optional checksum of the slug for verifying its integrity", "example": "SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "readOnly": true, "type": [ "null", "string" ] }, "commit": { "description": "identification of the code with your version control system (eg: SHA of the git HEAD)", "example": "60883d9e8947a57e04dc9124f25df004866a2051", "readOnly": false, "type": [ "null", "string" ] }, "commit_description": { "description": "an optional description of the provided commit", "example": "fixed a bug with API documentation", "readOnly": false, "type": [ "null", "string" ] }, "created_at": { "description": "when slug was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of slug", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/slug/definitions/id" } ] }, "method": { "description": "method to be used to interact with the slug blob", "example": "GET", "readOnly": true, "type": [ "string" ] }, "process_types": { "additionalProperties": false, "description": "hash mapping process type names to their respective command", "example": { "web": "./bin/web -p $PORT" }, "patternProperties": { "^[-\\w]{1,128}$": { "type": [ "string" ] } }, "readOnly": false, "type": [ "object" ] }, "size": { "default": null, "description": "size of slug, in bytes", "example": 2048, "readOnly": true, "type": [ "integer", "null" ] }, "updated_at": { "description": "when slug was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "url": { "description": "URL to interact with the slug blob", "example": "https://api.heroku.com/slugs/1234.tgz", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Info for existing slug.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/slugs/{(%23%2Fdefinitions%2Fslug%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/slug" }, "title": "Info" }, { "description": "Create a new slug. For more information please refer to [Deploying Slugs using the Platform API](https://devcenter.heroku.com/articles/platform-api-deploying-slugs).", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/slugs", "method": "POST", "rel": "create", "schema": { "properties": { "buildpack_provided_description": { "$ref": "#/definitions/slug/definitions/buildpack_provided_description" }, "checksum": { "$ref": "#/definitions/slug/definitions/checksum" }, "commit": { "$ref": "#/definitions/slug/definitions/commit" }, "commit_description": { "$ref": "#/definitions/slug/definitions/commit_description" }, "process_types": { "$ref": "#/definitions/slug/definitions/process_types" }, "stack": { "$ref": "#/definitions/stack/definitions/identity" } }, "required": [ "process_types" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/slug", "example": { "blob": { "method": "PUT", "url": "https://api.heroku.com/slugs/1234.tgz" }, "buildpack_provided_description": "Ruby/Rack", "checksum": "SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "commit": "60883d9e8947a57e04dc9124f25df004866a2051", "commit_description": "fixed a bug with API documentation", "created_at": "2012-01-01T12:00:00Z", "id": "01234567-89ab-cdef-0123-456789abcdef", "process_types": { "web": "./bin/web -p $PORT" }, "size": 2048, "stack": { "id": "01234567-89ab-cdef-0123-456789abcdef", "name": "cedar-14" }, "updated_at": "2012-01-01T12:00:00Z" } }, "title": "Create" } ], "properties": { "blob": { "description": "pointer to the url where clients can fetch or store the actual release binary", "properties": { "method": { "$ref": "#/definitions/slug/definitions/method" }, "url": { "$ref": "#/definitions/slug/definitions/url" } }, "strictProperties": true, "type": [ "object" ] }, "buildpack_provided_description": { "$ref": "#/definitions/slug/definitions/buildpack_provided_description" }, "checksum": { "$ref": "#/definitions/slug/definitions/checksum" }, "commit": { "$ref": "#/definitions/slug/definitions/commit" }, "commit_description": { "$ref": "#/definitions/slug/definitions/commit_description" }, "created_at": { "$ref": "#/definitions/slug/definitions/created_at" }, "id": { "$ref": "#/definitions/slug/definitions/id" }, "process_types": { "$ref": "#/definitions/slug/definitions/process_types" }, "size": { "$ref": "#/definitions/slug/definitions/size" }, "stack": { "description": "identity of slug stack", "properties": { "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "updated_at": { "$ref": "#/definitions/slug/definitions/updated_at" } } }, "sms-number": { "description": "SMS numbers are used for recovery on accounts with two-factor authentication enabled.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - SMS Number", "type": [ "object" ], "definitions": { "sms_number": { "$ref": "#/definitions/account/definitions/sms_number" } }, "links": [ { "description": "Recover an account using an SMS recovery code", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}/sms-number", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/sms-number" }, "title": "SMS Number" }, { "description": "Recover an account using an SMS recovery code", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}/sms-number/actions/recover", "method": "POST", "rel": "self", "targetSchema": { "$ref": "#/definitions/sms-number" }, "title": "Recover" }, { "description": "Confirm an SMS number change with a confirmation code", "href": "/users/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}/sms-number/actions/confirm", "method": "POST", "rel": "self", "targetSchema": { "$ref": "#/definitions/sms-number" }, "title": "Confirm" } ], "properties": { "sms_number": { "$ref": "#/definitions/account/definitions/sms_number" } } }, "sni-endpoint": { "description": "SNI Endpoint is a public address serving a custom SSL cert for HTTPS traffic, using the SNI TLS extension, to a Heroku app.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - SNI Endpoint", "stability": "development", "strictProperties": true, "type": [ "object" ], "definitions": { "certificate_chain": { "description": "raw contents of the public certificate chain (eg: .crt or .pem file)", "example": "-----BEGIN CERTIFICATE----- ...", "readOnly": false, "type": [ "string" ] }, "cname": { "description": "deprecated; refer to GET /apps/:id/domains for valid CNAMEs for this app", "example": "example.herokussl.com", "readOnly": false, "type": [ "string" ] }, "created_at": { "description": "when endpoint was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this SNI endpoint", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/sni-endpoint/definitions/id" }, { "$ref": "#/definitions/sni-endpoint/definitions/name" } ] }, "name": { "description": "unique name for SNI endpoint", "example": "example", "pattern": "^[a-z][a-z0-9-]{2,29}$", "readOnly": true, "type": [ "string" ] }, "private_key": { "description": "contents of the private key (eg .key file)", "example": "-----BEGIN RSA PRIVATE KEY----- ...", "readOnly": false, "type": [ "string" ] }, "updated_at": { "description": "when SNI endpoint was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new SNI endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/sni-endpoints", "method": "POST", "rel": "create", "schema": { "properties": { "certificate_chain": { "$ref": "#/definitions/sni-endpoint/definitions/certificate_chain" }, "private_key": { "$ref": "#/definitions/sni-endpoint/definitions/private_key" } }, "required": [ "certificate_chain", "private_key" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/sni-endpoint" }, "title": "Create" }, { "description": "Delete existing SNI endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/sni-endpoints/{(%23%2Fdefinitions%2Fsni-endpoint%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/sni-endpoint" }, "title": "Delete" }, { "description": "Info for existing SNI endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/sni-endpoints/{(%23%2Fdefinitions%2Fsni-endpoint%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/sni-endpoint" }, "title": "Info" }, { "description": "List existing SNI endpoints.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/sni-endpoints", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/sni-endpoint" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update an existing SNI endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/sni-endpoints/{(%23%2Fdefinitions%2Fsni-endpoint%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "certificate_chain": { "$ref": "#/definitions/sni-endpoint/definitions/certificate_chain" }, "private_key": { "$ref": "#/definitions/sni-endpoint/definitions/private_key" } }, "required": [ "certificate_chain", "private_key" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/sni-endpoint" }, "title": "Update" } ], "properties": { "certificate_chain": { "$ref": "#/definitions/sni-endpoint/definitions/certificate_chain" }, "cname": { "$ref": "#/definitions/sni-endpoint/definitions/cname" }, "created_at": { "$ref": "#/definitions/sni-endpoint/definitions/created_at" }, "id": { "$ref": "#/definitions/sni-endpoint/definitions/id" }, "name": { "$ref": "#/definitions/sni-endpoint/definitions/name" }, "updated_at": { "$ref": "#/definitions/sni-endpoint/definitions/updated_at" } } }, "source": { "description": "A source is a location for uploading and downloading an application's source code.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Source", "type": [ "object" ], "definitions": { "get_url": { "description": "URL to download the source", "example": "https://api.heroku.com/sources/1234.tgz", "readOnly": true, "type": [ "string" ] }, "put_url": { "description": "URL to upload the source", "example": "https://api.heroku.com/sources/1234.tgz", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create URLs for uploading and downloading source.", "href": "/sources", "method": "POST", "rel": "create", "targetSchema": { "$ref": "#/definitions/source" }, "title": "Create" }, { "deactivate_on": "2017-08-01", "description": "Create URLs for uploading and downloading source. Deprecated in favor of `POST /sources`", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/sources", "method": "POST", "rel": "create", "targetSchema": { "$ref": "#/definitions/source" }, "title": "Create - Deprecated" } ], "properties": { "source_blob": { "description": "pointer to the URL where clients can fetch or store the source", "properties": { "get_url": { "$ref": "#/definitions/source/definitions/get_url" }, "put_url": { "$ref": "#/definitions/source/definitions/put_url" } }, "strictProperties": true, "type": [ "object" ] } } }, "space-app-access": { "description": "Space access represents the permissions a particular user has on a particular space.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "title": "Heroku Platform API - Space Access", "type": [ "object" ], "definitions": { "id": { "description": "unique identifier of the space a user has permissions on", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/space-app-access/definitions/id" } ] } }, "links": [ { "description": "List permissions for a given user on a given space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/members/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/space-app-access" }, "title": "Info" }, { "description": "Update an existing user's set of permissions on a space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/members/{(%23%2Fdefinitions%2Faccount%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "type": [ "object" ], "required": [ "permissions" ], "properties": { "permissions": { "type": [ "array" ], "items": { "type": [ "object" ], "properties": { "name": { "type": [ "string" ] } } } } } }, "targetSchema": { "$ref": "#/definitions/space-app-access" }, "title": "Update" }, { "description": "List all users and their permissions on a space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/members", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/space-app-access" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "space": { "description": "space user belongs to", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/space/definitions/created_at" }, "id": { "$ref": "#/definitions/space/definitions/id" }, "permissions": { "description": "user space permissions", "type": [ "array" ], "items": { "type": [ "object" ], "properties": { "description": { "type": [ "string" ] }, "name": { "type": [ "string" ] } } } }, "updated_at": { "$ref": "#/definitions/space/definitions/updated_at" }, "user": { "description": "identity of user account", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } }, "space-nat": { "description": "Network address translation (NAT) for stable outbound IP addresses from a space", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "prototype", "strictProperties": true, "title": "Heroku Platform API - Space Network Address Translation", "type": [ "object" ], "definitions": { "created_at": { "description": "when network address translation for a space was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "ip_v4_address": { "example": "123.123.123.123", "format": "ipv4", "pattern": "^(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])$", "type": [ "string" ] }, "sources": { "description": "potential IPs from which outbound network traffic will originate", "readOnly": true, "type": [ "array" ], "items": { "$ref": "#/definitions/space-nat/definitions/ip_v4_address" } }, "state": { "description": "availability of network address translation for a space", "enum": [ "disabled", "updating", "enabled" ], "example": "enabled", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when network address translation for a space was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Current state of network address translation for a space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/nat", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/space-nat" }, "title": "Info" } ], "properties": { "created_at": { "$ref": "#/definitions/space-nat/definitions/created_at" }, "sources": { "$ref": "#/definitions/space-nat/definitions/sources" }, "state": { "$ref": "#/definitions/space-nat/definitions/state" }, "updated_at": { "$ref": "#/definitions/space-nat/definitions/updated_at" } } }, "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" ], "definitions": { "created_at": { "description": "when space was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of space", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/space/definitions/id" }, { "$ref": "#/definitions/space/definitions/name" } ] }, "name": { "description": "unique name of space", "example": "nasa", "readOnly": false, "pattern": "^[a-z0-9](?:[a-z0-9]|-(?!-))+[a-z0-9]$", "type": [ "string" ] }, "shield": { "description": "true if this space has shield enabled", "readOnly": true, "example": true, "type": [ "boolean" ] }, "state": { "description": "availability of this space", "enum": [ "allocating", "allocated", "deleting" ], "example": "allocated", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when space was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "cidr": { "description": "The RFC-1918 CIDR the Private Space will use. It must be a /16 in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16", "example": "172.20.20.30/16", "default": "10.0.0.0/16", "pattern": "^((?:10|172\\.(?:1[6-9]|2[0-9]|3[01])|192\\.168)\\..*.+\\/16)$", "readOnly": false, "type": [ "string" ] }, "data_cidr": { "description": "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", "example": "10.2.0.0/16", "readOnly": false, "type": [ "string" ] } }, "links": [ { "description": "List existing spaces.", "href": "/spaces", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/space" }, "type": [ "array" ] }, "title": "List" }, { "description": "Info for existing space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/space" }, "title": "Info" }, { "description": "Update an existing space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "name": { "$ref": "#/definitions/space/definitions/name" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/space" }, "title": "Update" }, { "description": "Delete an existing space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/space" }, "title": "Delete" }, { "description": "Create a new space.", "href": "/spaces", "method": "POST", "rel": "create", "schema": { "properties": { "name": { "$ref": "#/definitions/space/definitions/name" }, "team": { "$ref": "#/definitions/team/definitions/name" }, "region": { "$ref": "#/definitions/region/definitions/identity" }, "shield": { "$ref": "#/definitions/space/definitions/shield" }, "cidr": { "$ref": "#/definitions/space/definitions/cidr" }, "data_cidr": { "$ref": "#/definitions/space/definitions/data_cidr" } }, "required": [ "name", "team" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/space" }, "title": "Create" } ], "properties": { "created_at": { "$ref": "#/definitions/space/definitions/created_at" }, "id": { "$ref": "#/definitions/space/definitions/id" }, "name": { "$ref": "#/definitions/space/definitions/name" }, "organization": { "description": "organization that owns this space", "properties": { "name": { "$ref": "#/definitions/organization/definitions/name" } }, "type": [ "object" ] }, "team": { "description": "team that owns this space", "properties": { "id": { "$ref": "#/definitions/team/definitions/id" }, "name": { "$ref": "#/definitions/team/definitions/name" } }, "type": [ "object" ] }, "region": { "description": "identity of space region", "properties": { "id": { "$ref": "#/definitions/region/definitions/id" }, "name": { "$ref": "#/definitions/region/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "shield": { "$ref": "#/definitions/space/definitions/shield" }, "state": { "$ref": "#/definitions/space/definitions/state" }, "updated_at": { "$ref": "#/definitions/space/definitions/updated_at" }, "cidr": { "$ref": "#/definitions/space/definitions/cidr" }, "data_cidr": { "$ref": "#/definitions/space/definitions/data_cidr" } } }, "ssl-endpoint": { "description": "[SSL Endpoint](https://devcenter.heroku.com/articles/ssl-endpoint) is a public address serving custom SSL cert for HTTPS traffic to a Heroku app. Note that an app must have the `ssl:endpoint` add-on installed before it can provision an SSL Endpoint using these APIs.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Heroku Platform API - SSL Endpoint", "stability": "production", "strictProperties": true, "type": [ "object" ], "definitions": { "certificate_chain": { "description": "raw contents of the public certificate chain (eg: .crt or .pem file)", "example": "-----BEGIN CERTIFICATE----- ...", "readOnly": false, "type": [ "string" ] }, "cname": { "description": "canonical name record, the address to point a domain at", "example": "example.herokussl.com", "readOnly": false, "type": [ "string" ] }, "created_at": { "description": "when endpoint was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "id": { "description": "unique identifier of this SSL endpoint", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/ssl-endpoint/definitions/id" }, { "$ref": "#/definitions/ssl-endpoint/definitions/name" } ] }, "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" ] }, "rollback": { "default": false, "description": "indicates that a rollback should be performed", "example": false, "readOnly": false, "type": [ "boolean" ] }, "updated_at": { "description": "when endpoint was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new SSL endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints", "method": "POST", "rel": "create", "schema": { "properties": { "certificate_chain": { "$ref": "#/definitions/ssl-endpoint/definitions/certificate_chain" }, "preprocess": { "$ref": "#/definitions/ssl-endpoint/definitions/preprocess" }, "private_key": { "$ref": "#/definitions/ssl-endpoint/definitions/private_key" } }, "required": [ "certificate_chain", "private_key" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/ssl-endpoint" }, "title": "Create" }, { "description": "Delete existing SSL endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints/{(%23%2Fdefinitions%2Fssl-endpoint%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/ssl-endpoint" }, "title": "Delete" }, { "description": "Info for existing SSL endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints/{(%23%2Fdefinitions%2Fssl-endpoint%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/ssl-endpoint" }, "title": "Info" }, { "description": "List existing SSL endpoints.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/ssl-endpoint" }, "type": [ "array" ] }, "title": "List" }, { "description": "Update an existing SSL endpoint.", "href": "/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/ssl-endpoints/{(%23%2Fdefinitions%2Fssl-endpoint%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "certificate_chain": { "$ref": "#/definitions/ssl-endpoint/definitions/certificate_chain" }, "preprocess": { "$ref": "#/definitions/ssl-endpoint/definitions/preprocess" }, "private_key": { "$ref": "#/definitions/ssl-endpoint/definitions/private_key" }, "rollback": { "$ref": "#/definitions/ssl-endpoint/definitions/rollback" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/ssl-endpoint" }, "title": "Update" } ], "properties": { "app": { "description": "application associated with this ssl-endpoint", "type": [ "object" ], "properties": { "id": { "$ref": "#/definitions/app/definitions/id" }, "name": { "$ref": "#/definitions/app/definitions/name" } }, "strictProperties": true }, "certificate_chain": { "$ref": "#/definitions/ssl-endpoint/definitions/certificate_chain" }, "cname": { "$ref": "#/definitions/ssl-endpoint/definitions/cname" }, "created_at": { "$ref": "#/definitions/ssl-endpoint/definitions/created_at" }, "id": { "$ref": "#/definitions/ssl-endpoint/definitions/id" }, "name": { "$ref": "#/definitions/ssl-endpoint/definitions/name" }, "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" ] }, "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": "cedar-14", "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": { "created_at": { "$ref": "#/definitions/stack/definitions/created_at" }, "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" }, "state": { "$ref": "#/definitions/stack/definitions/state" }, "updated_at": { "$ref": "#/definitions/stack/definitions/updated_at" } } }, "team-app-collaborator": { "description": "A team collaborator represents an account that has been given access to a team app on Heroku.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "title": "Heroku Platform API - Team App Collaborator", "type": [ "object" ], "definitions": { "identity": { "anyOf": [ { "$ref": "#/definitions/collaborator/definitions/email" } ] } }, "links": [ { "description": "Create a new collaborator on a team app. Use this endpoint instead of the `/apps/{app_id_or_name}/collaborator` endpoint when you want the collaborator to be granted [permissions] (https://devcenter.heroku.com/articles/org-users-access#roles-and-app-permissions) according to their role in the team.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fapp%2Fdefinitions%2Fidentity)}/collaborators", "method": "POST", "rel": "create", "schema": { "properties": { "permissions": { "type": [ "array" ], "items": { "$ref": "#/definitions/team-app-permission/definitions/name" }, "description": "An array of permissions to give to the collaborator." }, "silent": { "$ref": "#/definitions/collaborator/definitions/silent" }, "user": { "$ref": "#/definitions/account/definitions/identity" } }, "required": [ "user" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team-app-collaborator" }, "title": "Create" }, { "description": "Delete an existing collaborator from a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Fteam-app-collaborator%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/team-app-collaborator" }, "title": "Delete" }, { "description": "Info for a collaborator on a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Fteam-app-collaborator%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/team-app-collaborator" }, "title": "Info" }, { "description": "Update an existing collaborator from a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}/collaborators/{(%23%2Fdefinitions%2Fteam-app-collaborator%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "permissions": { "type": [ "array" ], "items": { "$ref": "#/definitions/team-app-permission/definitions/name" }, "description": "An array of permissions to give to the collaborator." } }, "required": [ "permissions" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team-app-collaborator" }, "title": "Update" }, { "description": "List collaborators on a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}/collaborators", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team-app-collaborator" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "app": { "description": "app collaborator belongs to", "properties": { "name": { "$ref": "#/definitions/app/definitions/name" }, "id": { "$ref": "#/definitions/app/definitions/id" } }, "strictProperties": true, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/collaborator/definitions/created_at" }, "id": { "$ref": "#/definitions/collaborator/definitions/id" }, "role": { "$ref": "#/definitions/team/definitions/role" }, "updated_at": { "$ref": "#/definitions/collaborator/definitions/updated_at" }, "user": { "description": "identity of collaborated account", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "federated": { "$ref": "#/definitions/account/definitions/federated" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "strictProperties": true, "type": [ "object" ] } } }, "team-app-permission": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "A team app permission is a behavior that is assigned to a user in a team app.", "stability": "prototype", "title": "Heroku Platform API - Team App Permission", "type": [ "object" ], "definitions": { "identity": { "anyOf": [ { "$ref": "#/definitions/team-app-permission/definitions/name" } ] }, "name": { "description": "The name of the app permission.", "example": "view", "readOnly": true, "type": [ "string" ] }, "description": { "description": "A description of what the app permission allows.", "example": "Can manage config, deploy, run commands and restart the app.", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Lists permissions available to teams.", "href": "/teams/permissions", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team-app-permission" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "name": { "$ref": "#/definitions/team-app-permission/definitions/name" }, "description": { "$ref": "#/definitions/team-app-permission/definitions/description" } } }, "team-app": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "A team app encapsulates the team specific functionality of Heroku apps.", "stability": "development", "title": "Heroku Platform API - Team App", "type": [ "object" ], "definitions": { "locked": { "default": false, "description": "are other team members forbidden from joining this app.", "example": false, "type": [ "boolean" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/app/definitions/name" } ] }, "internal_routing": { "default": false, "description": "describes whether a Private Spaces app is externally routable or not", "example": false, "readOnly": false, "type": [ "boolean", "null" ] }, "joined": { "default": false, "description": "is the current member a collaborator on this app.", "example": false, "type": [ "boolean" ] }, "personal": { "default": false, "description": "force creation of the app in the user account even if a default team is set.", "example": false, "type": [ "boolean" ] } }, "links": [ { "description": "Create a new app in the specified team, in the default team if unspecified, or in personal account, if default team is not set.", "href": "/teams/apps", "method": "POST", "rel": "create", "schema": { "properties": { "locked": { "$ref": "#/definitions/team-app/definitions/locked" }, "name": { "$ref": "#/definitions/app/definitions/name" }, "team": { "$ref": "#/definitions/team/definitions/name" }, "personal": { "$ref": "#/definitions/team-app/definitions/personal" }, "region": { "$ref": "#/definitions/region/definitions/name" }, "space": { "$ref": "#/definitions/space/definitions/name" }, "stack": { "$ref": "#/definitions/stack/definitions/name" }, "internal_routing": { "$ref": "#/definitions/team-app/definitions/internal_routing" } }, "type": [ "object" ] }, "title": "Create" }, { "description": "Info for a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "title": "Info" }, { "description": "Lock or unlock a team app.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "locked": { "$ref": "#/definitions/team-app/definitions/locked" } }, "required": [ "locked" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team-app" }, "title": "Update Locked" }, { "description": "Transfer an existing team app to another Heroku account.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "owner": { "$ref": "#/definitions/account/definitions/identity" } }, "required": [ "owner" ], "type": [ "object" ] }, "title": "Transfer to Account" }, { "description": "Transfer an existing team app to another team.", "href": "/teams/apps/{(%23%2Fdefinitions%2Fteam-app%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "owner": { "$ref": "#/definitions/team/definitions/name" } }, "required": [ "owner" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team-app" }, "title": "Transfer to Team" }, { "description": "List team apps.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/apps", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team-app" }, "type": [ "array" ] }, "title": "List By Team" } ], "properties": { "archived_at": { "$ref": "#/definitions/app/definitions/archived_at" }, "buildpack_provided_description": { "$ref": "#/definitions/app/definitions/buildpack_provided_description" }, "build_stack": { "description": "identity of the stack that will be used for new builds", "properties": { "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" } }, "type": [ "object" ] }, "created_at": { "$ref": "#/definitions/app/definitions/created_at" }, "git_url": { "$ref": "#/definitions/app/definitions/git_url" }, "id": { "$ref": "#/definitions/app/definitions/id" }, "internal_routing": { "$ref": "#/definitions/team-app/definitions/internal_routing" }, "joined": { "$ref": "#/definitions/team-app/definitions/joined" }, "locked": { "$ref": "#/definitions/team-app/definitions/locked" }, "maintenance": { "$ref": "#/definitions/app/definitions/maintenance" }, "name": { "$ref": "#/definitions/app/definitions/name" }, "team": { "description": "team that owns this app", "properties": { "name": { "$ref": "#/definitions/team/definitions/name" } }, "type": [ "null", "object" ] }, "owner": { "description": "identity of app owner", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" } }, "type": [ "null", "object" ] }, "region": { "description": "identity of app region", "properties": { "id": { "$ref": "#/definitions/region/definitions/id" }, "name": { "$ref": "#/definitions/region/definitions/name" } }, "type": [ "object" ] }, "released_at": { "$ref": "#/definitions/app/definitions/released_at" }, "repo_size": { "$ref": "#/definitions/app/definitions/repo_size" }, "slug_size": { "$ref": "#/definitions/app/definitions/slug_size" }, "space": { "description": "identity of space", "properties": { "id": { "$ref": "#/definitions/space/definitions/id" }, "name": { "$ref": "#/definitions/space/definitions/name" } }, "type": [ "null", "object" ] }, "stack": { "description": "identity of app stack", "properties": { "id": { "$ref": "#/definitions/stack/definitions/id" }, "name": { "$ref": "#/definitions/stack/definitions/name" } }, "type": [ "object" ] }, "updated_at": { "$ref": "#/definitions/app/definitions/updated_at" }, "web_url": { "$ref": "#/definitions/app/definitions/web_url" } } }, "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": { "created_at": { "$ref": "#/definitions/team-feature/definitions/created_at" }, "description": { "$ref": "#/definitions/team-feature/definitions/description" }, "doc_url": { "$ref": "#/definitions/team-feature/definitions/doc_url" }, "enabled": { "$ref": "#/definitions/team-feature/definitions/enabled" }, "id": { "$ref": "#/definitions/team-feature/definitions/id" }, "name": { "$ref": "#/definitions/team-feature/definitions/name" }, "state": { "$ref": "#/definitions/team-feature/definitions/state" }, "updated_at": { "$ref": "#/definitions/team-feature/definitions/updated_at" }, "display_name": { "$ref": "#/definitions/team-feature/definitions/display_name" }, "feedback_email": { "$ref": "#/definitions/team-feature/definitions/feedback_email" } } }, "team-invitation": { "description": "A team invitation represents an invite to a team.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Team Invitation", "type": [ "object" ], "definitions": { "created_at": { "description": "when invitation was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/team-invitation/definitions/id" } ] }, "id": { "description": "unique identifier of an invitation", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "token": { "description": "special token for invitation", "example": "614ae25aa2d4802096cd7c18625b526c", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when invitation was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Get a list of a team's Identity Providers", "title": "List", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fname)}/invitations", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team-invitation" }, "type": [ "array" ] } }, { "description": "Create Team Invitation", "title": "Create", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/invitations", "method": "PUT", "rel": "update", "schema": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "role": { "$ref": "#/definitions/team/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] } }, { "description": "Revoke a team invitation.", "title": "Revoke", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/invitations/{(%23%2Fdefinitions%2Fteam-invitation%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "self" }, { "description": "Get an invitation by its token", "title": "Get", "href": "/teams/invitations/{(%23%2Fdefinitions%2Fteam-invitation%2Fdefinitions%2Ftoken)}", "method": "GET", "rel": "instances", "targetSchema": { "$ref": "#/definitions/team-invitation" } }, { "description": "Accept Team Invitation", "title": "Accept", "href": "/teams/invitations/{(%23%2Fdefinitions%2Fteam-invitation%2Fdefinitions%2Ftoken)}/accept", "method": "POST", "rel": "create", "targetSchema": { "$ref": "#/definitions/team-member" } } ], "properties": { "created_at": { "$ref": "#/definitions/team-invitation/definitions/created_at" }, "id": { "$ref": "#/definitions/team-invitation/definitions/id" }, "invited_by": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "team": { "properties": { "id": { "$ref": "#/definitions/team/definitions/id" }, "name": { "$ref": "#/definitions/team/definitions/name" } }, "strictProperties": true, "type": [ "object" ] }, "role": { "$ref": "#/definitions/team/definitions/role" }, "updated_at": { "$ref": "#/definitions/team-invitation/definitions/updated_at" }, "user": { "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "strictProperties": true, "type": [ "object" ] } } }, "team-invoice": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "A Team Invoice is an itemized bill of goods for a team which includes pricing and charges.", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Team Invoice", "type": [ "object" ], "definitions": { "addons_total": { "description": "total add-ons charges in on this invoice", "example": 25000, "readOnly": true, "type": [ "integer" ] }, "database_total": { "description": "total database charges on this invoice", "example": 25000, "readOnly": true, "type": [ "integer" ] }, "charges_total": { "description": "total charges on this invoice", "example": 0, "readOnly": true, "type": [ "integer" ] }, "created_at": { "description": "when invoice was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "credits_total": { "description": "total credits on this invoice", "example": 100000, "readOnly": true, "type": [ "integer" ] }, "dyno_units": { "description": "total amount of dyno units consumed across dyno types.", "example": 1.92, "readOnly": true, "type": [ "number" ] }, "id": { "description": "unique identifier of this invoice", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/team-invoice/definitions/number" } ] }, "number": { "description": "human readable invoice number", "example": 9403943, "readOnly": true, "type": [ "integer" ] }, "payment_status": { "description": "status of the invoice payment", "example": "Paid", "readOnly": true, "type": [ "string" ] }, "platform_total": { "description": "total platform charges on this invoice", "example": 50000, "readOnly": true, "type": [ "integer" ] }, "period_end": { "description": "the ending date that the invoice covers", "example": "01/31/2014", "readOnly": true, "type": [ "string" ] }, "period_start": { "description": "the starting date that this invoice covers", "example": "01/01/2014", "readOnly": true, "type": [ "string" ] }, "state": { "description": "payment status for this invoice (pending, successful, failed)", "example": 1, "readOnly": true, "type": [ "integer" ] }, "total": { "description": "combined total of charges and credits on this invoice", "example": 100000, "readOnly": true, "type": [ "integer" ] }, "updated_at": { "description": "when invoice was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "weighted_dyno_hours": { "description": "The total amount of hours consumed across dyno types.", "example": 1488, "readOnly": true, "type": [ "number" ] } }, "links": [ { "description": "Info for existing invoice.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/invoices/{(%23%2Fdefinitions%2Fteam-invoice%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/team-invoice" }, "title": "Info" }, { "description": "List existing invoices.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/invoices", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team-invoice" }, "type": [ "array" ] }, "title": "List" } ], "properties": { "addons_total": { "$ref": "#/definitions/team-invoice/definitions/addons_total" }, "database_total": { "$ref": "#/definitions/team-invoice/definitions/database_total" }, "charges_total": { "$ref": "#/definitions/team-invoice/definitions/charges_total" }, "created_at": { "$ref": "#/definitions/team-invoice/definitions/created_at" }, "credits_total": { "$ref": "#/definitions/team-invoice/definitions/credits_total" }, "dyno_units": { "$ref": "#/definitions/team-invoice/definitions/dyno_units" }, "id": { "$ref": "#/definitions/team-invoice/definitions/id" }, "number": { "$ref": "#/definitions/team-invoice/definitions/number" }, "payment_status": { "$ref": "#/definitions/team-invoice/definitions/payment_status" }, "period_end": { "$ref": "#/definitions/team-invoice/definitions/period_end" }, "period_start": { "$ref": "#/definitions/team-invoice/definitions/period_start" }, "platform_total": { "$ref": "#/definitions/team-invoice/definitions/platform_total" }, "state": { "$ref": "#/definitions/team-invoice/definitions/state" }, "total": { "$ref": "#/definitions/team-invoice/definitions/total" }, "updated_at": { "$ref": "#/definitions/team-invoice/definitions/updated_at" }, "weighted_dyno_hours": { "$ref": "#/definitions/team-invoice/definitions/weighted_dyno_hours" } } }, "team-member": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "A team member is an individual with access to a team.", "stability": "development", "additionalProperties": false, "required": [ "created_at", "email", "federated", "updated_at" ], "title": "Heroku Platform API - Team Member", "type": [ "object" ], "definitions": { "created_at": { "description": "when the membership record was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "email": { "description": "email address of the team member", "example": "someone@example.org", "readOnly": true, "type": [ "string" ] }, "federated": { "description": "whether the user is federated and belongs to an Identity Provider", "example": false, "readOnly": true, "type": [ "boolean" ] }, "id": { "description": "unique identifier of the team member", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/team-member/definitions/email" }, { "$ref": "#/definitions/team-member/definitions/id" } ] }, "name": { "description": "full name of the team member", "example": "Tina Edmonds", "readOnly": true, "type": [ "string", "null" ] }, "two_factor_authentication": { "description": "whether the Enterprise team member has two factor authentication enabled", "example": true, "readOnly": true, "type": [ "boolean" ] }, "updated_at": { "description": "when the membership record was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "Create a new team member, or update their role.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/members", "method": "PUT", "rel": "create", "schema": { "properties": { "email": { "$ref": "#/definitions/team-member/definitions/email" }, "federated": { "$ref": "#/definitions/team-member/definitions/federated" }, "role": { "$ref": "#/definitions/team/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team-member" }, "title": "Create or Update" }, { "description": "Create a new team member.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/members", "method": "POST", "rel": "create", "schema": { "properties": { "email": { "$ref": "#/definitions/team-member/definitions/email" }, "federated": { "$ref": "#/definitions/team-member/definitions/federated" }, "role": { "$ref": "#/definitions/team/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team-member" }, "title": "Create" }, { "description": "Update a team member.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/members", "method": "PATCH", "rel": "update", "schema": { "properties": { "email": { "$ref": "#/definitions/team-member/definitions/email" }, "federated": { "$ref": "#/definitions/team-member/definitions/federated" }, "role": { "$ref": "#/definitions/team/definitions/role" } }, "required": [ "email", "role" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team-member" }, "title": "Update" }, { "description": "Remove a member from the team.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/members/{(%23%2Fdefinitions%2Fteam-member%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/team-member" }, "title": "Delete" }, { "description": "List members of the team.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/members", "method": "GET", "ranges": [ "email" ], "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team-member" }, "type": [ "array" ] }, "title": "List" }, { "description": "List the apps of a team member.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}/members/{(%23%2Fdefinitions%2Fteam-member%2Fdefinitions%2Fidentity)}/apps", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team-app" }, "type": [ "array" ] }, "title": "List By Member" } ], "properties": { "created_at": { "$ref": "#/definitions/team-member/definitions/created_at" }, "email": { "$ref": "#/definitions/team-member/definitions/email" }, "federated": { "$ref": "#/definitions/team-member/definitions/federated" }, "id": { "$ref": "#/definitions/team-member/definitions/id" }, "role": { "$ref": "#/definitions/team/definitions/role" }, "two_factor_authentication": { "$ref": "#/definitions/team-member/definitions/two_factor_authentication" }, "updated_at": { "$ref": "#/definitions/team-member/definitions/updated_at" }, "user": { "description": "user information for the membership", "properties": { "email": { "$ref": "#/definitions/account/definitions/email" }, "id": { "$ref": "#/definitions/account/definitions/id" }, "name": { "$ref": "#/definitions/account/definitions/name" } }, "strictProperties": true, "type": [ "object" ] } } }, "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" ] } }, "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" } } }, "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" } } }, "team": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "description": "Teams allow you to manage access to a shared group of applications and other resources.", "stability": "development", "strictProperties": true, "title": "Heroku Platform API - Team", "type": [ "object" ], "definitions": { "created_at": { "description": "when the team was created", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "credit_card_collections": { "description": "whether charges incurred by the team are paid by credit card.", "example": true, "readOnly": true, "type": [ "boolean" ] }, "default": { "description": "whether to use this team when none is specified", "example": true, "readOnly": false, "type": [ "boolean" ] }, "id": { "description": "unique identifier of team", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/team/definitions/name" }, { "$ref": "#/definitions/team/definitions/id" } ] }, "address_1": { "type": [ "string" ], "description": "street address line 1", "example": "40 Hickory Lane" }, "address_2": { "type": [ "string" ], "description": "street address line 2", "example": "Suite 103" }, "card_number": { "type": [ "string" ], "description": "encrypted card number of payment method", "example": "encrypted-card-number" }, "city": { "type": [ "string" ], "description": "city", "example": "San Francisco" }, "country": { "type": [ "string" ], "description": "country", "example": "US" }, "cvv": { "type": [ "string" ], "description": "card verification value", "example": "123" }, "expiration_month": { "type": [ "string" ], "description": "expiration month", "example": "11" }, "expiration_year": { "type": [ "string" ], "description": "expiration year", "example": "2014" }, "first_name": { "type": [ "string" ], "description": "the first name for payment method", "example": "Jason" }, "last_name": { "type": [ "string" ], "description": "the last name for payment method", "example": "Walker" }, "other": { "type": [ "string" ], "description": "metadata", "example": "Additional information for payment method" }, "postal_code": { "type": [ "string" ], "description": "postal code", "example": "90210" }, "state": { "type": [ "string" ], "description": "state", "example": "CA" }, "membership_limit": { "description": "upper limit of members allowed in a team.", "example": 25, "readOnly": true, "type": [ "number", "null" ] }, "name": { "description": "unique name of team", "example": "example", "readOnly": true, "type": [ "string" ] }, "provisioned_licenses": { "description": "whether the team is provisioned licenses by salesforce.", "example": true, "readOnly": true, "type": [ "boolean" ] }, "role": { "description": "role in the team", "enum": [ "admin", "collaborator", "member", "owner", null ], "example": "admin", "readOnly": true, "type": [ "null", "string" ] }, "type": { "description": "type of team.", "example": "team", "enum": [ "enterprise", "team" ], "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when the team was updated", "example": "2012-01-01T12:00:00Z", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "List teams in which you are a member.", "href": "/teams", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/team" }, "type": [ "array" ] }, "title": "List" }, { "description": "Info for a team.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "title": "Info" }, { "description": "Update team properties.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}", "method": "PATCH", "rel": "update", "schema": { "properties": { "default": { "$ref": "#/definitions/team/definitions/default" }, "name": { "$ref": "#/definitions/team/definitions/name" } }, "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team" }, "title": "Update" }, { "description": "Create a new team.", "href": "/teams", "method": "POST", "rel": "create", "schema": { "properties": { "name": { "$ref": "#/definitions/team/definitions/name" }, "address_1": { "$ref": "#/definitions/team/definitions/address_1" }, "address_2": { "$ref": "#/definitions/team/definitions/address_2" }, "card_number": { "$ref": "#/definitions/team/definitions/card_number" }, "city": { "$ref": "#/definitions/team/definitions/city" }, "country": { "$ref": "#/definitions/team/definitions/country" }, "cvv": { "$ref": "#/definitions/team/definitions/cvv" }, "expiration_month": { "$ref": "#/definitions/team/definitions/expiration_month" }, "expiration_year": { "$ref": "#/definitions/team/definitions/expiration_year" }, "first_name": { "$ref": "#/definitions/team/definitions/first_name" }, "last_name": { "$ref": "#/definitions/team/definitions/last_name" }, "other": { "$ref": "#/definitions/team/definitions/other" }, "postal_code": { "$ref": "#/definitions/team/definitions/postal_code" }, "state": { "$ref": "#/definitions/team/definitions/state" } }, "required": [ "name" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/team" }, "title": "Create" }, { "description": "Delete an existing team.", "href": "/teams/{(%23%2Fdefinitions%2Fteam%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/team" }, "title": "Delete" } ], "properties": { "id": { "$ref": "#/definitions/team/definitions/id" }, "created_at": { "$ref": "#/definitions/team/definitions/created_at" }, "credit_card_collections": { "$ref": "#/definitions/team/definitions/credit_card_collections" }, "default": { "$ref": "#/definitions/team/definitions/default" }, "membership_limit": { "$ref": "#/definitions/team/definitions/membership_limit" }, "name": { "$ref": "#/definitions/team/definitions/name" }, "provisioned_licenses": { "$ref": "#/definitions/team/definitions/provisioned_licenses" }, "role": { "$ref": "#/definitions/team/definitions/role" }, "type": { "$ref": "#/definitions/team/definitions/type" }, "updated_at": { "$ref": "#/definitions/team/definitions/updated_at" } } }, "test-case": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Test Case", "description": "A single test case belonging to a test run", "stability": "prototype", "strictProperties": true, "type": [ "object" ], "definitions": { "id": { "description": "unique identifier of a test case", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "description": { "description": "description of the test case", "type": [ "string" ] }, "diagnostic": { "description": "meta information about the test case", "type": [ "string" ] }, "directive": { "description": "special note about the test case e.g. skipped, todo", "type": [ "string" ] }, "passed": { "description": "whether the test case was successful", "type": [ "boolean" ] }, "number": { "description": "the test number", "type": [ "integer" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/test-case/definitions/id" } ] }, "created_at": { "description": "when test case was created", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when test case was updated", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "List test cases", "href": "/test-runs/{(%23%2Fdefinitions%2Ftest-run%2Fdefinitions%2Fid)}/test-cases", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/test-case" } }, "type": [ "array" ], "title": "List" } ], "properties": { "id": { "$ref": "#/definitions/test-case/definitions/id" }, "created_at": { "$ref": "#/definitions/test-case/definitions/created_at" }, "updated_at": { "$ref": "#/definitions/test-case/definitions/updated_at" }, "description": { "$ref": "#/definitions/test-case/definitions/description" }, "diagnostic": { "$ref": "#/definitions/test-case/definitions/diagnostic" }, "directive": { "$ref": "#/definitions/test-case/definitions/directive" }, "passed": { "$ref": "#/definitions/test-case/definitions/passed" }, "number": { "$ref": "#/definitions/test-case/definitions/number" }, "test_node": { "description": "the test node which executed this test case", "properties": { "id": { "$ref": "#/definitions/test-node/definitions/identity" } }, "type": [ "object" ] }, "test_run": { "description": "the test run which owns this test case", "properties": { "id": { "$ref": "#/definitions/test-run/definitions/identity" } }, "type": [ "object" ] } } }, "test-node": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Test Node", "description": "A single test node belonging to a test run", "stability": "prototype", "strictProperties": true, "type": [ "object" ], "definitions": { "id": { "description": "unique identifier of a test node", "example": "01234567-89ab-cdef-0123-456789abcdef", "format": "uuid", "readOnly": true, "type": [ "string" ] }, "attach_url": { "description": "a URL to stream output from for debug runs or null for non-debug runs", "example": "rendezvous://rendezvous.runtime.heroku.com:5000/{rendezvous-id}", "readOnly": true, "type": [ "string", "null" ] }, "created_at": { "description": "when test node was created", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "error_status": { "description": "the status of the test run when the error occured", "type": [ "string", "null" ] }, "exit_code": { "description": "the exit code of the test script", "type": [ "integer", "null" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/test-node/definitions/id" } ] }, "index": { "description": "The index of the test node", "type": [ "integer" ] }, "message": { "description": "human friendly message indicating reason for an error", "type": [ "string", "null" ] }, "output_stream_url": { "description": "the streaming output for the test node", "example": "https://example.com/output.log", "type": [ "string" ] }, "setup_stream_url": { "description": "the streaming test setup output for the test node", "example": "https://example.com/test-setup.log", "type": [ "string" ] }, "status": { "description": "current state of the test run", "enum": [ "pending", "cancelled", "creating", "building", "running", "succeeded", "failed", "errored", "debugging" ], "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when test node was updated", "format": "date-time", "readOnly": true, "type": [ "string" ] } }, "links": [ { "description": "List test nodes", "href": "/test-runs/{(%23%2Fdefinitions%2Ftest-run%2Fdefinitions%2Fidentity)}/test-nodes", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/test-node" } }, "type": [ "array" ], "title": "List" } ], "properties": { "created_at": { "$ref": "#/definitions/test-node/definitions/created_at" }, "dyno": { "description": "the dyno which belongs to this test node", "properties": { "id": { "$ref": "#/definitions/dyno/definitions/identity" }, "attach_url": { "$ref": "#/definitions/test-node/definitions/attach_url" } }, "type": [ "object", "null" ] }, "error_status": { "$ref": "#/definitions/test-node/definitions/error_status" }, "exit_code": { "$ref": "#/definitions/test-node/definitions/exit_code" }, "id": { "$ref": "#/definitions/test-node/definitions/identity" }, "index": { "$ref": "#/definitions/test-node/definitions/index" }, "message": { "$ref": "#/definitions/test-node/definitions/message" }, "output_stream_url": { "$ref": "#/definitions/test-node/definitions/output_stream_url" }, "pipeline": { "description": "the pipeline which owns this test node", "properties": { "id": { "$ref": "#/definitions/pipeline/definitions/identity" } }, "type": [ "object" ] }, "setup_stream_url": { "$ref": "#/definitions/test-node/definitions/setup_stream_url" }, "status": { "$ref": "#/definitions/test-node/definitions/status" }, "updated_at": { "$ref": "#/definitions/test-node/definitions/updated_at" }, "test_run": { "description": "the test run which owns this test node", "properties": { "id": { "$ref": "#/definitions/test-run/definitions/identity" } }, "type": [ "object" ] } } }, "test-run": { "$schema": "http://json-schema.org/draft-04/hyper-schema", "title": "Test Run", "description": "An execution or trial of one or more tests", "stability": "prototype", "strictProperties": true, "type": [ "object" ], "definitions": { "actor_email": { "description": "the email of the actor triggering the test run", "type": [ "string" ], "format": "email" }, "clear_cache": { "description": "whether the test was run with an empty cache", "type": [ "boolean", "null" ] }, "commit_branch": { "description": "the branch of the repository that the test run concerns", "type": [ "string" ] }, "commit_message": { "description": "the message for the commit under test", "type": [ "string" ] }, "commit_sha": { "description": "the SHA hash of the commit under test", "type": [ "string" ] }, "debug": { "description": "whether the test run was started for interactive debugging", "type": [ "boolean" ] }, "app_setup": { "description": "the app setup for the test run", "type": [ "null", "object" ] }, "id": { "description": "unique identifier of a test run", "readOnly": true, "format": "uuid", "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/test-run/definitions/id" } ] }, "created_at": { "description": "when test run was created", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "message": { "description": "human friendly message indicating reason for an error", "type": [ "string", "null" ] }, "number": { "description": "the auto incrementing test run number", "type": [ "integer" ] }, "source_blob_url": { "description": "The download location for the source code to be tested", "type": [ "string" ] }, "status": { "description": "current state of the test run", "enum": [ "pending", "cancelled", "creating", "building", "running", "succeeded", "failed", "errored", "debugging" ], "readOnly": true, "type": [ "string" ] }, "updated_at": { "description": "when test-run was updated", "format": "date-time", "readOnly": true, "type": [ "string" ] }, "warning_message": { "description": "human friently warning emitted during the test run", "type": [ "string", "null" ] } }, "links": [ { "description": "Create a new test-run.", "href": "/test-runs", "method": "POST", "rel": "create", "schema": { "properties": { "commit_branch": { "$ref": "#/definitions/test-run/definitions/commit_branch" }, "commit_message": { "$ref": "#/definitions/test-run/definitions/commit_message" }, "commit_sha": { "$ref": "#/definitions/test-run/definitions/commit_sha" }, "debug": { "$ref": "#/definitions/test-run/definitions/debug" }, "organization": { "$ref": "#/definitions/organization/definitions/identity" }, "pipeline": { "$ref": "#/definitions/pipeline/definitions/identity" }, "source_blob_url": { "$ref": "#/definitions/test-run/definitions/source_blob_url" } }, "required": [ "commit_branch", "commit_message", "commit_sha", "pipeline", "source_blob_url" ], "type": [ "object" ] }, "title": "Create" }, { "description": "Info for existing test-run.", "href": "/test-runs/{(%23%2Fdefinitions%2Ftest-run%2Fdefinitions%2Fid)}", "method": "GET", "rel": "self", "title": "Info" }, { "description": "List existing test-runs for a pipeline.", "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/test-runs", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/test-run" } }, "type": [ "array" ], "title": "List" }, { "description": "Info for existing test-run by Pipeline", "href": "/pipelines/{(%23%2Fdefinitions%2Fpipeline%2Fdefinitions%2Fid)}/test-runs/{(%23%2Fdefinitions%2Ftest-run%2Fdefinitions%2Fnumber)}", "method": "GET", "rel": "self", "title": "Info By Pipeline" }, { "description": "Update a test-run's status.", "href": "/test-runs/{(%23%2Fdefinitions%2Ftest-run%2Fdefinitions%2Fnumber)}", "method": "PATCH", "rel": "self", "title": "Update", "schema": { "properties": { "status": { "$ref": "#/definitions/test-run/definitions/status" }, "message": { "$ref": "#/definitions/test-run/definitions/message" } }, "required": [ "status", "message" ], "type": [ "object" ] } } ], "properties": { "actor_email": { "$ref": "#/definitions/test-run/definitions/actor_email" }, "clear_cache": { "$ref": "#/definitions/test-run/definitions/clear_cache" }, "commit_branch": { "$ref": "#/definitions/test-run/definitions/commit_branch" }, "commit_message": { "$ref": "#/definitions/test-run/definitions/commit_message" }, "commit_sha": { "$ref": "#/definitions/test-run/definitions/commit_sha" }, "debug": { "$ref": "#/definitions/test-run/definitions/debug" }, "app_setup": { "$ref": "#/definitions/test-run/definitions/app_setup" }, "created_at": { "$ref": "#/definitions/test-run/definitions/created_at" }, "dyno": { "description": "the type of dynos used for this test-run", "properties": { "size": { "$ref": "#/definitions/dyno/definitions/size" } }, "type": [ "null", "object" ] }, "id": { "$ref": "#/definitions/test-run/definitions/id" }, "message": { "$ref": "#/definitions/test-run/definitions/message" }, "number": { "$ref": "#/definitions/test-run/definitions/number" }, "organization": { "description": "the organization that owns this test-run", "properties": { "name": { "$ref": "#/definitions/organization/definitions/name" } }, "type": [ "null", "object" ] }, "pipeline": { "description": "the pipeline which owns this test-run", "properties": { "id": { "$ref": "#/definitions/pipeline/definitions/identity" } }, "type": [ "object" ] }, "status": { "$ref": "#/definitions/test-run/definitions/status" }, "source_blob_url": { "$ref": "#/definitions/test-run/definitions/source_blob_url" }, "updated_at": { "$ref": "#/definitions/test-run/definitions/updated_at" }, "user": { "$ref": "#/definitions/account" }, "warning_message": { "$ref": "#/definitions/test-run/definitions/warning_message" } } }, "user-preferences": { "description": "Tracks a user's preferences and message dismissals", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - User Preferences", "type": [ "object" ], "definitions": { "identity": { "anyOf": [ { "$ref": "#/definitions/user-preferences/definitions/self" } ] }, "self": { "description": "Implicit reference to currently authorized user", "enum": [ "~" ], "example": "~", "readOnly": true, "type": [ "string" ] }, "timezone": { "description": "User's default timezone", "example": "UTC", "readOnly": false, "type": [ "string", "null" ] }, "default-organization": { "description": "User's default organization", "example": "sushi-inc", "readOnly": false, "type": [ "string", "null" ] }, "dismissed-github-banner": { "description": "Whether the user has dismissed the GitHub link banner", "example": true, "readOnly": false, "type": [ "boolean", "null" ] }, "dismissed-getting-started": { "description": "Whether the user has dismissed the getting started banner", "example": true, "readOnly": false, "type": [ "boolean", "null" ] }, "dismissed-org-access-controls": { "description": "Whether the user has dismissed the Organization Access Controls banner", "example": true, "readOnly": false, "type": [ "boolean", "null" ] }, "dismissed-org-wizard-notification": { "description": "Whether the user has dismissed the Organization Wizard", "example": true, "readOnly": false, "type": [ "boolean", "null" ] }, "dismissed-pipelines-banner": { "description": "Whether the user has dismissed the Pipelines banner", "example": true, "readOnly": false, "type": [ "boolean", "null" ] }, "dismissed-pipelines-github-banner": { "description": "Whether the user has dismissed the GitHub banner on a pipeline overview", "example": true, "readOnly": false, "type": [ "boolean", "null" ] }, "dismissed-pipelines-github-banners": { "description": "Which pipeline uuids the user has dismissed the GitHub banner for", "example": [ "96c68759-f310-4910-9867-e0b062064098" ], "readOnly": false, "type": [ "null", "array" ], "items": { "$ref": "#/definitions/pipeline/definitions/id" } }, "dismissed-sms-banner": { "description": "Whether the user has dismissed the 2FA SMS banner", "example": true, "readOnly": false, "type": [ "boolean", "null" ] } }, "links": [ { "description": "Retrieve User Preferences", "href": "/users/{(%23%2Fdefinitions%2Fuser-preferences%2Fdefinitions%2Fidentity)}/preferences", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/user-preferences" }, "title": "List" }, { "description": "Update User Preferences", "href": "/users/{(%23%2Fdefinitions%2Fuser-preferences%2Fdefinitions%2Fidentity)}/preferences", "method": "PATCH", "rel": "update", "schema": { "type": [ "object" ], "properties": { "timezone": { "$ref": "#/definitions/user-preferences/definitions/timezone" }, "default-organization": { "$ref": "#/definitions/user-preferences/definitions/default-organization" }, "dismissed-github-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-github-banner" }, "dismissed-getting-started": { "$ref": "#/definitions/user-preferences/definitions/dismissed-getting-started" }, "dismissed-org-access-controls": { "$ref": "#/definitions/user-preferences/definitions/dismissed-org-access-controls" }, "dismissed-org-wizard-notification": { "$ref": "#/definitions/user-preferences/definitions/dismissed-org-wizard-notification" }, "dismissed-pipelines-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-pipelines-banner" }, "dismissed-pipelines-github-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-pipelines-github-banner" }, "dismissed-pipelines-github-banners": { "$ref": "#/definitions/user-preferences/definitions/dismissed-pipelines-github-banners" }, "dismissed-sms-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-sms-banner" } } }, "targetSchema": { "$ref": "#/definitions/user-preferences" }, "title": "Update" } ], "properties": { "timezone": { "$ref": "#/definitions/user-preferences/definitions/timezone" }, "default-organization": { "$ref": "#/definitions/user-preferences/definitions/default-organization" }, "dismissed-github-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-github-banner" }, "dismissed-getting-started": { "$ref": "#/definitions/user-preferences/definitions/dismissed-getting-started" }, "dismissed-org-access-controls": { "$ref": "#/definitions/user-preferences/definitions/dismissed-org-access-controls" }, "dismissed-org-wizard-notification": { "$ref": "#/definitions/user-preferences/definitions/dismissed-org-wizard-notification" }, "dismissed-pipelines-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-pipelines-banner" }, "dismissed-pipelines-github-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-pipelines-github-banner" }, "dismissed-pipelines-github-banners": { "$ref": "#/definitions/user-preferences/definitions/dismissed-pipelines-github-banners" }, "dismissed-sms-banner": { "$ref": "#/definitions/user-preferences/definitions/dismissed-sms-banner" } } }, "vpn-connection": { "description": "[VPN](https://devcenter.heroku.com/articles/private-spaces-vpn?preview=1) provides a way to connect your Private Spaces to your network via VPN.", "$schema": "http://json-schema.org/draft-04/hyper-schema", "stability": "production", "strictProperties": true, "title": "Heroku Platform API - Private Spaces VPN", "type": [ "object" ], "definitions": { "name": { "description": "VPN Name", "example": "office", "type": [ "string" ] }, "public_ip": { "description": "Public IP of VPN customer gateway", "example": "35.161.69.30", "type": [ "string" ] }, "routable_cidrs": { "description": "Routable CIDRs of VPN", "type": [ "array" ], "items": { "example": "172.16.0.0/16", "type": [ "string" ] } }, "id": { "description": "VPN ID", "example": "123456789012", "readOnly": true, "type": [ "string" ] }, "identity": { "anyOf": [ { "$ref": "#/definitions/vpn-connection/definitions/id" }, { "$ref": "#/definitions/vpn-connection/definitions/name" } ] }, "space_cidr_block": { "description": "CIDR Block of the Private Space", "example": "10.0.0.0/16", "readOnly": true, "type": [ "string" ] }, "ike_version": { "description": "IKE Version", "example": 1, "readOnly": true, "type": [ "integer" ] }, "tunnel": { "description": "Tunnel info", "readOnly": true, "type": [ "object" ], "properties": { "last_status_change": { "description": "Timestamp of last status changed", "example": "2016-10-25T22:09:05Z", "type": [ "string" ] }, "ip": { "description": "Public IP address for the tunnel", "example": "52.44.146.197", "type": [ "string" ] }, "customer_ip": { "description": "Public IP address for the customer side of the tunnel", "example": "52.44.146.197", "type": [ "string" ] }, "pre_shared_key": { "description": "Pre-shared key", "example": "secret", "type": [ "string" ] }, "status": { "description": "Status of the tunnel", "enum": [ "UP", "DOWN" ], "example": "UP", "type": [ "string" ] }, "status_message": { "description": "Details of the status", "example": "status message", "type": [ "string" ] } } }, "status": { "description": "Status of the VPN", "enum": [ "pending", "provisioning", "active", "deprovisioning", "failed" ], "example": "active", "readOnly": true, "type": [ "string" ] }, "status_message": { "description": "Details of the status", "example": "supplied CIDR block already in use", "readOnly": true, "type": [ "string" ] } }, "properties": { "id": { "$ref": "#/definitions/vpn-connection/definitions/id" }, "name": { "$ref": "#/definitions/vpn-connection/definitions/name" }, "public_ip": { "$ref": "#/definitions/vpn-connection/definitions/public_ip" }, "routable_cidrs": { "$ref": "#/definitions/vpn-connection/definitions/routable_cidrs" }, "space_cidr_block": { "$ref": "#/definitions/vpn-connection/definitions/space_cidr_block" }, "tunnels": { "items": { "$ref": "#/definitions/vpn-connection/definitions/tunnel" }, "type": [ "array" ] }, "ike_version": { "$ref": "#/definitions/vpn-connection/definitions/ike_version" }, "status": { "$ref": "#/definitions/vpn-connection/definitions/status" }, "status_message": { "$ref": "#/definitions/vpn-connection/definitions/status_message" } }, "links": [ { "description": "Create a new VPN connection in a private space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections", "rel": "create", "schema": { "properties": { "name": { "$ref": "#/definitions/vpn-connection/definitions/name" }, "public_ip": { "$ref": "#/definitions/vpn-connection/definitions/public_ip" }, "routable_cidrs": { "$ref": "#/definitions/vpn-connection/definitions/routable_cidrs" } }, "required": [ "name", "public_ip", "routable_cidrs" ], "type": [ "object" ] }, "targetSchema": { "$ref": "#/definitions/vpn-connection" }, "method": "POST", "title": "Create" }, { "description": "Destroy existing VPN Connection", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections/{(%23%2Fdefinitions%2Fvpn-connection%2Fdefinitions%2Fidentity)}", "rel": "empty", "method": "DELETE", "title": "Destroy" }, { "description": "List VPN connections for a space.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/vpn-connection" }, "type": [ "array" ] }, "title": "List" }, { "description": "Info for an existing vpn-connection.", "href": "/spaces/{(%23%2Fdefinitions%2Fspace%2Fdefinitions%2Fidentity)}/vpn-connections/{(%23%2Fdefinitions%2Fvpn-connection%2Fdefinitions%2Fidentity)}", "method": "GET", "rel": "self", "targetSchema": { "$ref": "#/definitions/vpn-connection" }, "title": "Info" } ] }, "whitelisted-add-on-service": { "description": "Entities that have been whitelisted to be used by an Organization", "$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 Organization", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/whitelisted-addon-services", "method": "GET", "rel": "instances", "targetSchema": { "items": { "$ref": "#/definitions/whitelisted-add-on-service" }, "type": [ "array" ] }, "title": "List By Organization" }, { "description": "Whitelist an Add-on Service", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/whitelisted-addon-services", "method": "POST", "rel": "create", "schema": { "type": [ "object" ], "properties": { "addon_service": { "description": "name of the Add-on to whitelist", "example": "heroku-postgresql", "type": [ "string" ] } } }, "targetSchema": { "items": { "$ref": "#/definitions/whitelisted-add-on-service" }, "type": [ "array" ] }, "title": "Create By Organization" }, { "description": "Remove a whitelisted entity", "href": "/organizations/{(%23%2Fdefinitions%2Forganization%2Fdefinitions%2Fidentity)}/whitelisted-addon-services/{(%23%2Fdefinitions%2Fwhitelisted-add-on-service%2Fdefinitions%2Fidentity)}", "method": "DELETE", "rel": "destroy", "targetSchema": { "$ref": "#/definitions/whitelisted-add-on-service" }, "title": "Delete By Organization" }, { "description": "List all whitelisted Add-on Services for a 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", "schema": { "type": [ "object" ], "properties": { "addon_service": { "description": "name of the Add-on to whitelist", "example": "heroku-postgresql", "type": [ "string" ] } } }, "targetSchema": { "items": { "$ref": "#/definitions/whitelisted-add-on-service" }, "type": [ "array" ] }, "title": "Create By Team" }, { "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" }, "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" } } } }, "properties": { "account-feature": { "$ref": "#/definitions/account-feature" }, "account": { "$ref": "#/definitions/account" }, "add-on-action": { "$ref": "#/definitions/add-on-action" }, "add-on-attachment": { "$ref": "#/definitions/add-on-attachment" }, "add-on-config": { "$ref": "#/definitions/add-on-config" }, "add-on-plan-action": { "$ref": "#/definitions/add-on-plan-action" }, "add-on-region-capability": { "$ref": "#/definitions/add-on-region-capability" }, "add-on-service": { "$ref": "#/definitions/add-on-service" }, "add-on-webhook-delivery": { "$ref": "#/definitions/add-on-webhook-delivery" }, "add-on-webhook-event": { "$ref": "#/definitions/add-on-webhook-event" }, "add-on-webhook": { "$ref": "#/definitions/add-on-webhook" }, "add-on": { "$ref": "#/definitions/add-on" }, "app-feature": { "$ref": "#/definitions/app-feature" }, "app-formation-set": { "$ref": "#/definitions/app-formation-set" }, "app-setup": { "$ref": "#/definitions/app-setup" }, "app-transfer": { "$ref": "#/definitions/app-transfer" }, "app-webhook-delivery": { "$ref": "#/definitions/app-webhook-delivery" }, "app-webhook-event": { "$ref": "#/definitions/app-webhook-event" }, "app-webhook": { "$ref": "#/definitions/app-webhook" }, "app": { "$ref": "#/definitions/app" }, "build-result": { "$ref": "#/definitions/build-result" }, "build": { "$ref": "#/definitions/build" }, "buildpack-installation": { "$ref": "#/definitions/buildpack-installation" }, "collaborator": { "$ref": "#/definitions/collaborator" }, "config-var": { "$ref": "#/definitions/config-var" }, "credit": { "$ref": "#/definitions/credit" }, "domain": { "$ref": "#/definitions/domain" }, "dyno-size": { "$ref": "#/definitions/dyno-size" }, "dyno": { "$ref": "#/definitions/dyno" }, "filter-apps": { "$ref": "#/definitions/filter-apps" }, "formation": { "$ref": "#/definitions/formation" }, "identity-provider": { "$ref": "#/definitions/identity-provider" }, "inbound-ruleset": { "$ref": "#/definitions/inbound-ruleset" }, "invoice-address": { "$ref": "#/definitions/invoice-address" }, "invoice": { "$ref": "#/definitions/invoice" }, "key": { "$ref": "#/definitions/key" }, "log-drain": { "$ref": "#/definitions/log-drain" }, "log-session": { "$ref": "#/definitions/log-session" }, "oauth-authorization": { "$ref": "#/definitions/oauth-authorization" }, "oauth-client": { "$ref": "#/definitions/oauth-client" }, "oauth-grant": { "$ref": "#/definitions/oauth-grant" }, "oauth-token": { "$ref": "#/definitions/oauth-token" }, "organization-add-on": { "$ref": "#/definitions/organization-add-on" }, "organization-app-collaborator": { "$ref": "#/definitions/organization-app-collaborator" }, "organization-app": { "$ref": "#/definitions/organization-app" }, "organization-feature": { "$ref": "#/definitions/organization-feature" }, "organization-invitation": { "$ref": "#/definitions/organization-invitation" }, "organization-invoice": { "$ref": "#/definitions/organization-invoice" }, "organization-member": { "$ref": "#/definitions/organization-member" }, "organization-preferences": { "$ref": "#/definitions/organization-preferences" }, "organization": { "$ref": "#/definitions/organization" }, "outbound-ruleset": { "$ref": "#/definitions/outbound-ruleset" }, "password-reset": { "$ref": "#/definitions/password-reset" }, "peering-info": { "$ref": "#/definitions/peering-info" }, "peering": { "$ref": "#/definitions/peering" }, "organization-app-permission": { "$ref": "#/definitions/organization-app-permission" }, "pipeline-coupling": { "$ref": "#/definitions/pipeline-coupling" }, "pipeline-promotion-target": { "$ref": "#/definitions/pipeline-promotion-target" }, "pipeline-promotion": { "$ref": "#/definitions/pipeline-promotion" }, "pipeline": { "$ref": "#/definitions/pipeline" }, "plan": { "$ref": "#/definitions/plan" }, "rate-limit": { "$ref": "#/definitions/rate-limit" }, "region": { "$ref": "#/definitions/region" }, "release": { "$ref": "#/definitions/release" }, "slug": { "$ref": "#/definitions/slug" }, "sms-number": { "$ref": "#/definitions/sms-number" }, "sni-endpoint": { "$ref": "#/definitions/sni-endpoint" }, "source": { "$ref": "#/definitions/source" }, "space-app-access": { "$ref": "#/definitions/space-app-access" }, "space-nat": { "$ref": "#/definitions/space-nat" }, "space": { "$ref": "#/definitions/space" }, "ssl-endpoint": { "$ref": "#/definitions/ssl-endpoint" }, "stack": { "$ref": "#/definitions/stack" }, "team-app-collaborator": { "$ref": "#/definitions/team-app-collaborator" }, "team-app-permission": { "$ref": "#/definitions/team-app-permission" }, "team-app": { "$ref": "#/definitions/team-app" }, "team-feature": { "$ref": "#/definitions/team-feature" }, "team-invitation": { "$ref": "#/definitions/team-invitation" }, "team-invoice": { "$ref": "#/definitions/team-invoice" }, "team-member": { "$ref": "#/definitions/team-member" }, "team-preferences": { "$ref": "#/definitions/team-preferences" }, "team": { "$ref": "#/definitions/team" }, "test-case": { "$ref": "#/definitions/test-case" }, "test-node": { "$ref": "#/definitions/test-node" }, "test-run": { "$ref": "#/definitions/test-run" }, "user-preferences": { "$ref": "#/definitions/user-preferences" }, "vpn-connection": { "$ref": "#/definitions/vpn-connection" }, "whitelisted-add-on-service": { "$ref": "#/definitions/whitelisted-add-on-service" } }, "description": "The platform API empowers developers to automate, extend and combine Heroku with other services.", "id": "http://api.heroku.com/schema#", "links": [ { "href": "https://api.heroku.com", "rel": "self", "title": "Index" }, { "href": "/schema", "method": "GET", "rel": "self", "title": "Schema", "targetSchema": { "additionalProperties": true } } ], "title": "Heroku Platform API" } HEROICS_SCHEMA end