pulumi-superfly
Version:
A native Pulumi provider for Fly.io. This package is still in early development. There is basically no documentation and APIs are likely to change.
381 lines (380 loc) • 10.2 kB
TypeScript
import * as outputs from "../types/output";
export interface AppArgs {
/**
* Whether to enable subdomains for the application.
*/
enableSubdomains?: boolean;
/**
* The name of the Fly.io application.
*/
name: string;
/**
* The network the application belongs to.
*/
network?: string;
/**
* The organization the application belongs to.
*/
org: string;
}
export interface CertificateArgs {
/**
* The name of the Fly app to add the certificate to.
*/
app: string;
/**
* The hostname for the certificate (e.g., example.com).
*/
hostname: string;
}
export interface CertificateIssuanceWaiterArgs {
/**
* The name of the Fly app that the certificate is associated with.
*/
app: string;
/**
* The hostname for the certificate (e.g., example.com).
*/
hostname: string;
/**
* The maximum time to wait for the certificate to be fully issued. Formatted like 5s, 5m, etc.
*/
timeout: number;
}
export interface IPArgs {
/**
* The type of IP address (v4, v6, shared_v4, or private_v6).
*/
addrType: string;
/**
* The name of the Fly.io application to allocate the IP address for.
*/
app: string;
/**
* The network to allocate the IP address in.
*/
network?: string;
/**
* The region to allocate the IP address in. This is required for non-shared IP addresses.
*/
region?: string;
}
export interface MachineArgs {
/**
* The Fly.io application to deploy the machine to.
*/
app: string;
config: outputs.flyio.FlyMachineConfig;
/**
* The deployment strategy for the machine.
*/
deploymentStrategy?: string;
leaseTtl?: number;
lsvd?: boolean;
name?: string;
region?: string;
skipLaunch?: boolean;
skipServiceRegistration?: boolean;
}
export interface VolumeArgs {
/**
* The Fly.io application to attach the volume to.
*/
app: string;
/**
* Whether to enable automatic backups for the volume.
*/
autoBackupEnabled?: boolean;
compute?: outputs.flyio.FlyMachineGuest;
computeImage?: string;
encrypted?: boolean;
fstype?: string;
name?: string;
region?: string;
requireUniqueZone?: boolean;
sizeGb?: number;
snapshotId?: string;
snapshotRetention?: number;
sourceVolumeId?: string;
uniqueZoneAppWide?: boolean;
}
export declare namespace flyio {
interface CheckStatus {
name?: string;
output?: string;
status?: string;
updatedAt?: string;
}
interface FlyContainerConfig {
cmd?: string[];
dependsOn?: outputs.flyio.FlyContainerDependency[];
entrypoint?: string[];
env?: {
[key: string]: string;
};
envFrom?: outputs.flyio.FlyEnvFrom[];
exec?: string[];
files?: outputs.flyio.FlyFile[];
healthchecks?: outputs.flyio.FlyContainerHealthcheck[];
image?: string;
mounts?: outputs.flyio.FlyContainerMount[];
name?: string;
restart?: outputs.flyio.FlyMachineRestart;
secrets?: outputs.flyio.FlyMachineSecret[];
stop?: outputs.flyio.FlyStopConfig;
user?: string;
}
interface FlyContainerDependency {
condition?: string;
name?: string;
}
interface FlyContainerHealthcheck {
exec?: outputs.flyio.FlyExecHealthcheck;
failureThreshold?: number;
gracePeriod?: number;
http?: outputs.flyio.FlyHTTPHealthcheck;
interval?: number;
kind?: string;
name?: string;
successThreshold?: number;
tcp?: outputs.flyio.FlyTCPHealthcheck;
timeout?: number;
unhealthy?: string;
}
interface FlyContainerMount {
name?: string;
path?: string;
}
interface FlyDNSConfig {
dnsForwardRules?: outputs.flyio.FlyDnsForwardRule[];
hostname?: string;
hostnameFqdn?: string;
nameservers?: string[];
options?: outputs.flyio.FlyDnsOption[];
searches?: string[];
skipRegistration?: boolean;
}
interface FlyDnsForwardRule {
addr?: string;
basename?: string;
}
interface FlyDnsOption {
name?: string;
value?: string;
}
interface FlyEnvFrom {
envVar?: string;
fieldRef?: string;
}
interface FlyExecHealthcheck {
command?: string[];
}
interface FlyFile {
guestPath?: string;
mode?: number;
rawValue?: string;
secretName?: string;
}
interface FlyHTTPHealthcheck {
headers?: outputs.flyio.FlyMachineHTTPHeader[];
method?: string;
path?: string;
port?: number;
scheme?: string;
tlsServerName?: string;
tlsSkipVerify?: boolean;
}
interface FlyHTTPOptions {
compress?: boolean;
h2Backend?: boolean;
headersReadTimeout?: number;
idleTimeout?: number;
response?: outputs.flyio.FlyHTTPResponseOptions;
}
interface FlyHTTPResponseOptions {
headers?: {
[key: string]: {
[key: string]: any;
};
};
pristine?: boolean;
}
interface FlyMachineCheck {
gracePeriod?: string;
headers?: outputs.flyio.FlyMachineHTTPHeader[];
interval?: string;
kind?: string;
method?: string;
path?: string;
port?: number;
protocol?: string;
timeout?: string;
tlsServerName?: string;
tlsSkipVerify?: boolean;
type?: string;
}
interface FlyMachineConfig {
autoDestroy?: boolean;
checks?: {
[key: string]: outputs.flyio.FlyMachineCheck;
};
containers?: outputs.flyio.FlyContainerConfig[];
dns?: outputs.flyio.FlyDNSConfig;
env?: {
[key: string]: string;
};
files?: outputs.flyio.FlyFile[];
guest?: outputs.flyio.FlyMachineGuest;
image: string;
init?: outputs.flyio.FlyMachineInit;
metadata?: {
[key: string]: string;
};
metrics?: outputs.flyio.FlyMachineMetrics;
mounts?: outputs.flyio.FlyMachineMount[];
processes?: outputs.flyio.FlyMachineProcess[];
restart?: outputs.flyio.FlyMachineRestart;
schedule?: string;
services?: outputs.flyio.FlyMachineService[];
standbys?: string[];
statics?: outputs.flyio.FlyStatic[];
stopConfig?: outputs.flyio.FlyStopConfig;
volumes?: outputs.flyio.FlyVolumeConfig[];
}
interface FlyMachineGuest {
cpuKind: string;
cpus: number;
gpuKind?: string;
gpus?: number;
hostDedicationId?: string;
kernelArgs?: string[];
memoryMb: number;
}
interface FlyMachineHTTPHeader {
name?: string;
values?: string[];
}
interface FlyMachineInit {
cmd?: string[];
entrypoint?: string[];
exec?: string[];
kernelArgs?: string[];
swapSizeMb?: number;
tty?: boolean;
}
interface FlyMachineMetrics {
https?: boolean;
path?: string;
port?: number;
}
interface FlyMachineMount {
addSizeGb?: number;
encrypted?: boolean;
extendThresholdPercent?: number;
name?: string;
path?: string;
sizeGb?: number;
sizeGbLimit?: number;
volume?: string;
}
interface FlyMachinePort {
endPort?: number;
forceHttps?: boolean;
handlers?: string[];
httpOptions?: outputs.flyio.FlyHTTPOptions;
port?: number;
proxyProtoOptions?: outputs.flyio.FlyProxyProtoOptions;
startPort?: number;
tlsOptions?: outputs.flyio.FlyTLSOptions;
}
interface FlyMachineProcess {
cmd?: string[];
entrypoint?: string[];
env?: {
[key: string]: string;
};
envFrom?: outputs.flyio.FlyEnvFrom[];
exec?: string[];
ignoreAppSecrets?: boolean;
secrets?: outputs.flyio.FlyMachineSecret[];
user?: string;
}
interface FlyMachineRestart {
gpuBidPrice?: number;
maxRetries?: number;
policy?: string;
}
interface FlyMachineSecret {
envVar?: string;
name?: string;
}
interface FlyMachineService {
autostart?: boolean;
autostop?: string;
checks?: outputs.flyio.FlyMachineCheck[];
concurrency?: outputs.flyio.FlyMachineServiceConcurrency;
forceInstanceDescription?: string;
forceInstanceKey?: string;
internalPort?: number;
minMachinesRunning?: number;
ports?: outputs.flyio.FlyMachinePort[];
protocol?: string;
}
interface FlyMachineServiceConcurrency {
hardLimit?: number;
softLimit?: number;
type?: string;
}
interface FlyProxyProtoOptions {
version?: string;
}
interface FlyStatic {
guestPath: string;
indexDocument?: string;
tigrisBucket?: string;
urlPrefix: string;
}
interface FlyStopConfig {
signal?: string;
timeout?: string;
}
interface FlyTCPHealthcheck {
port?: number;
}
interface FlyTLSOptions {
alpn?: string[];
defaultSelfSigned?: boolean;
versions?: string[];
}
interface FlyTempDirVolume {
sizeMb?: number;
storageType?: string;
}
interface FlyVolumeConfig {
name?: string;
tempDir?: outputs.flyio.FlyTempDirVolume;
}
interface ImageRef {
digest?: string;
labels?: {
[key: string]: string;
};
registry?: string;
repository?: string;
tag?: string;
}
interface MachineEvent {
flyId: string;
request?: {
[key: string]: any;
};
source?: string;
status?: string;
timestamp?: number;
type?: string;
}
}
export declare namespace time {
interface Time {
}
}