package heroku

This package provides a complete interface to all of the Heroku Platform API v3
actions, and is almost entirely auto-generated based on the API's JSON Schema.
The exceptions are the files heroku.go, heroku_test.go, and app_test.go, as well
as the generator itself. All models are auto-generated by the Ruby script in
gen/gen.rb.

The client leverages Go's powerful net/http Client. That means that,
out-of-the-box, it has keep-alive support and the ability to handle many
concurrent requests from different goroutines.

Many of the Heroku Platform API actions have optional parameters. For example,
when creating an app, you can either specify a custom name, or allow the API to
choose a random haiku name for your app.

Optional parameters in heroku-go are always provided to functions as a pointer
to a struct, such as AppCreateOpts for the function AppCreate(). If you do not
wish to set any optional parameters, simply provide a nil in place of the
options struct, and the options will be omitted from the API request entirely.
For any individual options that you don't want to set, simply leave them as nil,
and they will be omitted from the API request.

List Ranges & Sorting

Results from the Heroku API are paginated. You can specify a field for sorting
and adjust the maximum number of records returned by providing a ListRange to
API calls that list objects:

type Client struct {
// HTTP is the Client's internal http.Client, handling HTTP requests to the
// Heroku API.HTTP *http.Client// The URL of the Heroku API to communicate with. Defaults to
// "https://api.heroku.com".URLstring// Username is the HTTP basic auth username for API calls made by this Client.Usernamestring// Password is the HTTP basic auth password for API calls made by this Client.Passwordstring// UserAgent to be provided in API requests. Set to DefaultUserAgent if not
// specified.UserAgentstring// Debug mode can be used to dump the full request and response to stdout.Debugbool// AdditionalHeaders are extra headers to add to each HTTP request sent by
// this Client.AdditionalHeadershttp.Header// Path to the Unix domain socket or a running heroku-agent.HerokuAgentSocketstring
}

A Client is a Heroku API client. Its zero value is a usable client that uses
default settings for the Heroku API. The Client has an internal HTTP client
(HTTP) which defaults to http.DefaultClient.

As with all http.Clients, this Client's Transport has internal state (cached
HTTP connections), so Clients should be reused instead of created as needed.
Clients are safe for use by multiple goroutines.

Sends a Heroku API request and decodes the response into v. As
described in NewRequest(), the type of body determines how to
encode the request body. As described in DoReq(), the type of
v determines how to handle the response body.

appIdentity is the unique identifier of the Collaborator's App. user is the
unique email address of account or unique identifier of an account. options
is the struct of optional parameters for this action.

appIdentity is the unique identifier of the Formation's App. updates is the
Array with formation updates. Each element must have "process", the id or
name of the process type to be updated, and can optionally update its
"quantity" or "size".

appIdentity is the unique identifier of the OrganizationAppCollaborator's
App. user is the unique email address of account or unique identifier of an
account. options is the struct of optional parameters for this action.

appIdentity is the unique identifier of the SSLEndpoint's App.
certificateChain is the raw contents of the public certificate chain (eg:
.crt or .pem file). privateKey is the contents of the private key (eg .key
file). options is the struct of optional parameters for this action.

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
currently released on an app.

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 addons will add a log drain when they are provisioned to
an app. These drains can only be removed by removing the add-on.

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

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

type Organization struct {
// whether charges incurred by the org are paid by credit card.CreditCardCollectionsbool `json:"credit_card_collections"`
// whether to use this organization when none is specifiedDefaultbool `json:"default"`
// unique name of organizationNamestring `json:"name"`
// whether the org is provisioned licenses by salesforce.ProvisionedLicensesbool `json:"provisioned_licenses"`
// role in the organizationRolestring `json:"role"`
}

Organizations allow you to manage access to a shared group of applications
across your development team.

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 addon installed
before it can provision an SSL Endpoint using these APIs.

type SlugCreateOpts struct {
// description from buildpack of slugBuildpackProvidedDescription *string `json:"buildpack_provided_description,omitempty"`
// identification of the code with your version control system (eg: SHA of the git HEAD)Commit *string `json:"commit,omitempty"`
}