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