Skip to main content

CreateEnvironmentInput

Input for createEnvironment. For dedicated (default) supply the four per-role flavors plus scaling counts; for dev_single supply a single flavor and the per-role/count fields are ignored.

input CreateEnvironmentInput {
orgId: BigInt!
displayName: String!
slug: String
x25519PublicKeyBase64: String!
datacenter: String!
environmentClass: String
flavor: String
databaseFlavor: String
gameApiFlavor: String
udpBuddyFlavor: String
caddyFlavor: String
gameApiMinServers: Int
gameApiMaxServers: Int
udpBuddyMinServers: Int
udpBuddyMaxServers: Int
loadBalancerCount: Int
appIds: [String!]
buddyBillingTier: Int
graphqlBillingTier: Int
postgresBillingTier: Int
isShared: Boolean
}

Fields

CreateEnvironmentInput.orgId ● BigInt! non-null scalar

Organization id (BigInt) that will own and be billed for the environment.

CreateEnvironmentInput.displayName ● String! non-null scalar

Human-readable environment name (max 80 chars).

CreateEnvironmentInput.slug ● String scalar

Optional explicit slug for scripts/E2E. When omitted, the API auto-assigns a short slug. Must fit Route 53 DNS limits for this tier (typically 11–16 characters when DBOS is enabled; up to 40 on legacy runner). Lowercase letters, numbers, and dashes only.

CreateEnvironmentInput.x25519PublicKeyBase64 ● String! non-null scalar

Base64-encoded 32-byte X25519 public key used to seal this environment’s secrets. Must decode to exactly 32 bytes.

CreateEnvironmentInput.datacenter ● String! non-null scalar

OVH datacenter/region code from environmentDatacenters (e.g. 'GRA11').

CreateEnvironmentInput.environmentClass ● String scalar

Deployment class: 'dedicated' (default, multi-VM) or 'dev_single' (one cheap dev-only VM running Postgres + management-api + game-api + Buddy). dev_single is not for production.

CreateEnvironmentInput.flavor ● String scalar

Single VM flavor for environmentClass='dev_single' (e.g. b3-8); must have a published hourly price. Ignored for dedicated.

CreateEnvironmentInput.databaseFlavor ● String scalar

Flavor name from environmentFlavors(datacenter); must have a published hourly price. Required for dedicated.

CreateEnvironmentInput.gameApiFlavor ● String scalar

Flavor name from environmentFlavors(datacenter) for per-tenant game-api VMs; must have a published hourly price. Required for dedicated.

CreateEnvironmentInput.udpBuddyFlavor ● String scalar

Flavor name from environmentFlavors(datacenter); must have a published hourly price. Required for dedicated.

CreateEnvironmentInput.caddyFlavor ● String scalar

Flavor name from environmentFlavors(datacenter) for the Caddy LB VMs in front of the game-api fleet; must have a published hourly price. Required for dedicated.

CreateEnvironmentInput.gameApiMinServers ● Int scalar

Autoscaling floor for game-api servers (min 1). Required for dedicated; ignored for dev_single.

CreateEnvironmentInput.gameApiMaxServers ● Int scalar

Autoscaling ceiling for game-api servers (min 1, ≥ gameApiMinServers). Required for dedicated; ignored for dev_single.

CreateEnvironmentInput.udpBuddyMinServers ● Int scalar

Autoscaling floor for Buddy UDP servers (min 1). Required for dedicated; ignored for dev_single.

CreateEnvironmentInput.udpBuddyMaxServers ● Int scalar

Autoscaling ceiling for Buddy UDP servers (min 1, ≥ udpBuddyMinServers). Required for dedicated; ignored for dev_single.

CreateEnvironmentInput.loadBalancerCount ● Int scalar

Number of Caddy load-balancer VMs in front of the game-api fleet (min 1). Required for dedicated; ignored for dev_single.

CreateEnvironmentInput.appIds ● [String!] list scalar

Optional app ids to link to the new environment at creation. Each must be unique; omit or pass an empty list to link none.

CreateEnvironmentInput.buddyBillingTier ● Int scalar

Buddy billing tier level from buddyBillingTiers. Defaults to tier 1 for dedicated environments.

CreateEnvironmentInput.graphqlBillingTier ● Int scalar

GraphQL billing tier level from graphqlBillingTiers. Defaults to tier 1 for dedicated environments.

CreateEnvironmentInput.postgresBillingTier ● Int scalar

Postgres billing tier level from postgresBillingTiers. Defaults to tier 1 for dedicated environments.

CreateEnvironmentInput.isShared ● Boolean scalar

Super-admin only: designate this as the single platform-owned shared environment (slug 'shared') that hosts the shared game-api for apps with deploymentTarget='shared'. Must be a dedicated environment. Customers cannot set this; the management API rejects it for non-super-admins.

Member Of

createEnvironment mutation