Documentation
¶
Index ¶
- type BillingStatus
- type BuildFinalImage
- type BuildResponse
- type BuildStrategyAttempt
- type BuildTimings
- type BuilderMeta
- type Client
- func (c *Client) BaseURL() *url.URL
- func (c *Client) CreateBuild(ctx context.Context, in CreateBuildRequest) (*BuildResponse, error)
- func (c *Client) CreateFlyManagedBuilder(ctx context.Context, orgSlug string, region string) (CreateFlyManagedBuilderResponse, error)
- func (c *Client) CreateRelease(ctx context.Context, request CreateReleaseRequest) (release *Release, err error)
- func (c *Client) EnsureDepotBuilder(ctx context.Context, in EnsureDepotBuilderRequest) (*EnsureDepotBuilderResponse, error)
- func (c *Client) FinishBuild(ctx context.Context, in FinishBuildRequest) (*BuildResponse, error)
- func (c *Client) GetAllAppsCurrentReleaseTimestamps(ctx context.Context) (out *map[string]time.Time, err error)
- func (c *Client) GetCurrentRelease(ctx context.Context, appName string) (release *Release, err error)
- func (c *Client) GetOrganization(ctx context.Context, orgSlug string) (*Organization, error)
- func (c *Client) HTTPClient() *http.Client
- func (c *Client) ListOrganizations(ctx context.Context, admin bool) ([]Organization, error)
- func (c *Client) ListReleases(ctx context.Context, appName string, limit int) ([]Release, error)
- func (c *Client) PromoteMachineEgressIP(ctx context.Context, appName string, egressIP string) error
- func (c *Client) UpdateRelease(ctx context.Context, releaseID, status string, metadata any) (response *Release, err error)
- type CreateBuildRequest
- type CreateFlyManagedBuilderInput
- type CreateFlyManagedBuilderParams
- type CreateFlyManagedBuilderResponse
- type CreateReleaseRequest
- type DeploymentStrategy
- type DetailedErrors
- type EnsureDepotBuilderRequest
- type EnsureDepotBuilderResponse
- type FinishBuildRequest
- type FlyManagedBuilder
- type NewClientOpts
- type Organization
- type Release
- type StatusError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BillingStatus ¶ added in v0.3.214
type BillingStatus string
const ( BillingStatusCurrent BillingStatus = "CURRENT" BillingStatusDelinquent BillingStatus = "DELINQUENT" BillingStatusPastDue BillingStatus = "PAST_DUE" BillingStatusSourceRequired BillingStatus = "SOURCE_REQUIRED" BillingStatusSuspended BillingStatus = "SUSPENDED" BillingStatusTrialActive BillingStatus = "TRIAL_ACTIVE" BillingStatusTrialEnded BillingStatus = "TRIAL_ENDED" )
type BuildFinalImage ¶ added in v0.3.214
type BuildResponse ¶ added in v0.3.214
type BuildStrategyAttempt ¶ added in v0.3.214
type BuildTimings ¶ added in v0.3.214
type BuilderMeta ¶ added in v0.3.214
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewWithOptions ¶
func NewWithOptions(ctx context.Context, opts NewClientOpts) (*Client, error)
func (*Client) CreateBuild ¶ added in v0.3.214
func (c *Client) CreateBuild(ctx context.Context, in CreateBuildRequest) (*BuildResponse, error)
func (*Client) CreateFlyManagedBuilder ¶ added in v0.3.149
func (*Client) CreateRelease ¶ added in v0.3.214
func (*Client) EnsureDepotBuilder ¶ added in v0.3.214
func (c *Client) EnsureDepotBuilder(ctx context.Context, in EnsureDepotBuilderRequest) (*EnsureDepotBuilderResponse, error)
func (*Client) FinishBuild ¶ added in v0.3.214
func (c *Client) FinishBuild(ctx context.Context, in FinishBuildRequest) (*BuildResponse, error)
func (*Client) GetAllAppsCurrentReleaseTimestamps ¶ added in v0.3.214
func (*Client) GetCurrentRelease ¶ added in v0.3.214
func (c *Client) GetCurrentRelease(ctx context.Context, appName string) (release *Release, err error)
GetCurrentRelease retrieves the current release for an app. Returns nil release (without error) if the app has no current release (404).
func (*Client) GetOrganization ¶ added in v0.3.214
func (*Client) HTTPClient ¶ added in v0.4.41
func (*Client) ListOrganizations ¶ added in v0.3.214
func (*Client) ListReleases ¶ added in v0.3.214
func (*Client) PromoteMachineEgressIP ¶ added in v0.4.37
type CreateBuildRequest ¶ added in v0.3.214
type CreateFlyManagedBuilderInput ¶ added in v0.3.149
type CreateFlyManagedBuilderInput struct {
Builder CreateFlyManagedBuilderParams `json:"builder"`
}
type CreateFlyManagedBuilderParams ¶ added in v0.3.149
type CreateFlyManagedBuilderParams struct {
Region string `json:"region"`
}
type CreateFlyManagedBuilderResponse ¶ added in v0.3.149
type CreateFlyManagedBuilderResponse struct {
Data FlyManagedBuilder `json:"data"`
Errors DetailedErrors `json:"errors"`
}
type CreateReleaseRequest ¶ added in v0.3.214
type CreateReleaseRequest struct {
AppName string `json:"app_name"`
BuildId int64 `json:"build_id"`
Definition any `json:"definition"`
Image string `json:"image"`
Strategy DeploymentStrategy `json:"strategy"`
}
type DeploymentStrategy ¶ added in v0.3.214
type DeploymentStrategy string
const ( // Launch all new instances before shutting down previous instances DeploymentStrategyBluegreen DeploymentStrategy = "BLUEGREEN" // Ensure new instances are healthy before continuing with a rolling deployment DeploymentStrategyCanary DeploymentStrategy = "CANARY" // Deploy new instances all at once DeploymentStrategyImmediate DeploymentStrategy = "IMMEDIATE" // Incrementally replace old instances with new ones DeploymentStrategyRolling DeploymentStrategy = "ROLLING" // Incrementally replace old instances with new ones, 1 by 1 DeploymentStrategyRollingOne DeploymentStrategy = "ROLLING_ONE" // Deploy new instances all at once DeploymentStrategySimple DeploymentStrategy = "SIMPLE" )
type DetailedErrors ¶ added in v0.3.99
type DetailedErrors struct {
Detail string `json:"detail"`
}
type EnsureDepotBuilderRequest ¶ added in v0.3.214
type EnsureDepotBuilderResponse ¶ added in v0.3.214
type FinishBuildRequest ¶ added in v0.3.214
type FinishBuildRequest struct {
BuildId int64 `json:"build_id"`
AppName string `json:"app_name"`
MachineId string `json:"machine_id"`
Status string `json:"status"`
StrategiesAttempted []BuildStrategyAttempt `json:"strategies_attempted"`
BuilderMeta BuilderMeta `json:"builder_meta"`
FinalImage BuildFinalImage `json:"final_image"`
Timings BuildTimings `json:"timings"`
Logs string `json:"logs"`
}
type FlyManagedBuilder ¶ added in v0.3.149
type NewClientOpts ¶
type NewClientOpts struct {
// optional, sent with requests
UserAgent string
// URL used when connecting via usermode wireguard.
BaseURL *url.URL
Tokens *tokens.Tokens
// optional:
Logger fly.Logger
// optional, used to construct the underlying HTTP client
Transport http.RoundTripper
// optional; if non-nil, attaches the Fly-Client-* headers/UA suffix
// derived from these signals
ClientSignals *clientsignals.Signals
}
type Organization ¶ added in v0.3.214
type Organization struct {
ID string `json:"id"`
InternalNumericID uint64 `json:"internal_numeric_id"`
Slug string `json:"slug"`
RawSlug string `json:"raw_slug"`
PaidPlan bool `json:"paid_plan"`
Personal bool `json:"personal"`
BillingStatus BillingStatus `json:"billing_status"`
ProvisionsBetaExtensions bool `json:"provisions_beta_extensions"`
Name string `json:"name"`
Billable bool `json:"billable"`
RemoteBuilderImage string `json:"remote_builder_image"`
}
type Release ¶ added in v0.3.214
type Release struct {
ID string `json:"id"`
Version int `json:"version"`
Stable bool `json:"stable"`
InProgress bool `json:"in_progress"`
Status string `json:"status"`
DeploymentStrategy DeploymentStrategy `json:"strategy"`
User string `json:"user"`
CreatedAt time.Time `json:"created_at"`
ImageRef string `json:"image_ref"`
}
type StatusError ¶ added in v0.4.85
type StatusError struct {
// Op describes the attempted operation, e.g. "update release".
Op string
// StatusCode is the HTTP status returned by api.fly.io.
StatusCode int
// Body is the raw response body, included in the error message.
Body string
}
StatusError is returned when api.fly.io answers with an unexpected status code. It carries the code so callers can tell a transient server-side failure apart from a request that will never succeed.
func (*StatusError) Error ¶ added in v0.4.85
func (e *StatusError) Error() string
func (*StatusError) Retryable ¶ added in v0.4.85
func (e *StatusError) Retryable() bool
Retryable reports whether the failure is worth another attempt. 5xx responses are transient by definition, and include the 504s served by the proxy in front of api.fly.io when it gives up waiting on the backend. 4xx responses mean the request itself is wrong and will fail identically on a retry.
Callers must only retry when the request is idempotent.