commit 56e5db2059e1d47d35222390cdb76eae1bb29e1f Author: upstream Date: Wed Oct 14 18:16:57 2026 +0200 Upstream pterodactyl/panel state of the touched files before 152f40cc18 diff --git a/app/Http/Resources/Api/Client/ServerResource.php b/app/Http/Resources/Api/Client/ServerResource.php new file mode 100644 index 0000000..3fce731 --- /dev/null +++ b/app/Http/Resources/Api/Client/ServerResource.php @@ -0,0 +1,167 @@ + + */ +#[ResponseField('server_identifier', schema: ['type' => 'string', 'pattern' => '^serv_[a-zA-Z0-9]+$', 'example' => 'serv_1a2b3c4d'])] +#[ResponseField('description', example: 'Survival world', nullable: true)] +#[ResponseField('status', schema: ['type' => 'string', 'nullable' => true, 'enum' => ['installing', 'install_failed', 'reinstall_failed', 'suspended', 'restoring_backup', null], 'example' => null])] +#[ResponseField('limits.threads', schema: ['type' => 'string', 'nullable' => true, 'example' => '1,2'])] +#[ResponseField('feature_limits.databases', 'integer', example: 5, nullable: true)] +#[ResponseField('feature_limits.allocations', 'integer', example: 5, nullable: true)] +#[ResponseField('feature_limits.backups', 'integer', example: 5, nullable: true)] +#[ResponseField('egg_features', schema: ['type' => 'array', 'nullable' => true, 'items' => ['type' => 'string'], 'example' => ['eula']])] +#[ResponseField('egg_tags', schema: ['type' => 'array', 'items' => ['type' => 'string'], 'example' => ['minecraft']])] +class ServerResource extends ClientResource +{ + protected array $eagerLoads = ['egg.variables', 'egg.configFrom', 'egg.tags', 'serverVariables', 'node', 'transfer', 'subusers', 'allocation']; + + protected array $includeRelations = [ + 'allocations' => ['relation' => 'allocations', 'resource' => AllocationResource::class], + 'egg' => ['relation' => 'egg', 'resource' => EggResource::class], + 'subusers' => ['relation' => 'subusers', 'resource' => SubuserResource::class], + ]; + + protected array $defaultIncludes = ['allocations', 'variables']; + + protected array $availableIncludes = ['egg', 'subusers']; + + public function resourceName(): string + { + return Server::RESOURCE_NAME; + } + + public function toArray(Request $request): array + { + $user = $this->getUser(); + $server = $this->resource; + + $server->loadMissing(['egg.tags', 'node', 'transfer']); + + $egg = $server->egg ?? throw new UnexpectedValueException('The server does not have an egg relationship.'); + + return [ + 'server_owner' => $user->id === $server->owner_id, + 'identifier' => config('pterodactyl.features.new_server_identifiers') + ? $server->identifier + : $server->uuidShort, + '__deprecated_uuid_short' => $server->uuidShort, + 'server_identifier' => $server->identifier, + 'internal_id' => $server->id, + 'uuid' => $server->uuid, + 'name' => $server->name, + 'node' => $server->node->name, + 'is_node_under_maintenance' => $server->node->isUnderMaintenance(), + 'sftp_details' => [ + 'ip' => $server->node->fqdn, + 'port' => $server->node->daemonSFTP, + ], + 'description' => $server->description, + 'limits' => [ + 'memory' => $server->memory, + 'swap' => $server->swap, + 'disk' => $server->disk, + 'io' => $server->io, + 'cpu' => $server->cpu, + 'threads' => $server->threads, + 'oom_disabled' => $server->oom_disabled, + ], + 'invocation' => $server->startupCommand(! $user->can(Permissions::StartupRead->value, $server)), + 'docker_image' => $server->image, + 'egg_features' => $egg->inherit_features, + 'egg_tags' => $egg->tagSlugs(), + 'feature_limits' => [ + 'databases' => $server->database_limit, + 'allocations' => $server->allocation_limit, + 'backups' => $server->backup_limit, + ], + 'status' => $server->status, + // This field is deprecated, please use "status". + 'is_suspended' => $server->isSuspended(), + // This field is deprecated, please use "status". + 'is_installing' => ! $server->isInstalled(), + 'is_transferring' => ($server->transfer) !== null, + 'skip_scripts' => $server->skip_scripts, + ]; + } + + protected function resolveInclude(string $include): ?IncludedResource + { + return match ($include) { + 'allocations' => $this->includeAllocations(), + 'variables' => $this->includeVariables(), + 'egg' => $this->includeEgg(), + 'subusers' => $this->includeSubusers(), + default => parent::resolveInclude($include), + }; + } + + private function includeAllocations(): ApiResourceCollection + { + // While we include this permission, we do need to actually handle it slightly different here + // for the purpose of keeping things functionally working. If the user doesn't have read permissions + // for the allocations we'll only return the primary server allocation, and any notes associated + // with it will be hidden. + // + // This allows us to avoid too much permission regression, without also hiding information that + // is generally needed for the frontend to make sense when browsing or searching results. + if (! $this->getUser()->can(Permissions::AllocationRead->value, $this->resource)) { + $primary = clone ($this->resource->allocation ?? throw new UnexpectedValueException('The server does not have a primary allocation.')); + $primary->notes = null; + + return $this->items([$primary], AllocationResource::class, Allocation::RESOURCE_NAME); + } + + return $this->items($this->resource->loadMissing('allocations')->allocations, AllocationResource::class, Allocation::RESOURCE_NAME); + } + + private function includeVariables(): ApiResourceCollection|NullResource + { + if (! $this->getUser()->can(Permissions::StartupRead->value, $this->resource)) { + return $this->null(); + } + + return $this->items( + $this->resource->resolvedVariables()->where('user_viewable', true)->values(), + EggVariableResource::class, + EggVariable::RESOURCE_NAME + ); + } + + /** + * @return ApiResource + */ + private function includeEgg(): ApiResource + { + $egg = $this->resource->egg ?? throw new UnexpectedValueException('The server does not have an egg relationship.'); + + return $this->item($egg, EggResource::class, Egg::RESOURCE_NAME); + } + + private function includeSubusers(): ApiResourceCollection|NullResource + { + if (! $this->getUser()->can(Permissions::UserRead->value, $this->resource)) { + return $this->null(); + } + + return $this->items($this->resource->subusers, SubuserResource::class, Subuser::RESOURCE_NAME); + } +} diff --git a/packages/sdk/types/api/generated/types.gen.d.ts b/packages/sdk/types/api/generated/types.gen.d.ts new file mode 100644 index 0000000..27492bc --- /dev/null +++ b/packages/sdk/types/api/generated/types.gen.d.ts @@ -0,0 +1,14013 @@ +// Generated by scripts/generate-sdk-types.mjs. Do not edit. +export type ClientOptions = { + baseURL: 'http://localhost' | (string & {}); +}; +export type AdminActivityLogAttributes = { + id: string; + batch: string | null; + event: string; + is_api: boolean; + ip: string | null; + description: string | null; + properties: { + [key: string]: string | number | number | boolean | Array | { + [key: string]: string; + }; + }; + has_additional_metadata: boolean; + timestamp: string; + relationships?: { + actor?: AdminUserResource | NullResource; + }; +}; +export type AdminActivityLogPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminActivityLogResource = { + object: string; + attributes: AdminActivityLogAttributes; +}; +export type AdminAllocationAttributes = { + id: number; + ip: string; + alias: string | null; + port: number; + notes: string | null; + server_id: number | null; + server_name: string | null; + assigned: boolean; +}; +export type AdminAllocationListResponse = { + object: string; + data: Array; +}; +export type AdminAllocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminAllocationResource = { + object: string; + attributes: AdminAllocationAttributes; +}; +export type AdminApiKeyAttributes = { + identifier: string; + memo: string; + created_by: { + id: number; + username: string; + email: string; + }; + last_used_at: string | null; + created_at: string; + r_servers: number; + r_nodes: number; + r_allocations: number; + r_users: number; + r_locations: number; + r_eggs: number; + r_database_hosts: number; + r_server_databases: number; +}; +export type AdminApiKeyPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminApiKeyResource = { + object: string; + attributes: AdminApiKeyAttributes; + meta?: { + secret_token: string; + }; +}; +export type AdminBackupAttributes = { + uuid: string; + name: string; + ignored_files: Array; + checksum: string | null; + bytes: number; + is_successful: boolean; + is_locked: boolean; + created_at: string; + completed_at: string | null; +}; +export type AdminBackupPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminBackupResource = { + object: string; + attributes: AdminBackupAttributes; +}; +export type AdminDatabaseAttributes = { + server: { + id: number; + name: string; + }; + name: string; + username: string; + connections_from: string; + max_connections: number | null; +}; +export type AdminDatabaseHostAttributes = { + id: number; + name: string; + host: string; + port: number; + username: string; + max_databases: number | null; + databases_count: number; + node_id: number | null; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + node?: AdminNodeResource | NullResource; + databases?: AdminDatabaseListResponse | NullResource; + }; +}; +export type AdminDatabaseHostPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminDatabaseHostResource = { + object: string; + attributes: AdminDatabaseHostAttributes; + meta?: { + resource: string; + }; +}; +export type AdminDatabaseListResponse = { + object: string; + data: Array; +}; +export type AdminDatabasePaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminDatabaseResource = { + object: string; + attributes: AdminDatabaseAttributes; +}; +export type AdminEggAttributes = { + id: number; + uuid: string; + author: string; + name: string; + description: string | null; + features: Array | null; + docker_image: string; + docker_images: { + [key: string]: string; + }; + force_outgoing_ip: boolean | null; + config: { + files: AdminEggConfigurationFiles | null; + startup: { + [key: string]: string | Array; + } | null; + stop: string; + logs: { + [key: string]: string | number | boolean; + } | null; + file_denylist: Array | null; + extends: number | null; + }; + startup: string; + script: { + privileged: boolean | null; + install: string | null; + entry: string; + container: string; + extends: number | null; + }; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + variables?: AdminEggVariableListResponse | NullResource; + tags?: AdminTagListResponse | NullResource; + servers?: AdminServerListResponse | NullResource; + }; +}; +export type AdminEggConfigurationFile = { + parser?: string; + find?: AdminEggConfigurationFind; +}; +export type AdminEggConfigurationFiles = { + [key: string]: AdminEggConfigurationFile; +}; +export type AdminEggConfigurationFind = { + [key: string]: string | number | boolean | { + [key: string]: string; + }; +}; +export type AdminEggListResponse = { + object: string; + data: Array; +}; +export type AdminEggPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminEggResource = { + object: string; + attributes: AdminEggAttributes; + meta?: { + resource: string; + }; +}; +export type AdminEggVariableAttributes = { + id: number; + egg_id: number; + name: string; + description: string; + env_variable: string; + default_value: string; + user_viewable: boolean; + user_editable: boolean; + rules: string; + sort_order: number | null; + created_at: string; + updated_at: string; +}; +export type AdminEggVariableListResponse = { + object: string; + data: Array; +}; +export type AdminEggVariableResource = { + object: string; + attributes: AdminEggVariableAttributes; +}; +export type AdminExtensionFormsResponse = { + /** + * The extensions whose fields each admin form shows, keyed by form (admin.user, admin.server, admin.node, admin.egg, admin.location, admin.mount, admin.database_host). Forms without any are left out. + */ + data: { + [key: string]: Array<{ + id: string; + name: string; + }>; + }; +}; +export type AdminExtensionSettingField = { + input: string; + label: string; + help: string | null; + tab: string | null; + field: 'text' | 'password' | 'number' | 'toggle' | 'select' | 'color' | 'textarea' | 'multiselect' | 'list' | 'file'; + options: Array; + value: string | number | boolean | Array | null; + constraints: { + max_length: number | null; + max_items: number | null; + max_kilobytes: number | null; + accept: Array; + }; + visibility: 'admin' | 'frontend' | 'public'; +}; +export type AdminExtensionSettingOption = { + value: string | number | boolean; + label: string; +}; +/** + * Available panel locales keyed by locale code. + */ +export type AdminLanguagesResponse = { + [key: string]: string; +}; +export type AdminLocationAttributes = { + id: number; + short: string; + long: string; + nodes_count: number; + servers_count: number; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + nodes?: AdminNodeListResponse | NullResource; + }; +}; +export type AdminLocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminLocationResource = { + object: string; + attributes: AdminLocationAttributes; + meta?: { + resource: string; + }; +}; +export type AdminMountAttributes = { + id: number; + uuid: string; + name: string; + description: string | null; + source: string; + target: string; + read_only: boolean; + user_mountable: boolean; + eggs_count: number; + nodes_count: number; + servers_count: number; + /** + * Present only when listed in the context of a server. + */ + mounted?: boolean | null; + extensions?: ExtensionFields; + relationships?: { + eggs?: AdminEggListResponse | NullResource; + nodes?: AdminNodeListResponse | NullResource; + servers?: AdminServerListResponse | NullResource; + }; +}; +export type AdminMountListResponse = { + object: string; + data: Array; +}; +export type AdminMountPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminMountResource = { + object: string; + attributes: AdminMountAttributes; + meta?: { + resource: string; + }; +}; +export type AdminNodeAttributes = { + id: number; + uuid: string; + public: boolean; + name: string; + description: string | null; + location_id: number; + fqdn: string; + scheme: string; + behind_proxy: boolean; + maintenance_mode: boolean; + memory: number; + memory_overallocate: number; + disk: number; + disk_overallocate: number; + upload_size: number; + daemon_listen: number; + daemon_sftp: number; + daemon_base: string; + created_at: string; + updated_at: string; + /** + * Present when the endpoint loads server counts. + */ + servers_count?: number; + allocated_resources: { + memory: number; + disk: number; + }; + extensions?: ExtensionFields; + relationships?: { + location?: AdminLocationResource | NullResource; + tags?: AdminTagListResponse | NullResource; + deployment_tags?: AdminTagListResponse | NullResource; + }; +}; +export type AdminNodeConfigurationResponse = { + debug: boolean; + uuid: string; + token_id: string; + token: string; + api: { + host: string; + port: number; + ssl: { + enabled: boolean; + cert: string; + key: string; + }; + upload_limit: number; + }; + system: { + data: string; + sftp: { + bind_port: number; + }; + }; + allowed_mounts: Array; + remote: string; +}; +export type AdminNodeDeployTokenResponse = { + node: number; + token: string; + panel_url: string; + allow_insecure: boolean; +}; +export type AdminNodeListResponse = { + object: string; + data: Array; +}; +export type AdminNodePaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminNodeResource = { + object: string; + attributes: AdminNodeAttributes; + meta?: { + resource: string; + }; +}; +export type AdminNodeSystemInformationResponse = { + architecture: string; + cpu_count: number; + kernel_version: string; + os: string; + version: string; +}; +export type AdminNodeUtilizationResponse = { + disk: { + value: string; + max: string; + percent: number; + css: string; + }; + memory: { + value: string; + max: string; + percent: number; + css: string; + }; +}; +export type AdminServerAttributes = { + id: number; + external_id: string | null; + uuid: string; + identifier: string; + name: string; + description: string | null; + status: string | null; + suspended: boolean; + limits: { + memory: number; + swap: number; + disk: number; + io: number; + cpu: number; + threads: string | null; + oom_disabled: boolean; + }; + feature_limits: { + databases: number | null; + allocations: number | null; + backups: number; + }; + user: number; + node: number; + allocation: number; + egg: number; + container: { + startup_command: string; + image: string; + skip_scripts: boolean; + installed: number; + environment: { + [key: string]: string | number | null; + }; + }; + updated_at: string; + created_at: string; + extensions?: ExtensionFields; + relationships?: { + allocation?: AdminAllocationResource | NullResource; + allocations?: AdminAllocationListResponse | NullResource; + user?: AdminUserResource | NullResource; + egg?: AdminEggResource | NullResource; + variables?: AdminServerVariableListResponse | NullResource; + node?: AdminNodeResource | NullResource; + }; +}; +export type AdminServerDatabaseAttributes = { + id: string; + host: { + address: string; + port: number; + }; + name: string; + username: string; + connections_from: string; + max_connections: number | null; + relationships?: { + password?: { + object: string; + attributes: { + password: string; + }; + }; + }; +}; +export type AdminServerDatabaseListResponse = { + object: string; + data: Array; +}; +export type AdminServerDatabaseResource = { + object: string; + attributes: AdminServerDatabaseAttributes; + meta?: { + resource: string; + }; +}; +export type AdminServerListResponse = { + object: string; + data: Array; +}; +export type AdminServerPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminServerResource = { + object: string; + attributes: AdminServerAttributes; + meta?: { + resource: string; + }; +}; +export type AdminServerTransferAttributes = { + id: number; + server_id: number; + old_node: number; + new_node: number; + old_allocation: number; + new_allocation: number; + successful: boolean | null; + archived: boolean; + created_at: string; + updated_at: string; +}; +export type AdminServerTransferResource = { + object: string; + attributes: AdminServerTransferAttributes; +}; +export type AdminServerVariableAttributes = { + id: number; + egg_id: number; + name: string; + description: string; + env_variable: string; + default_value: string; + server_value: string | null; + user_viewable: boolean; + user_editable: boolean; + rules: string; + required?: boolean; + sort_order: number | null; + created_at: string; + updated_at: string; +}; +export type AdminServerVariableListResponse = { + object: string; + data: Array; +}; +export type AdminServerVariableResource = { + object: string; + attributes: AdminServerVariableAttributes; +}; +export type AdminSettingsResponse = { + general: { + 'app:name': string; + 'pterodactyl:auth:2fa_required': 0 | 1 | 2; + 'app:locale': string; + }; + mail: { + 'mail:default': string; + 'mail:mailers:smtp:host': string; + 'mail:mailers:smtp:port': number; + 'mail:mailers:smtp:encryption': 'tls' | 'ssl' | null; + 'mail:mailers:smtp:username': string | null; + 'mail:mailers:smtp:password': string; + 'mail:from:address': string; + 'mail:from:name': string | null; + }; + advanced: { + 'recaptcha:enabled': boolean; + 'recaptcha:secret_key': string; + 'recaptcha:website_key': string; + 'pterodactyl:guzzle:timeout': number; + 'pterodactyl:guzzle:connect_timeout': number; + 'pterodactyl:client_features:allocations:enabled': boolean; + 'pterodactyl:client_features:allocations:range_start': number | null; + 'pterodactyl:client_features:allocations:range_end': number | null; + }; + meta: { + load_environment_only: boolean; + show_recaptcha_warning: boolean; + }; +}; +export type AdminTagAttributes = { + id: number; + name: string; + slug: string; + color: string | null; + is_predefined: boolean; + legacy_nest_id: number | null; + eggs_count: number; + nodes_count: number; + created_at: string; + updated_at: string; +}; +export type AdminTagListResponse = { + object: string; + data: Array; +}; +export type AdminTagPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminTagResource = { + object: string; + attributes: AdminTagAttributes; + meta?: { + resource: string; + }; +}; +export type AdminThemeAttributes = { + id: string; + name: string; + version: string | null; + description: string | null; + author: string | null; + icon: string | null; + icon_url: string | null; + builtin: boolean; + enabled: boolean; + active: boolean; + previewing: boolean; + /** + * The theme this one is built on; null for the built-in classic theme. + */ + extends: string | null; + settings_count: number; + /** + * Why the theme cannot be activated right now. + */ + problem: string | null; +}; +export type AdminThemeListResponse = { + object: string; + data: Array; + meta?: { + active: string; + preview: string | null; + safe_mode: boolean; + }; +}; +export type AdminThemeResource = { + object: string; + attributes: AdminThemeAttributes; +}; +export type AdminThemeSettingAttributes = { + key: string; + type: 'color' | 'select' | 'toggle' | 'number' | 'text' | 'image'; + label: string; + help: string | null; + tab: string | null; + default: string | number | boolean | null; + value: string | number | boolean | null; + options: Array<{ + value: string; + label: string; + }>; + min: number | null; + max: number | null; + step: number | null; + unit: string | null; + max_length: number | null; + accept: Array; + max_kilobytes: number | null; +}; +export type AdminThemeSettingListResponse = { + object: string; + data: Array; +}; +export type AdminThemeSettingResource = { + object: string; + attributes: AdminThemeSettingAttributes; +}; +export type AdminUserAttributes = { + id: number; + external_id: string | null; + uuid: string; + username: string; + email: string; + first_name: string; + last_name: string; + language: string; + root_admin: boolean; + '2fa': boolean; + image: string; + servers_count: number; + subuser_of_count: number; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + servers?: AdminServerListResponse | NullResource; + }; +}; +export type AdminUserPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type AdminUserResource = { + object: string; + attributes: AdminUserAttributes; + meta?: { + resource: string; + }; +}; +export type AdminVersionInformationResponse = { + current: string; + latest: string; + is_latest: boolean; + daemon: string; + discord: string; + donations: string; +}; +export type ApplicationAllocationAttributes = { + id: number; + ip: string; + alias: string | null; + port: number; + notes: string | null; + assigned: boolean; +}; +export type ApplicationAllocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ApplicationAllocationResource = { + object: string; + attributes: ApplicationAllocationAttributes; +}; +export type ApplicationEggAttributes = { + id: number; + uuid: string; + name: string; + author: string; + description: string | null; + docker_image: string; + docker_images: { + [key: string]: string; + }; + config: { + files: AdminEggConfigurationFiles; + startup: { + [key: string]: string | Array; + } | null; + stop: string | null; + logs: { + [key: string]: string | number | boolean; + } | null; + file_denylist: Array | null; + extends: number | null; + }; + startup: string; + script: { + privileged: boolean; + install: string | null; + entry: string; + container: string; + extends: number | null; + }; + created_at: string; + updated_at: string; +}; +export type ApplicationEggPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ApplicationEggResource = { + object: string; + attributes: ApplicationEggAttributes; +}; +export type ApplicationLocationAttributes = { + id: number; + short: string; + long: string; + updated_at: string; + created_at: string; + extensions?: ExtensionFields; +}; +export type ApplicationLocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ApplicationLocationResource = { + object: string; + attributes: ApplicationLocationAttributes; + meta?: { + resource: string; + }; +}; +export type ApplicationNodeAttributes = { + id: number; + uuid: string; + public: boolean; + name: string; + description: string | null; + location_id: number; + fqdn: string; + scheme: string; + behind_proxy: boolean; + maintenance_mode: boolean; + memory: number; + memory_overallocate: number; + disk: number; + disk_overallocate: number; + upload_size: number; + daemon_listen: number; + daemon_sftp: number; + daemon_base: string; + created_at: string; + updated_at: string; + allocated_resources: { + memory: number; + disk: number; + }; + extensions?: ExtensionFields; +}; +export type ApplicationNodeListResponse = { + object: string; + data: Array; +}; +export type ApplicationNodePaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ApplicationNodeResource = { + object: string; + attributes: ApplicationNodeAttributes; + meta?: { + resource: string; + }; +}; +export type ApplicationServerAttributes = { + id: number; + external_id: string | null; + uuid: string; + identifier: string; + name: string; + description: string | null; + status: string | null; + suspended: boolean; + limits: { + memory: number; + swap: number; + disk: number; + io: number; + cpu: number; + threads: string | null; + oom_disabled: boolean; + }; + feature_limits: { + databases: number | null; + allocations: number | null; + backups: number | null; + }; + user: number; + node: number; + allocation: number; + egg: number; + container: { + startup_command: string; + image: string; + installed: number; + environment: { + [key: string]: string | number | boolean | null; + }; + skip_scripts: boolean; + }; + updated_at: string; + created_at: string; + extensions?: ExtensionFields; +}; +export type ApplicationServerDatabaseAttributes = { + id: number; + server: number; + host: number; + database: string; + username: string; + remote: string; + max_connections: number | null; + created_at: string; + updated_at: string; +}; +export type ApplicationServerDatabaseListResponse = { + object: string; + data: Array; +}; +export type ApplicationServerDatabaseResource = { + object: string; + attributes: ApplicationServerDatabaseAttributes; + meta?: { + resource: string; + }; +}; +export type ApplicationServerPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ApplicationServerResource = { + object: string; + attributes: ApplicationServerAttributes; +}; +export type ApplicationTagAttributes = { + id: number; + name: string; + slug: string; + color: string | null; + is_predefined: boolean; + legacy_nest_id: number | null; + created_at: string; + updated_at: string; +}; +export type ApplicationTagPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ApplicationTagResource = { + object: string; + attributes: ApplicationTagAttributes; +}; +export type ApplicationUserAttributes = { + id: number; + external_id: string | null; + uuid: string; + username: string; + email: string; + first_name: string; + last_name: string; + language: string; + root_admin: boolean; + '2fa': boolean; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; +}; +export type ApplicationUserPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ApplicationUserResource = { + object: string; + attributes: ApplicationUserAttributes; + meta?: { + resource: string; + }; +}; +export type AuthLoginCheckpointResponse = { + data: { + complete: false; + confirmation_token: string; + }; +}; +export type AuthLoginCompleteResponse = { + data: { + complete: true; + intended: string; + user: AuthUser; + }; +}; +export type AuthLoginResponse = AuthLoginCompleteResponse | AuthLoginCheckpointResponse; +export type AuthPasswordResetEmailResponse = { + status: string; +}; +export type AuthResetPasswordResponse = { + success: true; + redirect_to: string | null; + send_to_login: boolean; +}; +export type AuthUser = { + uuid: string; + username: string; + email: string; + name_first: string | null; + name_last: string | null; + language: string; + root_admin: boolean; + use_totp: boolean; + gravatar: boolean; + created_at: string; + updated_at: string; + identifier: string; +}; +export type ClientActivityLogAttributes = { + id: string; + batch: string | null; + event: string; + is_api: boolean; + ip: string | null; + description: string | null; + properties: { + [key: string]: string | number | number | boolean | Array | { + [key: string]: string; + }; + }; + has_additional_metadata: boolean; + timestamp: string; + relationships?: { + actor?: ClientUserResource | NullResource; + }; +}; +export type ClientActivityLogPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ClientActivityLogResource = { + object: string; + attributes: ClientActivityLogAttributes; +}; +export type ClientAllocationAttributes = { + id: number; + ip: string; + ip_alias: string | null; + port: number; + notes: string | null; + is_default: boolean; +}; +export type ClientAllocationListResponse = { + object: string; + data: Array; +}; +export type ClientAllocationResource = { + object: string; + attributes: ClientAllocationAttributes; +}; +export type ClientApiKeyAttributes = { + identifier: string; + description: string; + allowed_ips: Array | null; + last_used_at: string | null; + created_at: string; +}; +export type ClientApiKeyListResponse = { + object: string; + data: Array; +}; +export type ClientApiKeyResource = { + object: string; + attributes: ClientApiKeyAttributes; + meta?: { + secret_token: string; + }; +}; +export type ClientBackupAttributes = { + uuid: string; + is_successful: boolean; + is_locked: boolean; + name: string; + ignored_files: Array; + checksum: string | null; + bytes: number; + created_at: string; + completed_at: string | null; +}; +export type ClientBackupPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + backup_count: number; + }; +}; +export type ClientBackupResource = { + object: string; + attributes: ClientBackupAttributes; +}; +export type ClientEggVariableAttributes = { + name: string; + description: string; + env_variable: string; + default_value: string; + server_value: string | null; + is_editable: boolean; + rules: string; +}; +export type ClientEggVariableListResponse = { + object: string; + data: Array; + meta?: { + startup_command: string; + docker_images: { + [key: string]: string; + }; + raw_startup_command: string; + }; +}; +export type ClientEggVariableResource = { + object: string; + attributes: ClientEggVariableAttributes; + meta?: { + startup_command: string; + raw_startup_command: string; + }; +}; +export type ClientFileObjectAttributes = { + name: string; + mode: string | null; + mode_bits: string | null; + size: number | null; + is_file: boolean; + is_symlink: boolean; + mimetype: string; + created_at: string; + modified_at: string; +}; +export type ClientFileObjectListResponse = { + object: string; + data: Array; +}; +export type ClientFileObjectResource = { + object: string; + attributes: ClientFileObjectAttributes; +}; +export type ClientRecoveryTokensAttributes = { + tokens: Array; +}; +export type ClientRecoveryTokensResource = { + object: string; + attributes: ClientRecoveryTokensAttributes; +}; +export type ClientScheduleTaskAttributes = { + id: number; + sequence_id: number; + action: 'power' | 'command' | 'backup'; + payload: string; + time_offset: number; + is_queued: boolean; + continue_on_failure: boolean; + created_at: string; + updated_at: string; +}; +export type ClientScheduleTaskListResponse = { + object: string; + data: Array; +}; +export type ClientScheduleTaskResource = { + object: string; + attributes: ClientScheduleTaskAttributes; +}; +export type ClientServerAttributes = { + server_owner: boolean; + identifier: string; + __deprecated_uuid_short: string; + server_identifier: string; + internal_id: number; + uuid: string; + name: string; + node: string; + is_node_under_maintenance: boolean; + sftp_details: { + ip: string; + port: number; + }; + description: string | null; + limits: { + memory: number; + swap: number; + disk: number; + io: number; + cpu: number; + threads: string | null; + oom_disabled: boolean; + }; + invocation: string; + docker_image: string; + egg_features: Array | null; + egg_tags: Array; + feature_limits: { + databases: number | null; + allocations: number | null; + backups: number | null; + }; + status: 'installing' | 'install_failed' | 'reinstall_failed' | 'suspended' | 'restoring_backup' | null; + is_suspended: boolean; + is_installing: boolean; + is_transferring: boolean; + skip_scripts: boolean; + relationships?: { + allocations?: ClientAllocationListResponse | NullResource; + variables?: ClientEggVariableListResponse | NullResource; + }; +}; +export type ClientServerDatabaseAttributes = { + id: string; + host: { + address: string; + port: number; + }; + name: string; + username: string; + connections_from: string; + max_connections: number | null; + relationships?: { + password?: { + object: string; + attributes: { + password: string; + }; + }; + }; +}; +export type ClientServerDatabaseListResponse = { + object: string; + data: Array; +}; +export type ClientServerDatabaseResource = { + object: string; + attributes: ClientServerDatabaseAttributes; +}; +export type ClientServerLogsAttributes = { + lines: Array; +}; +export type ClientServerLogsResource = { + object: string; + attributes: ClientServerLogsAttributes; +}; +export type ClientServerPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; +export type ClientServerResource = { + object: string; + attributes: ClientServerAttributes; + meta?: { + is_server_owner: boolean; + user_permissions: Array; + }; +}; +export type ClientServerScheduleAttributes = { + id: number; + name: string; + cron: { + day_of_week: string; + day_of_month: string; + month: string; + hour: string; + minute: string; + }; + is_active: boolean; + is_processing: boolean; + only_when_online: boolean; + last_run_at: string | null; + next_run_at: string | null; + created_at: string; + updated_at: string; + relationships?: { + tasks?: ClientScheduleTaskListResponse | NullResource; + }; +}; +export type ClientServerScheduleListResponse = { + object: string; + data: Array; +}; +export type ClientServerScheduleResource = { + object: string; + attributes: ClientServerScheduleAttributes; +}; +export type ClientServerSubuserAttributes = { + uuid: string; + identifier: string; + username: string; + email: string; + image: string; + '2fa_enabled': boolean; + created_at: string; + permissions: Array<'websocket.connect' | 'control.console' | 'control.start' | 'control.stop' | 'control.restart' | 'user.create' | 'user.read' | 'user.update' | 'user.delete' | 'file.create' | 'file.read' | 'file.read-content' | 'file.update' | 'file.delete' | 'file.archive' | 'file.sftp' | 'backup.create' | 'backup.read' | 'backup.delete' | 'backup.download' | 'backup.restore' | 'allocation.read' | 'allocation.create' | 'allocation.update' | 'allocation.delete' | 'startup.read' | 'startup.update' | 'startup.docker-image' | 'database.create' | 'database.read' | 'database.update' | 'database.delete' | 'database.view_password' | 'schedule.create' | 'schedule.read' | 'schedule.update' | 'schedule.delete' | 'settings.rename' | 'settings.reinstall' | 'activity.read' | string>; +}; +export type ClientServerSubuserListResponse = { + object: string; + data: Array; +}; +export type ClientServerSubuserResource = { + object: string; + attributes: ClientServerSubuserAttributes; +}; +export type ClientSignedUrlAttributes = { + url: string; +}; +export type ClientSignedUrlResource = { + object: string; + attributes: ClientSignedUrlAttributes; +}; +export type ClientSshKeyAttributes = { + name: string; + fingerprint: string; + public_key: string; + created_at: string; +}; +export type ClientSshKeyListResponse = { + object: string; + data: Array; +}; +export type ClientSshKeyResource = { + object: string; + attributes: ClientSshKeyAttributes; +}; +export type ClientStatsAttributes = { + current_state: 'offline' | 'stopped' | 'starting' | 'running' | 'stopping'; + is_suspended: boolean; + resources: { + memory_bytes: number; + cpu_absolute: number; + disk_bytes: number; + network_rx_bytes: number; + network_tx_bytes: number; + uptime: number; + }; +}; +export type ClientStatsResource = { + object: string; + attributes: ClientStatsAttributes; +}; +export type ClientSystemPermissionsResponse = { + object: string; + attributes: { + permissions: { + [key: string]: { + description: string; + keys: { + [key: string]: string; + }; + }; + }; + }; +}; +export type ClientTwoFactorSetupResponse = { + data: { + image_url_data: string; + secret: string; + }; +}; +export type ClientUserAttributes = { + id: number; + admin: boolean; + username: string; + email: string; + first_name: string; + last_name: string; + language: string; +}; +export type ClientUserResource = { + object: string; + attributes: ClientUserAttributes; +}; +export type ErrorEnvelope = { + errors: Array<{ + code: string; + status: string; + detail: string; + }>; +}; +/** + * Values of the fields extensions add to this resource, keyed by extension id and then by field name. Each extension validates the values sent for it; extensions left out of a request keep their values. Responses about one resource include them; lists leave them out. + */ +export type ExtensionFields = { + [key: string]: { + [key: string]: string | number | boolean | Array | null; + }; +}; +export type NullResource = { + object: 'null_resource'; + attributes: null; +}; +export type PaginationMeta = { + total: number; + count: number; + per_page: number; + current_page: number; + total_pages: number; + links?: { + [key: string]: string; + }; +}; +export type ValidationErrorEnvelope = { + errors: Array<{ + code: string; + status: string; + detail: string; + meta?: { + source_field?: string; + rule?: string; + }; + }>; +}; +export type AdminInstallExtensionRequest = { + /** + * Extension archive to install. + */ + package: Blob | File; + /** + * Enable the extension after installing it. + */ + enable?: boolean; + /** + * Replace an installed extension with the same id. Without it, such a package is rejected with a 409 naming the id and both versions. + */ + replace?: boolean; +}; +export type AdminUpdateExtensionSettingsRequest = { + /** + * Field values keyed by input name, as described by the settings schema. + */ + settings: { + [key: string]: string | number | boolean | Array | null; + }; +}; +export type AdminUploadExtensionSettingFileRequest = { + /** + * File to store. + */ + file: Blob | File; +}; +export type AdminUpdateThemeSettingsRequest = { + /** + * Values keyed by setting name; null restores a setting's default. + */ + settings: { + [key: string]: string | number | boolean | null; + }; +}; +export type AdminUploadThemeImageRequest = { + /** + * Image to store. + */ + file: Blob | File; +}; +export type AdminCreateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The name first. Must be between 1 and 191 characters. + */ + name_first: string; + /** + * The name last. Must be between 1 and 191 characters. + */ + name_last: string; + preferences?: { + /** + * The preferences language. + */ + language?: string; + }; + extensions?: ExtensionFields; +}; +export type AdminUpdateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The name first. Must be between 1 and 191 characters. + */ + name_first: string; + /** + * The name last. Must be between 1 and 191 characters. + */ + name_last: string; + preferences?: { + /** + * The preferences language. + */ + language?: string; + }; + extensions?: ExtensionFields; +}; +export type AdminAttachServerMountRequest = { + /** + * The mount ID. Must match an existing stored value. + */ + mount_id: number; +}; +export type AdminCreateServerRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The owner user ID. Must match an existing stored value. + */ + owner_id: number; + /** + * The egg ID. Must match an existing stored value. + */ + egg_id: number; + /** + * The Docker image to use. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + docker_image: string; + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The memory limit in megabytes. Must be at least 0. + */ + memory: number; + /** + * The swap limit in megabytes. Must be at least -1. + */ + swap: number; + /** + * The disk limit in megabytes. Must be at least 0. + */ + disk: number; + /** + * The block IO weight. Must be between 10 and 1000. + */ + io: number; + /** + * CPU threads available to the server. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The CPU limit percentage. Must be at least 0. + */ + cpu: number; + /** + * The maximum number of databases allowed. Must be at least 0. + */ + database_limit?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocation_limit?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backup_limit?: number | null; + /** + * The primary allocation ID. + */ + primary_allocation_id: number; + /** + * The deploy. + */ + deploy?: { + /** + * Must be at least 1. + */ + locations: Array; + /** + * The deploy dedicated ip. This field is required when deploy is present. + */ + dedicated_ip?: boolean; + port_range?: Array; + /** + * Deploy tags (IDs or slugs) the deployment declares. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. Its deployment tags must match these exactly: a node reserved for a tag missing here is skipped, and every tag listed must be reserved on the node. + */ + tags?: Array; + }; + /** + * Whether the server should start when the operation completes. + */ + start_on_completion?: boolean; + /** + * Whether to place the server on a node whose egg tags the egg does not share. The node's deployment tags are never checked here. + */ + ignore_tags?: boolean; + secondary_allocations_ids?: Array; + extensions?: ExtensionFields; +}; +export type AdminUpdateServerDetailsRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * The owner user ID. Must match an existing stored value. + */ + owner_id: number; + /** + * A description for this resource. + */ + description?: string | null; + extensions?: ExtensionFields; +}; +export type AdminUpdateServerBuildRequest = { + /** + * The allocation ID. Must match an existing stored value. + */ + allocation_id: number; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The memory limit in megabytes. Must be at least 0. + */ + memory: number; + /** + * The swap limit in megabytes. Must be at least -1. + */ + swap: number; + /** + * The block IO weight. Must be between 10 and 1000. + */ + io: number; + /** + * The CPU limit percentage. Must be at least 0. + */ + cpu: number; + /** + * CPU threads available to the server. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The disk limit in megabytes. Must be at least 0. + */ + disk: number; + add_allocation_ids?: Array; + remove_allocation_ids?: Array; + /** + * The maximum number of databases allowed. Must be at least 0. + */ + database_limit?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocation_limit?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backup_limit?: number | null; +}; +export type AdminUpdateServerStartupRequest = { + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * The egg ID. Must match an existing stored value. + */ + egg_id: number; + /** + * The Docker image to use. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + docker_image: string; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; + /** + * Whether to place the server on a node whose egg tags the egg does not share. The node's deployment tags are never checked here. + */ + ignore_tags?: boolean; +}; +export type AdminUpdateServerSuspensionRequest = { + /** + * The suspended. + */ + suspended?: boolean | null; +}; +export type AdminTransferServerRequest = { + /** + * The destination node ID. + */ + node_id: number; + /** + * The primary allocation ID on the destination node. + */ + allocation_id: number; + /** + * Additional allocation IDs on the destination node. + */ + allocation_additional?: Array; + /** + * Whether to move the server to a node whose egg tags its egg does not share. + */ + ignore_tags?: boolean; +}; +export type AdminCreateServerDatabaseRequest = { + /** + * The database. Must contain only letters, numbers, dashes and underscores. Must be at least 1 character. Must not be greater than 48 characters. + */ + database: string; + /** + * The remote database address. Must match the regex /^[0-9%.]{1,15}$/. + */ + remote: string; + /** + * The database host ID. Must match an existing stored value. + */ + database_host_id: number; + /** + * The maximum number of connections allowed. Must be at least 0. + */ + max_connections?: number | null; +}; +export type AdminCreateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + extensions?: ExtensionFields; +}; +export type AdminUpdateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + /** + * Whether to rotate the daemon secret. + */ + reset_secret?: boolean; + extensions?: ExtensionFields; +}; +export type AdminSyncNodeGameTagsRequest = { + /** + * Must not be greater than 191 characters. + */ + tags?: Array; +}; +export type AdminSyncNodeDeploymentTagsRequest = { + /** + * Must not be greater than 191 characters. + */ + tags?: Array; +}; +export type AdminCreateNodeAllocationsRequest = { + ip?: Array; + /** + * An optional alias for this resource. Must not be greater than 255 characters. + */ + alias?: string | null; + ports?: Array; +}; +export type AdminBulkDeleteNodeAllocationsRequest = { + ids?: Array; +}; +export type AdminDeleteNodeAllocationIpBlockRequest = { + /** + * The IP address. + */ + ip: string; +}; +export type AdminUpdateNodeAllocationRequest = { + /** + * An optional alias for this resource. + */ + alias?: string | null; +}; +export type AdminCreateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; +export type AdminUpdateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; +export type AdminCreateMountRequest = { + /** + * The display name. Must be at least 2 characters. Must not be greater than 64 characters. + */ + name: string; + /** + * A description for this resource. Must not be greater than 191 characters. + */ + description?: string | null; + /** + * The source path. Must start with one of /. + */ + source: string; + /** + * The target path. Must start with one of /. + */ + target: string; + /** + * The read only. + */ + read_only?: boolean; + /** + * Whether users can mount this resource. + */ + user_mountable?: boolean; + extensions?: ExtensionFields; +}; +export type AdminUpdateMountRequest = { + /** + * The display name. Must be at least 2 characters. Must not be greater than 64 characters. + */ + name: string; + /** + * A description for this resource. Must not be greater than 191 characters. + */ + description?: string | null; + /** + * The source path. Must start with one of /. + */ + source: string; + /** + * The target path. Must start with one of /. + */ + target: string; + /** + * The read only. + */ + read_only?: boolean; + /** + * Whether users can mount this resource. + */ + user_mountable?: boolean; + extensions?: ExtensionFields; +}; +export type AdminAttachEggsToMountRequest = { + eggs: Array; +}; +export type AdminAttachNodesToMountRequest = { + nodes: Array; +}; +export type AdminImportCatalogEggRequest = { + /** + * The catalog id. Must not be greater than 255 characters. + */ + catalog_id: string; +}; +export type AdminCreateEggVariableRequest = { + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The environment variable name. Must not be one of SERVER_MEMORY, SERVER_IP, SERVER_PORT, ENV, HOME, USER, STARTUP, SERVER_UUID, UUID, in any letter case. Must match the regex /^[\w]{1,191}$/. + */ + env_variable: string; + /** + * Laravel validation rules applied to user-submitted values. + */ + rules: string; + /** + * The default value. + */ + default_value?: string; + options?: Array; +}; +export type AdminReorderEggVariablesRequest = { + order: Array; +}; +export type AdminUpdateEggVariableRequest = { + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The environment variable name. Must not be one of SERVER_MEMORY, SERVER_IP, SERVER_PORT, ENV, HOME, USER, STARTUP, SERVER_UUID, UUID, in any letter case. Must match the regex /^[\w]{1,191}$/. + */ + env_variable: string; + /** + * Laravel validation rules applied to user-submitted values. + */ + rules: string; + /** + * The default value. + */ + default_value?: string; + options?: Array; +}; +export type AdminUpdateEggInstallScriptRequest = { + /** + * The install script body. + */ + script_install?: string | null; + /** + * Whether the install script runs in privileged mode. + */ + script_is_privileged?: boolean; + /** + * The install container entrypoint. + */ + script_entry?: string; + /** + * The install container image. + */ + script_container?: string; + /** + * Another egg ID to copy the install script from. + */ + copy_script_from?: number | null; +}; +export type AdminUpdateEggFromImportRequest = { + /** + * The file to import. Must be a file. Must not be greater than 1000 kilobytes. + */ + import_file: Blob | File; +}; +export type AdminSyncEggTagsRequest = { + /** + * Must not be greater than 191 characters. + */ + tags?: Array; +}; +export type AdminImportEggRequest = { + /** + * The file to import. Must be a file. Must not be greater than 1000 kilobytes. + */ + import_file: Blob | File; +}; +export type AdminCreateEggRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * Docker images available to this resource. One image per line, optionally prefixed with a display name and a pipe (Java 21|ghcr.io/pterodactyl/yolks:java_21). Each must be at most 191 characters and match the regex /^[\w#\.\/\- ]*\|?~?[\w\.\/\-:@ ]*$/. + */ + docker_images: string; + /** + * Whether servers should use their allocation IP for outgoing traffic. + */ + force_outgoing_ip?: boolean; + /** + * File patterns denied by the file manager. + */ + file_denylist?: Array; + /** + * Feature flags enabled for this resource. + */ + features?: Array; + /** + * The startup command. + */ + startup: string; + /** + * The config from. Must match an existing stored value. + */ + config_from?: number | null; + /** + * The config stop. This field is required when config_from is not present. Must not be greater than 191 characters. + */ + config_stop?: string | null; + /** + * The config startup. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_startup?: string | null; + /** + * The config logs. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_logs?: string | null; + /** + * The config files. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_files?: string | null; + extensions?: ExtensionFields; +}; +export type AdminUpdateEggRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * Docker images available to this resource. One image per line, optionally prefixed with a display name and a pipe (Java 21|ghcr.io/pterodactyl/yolks:java_21). Each must be at most 191 characters and match the regex /^[\w#\.\/\- ]*\|?~?[\w\.\/\-:@ ]*$/. + */ + docker_images: string; + /** + * Whether servers should use their allocation IP for outgoing traffic. + */ + force_outgoing_ip?: boolean; + /** + * File patterns denied by the file manager. + */ + file_denylist?: Array; + /** + * Feature flags enabled for this resource. + */ + features?: Array; + /** + * The startup command. + */ + startup: string; + /** + * The config from. Must match an existing stored value. + */ + config_from?: number | null; + /** + * The config stop. This field is required when config_from is not present. Must not be greater than 191 characters. + */ + config_stop?: string | null; + /** + * The config startup. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_startup?: string | null; + /** + * The config logs. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_logs?: string | null; + /** + * The config files. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_files?: string | null; + extensions?: ExtensionFields; +}; +export type AdminCreateTagRequest = { + /** + * The display name. Must be between 1 and 191 characters. + */ + name: string; + /** + * The slug. Must be between 1 and 191 characters. + */ + slug: string; + /** + * The color. + */ + color?: string | null; +}; +export type AdminUpdateTagRequest = { + /** + * The display name. Must be between 1 and 191 characters. + */ + name: string; + /** + * The slug. Must be between 1 and 191 characters. + */ + slug: string; + /** + * The color. + */ + color?: string | null; +}; +export type AdminUpdateGeneralSettingsRequest = { + branding?: { + /** + * The branding name. Must not be greater than 191 characters. + */ + name: string; + }; + misc?: { + /** + * The misc required 2fa. + */ + required_2fa: 0 | 1 | 2; + }; + /** + * The default locale. + */ + default_locale: string; +}; +export type AdminUpdateMailSettingsRequest = { + smtp?: { + /** + * The smtp host. + */ + host: string; + /** + * The smtp port. Must be between 1 and 65535. + */ + port: number; + /** + * The smtp encryption. + */ + encryption?: 'tls' | 'ssl' | null; + /** + * The smtp username. Must not be greater than 191 characters. + */ + username?: string | null; + /** + * The smtp password. Must not be greater than 191 characters. + */ + password?: string | null; + /** + * The smtp from address. Must be a valid email address. + */ + from_address: string; + /** + * The smtp from name. Must not be greater than 191 characters. + */ + from_name?: string | null; + }; +}; +export type AdminUpdateAdvancedSettingsRequest = { + /** + * The recaptcha:enabled. + */ + 'recaptcha:enabled': 'true' | 'false'; + /** + * The recaptcha:secret key. Must not be greater than 191 characters. + */ + 'recaptcha:secret_key'?: string | null; + /** + * The recaptcha:website key. Must not be greater than 191 characters. + */ + 'recaptcha:website_key': string; + /** + * The pterodactyl:guzzle:timeout. Must be between 1 and 60. + */ + 'pterodactyl:guzzle:timeout': number; + /** + * The pterodactyl:guzzle:connect timeout. Must be between 1 and 60. + */ + 'pterodactyl:guzzle:connect_timeout': number; + /** + * The pterodactyl:client features:allocations:enabled. + */ + 'pterodactyl:client_features:allocations:enabled': 'true' | 'false'; + /** + * The pterodactyl:client features:allocations:range start. This field is required when pterodactyl:client_features:allocations:enabled is true. Must be between 1024 and 65535. + */ + 'pterodactyl:client_features:allocations:range_start'?: number | null; + /** + * The pterodactyl:client features:allocations:range end. This field is required when pterodactyl:client_features:allocations:enabled is true. Must be between 1024 and 65535. + */ + 'pterodactyl:client_features:allocations:range_end'?: number | null; +}; +export type AdminCreateDatabaseHostRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * The database host address. Must match the regex /^[\w\-\.]+$/. + */ + host: string; + /** + * The port number. Must be between 1 and 65535. + */ + port: number; + /** + * The username. Must not be greater than 32 characters. + */ + username: string; + /** + * The password. + */ + password?: string | null; + /** + * The node ID. Must match an existing stored value. + */ + node_id?: number | null; + extensions?: ExtensionFields; +}; +export type AdminUpdateDatabaseHostRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * The database host address. Must match the regex /^[\w\-\.]+$/. + */ + host: string; + /** + * The port number. Must be between 1 and 65535. + */ + port: number; + /** + * The username. Must not be greater than 32 characters. + */ + username: string; + /** + * The password. + */ + password?: string | null; + /** + * The node ID. Must match an existing stored value. + */ + node_id?: number | null; + extensions?: ExtensionFields; +}; +export type AdminCreateApiKeyRequest = { + /** + * The memo. Must not be greater than 500 characters. + */ + memo: string; + /** + * The r servers. Must be at least 0. Must not be greater than 3. + */ + r_servers?: number; + /** + * The r nodes. Must be at least 0. Must not be greater than 3. + */ + r_nodes?: number; + /** + * The r allocations. Must be at least 0. Must not be greater than 3. + */ + r_allocations?: number; + /** + * The r users. Must be at least 0. Must not be greater than 3. + */ + r_users?: number; + /** + * The r locations. Must be at least 0. Must not be greater than 3. + */ + r_locations?: number; + /** + * The r eggs. Must be at least 0. Must not be greater than 3. + */ + r_eggs?: number; + /** + * The r database hosts. Must be at least 0. Must not be greater than 3. + */ + r_database_hosts?: number; + /** + * The r server databases. Must be at least 0. Must not be greater than 3. + */ + r_server_databases?: number; +}; +export type AdminUpdateApiKeyRequest = { + /** + * The memo. Must not be greater than 500 characters. + */ + memo: string; + /** + * The r servers. Must be at least 0. Must not be greater than 3. + */ + r_servers?: number; + /** + * The r nodes. Must be at least 0. Must not be greater than 3. + */ + r_nodes?: number; + /** + * The r allocations. Must be at least 0. Must not be greater than 3. + */ + r_allocations?: number; + /** + * The r users. Must be at least 0. Must not be greater than 3. + */ + r_users?: number; + /** + * The r locations. Must be at least 0. Must not be greater than 3. + */ + r_locations?: number; + /** + * The r eggs. Must be at least 0. Must not be greater than 3. + */ + r_eggs?: number; + /** + * The r database hosts. Must be at least 0. Must not be greater than 3. + */ + r_database_hosts?: number; + /** + * The r server databases. Must be at least 0. Must not be greater than 3. + */ + r_server_databases?: number; +}; +export type ApplicationCreateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * The locale code. + */ + language?: 'en'; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The first name. Must be between 1 and 191 characters. + */ + first_name: string; + /** + * The last name. Must be between 1 and 191 characters. + */ + last_name: string; + extensions?: ExtensionFields; +}; +export type ApplicationUpdateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * The locale code. + */ + language?: 'en'; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The first name. Must be between 1 and 191 characters. + */ + first_name: string; + /** + * The last name. Must be between 1 and 191 characters. + */ + last_name: string; + extensions?: ExtensionFields; +}; +export type ApplicationCreateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + extensions?: ExtensionFields; +}; +export type ApplicationUpdateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + /** + * The reset secret. + */ + reset_secret?: boolean; + extensions?: ExtensionFields; +}; +export type ApplicationCreateNodeAllocationsRequest = { + /** + * The IP address. + */ + ip: string; + /** + * An optional alias for this resource. Must not be greater than 191 characters. + */ + alias?: string | null; + ports?: Array; +}; +export type ApplicationCreateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; +export type ApplicationUpdateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; +export type ApplicationCreateServerRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The user ID. Must match an existing stored value. + */ + user: number; + /** + * The egg. Must match an existing stored value. + */ + egg: string; + /** + * The Docker image to use. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + docker_image: string; + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The limits. + */ + limits: { + /** + * The limits memory. Must be at least 0. + */ + memory: number; + /** + * The limits swap. Must be at least -1. + */ + swap: number; + /** + * The limits disk. Must be at least 0. + */ + disk: number; + /** + * The limits io. Must be between 10 and 1000. + */ + io: number; + /** + * The limits threads. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The limits cpu. Must be at least 0. + */ + cpu: number; + }; + /** + * The feature limits. + */ + feature_limits: { + /** + * The maximum number of databases allowed. Must be at least 0. + */ + databases?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocations?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backups?: number | null; + }; + allocation?: { + /** + * The allocation default. + */ + default: number; + additional?: Array; + }; + /** + * The deploy. + */ + deploy?: { + /** + * Must be at least 1. + */ + locations: Array; + /** + * The deploy dedicated ip. + */ + dedicated_ip?: boolean; + port_range?: Array; + /** + * Deploy tags (IDs or slugs) the deployment declares. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. Its deployment tags must match these exactly: a node reserved for a tag missing here is skipped, and every tag listed must be reserved on the node. + */ + tags?: Array; + }; + /** + * Whether the server should start when the operation completes. + */ + start_on_completion?: boolean; + extensions?: ExtensionFields; +}; +export type ApplicationUpdateServerDetailsRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * The user ID. Must match an existing stored value. + */ + user: number; + /** + * A description for this resource. + */ + description?: string | null; + extensions?: ExtensionFields; +}; +export type ApplicationUpdateServerBuildRequest = { + /** + * The allocation ID. Must match an existing stored value. + */ + allocation: string; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The limits. + */ + limits?: { + /** + * The limits memory. This field is required when limits is present. Must be at least 0. + */ + memory?: number; + /** + * The limits swap. This field is required when limits is present. Must be at least -1. + */ + swap?: number; + /** + * The limits io. This field is required when limits is present. Must be between 10 and 1000. + */ + io?: number; + /** + * The limits cpu. This field is required when limits is present. Must be at least 0. + */ + cpu?: number; + /** + * The limits threads. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The limits disk. This field is required when limits is present. Must be at least 0. + */ + disk?: number; + }; + /** + * The memory limit in megabytes. This field is required when limits is not present. Must be at least 0. + */ + memory?: number; + /** + * The swap limit in megabytes. This field is required when limits is not present. Must be at least -1. + */ + swap?: number; + /** + * The block IO weight. This field is required when limits is not present. Must be between 10 and 1000. + */ + io?: number; + /** + * The CPU limit percentage. This field is required when limits is not present. Must be at least 0. + */ + cpu?: number; + /** + * CPU threads available to the server. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The disk limit in megabytes. This field is required when limits is not present. Must be at least 0. + */ + disk?: number; + add_allocations?: Array; + remove_allocations?: Array; + /** + * The feature limits. + */ + feature_limits: { + /** + * The maximum number of databases allowed. Must be at least 0. + */ + databases?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocations?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backups?: number | null; + }; +}; +export type ApplicationUpdateServerStartupRequest = { + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * The egg. Must match an existing stored value. + */ + egg: string; + /** + * The image. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + image: string; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; +}; +export type ApplicationCreateServerDatabaseRequest = { + /** + * The database. Must contain only letters, numbers, dashes and underscores. Must be at least 1 character. Must not be greater than 48 characters. + */ + database: string; + /** + * The remote database address. Must match the regex /^[0-9%.]{1,15}$/. + */ + remote: string; + /** + * The database host address. Must match an existing stored value. + */ + host: number; +}; +export type AuthLoginRequest = { + /** + * The account username or email address. + */ + user: string; + /** + * The account password. + */ + password: string; + /** + * The reCAPTCHA token when reCAPTCHA is enabled. + */ + 'g-recaptcha-response'?: string | null; +}; +export type AuthCompleteLoginCheckpointRequest = { + /** + * The confirmation token returned by the login endpoint. + */ + confirmation_token: string; + /** + * The six-digit TOTP code. Required when recovery_token is not provided. + */ + authentication_code?: string | null; + /** + * A recovery token. Required when authentication_code is not provided. + */ + recovery_token?: string | null; +}; +export type AuthRequestPasswordResetEmailRequest = { + /** + * The account email address. + */ + email: string; + /** + * The reCAPTCHA token when reCAPTCHA is enabled. + */ + 'g-recaptcha-response'?: string | null; +}; +export type AuthResetPasswordRequest = { + /** + * The password reset token. + */ + token: string; + /** + * The account email address. + */ + email: string; + /** + * The new account password. Must be at least eight characters. + */ + password: string; + /** + * Confirmation matching the new account password. + */ + password_confirmation: string; + /** + * The reCAPTCHA token when reCAPTCHA is enabled. + */ + 'g-recaptcha-response'?: string | null; +}; +export type ClientEnableTwoFactorAuthenticationRequest = { + /** + * The six-digit TOTP code generated by the authenticator app. + */ + code: string; + /** + * The current account password. + */ + password: string; +}; +export type ClientDisableTwoFactorAuthenticationRequest = { + /** + * The current account password. + */ + password: string; +}; +export type ClientUpdateAccountEmailRequest = { + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The current account password. + */ + password: string; +}; +export type ClientUpdateAccountPasswordRequest = { + /** + * The current account password. + */ + current_password: string; + /** + * The password. Must be at least 8 characters. + */ + password: string; + /** + * Confirmation matching the new password. + */ + password_confirmation: string; +}; +export type ClientCreateAccountApiKeyRequest = { + /** + * A description for this resource. Must not be greater than 500 characters. + */ + description: string; + allowed_ips?: Array; +}; +export type ClientCreateSshKeyRequest = { + /** + * The display name. + */ + name: string; + /** + * The SSH public key. Must not be greater than 16384 characters. + */ + public_key: string; +}; +export type ClientDeleteSshKeyRequest = { + /** + * The SSH key fingerprint. + */ + fingerprint: string; +}; +export type ClientSendServerCommandRequest = { + /** + * The console command to send. Must be at least 1 character. + */ + command: string; +}; +export type ClientSendPowerActionRequest = { + /** + * The power signal. + */ + signal: 'start' | 'stop' | 'restart' | 'kill'; +}; +export type ClientCreateServerDatabaseRequest = { + /** + * The database. Must contain only letters, numbers, dashes and underscores. Must be at least 3 characters. Must not be greater than 48 characters. + */ + database: string; + /** + * The remote database address. Must match the regex /^[\w\-\/.%:]+$/. + */ + remote: string; +}; +export type ClientRenameFilesRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + files?: Array<{ + /** + * Must not be greater than 2048 characters. + */ + to: string; + /** + * Must not be greater than 2048 characters. + */ + from: string; + }>; +}; +export type ClientCopyFileRequest = { + /** + * The location. Must not be greater than 2048 characters. + */ + location: string; +}; +/** + * Raw file contents to write. + */ +export type ClientWriteFileContentsRequest = string; +export type ClientCompressFilesRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * Must not be greater than 2048 characters. + */ + files?: Array; +}; +export type ClientDecompressFileRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * The file path. Must not be greater than 2048 characters. + */ + file: string; +}; +export type ClientDeleteFilesRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * Must not be greater than 2048 characters. + */ + files?: Array; +}; +export type ClientCreateFolderRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * The display name. Must not be greater than 255 characters. + */ + name: string; +}; +export type ClientChangeFilePermissionsRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * File paths affected by the operation. + */ + files: Array<{ + /** + * Must not be greater than 2048 characters. + */ + file: string; + /** + * Must match the regex /^[0-7]{3,4}$/. + */ + mode: string; + }>; +}; +export type ClientPullRemoteFileRequest = { + /** + * The URL. Must be a valid URL. Must not be greater than 2048 characters. + */ + url: string; + /** + * The directory path. Must not be greater than 2048 characters. + */ + directory?: string | null; + /** + * The file name. Must not be greater than 255 characters. + */ + filename?: string | null; + /** + * The use header. + */ + use_header?: boolean; + /** + * The foreground. + */ + foreground?: boolean; +}; +export type ClientCreateServerScheduleRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * Whether the resource is active. + */ + is_active?: boolean; + /** + * The minute. + */ + minute: string; + /** + * The hour. + */ + hour: string; + /** + * The day of month. + */ + day_of_month: string; + /** + * The month. + */ + month: string; + /** + * The day of week. + */ + day_of_week: string; + /** + * Whether the schedule should run only when the server is online. + */ + only_when_online?: boolean; +}; +export type ClientUpdateServerScheduleRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * Whether the resource is active. + */ + is_active?: boolean; + /** + * The minute. + */ + minute: string; + /** + * The hour. + */ + hour: string; + /** + * The day of month. + */ + day_of_month: string; + /** + * The month. + */ + month: string; + /** + * The day of week. + */ + day_of_week: string; + /** + * Whether the schedule should run only when the server is online. + */ + only_when_online?: boolean; +}; +export type ClientCreateScheduleTaskRequest = { + /** + * The action to perform. + */ + action: 'command' | 'power' | 'backup'; + /** + * The payload. This field is required unless action is in backup. + */ + payload?: string | null; + /** + * The delay before this task runs. Must be at least 0. Must not be greater than 900. + */ + time_offset: number; + /** + * The task execution order. Must be at least 1. + */ + sequence_id?: number; + /** + * Whether the schedule continues when this task fails. + */ + continue_on_failure?: boolean; +}; +export type ClientUpdateScheduleTaskRequest = { + /** + * The action to perform. + */ + action: 'command' | 'power' | 'backup'; + /** + * The payload. This field is required unless action is in backup. + */ + payload?: string | null; + /** + * The delay before this task runs. Must be at least 0. Must not be greater than 900. + */ + time_offset: number; + /** + * The task execution order. Must be at least 1. + */ + sequence_id?: number; + /** + * Whether the schedule continues when this task fails. + */ + continue_on_failure?: boolean; +}; +export type ClientUpdateAllocationNotesRequest = { + /** + * Notes for this resource. Must not be greater than 256 characters. + */ + notes?: string | null; +}; +export type ClientCreateServerSubuserRequest = { + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * Permissions granted to the user. + */ + permissions?: Array<'websocket.connect' | 'control.console' | 'control.start' | 'control.stop' | 'control.restart' | 'user.create' | 'user.read' | 'user.update' | 'user.delete' | 'file.create' | 'file.read' | 'file.read-content' | 'file.update' | 'file.delete' | 'file.archive' | 'file.sftp' | 'backup.create' | 'backup.read' | 'backup.delete' | 'backup.download' | 'backup.restore' | 'allocation.read' | 'allocation.create' | 'allocation.update' | 'allocation.delete' | 'startup.read' | 'startup.update' | 'startup.docker-image' | 'database.create' | 'database.read' | 'database.update' | 'database.delete' | 'database.view_password' | 'schedule.create' | 'schedule.read' | 'schedule.update' | 'schedule.delete' | 'settings.rename' | 'settings.reinstall' | 'activity.read' | string>; +}; +export type ClientUpdateServerSubuserRequest = { + /** + * Permissions granted to the user. + */ + permissions?: Array<'websocket.connect' | 'control.console' | 'control.start' | 'control.stop' | 'control.restart' | 'user.create' | 'user.read' | 'user.update' | 'user.delete' | 'file.create' | 'file.read' | 'file.read-content' | 'file.update' | 'file.delete' | 'file.archive' | 'file.sftp' | 'backup.create' | 'backup.read' | 'backup.delete' | 'backup.download' | 'backup.restore' | 'allocation.read' | 'allocation.create' | 'allocation.update' | 'allocation.delete' | 'startup.read' | 'startup.update' | 'startup.docker-image' | 'database.create' | 'database.read' | 'database.update' | 'database.delete' | 'database.view_password' | 'schedule.create' | 'schedule.read' | 'schedule.update' | 'schedule.delete' | 'settings.rename' | 'settings.reinstall' | 'activity.read' | string>; +}; +export type ClientCreateServerBackupRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name?: string | null; + /** + * Whether the resource is locked. + */ + is_locked?: boolean | null; + /** + * Whether this item should be ignored. + */ + ignored?: string | null; +}; +export type ClientRestoreServerBackupRequest = { + /** + * The truncate. + */ + truncate: boolean; +}; +export type ClientUpdateStartupVariableRequest = { + /** + * The key. + */ + key: string; + /** + * The value. + */ + value?: string; +}; +export type ClientRenameServerRequest = { + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; +}; +export type ClientSetServerDockerImageRequest = { + /** + * The Docker image to use. + */ + docker_image: string; +}; +export type AdminListActivityFilterOptionsResponseBody = { + data?: { + events?: Array; + users?: Array<{ + id?: number; + username?: string; + email?: string; + }>; + }; +}; +export type AdminListExtensionsResponseBody = { + data?: Array<{ + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }>; + meta?: { + enabled?: boolean; + directory?: string; + }; +}; +export type AdminInstallExtensionResponseBody = { + data?: { + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }; +}; +export type AdminGetExtensionSettingsResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; +export type AdminUpdateExtensionSettingsResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; +/** + * Icon image bytes. + */ +export type AdminGetExtensionIcon200ImagePngResponseBody = Blob | File; +/** + * Icon image bytes. + */ +export type AdminGetExtensionIcon200ImageJpegResponseBody = Blob | File; +/** + * Icon image bytes. + */ +export type AdminGetExtensionIcon200ImageWebpResponseBody = Blob | File; +export type AdminUploadExtensionSettingFileResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; +export type AdminClearExtensionSettingFileResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; +export type AdminEnableExtensionResponseBody = { + data?: { + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }; +}; +export type AdminDisableExtensionResponseBody = { + data?: { + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }; +}; +export type AdminListNodeAllocationIpsResponseBody = { + data?: Array; +}; +export type AdminListEggCatalogResponseBody = { + /** + * The available catalog entries. + */ + data: Array<{ + /** + * The catalog identifier used to import this egg. + */ + id: string; + /** + * The egg name. + */ + name: string; + /** + * The egg description, or an empty string. + */ + description: string; + /** + * The catalog category, or an empty string. + */ + category: string; + /** + * The egg page on eggs.pterodactyl.io. + */ + source_url: string; + }>; +}; +/** + * Raw egg export JSON document returned as a text download. + */ +export type AdminExportEggResponseBody = string; +export type ApplicationGetNodeConfigurationResponseBody = { + debug?: boolean; + uuid?: string; + token_id?: string; + token?: string; + api?: { + host?: string; + port?: number; + ssl?: { + enabled?: boolean; + cert?: string; + key?: string; + }; + upload_limit?: number; + }; + system?: { + data?: string; + sftp?: { + bind_port?: number; + }; + }; + allowed_mounts?: Array; + remote?: string; +}; +export type ClientGetExtensionJobProgressResponseBody = { + /** + * Latest progress snapshot. + */ + data: { + /** + * Progress job UUID. + */ + id: string; + /** + * Extension identifier. + */ + extension: string; + /** + * Job state. + */ + status: 'running' | 'completed' | 'failed'; + /** + * Progress from zero to one hundred. + */ + percent: number; + /** + * Current progress message. + */ + message: string; + /** + * Monotonically increasing update sequence. + */ + sequence: number; + /** + * Update timestamp in ISO 8601 format. + */ + updated_at: string; + }; +}; +export type ClientListAccountActivityFilterOptionsResponseBody = { + data?: { + events?: Array; + users?: Array<{ + id?: number; + username?: string; + email?: string; + }>; + }; +}; +export type ClientGetWebsocketCredentialsResponseBody = { + data?: { + token?: string; + socket?: string; + }; +}; +export type ClientGetServerExtensionJobProgressResponseBody = { + /** + * Latest progress snapshot. + */ + data: { + /** + * Progress job UUID. + */ + id: string; + /** + * Extension identifier. + */ + extension: string; + /** + * Job state. + */ + status: 'running' | 'completed' | 'failed'; + /** + * Progress from zero to one hundred. + */ + percent: number; + /** + * Current progress message. + */ + message: string; + /** + * Monotonically increasing update sequence. + */ + sequence: number; + /** + * Update timestamp in ISO 8601 format. + */ + updated_at: string; + }; +}; +export type ClientListServerActivityFilterOptionsResponseBody = { + data?: { + events?: Array; + users?: Array<{ + id?: number; + username?: string; + email?: string; + }>; + }; +}; +export type ClientGetFileContentsResponseBody = string; +/** + * Filter activity by event name. + */ +export type AdminListActivityFilterEventQueryParameter = string; +/** + * Filter activity by originating IP address. + */ +export type AdminListActivityFilterIpQueryParameter = string; +/** + * Filter activity by the username or email of the user that performed it. + */ +export type AdminListActivityFilterUserQueryParameter = string; +/** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ +export type AdminListActivityFilterUserIdQueryParameter = number; +/** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ +export type AdminListActivityFilterEventNameQueryParameter = string; +/** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ +export type AdminListActivitySortQueryParameter = 'timestamp' | '-timestamp'; +/** + * Page number to return. + */ +export type AdminListActivityPageQueryParameter = number; +/** + * Results to return per page. The maximum is 100. + */ +export type AdminListActivityPerPageQueryParameter = number; +/** + * Comma-separated relationships to include. Supports actor. + */ +export type AdminListActivityIncludeQueryParameter = string; +export type AdminGetExtensionSettingsExtensionPathParameter = string; +export type AdminGetExtensionIconExtensionPathParameter = string; +export type AdminUploadExtensionSettingFileExtensionPathParameter = string; +export type AdminUploadExtensionSettingFileInputPathParameter = string; +export type AdminEnableExtensionExtensionPathParameter = string; +export type AdminDisableExtensionExtensionPathParameter = string; +export type AdminRemoveExtensionExtensionPathParameter = string; +export type AdminGetThemeSettingsThemePathParameter = string; +export type AdminActivateThemeThemePathParameter = string; +export type AdminPreviewThemeThemePathParameter = string; +export type AdminUploadThemeImageThemePathParameter = string; +export type AdminUploadThemeImageSettingPathParameter = string; +/** + * Page number to retrieve. + */ +export type AdminListUsersPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListUsersPerPageQueryParameter = number; +/** + * Filter users by email address. + */ +export type AdminListUsersFilterEmailQueryParameter = string; +/** + * Filter users by UUID. + */ +export type AdminListUsersFilterUuidQueryParameter = string; +/** + * Filter users by username. + */ +export type AdminListUsersFilterUsernameQueryParameter = string; +/** + * Filter users by external identifier. + */ +export type AdminListUsersFilterExternalIdQueryParameter = string; +/** + * Search users by username, email, or UUID. + */ +export type AdminListUsersFilterSearchQueryParameter = string; +/** + * Sort users by id, uuid, email, username, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListUsersSortQueryParameter = string; +export type AdminGetUserByExternalIdExternalIdPathParameter = string; +/** + * Comma-separated relationships to include. Supports servers. + */ +export type AdminGetUserIncludeQueryParameter = string; +export type AdminGetUserUserIdPathParameter = number; +export type AdminDisableUserTwoFactorAuthenticationUserIdPathParameter = number; +export type AdminGetNodeSystemInformationNodeIdPathParameter = number; +export type AdminCreateNodeDeployTokenNodeIdPathParameter = number; +export type AdminGetNodeUtilizationNodeIdPathParameter = number; +export type AdminListServerMountsServerAdminIdentifierPathParameter = string; +export type AdminDetachServerMountServerAdminIdentifierPathParameter = string; +export type AdminDetachServerMountMountIdPathParameter = number; +/** + * Search servers by UUID, name, owner, node, allocation, or external identifier. + */ +export type AdminListServersFilterWildcardQueryParameter = string; +/** + * Filter servers by UUID. + */ +export type AdminListServersFilterUuidQueryParameter = string; +/** + * Filter servers by short UUID identifier. + */ +export type AdminListServersFilterUuidShortQueryParameter = string; +/** + * Filter servers by name. + */ +export type AdminListServersFilterNameQueryParameter = string; +/** + * Filter servers by external identifier. + */ +export type AdminListServersFilterExternalIdQueryParameter = string; +/** + * Filter servers by Docker image. + */ +export type AdminListServersFilterImageQueryParameter = string; +/** + * Filter servers by node ID. + */ +export type AdminListServersFilterNodeIdQueryParameter = number; +/** + * Filter servers by owner user ID. + */ +export type AdminListServersFilterOwnerIdQueryParameter = number; +/** + * Sort servers by id, uuid, name, or creation time. Prefix with a hyphen for descending order. + */ +export type AdminListServersSortQueryParameter = string; +/** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ +export type AdminListServersIncludeQueryParameter = string; +/** + * Page number to retrieve. + */ +export type AdminListServersPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListServersPerPageQueryParameter = number; +export type AdminGetServerByExternalIdExternalIdPathParameter = string; +/** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ +export type AdminGetServerIncludeQueryParameter = string; +export type AdminGetServerServerAdminIdentifierPathParameter = string; +export type AdminUpdateServerDetailsServerAdminIdentifierPathParameter = string; +export type AdminUpdateServerBuildServerAdminIdentifierPathParameter = string; +export type AdminUpdateServerStartupServerAdminIdentifierPathParameter = string; +export type AdminUpdateServerSuspensionServerAdminIdentifierPathParameter = string; +export type AdminReinstallServerServerAdminIdentifierPathParameter = string; +export type AdminRebuildServerServerAdminIdentifierPathParameter = string; +export type AdminGetServerTransferProgressServerAdminIdentifierPathParameter = string; +export type AdminTransferServerServerAdminIdentifierPathParameter = string; +export type AdminToggleServerInstallStateServerAdminIdentifierPathParameter = string; +export type AdminForceDeleteServerServerAdminIdentifierPathParameter = string; +/** + * Comma-separated relationships to include. Supports "password". + */ +export type AdminListServerDatabasesIncludeQueryParameter = 'password'; +export type AdminListServerDatabasesServerAdminIdentifierPathParameter = string; +/** + * Comma-separated relationships to include. Supports "password". + */ +export type AdminGetServerDatabaseIncludeQueryParameter = 'password'; +export type AdminGetServerDatabaseServerAdminIdentifierPathParameter = string; +export type AdminGetServerDatabaseDatabaseIdPathParameter = string; +export type AdminRotateServerDatabasePasswordServerAdminIdentifierPathParameter = string; +export type AdminRotateServerDatabasePasswordDatabaseIdPathParameter = string; +/** + * Filter backups by UUID. + */ +export type AdminListServerBackupsFilterUuidQueryParameter = string; +/** + * Filter backups by name. + */ +export type AdminListServerBackupsFilterNameQueryParameter = string; +/** + * Sort backups by id, bytes, or created_at. Prefix with a hyphen for descending order. + */ +export type AdminListServerBackupsSortQueryParameter = string; +/** + * Results to return per page. + */ +export type AdminListServerBackupsPerPageQueryParameter = number; +export type AdminListServerBackupsServerAdminIdentifierPathParameter = string; +export type AdminToggleServerBackupLockServerAdminIdentifierPathParameter = string; +export type AdminToggleServerBackupLockBackupUuidPathParameter = string; +/** + * Filter nodes by UUID. + */ +export type AdminListNodesFilterUuidQueryParameter = string; +/** + * Filter nodes by name. + */ +export type AdminListNodesFilterNameQueryParameter = string; +/** + * Filter nodes by FQDN. + */ +export type AdminListNodesFilterFqdnQueryParameter = string; +/** + * Sort nodes by id, uuid, name, memory, disk, or creation time. Prefix with a hyphen for descending order. + */ +export type AdminListNodesSortQueryParameter = string; +/** + * Page number to return. + */ +export type AdminListNodesPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListNodesPerPageQueryParameter = number; +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ +export type AdminListNodesIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'allocations,location' | 'location,servers' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ +export type AdminGetNodeIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'allocations,location' | 'location,servers' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; +export type AdminGetNodeNodeIdPathParameter = number; +export type AdminGetNodeConfigurationNodeIdPathParameter = number; +export type AdminSyncNodeGameTagsNodeIdPathParameter = number; +export type AdminSyncNodeDeploymentTagsNodeIdPathParameter = number; +/** + * Filter allocations by exact IP address. + */ +export type AdminListNodeAllocationsFilterIpQueryParameter = string; +/** + * Filter allocations by exact port. + */ +export type AdminListNodeAllocationsFilterPortQueryParameter = number; +/** + * Filter allocations by IP alias. + */ +export type AdminListNodeAllocationsFilterIpAliasQueryParameter = string; +/** + * Filter allocations by server ID, or pass an empty value to return unassigned allocations. + */ +export type AdminListNodeAllocationsFilterServerIdQueryParameter = string; +/** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ +export type AdminListNodeAllocationsSortQueryParameter = string; +/** + * Page number to return. + */ +export type AdminListNodeAllocationsPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListNodeAllocationsPerPageQueryParameter = number; +export type AdminListNodeAllocationsNodeIdPathParameter = number; +export type AdminListNodeAllocationIpsNodeIdPathParameter = number; +/** + * Filter allocations by exact IP address. + */ +export type AdminListAvailableNodeAllocationsFilterIpQueryParameter = string; +/** + * Filter allocations by exact port. + */ +export type AdminListAvailableNodeAllocationsFilterPortQueryParameter = number; +/** + * Filter allocations by IP alias. + */ +export type AdminListAvailableNodeAllocationsFilterIpAliasQueryParameter = string; +/** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ +export type AdminListAvailableNodeAllocationsSortQueryParameter = string; +/** + * Results to return per page. + */ +export type AdminListAvailableNodeAllocationsPerPageQueryParameter = number; +export type AdminListAvailableNodeAllocationsNodeIdPathParameter = number; +export type AdminDeleteNodeAllocationIpBlockNodeIdPathParameter = number; +export type AdminUpdateNodeAllocationNodeIdPathParameter = number; +export type AdminUpdateNodeAllocationAllocationIdPathParameter = number; +/** + * Filter locations by short identifier. + */ +export type AdminListLocationsFilterShortQueryParameter = string; +/** + * Filter locations by long description. + */ +export type AdminListLocationsFilterLongQueryParameter = string; +/** + * Sort locations by ID, short identifier, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListLocationsSortQueryParameter = string; +/** + * Page number to return. + */ +export type AdminListLocationsPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListLocationsPerPageQueryParameter = number; +/** + * Comma-separated relationships to include. Supports "nodes" and "servers". + */ +export type AdminGetLocationIncludeQueryParameter = 'nodes' | 'servers' | 'nodes,servers'; +export type AdminGetLocationLocationIdPathParameter = number; +export type AdminListEligibleLocationNodesLocationIdPathParameter = number; +/** + * Filter mounts by name. + */ +export type AdminListMountsFilterNameQueryParameter = string; +/** + * Sort mounts by id or name. Prefix with a hyphen for descending order. + */ +export type AdminListMountsSortQueryParameter = string; +/** + * Page number to return. + */ +export type AdminListMountsPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListMountsPerPageQueryParameter = number; +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminListMountsIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminGetMountIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; +export type AdminGetMountMountIdPathParameter = number; +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminAttachEggsToMountIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; +export type AdminAttachEggsToMountMountIdPathParameter = number; +export type AdminDetachEggFromMountMountIdPathParameter = number; +export type AdminDetachEggFromMountEggIdPathParameter = number; +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminAttachNodesToMountIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; +export type AdminAttachNodesToMountMountIdPathParameter = number; +export type AdminDetachNodeFromMountMountIdPathParameter = number; +export type AdminDetachNodeFromMountNodeIdPathParameter = number; +/** + * Comma-separated relationships to include. Unknown includes are ignored. + */ +export type AdminListEggVariablesIncludeQueryParameter = string; +export type AdminListEggVariablesEggIdPathParameter = number; +export type AdminReorderEggVariablesEggIdPathParameter = number; +export type AdminUpdateEggVariableEggIdPathParameter = number; +export type AdminUpdateEggVariableVariableIdPathParameter = number; +export type AdminGetEggInstallScriptEggIdPathParameter = number; +export type AdminExportEggEggIdPathParameter = number; +export type AdminUpdateEggFromImportEggIdPathParameter = number; +export type AdminSyncEggTagsEggIdPathParameter = number; +/** + * Filter eggs by name. + */ +export type AdminListEggsFilterNameQueryParameter = string; +/** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ +export type AdminListEggsFilterTagQueryParameter = string; +/** + * Sort eggs by id or name. Prefix with a hyphen for descending order. + */ +export type AdminListEggsSortQueryParameter = string; +/** + * Page number to return. + */ +export type AdminListEggsPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListEggsPerPageQueryParameter = number; +/** + * Comma-separated relationships to include: variables, tags, servers. + */ +export type AdminListEggsIncludeQueryParameter = 'variables' | 'tags' | 'servers' | 'variables,tags' | 'variables,servers' | 'tags,servers' | 'variables,tags,servers'; +/** + * Comma-separated relationships to include: variables, tags, servers. + */ +export type AdminGetEggIncludeQueryParameter = 'variables' | 'tags' | 'servers' | 'variables,tags' | 'variables,servers' | 'tags,servers' | 'variables,tags,servers'; +export type AdminGetEggEggIdPathParameter = number; +/** + * Filter tags by name. + */ +export type AdminListTagsFilterNameQueryParameter = string; +/** + * Filter tags by slug. + */ +export type AdminListTagsFilterSlugQueryParameter = string; +/** + * Sort tags by id, name, or slug. Prefix with a hyphen for descending order. + */ +export type AdminListTagsSortQueryParameter = string; +/** + * Page number to return. + */ +export type AdminListTagsPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListTagsPerPageQueryParameter = number; +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ +export type AdminListTagsIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ +export type AdminGetTagIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; +export type AdminGetTagTagIdPathParameter = number; +/** + * Page number to retrieve. + */ +export type AdminListDatabaseHostsPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListDatabaseHostsPerPageQueryParameter = number; +/** + * Filter hosts by name. + */ +export type AdminListDatabaseHostsFilterNameQueryParameter = string; +/** + * Filter hosts by address or hostname. + */ +export type AdminListDatabaseHostsFilterHostQueryParameter = string; +/** + * Sort hosts by ID, name, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListDatabaseHostsSortQueryParameter = string; +/** + * Comma-separated relationships to include. Supports node and databases. + */ +export type AdminListDatabaseHostsIncludeQueryParameter = string; +/** + * Comma-separated relationships to include. Supports node and databases. + */ +export type AdminGetDatabaseHostIncludeQueryParameter = string; +export type AdminGetDatabaseHostDatabaseHostIdPathParameter = string; +/** + * Page number to retrieve. + */ +export type AdminListDatabaseHostDatabasesPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListDatabaseHostDatabasesPerPageQueryParameter = number; +export type AdminListDatabaseHostDatabasesDatabaseHostIdPathParameter = string; +/** + * Filter keys by memo. + */ +export type AdminListApiKeysFilterMemoQueryParameter = string; +/** + * Filter keys by identifier. + */ +export type AdminListApiKeysFilterIdentifierQueryParameter = string; +/** + * Sort keys by ID, memo, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListApiKeysSortQueryParameter = string; +/** + * Page number to retrieve. + */ +export type AdminListApiKeysPageQueryParameter = number; +/** + * Results to return per page. + */ +export type AdminListApiKeysPerPageQueryParameter = number; +export type AdminGetApiKeyIdentifierPathParameter = string; +/** + * Number of users to return per page, up to 100. + */ +export type ApplicationListUsersPerPageQueryParameter = number; +/** + * Filter users by email address. + */ +export type ApplicationListUsersFilterEmailQueryParameter = string; +/** + * Filter users by UUID. + */ +export type ApplicationListUsersFilterUuidQueryParameter = string; +/** + * Filter users by username. + */ +export type ApplicationListUsersFilterUsernameQueryParameter = string; +/** + * Filter users by external identifier. + */ +export type ApplicationListUsersFilterExternalIdQueryParameter = string; +/** + * Sort users by id or uuid. Prefix with "-" for descending order. + */ +export type ApplicationListUsersSortQueryParameter = 'id' | '-id' | 'uuid' | '-uuid'; +/** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ +export type ApplicationListUsersIncludeQueryParameter = 'servers'; +/** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ +export type ApplicationGetUserIncludeQueryParameter = 'servers'; +export type ApplicationGetUserUserIdPathParameter = number; +export type ApplicationGetUserByExternalIdExternalIdPathParameter = string; +/** + * Number of nodes to return per page, up to 100. + */ +export type ApplicationListNodesPerPageQueryParameter = number; +/** + * Filter nodes by UUID. + */ +export type ApplicationListNodesFilterUuidQueryParameter = string; +/** + * Filter nodes by name. + */ +export type ApplicationListNodesFilterNameQueryParameter = string; +/** + * Filter nodes by fully qualified domain name. + */ +export type ApplicationListNodesFilterFqdnQueryParameter = string; +/** + * Filter nodes by daemon token identifier. + */ +export type ApplicationListNodesFilterDaemonTokenIdQueryParameter = string; +/** + * Sort nodes by id, uuid, memory, or disk. Prefix with "-" for descending order. + */ +export type ApplicationListNodesSortQueryParameter = 'id' | '-id' | 'uuid' | '-uuid' | 'memory' | '-memory' | 'disk' | '-disk'; +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ +export type ApplicationListNodesIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'location,allocations' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; +/** + * Memory required for the deployment, in megabytes. + */ +export type ApplicationListDeployableNodesMemoryQueryParameter = number; +/** + * Disk required for the deployment, in megabytes. + */ +export type ApplicationListDeployableNodesDiskQueryParameter = number; +/** + * Restrict results to these location IDs. + */ +export type ApplicationListDeployableNodesLocationIdsQueryParameter = Array; +/** + * Deploy tags (IDs or slugs) the deployment declares. They must match a node's deployment tags exactly: a node reserved for a tag missing here is left out, and every tag listed must be reserved on the node. Without tags, only nodes with no reservations are returned. + */ +export type ApplicationListDeployableNodesTagsQueryParameter = Array; +/** + * Only return nodes that accept this egg. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. + */ +export type ApplicationListDeployableNodesEggQueryParameter = number; +/** + * Page number to return. When omitted, all viable nodes are returned without pagination metadata. + */ +export type ApplicationListDeployableNodesPageQueryParameter = number; +/** + * Number of nodes to return per page when page is supplied, up to 100. + */ +export type ApplicationListDeployableNodesPerPageQueryParameter = number; +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ +export type ApplicationGetNodeIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'location,allocations' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; +export type ApplicationGetNodeNodeIdPathParameter = number; +export type ApplicationGetNodeConfigurationNodeIdPathParameter = number; +/** + * Number of allocations to return per page, up to 100. + */ +export type ApplicationListNodeAllocationsPerPageQueryParameter = number; +/** + * Filter allocations by exact IP address. + */ +export type ApplicationListNodeAllocationsFilterIpQueryParameter = string; +/** + * Filter allocations by exact port. + */ +export type ApplicationListNodeAllocationsFilterPortQueryParameter = number; +/** + * Filter allocations by IP alias. + */ +export type ApplicationListNodeAllocationsFilterIpAliasQueryParameter = string; +/** + * Filter allocations by assigned server ID. Empty or non-numeric values return unassigned allocations. + */ +export type ApplicationListNodeAllocationsFilterServerIdQueryParameter = string; +/** + * Comma-separated relationships to include. Supports "node" and "server" when the key can read those resources. + */ +export type ApplicationListNodeAllocationsIncludeQueryParameter = 'node' | 'server' | 'node,server'; +export type ApplicationListNodeAllocationsNodeIdPathParameter = number; +export type ApplicationDeleteNodeAllocationNodeIdPathParameter = number; +export type ApplicationDeleteNodeAllocationAllocationIdPathParameter = number; +/** + * Number of locations to return per page, up to 100. + */ +export type ApplicationListLocationsPerPageQueryParameter = number; +/** + * Filter locations by short identifier. + */ +export type ApplicationListLocationsFilterShortQueryParameter = string; +/** + * Filter locations by description. + */ +export type ApplicationListLocationsFilterLongQueryParameter = string; +/** + * Sort locations by id. Prefix with "-" for descending order. + */ +export type ApplicationListLocationsSortQueryParameter = 'id' | '-id'; +/** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ +export type ApplicationListLocationsIncludeQueryParameter = 'nodes' | 'servers' | 'nodes,servers'; +/** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ +export type ApplicationGetLocationIncludeQueryParameter = 'nodes' | 'servers' | 'nodes,servers'; +export type ApplicationGetLocationLocationIdPathParameter = number; +/** + * Number of eggs to return per page, up to 100. + */ +export type ApplicationListEggsPerPageQueryParameter = number; +/** + * Filter eggs by name. + */ +export type ApplicationListEggsFilterNameQueryParameter = string; +/** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ +export type ApplicationListEggsFilterTagQueryParameter = string; +/** + * Sort eggs by id or name. Prefix with "-" for descending order. + */ +export type ApplicationListEggsSortQueryParameter = 'id' | '-id' | 'name' | '-name'; +/** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ +export type ApplicationListEggsIncludeQueryParameter = 'servers' | 'config' | 'script' | 'variables' | 'tags'; +/** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ +export type ApplicationGetEggIncludeQueryParameter = 'servers' | 'config' | 'script' | 'variables' | 'tags'; +export type ApplicationGetEggEggIdPathParameter = number; +/** + * Number of tags to return per page, up to 100. + */ +export type ApplicationListTagsPerPageQueryParameter = number; +/** + * Filter tags by name. + */ +export type ApplicationListTagsFilterNameQueryParameter = string; +/** + * Filter tags by slug. + */ +export type ApplicationListTagsFilterSlugQueryParameter = string; +/** + * Filter tags by the ID of the nest they were created from. + */ +export type ApplicationListTagsFilterLegacyNestIdQueryParameter = number; +/** + * Sort tags by id, name, or slug. Prefix with "-" for descending order. + */ +export type ApplicationListTagsSortQueryParameter = 'id' | '-id' | 'name' | '-name' | 'slug' | '-slug'; +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ +export type ApplicationListTagsIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ +export type ApplicationGetTagIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; +export type ApplicationGetTagTagIdPathParameter = number; +/** + * Number of servers to return per page, up to 100. + */ +export type ApplicationListServersPerPageQueryParameter = number; +/** + * Filter servers by UUID. + */ +export type ApplicationListServersFilterUuidQueryParameter = string; +/** + * Filter servers by short UUID identifier. + */ +export type ApplicationListServersFilterUuidShortQueryParameter = string; +/** + * Filter servers by name. + */ +export type ApplicationListServersFilterNameQueryParameter = string; +/** + * Filter servers by description. + */ +export type ApplicationListServersFilterDescriptionQueryParameter = string; +/** + * Filter servers by Docker image. + */ +export type ApplicationListServersFilterImageQueryParameter = string; +/** + * Filter servers by external identifier. + */ +export type ApplicationListServersFilterExternalIdQueryParameter = string; +/** + * Search term accepted by the list request. Must not exceed 100 characters. + */ +export type ApplicationListServersSearchQueryParameter = string; +/** + * Sort servers by id or uuid. Prefix with "-" for descending order. + */ +export type ApplicationListServersSortQueryParameter = 'id' | '-id' | 'uuid' | '-uuid'; +/** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ +export type ApplicationListServersIncludeQueryParameter = string; +/** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ +export type ApplicationGetServerIncludeQueryParameter = string; +export type ApplicationGetServerServerIdPathParameter = number; +export type ApplicationGetServerByExternalIdExternalIdPathParameter = string; +export type ApplicationUpdateServerDetailsServerIdPathParameter = number; +export type ApplicationUpdateServerBuildServerIdPathParameter = number; +export type ApplicationUpdateServerStartupServerIdPathParameter = number; +export type ApplicationSuspendServerServerIdPathParameter = number; +export type ApplicationUnsuspendServerServerIdPathParameter = number; +export type ApplicationReinstallServerServerIdPathParameter = number; +export type ApplicationDeleteServerServerIdPathParameter = number; +export type ApplicationDeleteServerForcePathParameter = string; +/** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ +export type ApplicationListServerDatabasesIncludeQueryParameter = 'password' | 'host' | 'password,host'; +export type ApplicationListServerDatabasesServerIdPathParameter = number; +/** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ +export type ApplicationGetServerDatabaseIncludeQueryParameter = 'password' | 'host' | 'password,host'; +export type ApplicationGetServerDatabaseServerIdPathParameter = number; +export type ApplicationGetServerDatabaseDatabaseIdPathParameter = string; +export type ApplicationResetServerDatabasePasswordServerIdPathParameter = number; +export type ApplicationResetServerDatabasePasswordDatabaseIdPathParameter = string; +/** + * Page number to return. + */ +export type ClientListClientServersPageQueryParameter = number; +/** + * Number of servers to return per page. The maximum is 100. + */ +export type ClientListClientServersPerPageQueryParameter = number; +/** + * Scope of servers to return. "owner" returns owned servers, "admin" returns admin-accessible servers excluding owned or subuser servers, and "admin-all" returns all servers for root administrators. + */ +export type ClientListClientServersTypeQueryParameter = 'owner' | 'admin' | 'admin-all'; +/** + * Filter servers by UUID. + */ +export type ClientListClientServersFilterUuidQueryParameter = string; +/** + * Filter servers by name. + */ +export type ClientListClientServersFilterNameQueryParameter = string; +/** + * Filter servers by description. + */ +export type ClientListClientServersFilterDescriptionQueryParameter = string; +/** + * Filter servers by external identifier. + */ +export type ClientListClientServersFilterExternalIdQueryParameter = string; +/** + * Search across server name, UUID, short UUID, external identifier, or allocation address and port. + */ +export type ClientListClientServersFilterWildcardQueryParameter = string; +export type ClientGetExtensionJobProgressExtensionPathParameter = string; +export type ClientGetExtensionJobProgressJobPathParameter = string; +/** + * Page number to retrieve. + */ +export type ClientListAccountActivityPageQueryParameter = number; +/** + * Number of activity log entries to return per page. The maximum is 100. + */ +export type ClientListAccountActivityPerPageQueryParameter = number; +/** + * Filter activity by event name. + */ +export type ClientListAccountActivityFilterEventQueryParameter = string; +/** + * Filter activity by the username or email of the user that performed it. + */ +export type ClientListAccountActivityFilterUserQueryParameter = string; +/** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ +export type ClientListAccountActivityFilterUserIdQueryParameter = number; +/** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ +export type ClientListAccountActivityFilterEventNameQueryParameter = string; +/** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ +export type ClientListAccountActivitySortQueryParameter = 'timestamp' | '-timestamp'; +/** + * Comma-separated relationships to include. Supports actor. + */ +export type ClientListAccountActivityIncludeQueryParameter = string; +export type ClientDeleteAccountApiKeyIdentifierPathParameter = string; +export type ClientGetServerServerUuidPathParameter = string; +export type ClientGetWebsocketCredentialsServerUuidPathParameter = string; +export type ClientGetServerResourcesServerUuidPathParameter = string; +/** + * Number of lines to return. Defaults to the maximum of 100. + */ +export type ClientGetServerLogsLinesQueryParameter = number; +export type ClientGetServerLogsServerUuidPathParameter = string; +export type ClientGetServerExtensionJobProgressServerUuidPathParameter = string; +export type ClientGetServerExtensionJobProgressExtensionPathParameter = string; +export type ClientGetServerExtensionJobProgressJobPathParameter = string; +/** + * Page number to retrieve. + */ +export type ClientListServerActivityPageQueryParameter = number; +/** + * Number of activity log entries to return per page. The maximum is 100. + */ +export type ClientListServerActivityPerPageQueryParameter = number; +/** + * Filter activity by event name. + */ +export type ClientListServerActivityFilterEventQueryParameter = string; +/** + * Filter activity by the username or email of the user that performed it. + */ +export type ClientListServerActivityFilterUserQueryParameter = string; +/** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ +export type ClientListServerActivityFilterUserIdQueryParameter = number; +/** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ +export type ClientListServerActivityFilterEventNameQueryParameter = string; +/** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ +export type ClientListServerActivitySortQueryParameter = 'timestamp' | '-timestamp'; +/** + * Comma-separated relationships to include. Supports actor. + */ +export type ClientListServerActivityIncludeQueryParameter = string; +export type ClientListServerActivityServerUuidPathParameter = string; +export type ClientListServerActivityFilterOptionsServerUuidPathParameter = string; +export type ClientSendServerCommandServerUuidPathParameter = string; +export type ClientSendPowerActionServerUuidPathParameter = string; +/** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ +export type ClientListServerDatabasesIncludeQueryParameter = 'password'; +/** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ +export type ClientCreateServerDatabaseIncludeQueryParameter = 'password'; +export type ClientListServerDatabasesServerUuidPathParameter = string; +/** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ +export type ClientRotateServerDatabasePasswordIncludeQueryParameter = 'password'; +export type ClientRotateServerDatabasePasswordServerUuidPathParameter = string; +export type ClientRotateServerDatabasePasswordDatabaseIdPathParameter = string; +export type ClientDeleteServerDatabaseServerUuidPathParameter = string; +export type ClientDeleteServerDatabaseDatabaseIdPathParameter = string; +/** + * Directory to list. Defaults to the server root. + */ +export type ClientListFilesDirectoryQueryParameter = string | null; +export type ClientListFilesServerUuidPathParameter = string; +/** + * Path to the file to read. + */ +export type ClientGetFileContentsFileQueryParameter = string; +export type ClientGetFileContentsServerUuidPathParameter = string; +/** + * Path to the file to download. + */ +export type ClientGetFileDownloadUrlFileQueryParameter = string; +export type ClientGetFileDownloadUrlServerUuidPathParameter = string; +export type ClientRenameFilesServerUuidPathParameter = string; +export type ClientCopyFileServerUuidPathParameter = string; +/** + * Path to the file to write. + */ +export type ClientWriteFileContentsFileQueryParameter = string; +export type ClientWriteFileContentsServerUuidPathParameter = string; +export type ClientCompressFilesServerUuidPathParameter = string; +export type ClientDecompressFileServerUuidPathParameter = string; +export type ClientDeleteFilesServerUuidPathParameter = string; +export type ClientCreateFolderServerUuidPathParameter = string; +export type ClientChangeFilePermissionsServerUuidPathParameter = string; +export type ClientPullRemoteFileServerUuidPathParameter = string; +export type ClientGetFileUploadUrlServerUuidPathParameter = string; +/** + * Comma-separated relationships to include. Supports tasks. + */ +export type ClientListServerSchedulesIncludeQueryParameter = string; +export type ClientListServerSchedulesServerUuidPathParameter = string; +/** + * Comma-separated relationships to include. Supports tasks. + */ +export type ClientGetServerScheduleIncludeQueryParameter = string; +export type ClientGetServerScheduleServerUuidPathParameter = string; +export type ClientGetServerScheduleScheduleIdPathParameter = number; +export type ClientExecuteServerScheduleServerUuidPathParameter = string; +export type ClientExecuteServerScheduleScheduleIdPathParameter = number; +export type ClientCreateScheduleTaskServerUuidPathParameter = string; +export type ClientCreateScheduleTaskScheduleIdPathParameter = number; +export type ClientUpdateScheduleTaskServerUuidPathParameter = string; +export type ClientUpdateScheduleTaskScheduleIdPathParameter = number; +export type ClientUpdateScheduleTaskTaskIdPathParameter = number; +export type ClientListServerAllocationsServerUuidPathParameter = string; +export type ClientUpdateAllocationNotesServerUuidPathParameter = string; +export type ClientUpdateAllocationNotesAllocationIdPathParameter = number; +export type ClientSetPrimaryAllocationServerUuidPathParameter = string; +export type ClientSetPrimaryAllocationAllocationIdPathParameter = number; +export type ClientListServerSubusersServerUuidPathParameter = string; +export type ClientGetServerSubuserServerUuidPathParameter = string; +export type ClientGetServerSubuserUserPathParameter = string; +/** + * The page number to return. + */ +export type ClientListServerBackupsPageQueryParameter = number; +/** + * Number of backups to return per page. The maximum is 50. + */ +export type ClientListServerBackupsPerPageQueryParameter = number; +export type ClientListServerBackupsServerUuidPathParameter = string; +export type ClientGetServerBackupServerUuidPathParameter = string; +export type ClientGetServerBackupBackupUuidPathParameter = string; +export type ClientGetBackupDownloadUrlServerUuidPathParameter = string; +export type ClientGetBackupDownloadUrlBackupUuidPathParameter = string; +export type ClientToggleBackupLockServerUuidPathParameter = string; +export type ClientToggleBackupLockBackupUuidPathParameter = string; +export type ClientRestoreServerBackupServerUuidPathParameter = string; +export type ClientRestoreServerBackupBackupUuidPathParameter = string; +export type ClientGetStartupConfigurationServerUuidPathParameter = string; +export type ClientUpdateStartupVariableServerUuidPathParameter = string; +export type ClientRenameServerServerUuidPathParameter = string; +export type ClientReinstallServerServerUuidPathParameter = string; +export type ClientSetServerDockerImageServerUuidPathParameter = string; +export type AdminListLanguagesData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/languages'; +}; +export type AdminListLanguagesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListLanguagesError = AdminListLanguagesErrors[keyof AdminListLanguagesErrors]; +export type AdminListLanguagesResponses = { + /** + * Available languages returned. + */ + 200: AdminLanguagesResponse; +}; +export type AdminListLanguagesResponse = AdminListLanguagesResponses[keyof AdminListLanguagesResponses]; +export type AdminListActivityData = { + body?: never; + path?: never; + query?: { + /** + * Filter activity by event name. + */ + 'filter[event]'?: AdminListActivityFilterEventQueryParameter; + /** + * Filter activity by originating IP address. + */ + 'filter[ip]'?: AdminListActivityFilterIpQueryParameter; + /** + * Filter activity by the username or email of the user that performed it. + */ + 'filter[user]'?: AdminListActivityFilterUserQueryParameter; + /** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ + 'filter[user_id]'?: AdminListActivityFilterUserIdQueryParameter; + /** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ + 'filter[event_name]'?: AdminListActivityFilterEventNameQueryParameter; + /** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ + sort?: AdminListActivitySortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListActivityPageQueryParameter; + /** + * Results to return per page. The maximum is 100. + */ + per_page?: AdminListActivityPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports actor. + */ + include?: AdminListActivityIncludeQueryParameter; + }; + url: '/api/admin/activity'; +}; +export type AdminListActivityErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminListActivityError = AdminListActivityErrors[keyof AdminListActivityErrors]; +export type AdminListActivityResponses = { + /** + * Activity logs returned. + */ + 200: AdminActivityLogPaginatedResponse; +}; +export type AdminListActivityResponse = AdminListActivityResponses[keyof AdminListActivityResponses]; +export type AdminListActivityFilterOptionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/activity/filters'; +}; +export type AdminListActivityFilterOptionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminListActivityFilterOptionsError = AdminListActivityFilterOptionsErrors[keyof AdminListActivityFilterOptionsErrors]; +export type AdminListActivityFilterOptionsResponses = { + /** + * Filter options returned. + */ + 200: AdminListActivityFilterOptionsResponseBody; +}; +export type AdminListActivityFilterOptionsResponse = AdminListActivityFilterOptionsResponses[keyof AdminListActivityFilterOptionsResponses]; +export type AdminListExtensionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/extensions'; +}; +export type AdminListExtensionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListExtensionsError = AdminListExtensionsErrors[keyof AdminListExtensionsErrors]; +export type AdminListExtensionsResponses = { + /** + * Extensions returned. + */ + 200: AdminListExtensionsResponseBody; +}; +export type AdminListExtensionsResponse = AdminListExtensionsResponses[keyof AdminListExtensionsResponses]; +export type AdminInstallExtensionData = { + body: AdminInstallExtensionRequest; + path?: never; + query?: never; + url: '/api/admin/extensions'; +}; +export type AdminInstallExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminInstallExtensionError = AdminInstallExtensionErrors[keyof AdminInstallExtensionErrors]; +export type AdminInstallExtensionResponses = { + /** + * Extension installed. + */ + 201: AdminInstallExtensionResponseBody; +}; +export type AdminInstallExtensionResponse = AdminInstallExtensionResponses[keyof AdminInstallExtensionResponses]; +export type AdminListExtensionFormsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/extensions/forms'; +}; +export type AdminListExtensionFormsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListExtensionFormsError = AdminListExtensionFormsErrors[keyof AdminListExtensionFormsErrors]; +export type AdminListExtensionFormsResponses = { + /** + * Extension forms returned. + */ + 200: AdminExtensionFormsResponse; +}; +export type AdminListExtensionFormsResponse = AdminListExtensionFormsResponses[keyof AdminListExtensionFormsResponses]; +export type AdminGetExtensionSettingsData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminGetExtensionSettingsExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings'; +}; +export type AdminGetExtensionSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetExtensionSettingsError = AdminGetExtensionSettingsErrors[keyof AdminGetExtensionSettingsErrors]; +export type AdminGetExtensionSettingsResponses = { + /** + * Settings schema returned. + */ + 200: AdminGetExtensionSettingsResponseBody; +}; +export type AdminGetExtensionSettingsResponse = AdminGetExtensionSettingsResponses[keyof AdminGetExtensionSettingsResponses]; +export type AdminUpdateExtensionSettingsData = { + body: AdminUpdateExtensionSettingsRequest; + path: { + /** + * The extension identifier. + */ + extension: AdminGetExtensionSettingsExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings'; +}; +export type AdminUpdateExtensionSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateExtensionSettingsError = AdminUpdateExtensionSettingsErrors[keyof AdminUpdateExtensionSettingsErrors]; +export type AdminUpdateExtensionSettingsResponses = { + /** + * Settings updated; fresh schema returned. + */ + 200: AdminUpdateExtensionSettingsResponseBody; +}; +export type AdminUpdateExtensionSettingsResponse = AdminUpdateExtensionSettingsResponses[keyof AdminUpdateExtensionSettingsResponses]; +export type AdminGetExtensionIconData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminGetExtensionIconExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/icon'; +}; +export type AdminGetExtensionIconErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetExtensionIconError = AdminGetExtensionIconErrors[keyof AdminGetExtensionIconErrors]; +export type AdminGetExtensionIconResponses = { + /** + * Icon image returned. + */ + 200: AdminGetExtensionIcon200ImagePngResponseBody; +}; +export type AdminGetExtensionIconResponse = AdminGetExtensionIconResponses[keyof AdminGetExtensionIconResponses]; +export type AdminClearExtensionSettingFileData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminUploadExtensionSettingFileExtensionPathParameter; + /** + * The input name of the extension setting. + */ + input: AdminUploadExtensionSettingFileInputPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings/{input}/file'; +}; +export type AdminClearExtensionSettingFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminClearExtensionSettingFileError = AdminClearExtensionSettingFileErrors[keyof AdminClearExtensionSettingFileErrors]; +export type AdminClearExtensionSettingFileResponses = { + /** + * File removed; fresh schema returned. + */ + 200: AdminClearExtensionSettingFileResponseBody; +}; +export type AdminClearExtensionSettingFileResponse = AdminClearExtensionSettingFileResponses[keyof AdminClearExtensionSettingFileResponses]; +export type AdminUploadExtensionSettingFileData = { + body: AdminUploadExtensionSettingFileRequest; + path: { + /** + * The extension identifier. + */ + extension: AdminUploadExtensionSettingFileExtensionPathParameter; + /** + * The input name of the extension setting. + */ + input: AdminUploadExtensionSettingFileInputPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings/{input}/file'; +}; +export type AdminUploadExtensionSettingFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUploadExtensionSettingFileError = AdminUploadExtensionSettingFileErrors[keyof AdminUploadExtensionSettingFileErrors]; +export type AdminUploadExtensionSettingFileResponses = { + /** + * File stored; fresh schema returned. + */ + 200: AdminUploadExtensionSettingFileResponseBody; +}; +export type AdminUploadExtensionSettingFileResponse = AdminUploadExtensionSettingFileResponses[keyof AdminUploadExtensionSettingFileResponses]; +export type AdminEnableExtensionData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminEnableExtensionExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/enable'; +}; +export type AdminEnableExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminEnableExtensionError = AdminEnableExtensionErrors[keyof AdminEnableExtensionErrors]; +export type AdminEnableExtensionResponses = { + /** + * Extension enabled. + */ + 200: AdminEnableExtensionResponseBody; +}; +export type AdminEnableExtensionResponse = AdminEnableExtensionResponses[keyof AdminEnableExtensionResponses]; +export type AdminDisableExtensionData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminDisableExtensionExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/disable'; +}; +export type AdminDisableExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDisableExtensionError = AdminDisableExtensionErrors[keyof AdminDisableExtensionErrors]; +export type AdminDisableExtensionResponses = { + /** + * Extension disabled. + */ + 200: AdminDisableExtensionResponseBody; +}; +export type AdminDisableExtensionResponse = AdminDisableExtensionResponses[keyof AdminDisableExtensionResponses]; +export type AdminRemoveExtensionData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminRemoveExtensionExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}'; +}; +export type AdminRemoveExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminRemoveExtensionError = AdminRemoveExtensionErrors[keyof AdminRemoveExtensionErrors]; +export type AdminRemoveExtensionResponses = { + /** + * Extension removed. + */ + 204: void; +}; +export type AdminRemoveExtensionResponse = AdminRemoveExtensionResponses[keyof AdminRemoveExtensionResponses]; +export type AdminListThemesData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/themes'; +}; +export type AdminListThemesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListThemesError = AdminListThemesErrors[keyof AdminListThemesErrors]; +export type AdminListThemesResponses = { + /** + * Themes returned. + */ + 200: AdminThemeListResponse; +}; +export type AdminListThemesResponse = AdminListThemesResponses[keyof AdminListThemesResponses]; +export type AdminGetThemeSettingsData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminGetThemeSettingsThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings'; +}; +export type AdminGetThemeSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetThemeSettingsError = AdminGetThemeSettingsErrors[keyof AdminGetThemeSettingsErrors]; +export type AdminGetThemeSettingsResponses = { + /** + * Settings returned. + */ + 200: AdminThemeSettingListResponse; +}; +export type AdminGetThemeSettingsResponse = AdminGetThemeSettingsResponses[keyof AdminGetThemeSettingsResponses]; +export type AdminUpdateThemeSettingsData = { + body: AdminUpdateThemeSettingsRequest; + path: { + /** + * The theme. + */ + theme: AdminGetThemeSettingsThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings'; +}; +export type AdminUpdateThemeSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateThemeSettingsError = AdminUpdateThemeSettingsErrors[keyof AdminUpdateThemeSettingsErrors]; +export type AdminUpdateThemeSettingsResponses = { + /** + * Settings updated; fresh settings returned. + */ + 200: AdminThemeSettingListResponse; +}; +export type AdminUpdateThemeSettingsResponse = AdminUpdateThemeSettingsResponses[keyof AdminUpdateThemeSettingsResponses]; +export type AdminStopThemePreviewData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/themes/preview'; +}; +export type AdminStopThemePreviewErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminStopThemePreviewError = AdminStopThemePreviewErrors[keyof AdminStopThemePreviewErrors]; +export type AdminStopThemePreviewResponses = { + /** + * Preview stopped. + */ + 204: void; +}; +export type AdminStopThemePreviewResponse = AdminStopThemePreviewResponses[keyof AdminStopThemePreviewResponses]; +export type AdminActivateThemeData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminActivateThemeThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/activate'; +}; +export type AdminActivateThemeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminActivateThemeError = AdminActivateThemeErrors[keyof AdminActivateThemeErrors]; +export type AdminActivateThemeResponses = { + /** + * Theme activated. + */ + 200: AdminThemeResource; +}; +export type AdminActivateThemeResponse = AdminActivateThemeResponses[keyof AdminActivateThemeResponses]; +export type AdminPreviewThemeData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminPreviewThemeThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/preview'; +}; +export type AdminPreviewThemeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminPreviewThemeError = AdminPreviewThemeErrors[keyof AdminPreviewThemeErrors]; +export type AdminPreviewThemeResponses = { + /** + * Preview started. + */ + 200: AdminThemeResource; +}; +export type AdminPreviewThemeResponse = AdminPreviewThemeResponses[keyof AdminPreviewThemeResponses]; +export type AdminClearThemeImageData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminUploadThemeImageThemePathParameter; + /** + * The setting. + */ + setting: AdminUploadThemeImageSettingPathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings/{setting}/image'; +}; +export type AdminClearThemeImageErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminClearThemeImageError = AdminClearThemeImageErrors[keyof AdminClearThemeImageErrors]; +export type AdminClearThemeImageResponses = { + /** + * Image removed; fresh settings returned. + */ + 200: AdminThemeSettingListResponse; +}; +export type AdminClearThemeImageResponse = AdminClearThemeImageResponses[keyof AdminClearThemeImageResponses]; +export type AdminUploadThemeImageData = { + body: AdminUploadThemeImageRequest; + path: { + /** + * The theme. + */ + theme: AdminUploadThemeImageThemePathParameter; + /** + * The setting. + */ + setting: AdminUploadThemeImageSettingPathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings/{setting}/image'; +}; +export type AdminUploadThemeImageErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUploadThemeImageError = AdminUploadThemeImageErrors[keyof AdminUploadThemeImageErrors]; +export type AdminUploadThemeImageResponses = { + /** + * Image stored; fresh settings returned. + */ + 200: AdminThemeSettingListResponse; +}; +export type AdminUploadThemeImageResponse = AdminUploadThemeImageResponses[keyof AdminUploadThemeImageResponses]; +export type AdminListUsersData = { + body?: never; + path?: never; + query?: { + /** + * Page number to retrieve. + */ + page?: AdminListUsersPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListUsersPerPageQueryParameter; + /** + * Filter users by email address. + */ + 'filter[email]'?: AdminListUsersFilterEmailQueryParameter; + /** + * Filter users by UUID. + */ + 'filter[uuid]'?: AdminListUsersFilterUuidQueryParameter; + /** + * Filter users by username. + */ + 'filter[username]'?: AdminListUsersFilterUsernameQueryParameter; + /** + * Filter users by external identifier. + */ + 'filter[external_id]'?: AdminListUsersFilterExternalIdQueryParameter; + /** + * Search users by username, email, or UUID. + */ + 'filter[search]'?: AdminListUsersFilterSearchQueryParameter; + /** + * Sort users by id, uuid, email, username, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListUsersSortQueryParameter; + }; + url: '/api/admin/users'; +}; +export type AdminListUsersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListUsersError = AdminListUsersErrors[keyof AdminListUsersErrors]; +export type AdminListUsersResponses = { + /** + * Users returned. + */ + 200: AdminUserPaginatedResponse; +}; +export type AdminListUsersResponse = AdminListUsersResponses[keyof AdminListUsersResponses]; +export type AdminCreateUserData = { + body: AdminCreateUserRequest; + path?: never; + query?: never; + url: '/api/admin/users'; +}; +export type AdminCreateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateUserError = AdminCreateUserErrors[keyof AdminCreateUserErrors]; +export type AdminCreateUserResponses = { + /** + * User created. + */ + 201: AdminUserResource; +}; +export type AdminCreateUserResponse = AdminCreateUserResponses[keyof AdminCreateUserResponses]; +export type AdminGetUserByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: AdminGetUserByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/admin/users/external/{external_id}'; +}; +export type AdminGetUserByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetUserByExternalIdError = AdminGetUserByExternalIdErrors[keyof AdminGetUserByExternalIdErrors]; +export type AdminGetUserByExternalIdResponses = { + /** + * User returned. + */ + 200: AdminUserResource; +}; +export type AdminGetUserByExternalIdResponse = AdminGetUserByExternalIdResponses[keyof AdminGetUserByExternalIdResponses]; +export type AdminDeleteUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: AdminGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/admin/users/{user_id}'; +}; +export type AdminDeleteUserErrors = { + /** + * The authenticated administrator attempted to delete their own user account. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteUserError = AdminDeleteUserErrors[keyof AdminDeleteUserErrors]; +export type AdminDeleteUserResponses = { + /** + * User deleted. + */ + 204: void; +}; +export type AdminDeleteUserResponse = AdminDeleteUserResponses[keyof AdminDeleteUserResponses]; +export type AdminGetUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: AdminGetUserUserIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports servers. + */ + include?: AdminGetUserIncludeQueryParameter; + }; + url: '/api/admin/users/{user_id}'; +}; +export type AdminGetUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetUserError = AdminGetUserErrors[keyof AdminGetUserErrors]; +export type AdminGetUserResponses = { + /** + * User returned. + */ + 200: AdminUserResource; +}; +export type AdminGetUserResponse = AdminGetUserResponses[keyof AdminGetUserResponses]; +export type AdminUpdateUserData = { + body: AdminUpdateUserRequest; + path: { + /** + * The user ID. + */ + user_id: AdminGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/admin/users/{user_id}'; +}; +export type AdminUpdateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateUserError = AdminUpdateUserErrors[keyof AdminUpdateUserErrors]; +export type AdminUpdateUserResponses = { + /** + * User updated. + */ + 200: AdminUserResource; +}; +export type AdminUpdateUserResponse = AdminUpdateUserResponses[keyof AdminUpdateUserResponses]; +export type AdminDisableUserTwoFactorAuthenticationData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: AdminDisableUserTwoFactorAuthenticationUserIdPathParameter; + }; + query?: never; + url: '/api/admin/users/{user_id}/disable-2fa'; +}; +export type AdminDisableUserTwoFactorAuthenticationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDisableUserTwoFactorAuthenticationError = AdminDisableUserTwoFactorAuthenticationErrors[keyof AdminDisableUserTwoFactorAuthenticationErrors]; +export type AdminDisableUserTwoFactorAuthenticationResponses = { + /** + * Two-factor authentication disabled. + */ + 204: void; +}; +export type AdminDisableUserTwoFactorAuthenticationResponse = AdminDisableUserTwoFactorAuthenticationResponses[keyof AdminDisableUserTwoFactorAuthenticationResponses]; +export type AdminGetNodeSystemInformationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeSystemInformationNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/system-information'; +}; +export type AdminGetNodeSystemInformationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The panel could not connect to Wings. + */ + 502: ErrorEnvelope; +}; +export type AdminGetNodeSystemInformationError = AdminGetNodeSystemInformationErrors[keyof AdminGetNodeSystemInformationErrors]; +export type AdminGetNodeSystemInformationResponses = { + /** + * System information returned. + */ + 200: AdminNodeSystemInformationResponse; +}; +export type AdminGetNodeSystemInformationResponse = AdminGetNodeSystemInformationResponses[keyof AdminGetNodeSystemInformationResponses]; +export type AdminCreateNodeDeployTokenData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminCreateNodeDeployTokenNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/deploy-token'; +}; +export type AdminCreateNodeDeployTokenErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminCreateNodeDeployTokenError = AdminCreateNodeDeployTokenErrors[keyof AdminCreateNodeDeployTokenErrors]; +export type AdminCreateNodeDeployTokenResponses = { + /** + * Deploy token returned. + */ + 200: AdminNodeDeployTokenResponse; +}; +export type AdminCreateNodeDeployTokenResponse = AdminCreateNodeDeployTokenResponses[keyof AdminCreateNodeDeployTokenResponses]; +export type AdminGetNodeUtilizationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeUtilizationNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/utilization'; +}; +export type AdminGetNodeUtilizationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetNodeUtilizationError = AdminGetNodeUtilizationErrors[keyof AdminGetNodeUtilizationErrors]; +export type AdminGetNodeUtilizationResponses = { + /** + * Utilization returned. + */ + 200: AdminNodeUtilizationResponse; +}; +export type AdminGetNodeUtilizationResponse = AdminGetNodeUtilizationResponses[keyof AdminGetNodeUtilizationResponses]; +export type AdminListServerMountsData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerMountsServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/mounts'; +}; +export type AdminListServerMountsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListServerMountsError = AdminListServerMountsErrors[keyof AdminListServerMountsErrors]; +export type AdminListServerMountsResponses = { + /** + * Eligible server mounts returned. + */ + 200: AdminMountListResponse; +}; +export type AdminListServerMountsResponse = AdminListServerMountsResponses[keyof AdminListServerMountsResponses]; +export type AdminAttachServerMountData = { + body: AdminAttachServerMountRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerMountsServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/mounts'; +}; +export type AdminAttachServerMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminAttachServerMountError = AdminAttachServerMountErrors[keyof AdminAttachServerMountErrors]; +export type AdminAttachServerMountResponses = { + /** + * Mount attached. + */ + 204: void; +}; +export type AdminAttachServerMountResponse = AdminAttachServerMountResponses[keyof AdminAttachServerMountResponses]; +export type AdminDetachServerMountData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminDetachServerMountServerAdminIdentifierPathParameter; + /** + * The mount ID. + */ + mount_id: AdminDetachServerMountMountIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/mounts/{mount_id}'; +}; +export type AdminDetachServerMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDetachServerMountError = AdminDetachServerMountErrors[keyof AdminDetachServerMountErrors]; +export type AdminDetachServerMountResponses = { + /** + * Mount detached. + */ + 204: void; +}; +export type AdminDetachServerMountResponse = AdminDetachServerMountResponses[keyof AdminDetachServerMountResponses]; +export type AdminListServersData = { + body?: never; + path?: never; + query?: { + /** + * Search servers by UUID, name, owner, node, allocation, or external identifier. + */ + 'filter[*]'?: AdminListServersFilterWildcardQueryParameter; + /** + * Filter servers by UUID. + */ + 'filter[uuid]'?: AdminListServersFilterUuidQueryParameter; + /** + * Filter servers by short UUID identifier. + */ + 'filter[uuidShort]'?: AdminListServersFilterUuidShortQueryParameter; + /** + * Filter servers by name. + */ + 'filter[name]'?: AdminListServersFilterNameQueryParameter; + /** + * Filter servers by external identifier. + */ + 'filter[external_id]'?: AdminListServersFilterExternalIdQueryParameter; + /** + * Filter servers by Docker image. + */ + 'filter[image]'?: AdminListServersFilterImageQueryParameter; + /** + * Filter servers by node ID. + */ + 'filter[node_id]'?: AdminListServersFilterNodeIdQueryParameter; + /** + * Filter servers by owner user ID. + */ + 'filter[owner_id]'?: AdminListServersFilterOwnerIdQueryParameter; + /** + * Sort servers by id, uuid, name, or creation time. Prefix with a hyphen for descending order. + */ + sort?: AdminListServersSortQueryParameter; + /** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ + include?: AdminListServersIncludeQueryParameter; + /** + * Page number to retrieve. + */ + page?: AdminListServersPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListServersPerPageQueryParameter; + }; + url: '/api/admin/servers'; +}; +export type AdminListServersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListServersError = AdminListServersErrors[keyof AdminListServersErrors]; +export type AdminListServersResponses = { + /** + * Servers returned. + */ + 200: AdminServerPaginatedResponse; +}; +export type AdminListServersResponse = AdminListServersResponses[keyof AdminListServersResponses]; +export type AdminCreateServerData = { + body: AdminCreateServerRequest; + path?: never; + query?: never; + url: '/api/admin/servers'; +}; +export type AdminCreateServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateServerError = AdminCreateServerErrors[keyof AdminCreateServerErrors]; +export type AdminCreateServerResponses = { + /** + * Server created. + */ + 201: AdminServerResource; +}; +export type AdminCreateServerResponse = AdminCreateServerResponses[keyof AdminCreateServerResponses]; +export type AdminGetServerByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: AdminGetServerByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/external/{external_id}'; +}; +export type AdminGetServerByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetServerByExternalIdError = AdminGetServerByExternalIdErrors[keyof AdminGetServerByExternalIdErrors]; +export type AdminGetServerByExternalIdResponses = { + /** + * Server returned. + */ + 200: AdminServerResource; +}; +export type AdminGetServerByExternalIdResponse = AdminGetServerByExternalIdResponses[keyof AdminGetServerByExternalIdResponses]; +export type AdminDeleteServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}'; +}; +export type AdminDeleteServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteServerError = AdminDeleteServerErrors[keyof AdminDeleteServerErrors]; +export type AdminDeleteServerResponses = { + /** + * Server deleted. + */ + 204: void; +}; +export type AdminDeleteServerResponse = AdminDeleteServerResponses[keyof AdminDeleteServerResponses]; +export type AdminGetServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerServerAdminIdentifierPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ + include?: AdminGetServerIncludeQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}'; +}; +export type AdminGetServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetServerError = AdminGetServerErrors[keyof AdminGetServerErrors]; +export type AdminGetServerResponses = { + /** + * Server returned. + */ + 200: AdminServerResource; +}; +export type AdminGetServerResponse = AdminGetServerResponses[keyof AdminGetServerResponses]; +export type AdminUpdateServerDetailsData = { + body: AdminUpdateServerDetailsRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerDetailsServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/details'; +}; +export type AdminUpdateServerDetailsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateServerDetailsError = AdminUpdateServerDetailsErrors[keyof AdminUpdateServerDetailsErrors]; +export type AdminUpdateServerDetailsResponses = { + /** + * Server updated. + */ + 200: AdminServerResource; +}; +export type AdminUpdateServerDetailsResponse = AdminUpdateServerDetailsResponses[keyof AdminUpdateServerDetailsResponses]; +export type AdminUpdateServerBuildData = { + body: AdminUpdateServerBuildRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerBuildServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/build'; +}; +export type AdminUpdateServerBuildErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateServerBuildError = AdminUpdateServerBuildErrors[keyof AdminUpdateServerBuildErrors]; +export type AdminUpdateServerBuildResponses = { + /** + * Server build updated. + */ + 200: AdminServerResource; +}; +export type AdminUpdateServerBuildResponse = AdminUpdateServerBuildResponses[keyof AdminUpdateServerBuildResponses]; +export type AdminUpdateServerStartupData = { + body: AdminUpdateServerStartupRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerStartupServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/startup'; +}; +export type AdminUpdateServerStartupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateServerStartupError = AdminUpdateServerStartupErrors[keyof AdminUpdateServerStartupErrors]; +export type AdminUpdateServerStartupResponses = { + /** + * Server startup updated. + */ + 200: AdminServerResource; +}; +export type AdminUpdateServerStartupResponse = AdminUpdateServerStartupResponses[keyof AdminUpdateServerStartupResponses]; +export type AdminUpdateServerSuspensionData = { + body?: AdminUpdateServerSuspensionRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerSuspensionServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/suspension'; +}; +export type AdminUpdateServerSuspensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateServerSuspensionError = AdminUpdateServerSuspensionErrors[keyof AdminUpdateServerSuspensionErrors]; +export type AdminUpdateServerSuspensionResponses = { + /** + * Server suspension state updated. + */ + 204: void; +}; +export type AdminUpdateServerSuspensionResponse = AdminUpdateServerSuspensionResponses[keyof AdminUpdateServerSuspensionResponses]; +export type AdminReinstallServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminReinstallServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/reinstall'; +}; +export type AdminReinstallServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminReinstallServerError = AdminReinstallServerErrors[keyof AdminReinstallServerErrors]; +export type AdminReinstallServerResponses = { + /** + * Server reinstall accepted. + */ + 202: unknown; +}; +export type AdminRebuildServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminRebuildServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/rebuild'; +}; +export type AdminRebuildServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminRebuildServerError = AdminRebuildServerErrors[keyof AdminRebuildServerErrors]; +export type AdminRebuildServerResponses = { + /** + * Server rebuild synchronized. + */ + 204: void; +}; +export type AdminRebuildServerResponse = AdminRebuildServerResponses[keyof AdminRebuildServerResponses]; +export type AdminGetServerTransferProgressData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerTransferProgressServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/transfer/progress'; +}; +export type AdminGetServerTransferProgressErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetServerTransferProgressError = AdminGetServerTransferProgressErrors[keyof AdminGetServerTransferProgressErrors]; +export type AdminGetServerTransferProgressResponses = { + /** + * Transfer progress returned. + */ + 200: AdminServerTransferResource; + /** + * No server transfer is currently in progress. + */ + 204: void; +}; +export type AdminGetServerTransferProgressResponse = AdminGetServerTransferProgressResponses[keyof AdminGetServerTransferProgressResponses]; +export type AdminTransferServerData = { + body: AdminTransferServerRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminTransferServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/transfer'; +}; +export type AdminTransferServerErrors = { + /** + * The destination node cannot fit the server or the server cannot currently be transferred. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminTransferServerError = AdminTransferServerErrors[keyof AdminTransferServerErrors]; +export type AdminTransferServerResponses = { + /** + * Server transfer started. + */ + 204: void; +}; +export type AdminTransferServerResponse = AdminTransferServerResponses[keyof AdminTransferServerResponses]; +export type AdminToggleServerInstallStateData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminToggleServerInstallStateServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/settings/toggle-install'; +}; +export type AdminToggleServerInstallStateErrors = { + /** + * The server is marked as failed. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminToggleServerInstallStateError = AdminToggleServerInstallStateErrors[keyof AdminToggleServerInstallStateErrors]; +export type AdminToggleServerInstallStateResponses = { + /** + * Server install state toggled. + */ + 204: void; +}; +export type AdminToggleServerInstallStateResponse = AdminToggleServerInstallStateResponses[keyof AdminToggleServerInstallStateResponses]; +export type AdminForceDeleteServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminForceDeleteServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/force'; +}; +export type AdminForceDeleteServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminForceDeleteServerError = AdminForceDeleteServerErrors[keyof AdminForceDeleteServerErrors]; +export type AdminForceDeleteServerResponses = { + /** + * Server force deleted. + */ + 204: void; +}; +export type AdminForceDeleteServerResponse = AdminForceDeleteServerResponses[keyof AdminForceDeleteServerResponses]; +export type AdminListServerDatabasesData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerDatabasesServerAdminIdentifierPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password". + */ + include?: AdminListServerDatabasesIncludeQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}/databases'; +}; +export type AdminListServerDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListServerDatabasesError = AdminListServerDatabasesErrors[keyof AdminListServerDatabasesErrors]; +export type AdminListServerDatabasesResponses = { + /** + * Server databases returned. + */ + 200: AdminServerDatabaseListResponse; +}; +export type AdminListServerDatabasesResponse = AdminListServerDatabasesResponses[keyof AdminListServerDatabasesResponses]; +export type AdminCreateServerDatabaseData = { + body: AdminCreateServerDatabaseRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerDatabasesServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/databases'; +}; +export type AdminCreateServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateServerDatabaseError = AdminCreateServerDatabaseErrors[keyof AdminCreateServerDatabaseErrors]; +export type AdminCreateServerDatabaseResponses = { + /** + * Server database created. + */ + 201: AdminServerDatabaseResource; +}; +export type AdminCreateServerDatabaseResponse = AdminCreateServerDatabaseResponses[keyof AdminCreateServerDatabaseResponses]; +export type AdminDeleteServerDatabaseData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerDatabaseServerAdminIdentifierPathParameter; + /** + * The database ID. + */ + database_id: AdminGetServerDatabaseDatabaseIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/databases/{database_id}'; +}; +export type AdminDeleteServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteServerDatabaseError = AdminDeleteServerDatabaseErrors[keyof AdminDeleteServerDatabaseErrors]; +export type AdminDeleteServerDatabaseResponses = { + /** + * Server database deleted. + */ + 204: void; +}; +export type AdminDeleteServerDatabaseResponse = AdminDeleteServerDatabaseResponses[keyof AdminDeleteServerDatabaseResponses]; +export type AdminGetServerDatabaseData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerDatabaseServerAdminIdentifierPathParameter; + /** + * The database ID. + */ + database_id: AdminGetServerDatabaseDatabaseIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password". + */ + include?: AdminGetServerDatabaseIncludeQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}/databases/{database_id}'; +}; +export type AdminGetServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetServerDatabaseError = AdminGetServerDatabaseErrors[keyof AdminGetServerDatabaseErrors]; +export type AdminGetServerDatabaseResponses = { + /** + * Server database returned. + */ + 200: AdminServerDatabaseResource; +}; +export type AdminGetServerDatabaseResponse = AdminGetServerDatabaseResponses[keyof AdminGetServerDatabaseResponses]; +export type AdminRotateServerDatabasePasswordData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminRotateServerDatabasePasswordServerAdminIdentifierPathParameter; + /** + * The database ID. + */ + database_id: AdminRotateServerDatabasePasswordDatabaseIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/databases/{database_id}/rotate-password'; +}; +export type AdminRotateServerDatabasePasswordErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminRotateServerDatabasePasswordError = AdminRotateServerDatabasePasswordErrors[keyof AdminRotateServerDatabasePasswordErrors]; +export type AdminRotateServerDatabasePasswordResponses = { + /** + * Database password rotated. + */ + 200: AdminServerDatabaseResource; +}; +export type AdminRotateServerDatabasePasswordResponse = AdminRotateServerDatabasePasswordResponses[keyof AdminRotateServerDatabasePasswordResponses]; +export type AdminListServerBackupsData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerBackupsServerAdminIdentifierPathParameter; + }; + query: { + /** + * Filter backups by UUID. + */ + 'filter[uuid]': AdminListServerBackupsFilterUuidQueryParameter; + /** + * Filter backups by name. + */ + 'filter[name]': AdminListServerBackupsFilterNameQueryParameter; + /** + * Sort backups by id, bytes, or created_at. Prefix with a hyphen for descending order. + */ + sort: AdminListServerBackupsSortQueryParameter; + /** + * Results to return per page. + */ + per_page: AdminListServerBackupsPerPageQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}/backups'; +}; +export type AdminListServerBackupsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListServerBackupsError = AdminListServerBackupsErrors[keyof AdminListServerBackupsErrors]; +export type AdminListServerBackupsResponses = { + /** + * Server backups returned. + */ + 200: AdminBackupPaginatedResponse; +}; +export type AdminListServerBackupsResponse = AdminListServerBackupsResponses[keyof AdminListServerBackupsResponses]; +export type AdminToggleServerBackupLockData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminToggleServerBackupLockServerAdminIdentifierPathParameter; + /** + * The backup UUID. + */ + backup_uuid: AdminToggleServerBackupLockBackupUuidPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/backups/{backup_uuid}/toggle'; +}; +export type AdminToggleServerBackupLockErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminToggleServerBackupLockError = AdminToggleServerBackupLockErrors[keyof AdminToggleServerBackupLockErrors]; +export type AdminToggleServerBackupLockResponses = { + /** + * Server backup lock state toggled. + */ + 200: AdminBackupResource; +}; +export type AdminToggleServerBackupLockResponse = AdminToggleServerBackupLockResponses[keyof AdminToggleServerBackupLockResponses]; +export type AdminListNodesData = { + body?: never; + path?: never; + query?: { + /** + * Filter nodes by UUID. + */ + 'filter[uuid]'?: AdminListNodesFilterUuidQueryParameter; + /** + * Filter nodes by name. + */ + 'filter[name]'?: AdminListNodesFilterNameQueryParameter; + /** + * Filter nodes by FQDN. + */ + 'filter[fqdn]'?: AdminListNodesFilterFqdnQueryParameter; + /** + * Sort nodes by id, uuid, name, memory, disk, or creation time. Prefix with a hyphen for descending order. + */ + sort?: AdminListNodesSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListNodesPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListNodesPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ + include?: AdminListNodesIncludeQueryParameter; + }; + url: '/api/admin/nodes'; +}; +export type AdminListNodesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListNodesError = AdminListNodesErrors[keyof AdminListNodesErrors]; +export type AdminListNodesResponses = { + /** + * Nodes returned. + */ + 200: AdminNodePaginatedResponse; +}; +export type AdminListNodesResponse = AdminListNodesResponses[keyof AdminListNodesResponses]; +export type AdminCreateNodeData = { + body: AdminCreateNodeRequest; + path?: never; + query?: never; + url: '/api/admin/nodes'; +}; +export type AdminCreateNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateNodeError = AdminCreateNodeErrors[keyof AdminCreateNodeErrors]; +export type AdminCreateNodeResponses = { + /** + * Node created. + */ + 201: AdminNodeResource; +}; +export type AdminCreateNodeResponse = AdminCreateNodeResponses[keyof AdminCreateNodeResponses]; +export type AdminDeleteNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}'; +}; +export type AdminDeleteNodeErrors = { + /** + * The node has active servers. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteNodeError = AdminDeleteNodeErrors[keyof AdminDeleteNodeErrors]; +export type AdminDeleteNodeResponses = { + /** + * Node deleted. + */ + 204: void; +}; +export type AdminDeleteNodeResponse = AdminDeleteNodeResponses[keyof AdminDeleteNodeResponses]; +export type AdminGetNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeNodeIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ + include?: AdminGetNodeIncludeQueryParameter; + }; + url: '/api/admin/nodes/{node_id}'; +}; +export type AdminGetNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetNodeError = AdminGetNodeErrors[keyof AdminGetNodeErrors]; +export type AdminGetNodeResponses = { + /** + * Node returned. + */ + 200: AdminNodeResource; +}; +export type AdminGetNodeResponse = AdminGetNodeResponses[keyof AdminGetNodeResponses]; +export type AdminUpdateNodeData = { + body: AdminUpdateNodeRequest; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}'; +}; +export type AdminUpdateNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateNodeError = AdminUpdateNodeErrors[keyof AdminUpdateNodeErrors]; +export type AdminUpdateNodeResponses = { + /** + * Node updated. + */ + 200: AdminNodeResource; +}; +export type AdminUpdateNodeResponse = AdminUpdateNodeResponses[keyof AdminUpdateNodeResponses]; +export type AdminGetNodeConfigurationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeConfigurationNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/configuration'; +}; +export type AdminGetNodeConfigurationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetNodeConfigurationError = AdminGetNodeConfigurationErrors[keyof AdminGetNodeConfigurationErrors]; +export type AdminGetNodeConfigurationResponses = { + /** + * Node configuration returned. + */ + 200: AdminNodeConfigurationResponse; +}; +export type AdminGetNodeConfigurationResponse = AdminGetNodeConfigurationResponses[keyof AdminGetNodeConfigurationResponses]; +export type AdminSyncNodeGameTagsData = { + body?: AdminSyncNodeGameTagsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminSyncNodeGameTagsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/tags'; +}; +export type AdminSyncNodeGameTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminSyncNodeGameTagsError = AdminSyncNodeGameTagsErrors[keyof AdminSyncNodeGameTagsErrors]; +export type AdminSyncNodeGameTagsResponses = { + /** + * Games the node accepts. + */ + 200: AdminTagListResponse; +}; +export type AdminSyncNodeGameTagsResponse = AdminSyncNodeGameTagsResponses[keyof AdminSyncNodeGameTagsResponses]; +export type AdminSyncNodeDeploymentTagsData = { + body?: AdminSyncNodeDeploymentTagsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminSyncNodeDeploymentTagsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/deployment-tags'; +}; +export type AdminSyncNodeDeploymentTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminSyncNodeDeploymentTagsError = AdminSyncNodeDeploymentTagsErrors[keyof AdminSyncNodeDeploymentTagsErrors]; +export type AdminSyncNodeDeploymentTagsResponses = { + /** + * Reservations on the node. + */ + 200: AdminTagListResponse; +}; +export type AdminSyncNodeDeploymentTagsResponse = AdminSyncNodeDeploymentTagsResponses[keyof AdminSyncNodeDeploymentTagsResponses]; +export type AdminBulkDeleteNodeAllocationsData = { + body?: AdminBulkDeleteNodeAllocationsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations'; +}; +export type AdminBulkDeleteNodeAllocationsErrors = { + /** + * One of the allocations is currently assigned to a server. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminBulkDeleteNodeAllocationsError = AdminBulkDeleteNodeAllocationsErrors[keyof AdminBulkDeleteNodeAllocationsErrors]; +export type AdminBulkDeleteNodeAllocationsResponses = { + /** + * Allocations deleted. + */ + 204: void; +}; +export type AdminBulkDeleteNodeAllocationsResponse = AdminBulkDeleteNodeAllocationsResponses[keyof AdminBulkDeleteNodeAllocationsResponses]; +export type AdminListNodeAllocationsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationsNodeIdPathParameter; + }; + query?: { + /** + * Filter allocations by exact IP address. + */ + 'filter[ip]'?: AdminListNodeAllocationsFilterIpQueryParameter; + /** + * Filter allocations by exact port. + */ + 'filter[port]'?: AdminListNodeAllocationsFilterPortQueryParameter; + /** + * Filter allocations by IP alias. + */ + 'filter[ip_alias]'?: AdminListNodeAllocationsFilterIpAliasQueryParameter; + /** + * Filter allocations by server ID, or pass an empty value to return unassigned allocations. + */ + 'filter[server_id]'?: AdminListNodeAllocationsFilterServerIdQueryParameter; + /** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ + sort?: AdminListNodeAllocationsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListNodeAllocationsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListNodeAllocationsPerPageQueryParameter; + }; + url: '/api/admin/nodes/{node_id}/allocations'; +}; +export type AdminListNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListNodeAllocationsError = AdminListNodeAllocationsErrors[keyof AdminListNodeAllocationsErrors]; +export type AdminListNodeAllocationsResponses = { + /** + * Allocations returned. + */ + 200: AdminAllocationPaginatedResponse; +}; +export type AdminListNodeAllocationsResponse = AdminListNodeAllocationsResponses[keyof AdminListNodeAllocationsResponses]; +export type AdminCreateNodeAllocationsData = { + body?: AdminCreateNodeAllocationsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations'; +}; +export type AdminCreateNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateNodeAllocationsError = AdminCreateNodeAllocationsErrors[keyof AdminCreateNodeAllocationsErrors]; +export type AdminCreateNodeAllocationsResponses = { + /** + * Allocations created. + */ + 204: void; +}; +export type AdminCreateNodeAllocationsResponse = AdminCreateNodeAllocationsResponses[keyof AdminCreateNodeAllocationsResponses]; +export type AdminListNodeAllocationIpsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationIpsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/ips'; +}; +export type AdminListNodeAllocationIpsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListNodeAllocationIpsError = AdminListNodeAllocationIpsErrors[keyof AdminListNodeAllocationIpsErrors]; +export type AdminListNodeAllocationIpsResponses = { + /** + * Allocation IPs returned. + */ + 200: AdminListNodeAllocationIpsResponseBody; +}; +export type AdminListNodeAllocationIpsResponse = AdminListNodeAllocationIpsResponses[keyof AdminListNodeAllocationIpsResponses]; +export type AdminListAvailableNodeAllocationsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminListAvailableNodeAllocationsNodeIdPathParameter; + }; + query: { + /** + * Filter allocations by exact IP address. + */ + 'filter[ip]': AdminListAvailableNodeAllocationsFilterIpQueryParameter; + /** + * Filter allocations by exact port. + */ + 'filter[port]': AdminListAvailableNodeAllocationsFilterPortQueryParameter; + /** + * Filter allocations by IP alias. + */ + 'filter[ip_alias]': AdminListAvailableNodeAllocationsFilterIpAliasQueryParameter; + /** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ + sort: AdminListAvailableNodeAllocationsSortQueryParameter; + /** + * Results to return per page. + */ + per_page: AdminListAvailableNodeAllocationsPerPageQueryParameter; + }; + url: '/api/admin/nodes/{node_id}/allocations/available'; +}; +export type AdminListAvailableNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListAvailableNodeAllocationsError = AdminListAvailableNodeAllocationsErrors[keyof AdminListAvailableNodeAllocationsErrors]; +export type AdminListAvailableNodeAllocationsResponses = { + /** + * Available allocations returned. + */ + 200: AdminAllocationPaginatedResponse; +}; +export type AdminListAvailableNodeAllocationsResponse = AdminListAvailableNodeAllocationsResponses[keyof AdminListAvailableNodeAllocationsResponses]; +export type AdminDeleteNodeAllocationIpBlockData = { + body: AdminDeleteNodeAllocationIpBlockRequest; + path: { + /** + * The node ID. + */ + node_id: AdminDeleteNodeAllocationIpBlockNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/block'; +}; +export type AdminDeleteNodeAllocationIpBlockErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminDeleteNodeAllocationIpBlockError = AdminDeleteNodeAllocationIpBlockErrors[keyof AdminDeleteNodeAllocationIpBlockErrors]; +export type AdminDeleteNodeAllocationIpBlockResponses = { + /** + * Unassigned allocations for the IP were deleted. + */ + 204: void; +}; +export type AdminDeleteNodeAllocationIpBlockResponse = AdminDeleteNodeAllocationIpBlockResponses[keyof AdminDeleteNodeAllocationIpBlockResponses]; +export type AdminDeleteNodeAllocationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminUpdateNodeAllocationNodeIdPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: AdminUpdateNodeAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/{allocation_id}'; +}; +export type AdminDeleteNodeAllocationErrors = { + /** + * The allocation is currently assigned to a server. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteNodeAllocationError = AdminDeleteNodeAllocationErrors[keyof AdminDeleteNodeAllocationErrors]; +export type AdminDeleteNodeAllocationResponses = { + /** + * Allocation deleted. + */ + 204: void; +}; +export type AdminDeleteNodeAllocationResponse = AdminDeleteNodeAllocationResponses[keyof AdminDeleteNodeAllocationResponses]; +export type AdminUpdateNodeAllocationData = { + body?: AdminUpdateNodeAllocationRequest; + path: { + /** + * The node ID. + */ + node_id: AdminUpdateNodeAllocationNodeIdPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: AdminUpdateNodeAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/{allocation_id}'; +}; +export type AdminUpdateNodeAllocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateNodeAllocationError = AdminUpdateNodeAllocationErrors[keyof AdminUpdateNodeAllocationErrors]; +export type AdminUpdateNodeAllocationResponses = { + /** + * Allocation updated. + */ + 200: AdminAllocationResource; +}; +export type AdminUpdateNodeAllocationResponse = AdminUpdateNodeAllocationResponses[keyof AdminUpdateNodeAllocationResponses]; +export type AdminListLocationsData = { + body?: never; + path?: never; + query?: { + /** + * Filter locations by short identifier. + */ + 'filter[short]'?: AdminListLocationsFilterShortQueryParameter; + /** + * Filter locations by long description. + */ + 'filter[long]'?: AdminListLocationsFilterLongQueryParameter; + /** + * Sort locations by ID, short identifier, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListLocationsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListLocationsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListLocationsPerPageQueryParameter; + }; + url: '/api/admin/locations'; +}; +export type AdminListLocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListLocationsError = AdminListLocationsErrors[keyof AdminListLocationsErrors]; +export type AdminListLocationsResponses = { + /** + * Locations returned. + */ + 200: AdminLocationPaginatedResponse; +}; +export type AdminListLocationsResponse = AdminListLocationsResponses[keyof AdminListLocationsResponses]; +export type AdminCreateLocationData = { + body: AdminCreateLocationRequest; + path?: never; + query?: never; + url: '/api/admin/locations'; +}; +export type AdminCreateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateLocationError = AdminCreateLocationErrors[keyof AdminCreateLocationErrors]; +export type AdminCreateLocationResponses = { + /** + * Location created. + */ + 201: AdminLocationResource; +}; +export type AdminCreateLocationResponse = AdminCreateLocationResponses[keyof AdminCreateLocationResponses]; +export type AdminDeleteLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: AdminGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/admin/locations/{location_id}'; +}; +export type AdminDeleteLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteLocationError = AdminDeleteLocationErrors[keyof AdminDeleteLocationErrors]; +export type AdminDeleteLocationResponses = { + /** + * Location deleted. + */ + 204: void; +}; +export type AdminDeleteLocationResponse = AdminDeleteLocationResponses[keyof AdminDeleteLocationResponses]; +export type AdminGetLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: AdminGetLocationLocationIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "nodes" and "servers". + */ + include?: AdminGetLocationIncludeQueryParameter; + }; + url: '/api/admin/locations/{location_id}'; +}; +export type AdminGetLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetLocationError = AdminGetLocationErrors[keyof AdminGetLocationErrors]; +export type AdminGetLocationResponses = { + /** + * Location returned. + */ + 200: AdminLocationResource; +}; +export type AdminGetLocationResponse = AdminGetLocationResponses[keyof AdminGetLocationResponses]; +export type AdminUpdateLocationData = { + body: AdminUpdateLocationRequest; + path: { + /** + * The location ID. + */ + location_id: AdminGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/admin/locations/{location_id}'; +}; +export type AdminUpdateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateLocationError = AdminUpdateLocationErrors[keyof AdminUpdateLocationErrors]; +export type AdminUpdateLocationResponses = { + /** + * Location updated. + */ + 200: AdminLocationResource; +}; +export type AdminUpdateLocationResponse = AdminUpdateLocationResponses[keyof AdminUpdateLocationResponses]; +export type AdminListEligibleLocationNodesData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: AdminListEligibleLocationNodesLocationIdPathParameter; + }; + query?: never; + url: '/api/admin/locations/{location_id}/eligible-nodes'; +}; +export type AdminListEligibleLocationNodesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListEligibleLocationNodesError = AdminListEligibleLocationNodesErrors[keyof AdminListEligibleLocationNodesErrors]; +export type AdminListEligibleLocationNodesResponses = { + /** + * Eligible nodes returned. + */ + 200: AdminNodeListResponse; +}; +export type AdminListEligibleLocationNodesResponse = AdminListEligibleLocationNodesResponses[keyof AdminListEligibleLocationNodesResponses]; +export type AdminListMountsData = { + body?: never; + path?: never; + query?: { + /** + * Filter mounts by name. + */ + 'filter[name]'?: AdminListMountsFilterNameQueryParameter; + /** + * Sort mounts by id or name. Prefix with a hyphen for descending order. + */ + sort?: AdminListMountsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListMountsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListMountsPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminListMountsIncludeQueryParameter; + }; + url: '/api/admin/mounts'; +}; +export type AdminListMountsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListMountsError = AdminListMountsErrors[keyof AdminListMountsErrors]; +export type AdminListMountsResponses = { + /** + * Mounts returned. + */ + 200: AdminMountPaginatedResponse; +}; +export type AdminListMountsResponse = AdminListMountsResponses[keyof AdminListMountsResponses]; +export type AdminCreateMountData = { + body: AdminCreateMountRequest; + path?: never; + query?: never; + url: '/api/admin/mounts'; +}; +export type AdminCreateMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateMountError = AdminCreateMountErrors[keyof AdminCreateMountErrors]; +export type AdminCreateMountResponses = { + /** + * Mount created. + */ + 201: AdminMountResource; +}; +export type AdminCreateMountResponse = AdminCreateMountResponses[keyof AdminCreateMountResponses]; +export type AdminDeleteMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminGetMountMountIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}'; +}; +export type AdminDeleteMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteMountError = AdminDeleteMountErrors[keyof AdminDeleteMountErrors]; +export type AdminDeleteMountResponses = { + /** + * Mount deleted. + */ + 204: void; +}; +export type AdminDeleteMountResponse = AdminDeleteMountResponses[keyof AdminDeleteMountResponses]; +export type AdminGetMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminGetMountMountIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminGetMountIncludeQueryParameter; + }; + url: '/api/admin/mounts/{mount_id}'; +}; +export type AdminGetMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetMountError = AdminGetMountErrors[keyof AdminGetMountErrors]; +export type AdminGetMountResponses = { + /** + * Mount returned. + */ + 200: AdminMountResource; +}; +export type AdminGetMountResponse = AdminGetMountResponses[keyof AdminGetMountResponses]; +export type AdminUpdateMountData = { + body: AdminUpdateMountRequest; + path: { + /** + * The mount ID. + */ + mount_id: AdminGetMountMountIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}'; +}; +export type AdminUpdateMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateMountError = AdminUpdateMountErrors[keyof AdminUpdateMountErrors]; +export type AdminUpdateMountResponses = { + /** + * Mount updated. + */ + 200: AdminMountResource; +}; +export type AdminUpdateMountResponse = AdminUpdateMountResponses[keyof AdminUpdateMountResponses]; +export type AdminAttachEggsToMountData = { + body: AdminAttachEggsToMountRequest; + path: { + /** + * The mount ID. + */ + mount_id: AdminAttachEggsToMountMountIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminAttachEggsToMountIncludeQueryParameter; + }; + url: '/api/admin/mounts/{mount_id}/eggs'; +}; +export type AdminAttachEggsToMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminAttachEggsToMountError = AdminAttachEggsToMountErrors[keyof AdminAttachEggsToMountErrors]; +export type AdminAttachEggsToMountResponses = { + /** + * Mount updated. + */ + 200: AdminMountResource; +}; +export type AdminAttachEggsToMountResponse = AdminAttachEggsToMountResponses[keyof AdminAttachEggsToMountResponses]; +export type AdminDetachEggFromMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminDetachEggFromMountMountIdPathParameter; + /** + * The egg ID. + */ + egg_id: AdminDetachEggFromMountEggIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}/eggs/{egg_id}'; +}; +export type AdminDetachEggFromMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDetachEggFromMountError = AdminDetachEggFromMountErrors[keyof AdminDetachEggFromMountErrors]; +export type AdminDetachEggFromMountResponses = { + /** + * Egg detached from mount. + */ + 204: void; +}; +export type AdminDetachEggFromMountResponse = AdminDetachEggFromMountResponses[keyof AdminDetachEggFromMountResponses]; +export type AdminAttachNodesToMountData = { + body: AdminAttachNodesToMountRequest; + path: { + /** + * The mount ID. + */ + mount_id: AdminAttachNodesToMountMountIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminAttachNodesToMountIncludeQueryParameter; + }; + url: '/api/admin/mounts/{mount_id}/nodes'; +}; +export type AdminAttachNodesToMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminAttachNodesToMountError = AdminAttachNodesToMountErrors[keyof AdminAttachNodesToMountErrors]; +export type AdminAttachNodesToMountResponses = { + /** + * Mount updated. + */ + 200: AdminMountResource; +}; +export type AdminAttachNodesToMountResponse = AdminAttachNodesToMountResponses[keyof AdminAttachNodesToMountResponses]; +export type AdminDetachNodeFromMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminDetachNodeFromMountMountIdPathParameter; + /** + * The node ID. + */ + node_id: AdminDetachNodeFromMountNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}/nodes/{node_id}'; +}; +export type AdminDetachNodeFromMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDetachNodeFromMountError = AdminDetachNodeFromMountErrors[keyof AdminDetachNodeFromMountErrors]; +export type AdminDetachNodeFromMountResponses = { + /** + * Node detached from mount. + */ + 204: void; +}; +export type AdminDetachNodeFromMountResponse = AdminDetachNodeFromMountResponses[keyof AdminDetachNodeFromMountResponses]; +export type AdminListEggCatalogData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/eggs/catalog'; +}; +export type AdminListEggCatalogErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The upstream catalog is unavailable or invalid. + */ + 502: ErrorEnvelope; +}; +export type AdminListEggCatalogError = AdminListEggCatalogErrors[keyof AdminListEggCatalogErrors]; +export type AdminListEggCatalogResponses = { + /** + * Catalog entries returned. + */ + 200: AdminListEggCatalogResponseBody; +}; +export type AdminListEggCatalogResponse = AdminListEggCatalogResponses[keyof AdminListEggCatalogResponses]; +export type AdminRefreshEggCatalogData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/eggs/catalog/refresh'; +}; +export type AdminRefreshEggCatalogErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminRefreshEggCatalogError = AdminRefreshEggCatalogErrors[keyof AdminRefreshEggCatalogErrors]; +export type AdminRefreshEggCatalogResponses = { + /** + * Catalog cache cleared. + */ + 204: void; +}; +export type AdminRefreshEggCatalogResponse = AdminRefreshEggCatalogResponses[keyof AdminRefreshEggCatalogResponses]; +export type AdminImportCatalogEggData = { + body: AdminImportCatalogEggRequest; + path?: never; + query?: never; + url: '/api/admin/eggs/catalog/import'; +}; +export type AdminImportCatalogEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The selected catalog entry does not exist. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * The upstream catalog or egg definition could not be loaded. + */ + 502: ErrorEnvelope; +}; +export type AdminImportCatalogEggError = AdminImportCatalogEggErrors[keyof AdminImportCatalogEggErrors]; +export type AdminImportCatalogEggResponses = { + /** + * Egg imported. + */ + 201: AdminEggResource; +}; +export type AdminImportCatalogEggResponse = AdminImportCatalogEggResponses[keyof AdminImportCatalogEggResponses]; +export type AdminListEggVariablesData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminListEggVariablesEggIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Unknown includes are ignored. + */ + include?: AdminListEggVariablesIncludeQueryParameter; + }; + url: '/api/admin/eggs/{egg_id}/variables'; +}; +export type AdminListEggVariablesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListEggVariablesError = AdminListEggVariablesErrors[keyof AdminListEggVariablesErrors]; +export type AdminListEggVariablesResponses = { + /** + * Egg variables returned. + */ + 200: AdminEggVariableListResponse; +}; +export type AdminListEggVariablesResponse = AdminListEggVariablesResponses[keyof AdminListEggVariablesResponses]; +export type AdminCreateEggVariableData = { + body: AdminCreateEggVariableRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminListEggVariablesEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables'; +}; +export type AdminCreateEggVariableErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateEggVariableError = AdminCreateEggVariableErrors[keyof AdminCreateEggVariableErrors]; +export type AdminCreateEggVariableResponses = { + /** + * Egg variable created. + */ + 201: AdminEggVariableResource; +}; +export type AdminCreateEggVariableResponse = AdminCreateEggVariableResponses[keyof AdminCreateEggVariableResponses]; +export type AdminReorderEggVariablesData = { + body: AdminReorderEggVariablesRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminReorderEggVariablesEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables/reorder'; +}; +export type AdminReorderEggVariablesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminReorderEggVariablesError = AdminReorderEggVariablesErrors[keyof AdminReorderEggVariablesErrors]; +export type AdminReorderEggVariablesResponses = { + /** + * Egg variables reordered. + */ + 200: AdminEggVariableListResponse; +}; +export type AdminReorderEggVariablesResponse = AdminReorderEggVariablesResponses[keyof AdminReorderEggVariablesResponses]; +export type AdminDeleteEggVariableData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminUpdateEggVariableEggIdPathParameter; + /** + * The variable ID. + */ + variable_id: AdminUpdateEggVariableVariableIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables/{variable_id}'; +}; +export type AdminDeleteEggVariableErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteEggVariableError = AdminDeleteEggVariableErrors[keyof AdminDeleteEggVariableErrors]; +export type AdminDeleteEggVariableResponses = { + /** + * Egg variable deleted. + */ + 204: void; +}; +export type AdminDeleteEggVariableResponse = AdminDeleteEggVariableResponses[keyof AdminDeleteEggVariableResponses]; +export type AdminUpdateEggVariableData = { + body: AdminUpdateEggVariableRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminUpdateEggVariableEggIdPathParameter; + /** + * The variable ID. + */ + variable_id: AdminUpdateEggVariableVariableIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables/{variable_id}'; +}; +export type AdminUpdateEggVariableErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateEggVariableError = AdminUpdateEggVariableErrors[keyof AdminUpdateEggVariableErrors]; +export type AdminUpdateEggVariableResponses = { + /** + * Egg variable updated. + */ + 200: AdminEggVariableResource; +}; +export type AdminUpdateEggVariableResponse = AdminUpdateEggVariableResponses[keyof AdminUpdateEggVariableResponses]; +export type AdminGetEggInstallScriptData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggInstallScriptEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/scripts'; +}; +export type AdminGetEggInstallScriptErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetEggInstallScriptError = AdminGetEggInstallScriptErrors[keyof AdminGetEggInstallScriptErrors]; +export type AdminGetEggInstallScriptResponses = { + /** + * Egg install script returned. + */ + 200: AdminEggResource; +}; +export type AdminGetEggInstallScriptResponse = AdminGetEggInstallScriptResponses[keyof AdminGetEggInstallScriptResponses]; +export type AdminUpdateEggInstallScriptData = { + body?: AdminUpdateEggInstallScriptRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggInstallScriptEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/scripts'; +}; +export type AdminUpdateEggInstallScriptErrors = { + /** + * The selected copy source is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateEggInstallScriptError = AdminUpdateEggInstallScriptErrors[keyof AdminUpdateEggInstallScriptErrors]; +export type AdminUpdateEggInstallScriptResponses = { + /** + * Egg install script updated. + */ + 200: AdminEggResource; +}; +export type AdminUpdateEggInstallScriptResponse = AdminUpdateEggInstallScriptResponses[keyof AdminUpdateEggInstallScriptResponses]; +export type AdminExportEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminExportEggEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/export'; +}; +export type AdminExportEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminExportEggError = AdminExportEggErrors[keyof AdminExportEggErrors]; +export type AdminExportEggResponses = { + /** + * Egg share file returned. + */ + 200: AdminExportEggResponseBody; +}; +export type AdminExportEggResponse = AdminExportEggResponses[keyof AdminExportEggResponses]; +export type AdminUpdateEggFromImportData = { + body: AdminUpdateEggFromImportRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminUpdateEggFromImportEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/import'; +}; +export type AdminUpdateEggFromImportErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateEggFromImportError = AdminUpdateEggFromImportErrors[keyof AdminUpdateEggFromImportErrors]; +export type AdminUpdateEggFromImportResponses = { + /** + * Egg updated from import. + */ + 200: AdminEggResource; +}; +export type AdminUpdateEggFromImportResponse = AdminUpdateEggFromImportResponses[keyof AdminUpdateEggFromImportResponses]; +export type AdminSyncEggTagsData = { + body?: AdminSyncEggTagsRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminSyncEggTagsEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/tags'; +}; +export type AdminSyncEggTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminSyncEggTagsError = AdminSyncEggTagsErrors[keyof AdminSyncEggTagsErrors]; +export type AdminSyncEggTagsResponses = { + /** + * Tags applied to the egg. + */ + 200: AdminTagListResponse; +}; +export type AdminSyncEggTagsResponse = AdminSyncEggTagsResponses[keyof AdminSyncEggTagsResponses]; +export type AdminImportEggData = { + body: AdminImportEggRequest; + path?: never; + query?: never; + url: '/api/admin/eggs/import'; +}; +export type AdminImportEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminImportEggError = AdminImportEggErrors[keyof AdminImportEggErrors]; +export type AdminImportEggResponses = { + /** + * Egg imported. + */ + 201: AdminEggResource; +}; +export type AdminImportEggResponse = AdminImportEggResponses[keyof AdminImportEggResponses]; +export type AdminListEggsData = { + body?: never; + path?: never; + query?: { + /** + * Filter eggs by name. + */ + 'filter[name]'?: AdminListEggsFilterNameQueryParameter; + /** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ + 'filter[tag]'?: AdminListEggsFilterTagQueryParameter; + /** + * Sort eggs by id or name. Prefix with a hyphen for descending order. + */ + sort?: AdminListEggsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListEggsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListEggsPerPageQueryParameter; + /** + * Comma-separated relationships to include: variables, tags, servers. + */ + include?: AdminListEggsIncludeQueryParameter; + }; + url: '/api/admin/eggs'; +}; +export type AdminListEggsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListEggsError = AdminListEggsErrors[keyof AdminListEggsErrors]; +export type AdminListEggsResponses = { + /** + * Eggs returned. + */ + 200: AdminEggPaginatedResponse; +}; +export type AdminListEggsResponse = AdminListEggsResponses[keyof AdminListEggsResponses]; +export type AdminCreateEggData = { + body: AdminCreateEggRequest; + path?: never; + query?: never; + url: '/api/admin/eggs'; +}; +export type AdminCreateEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateEggError = AdminCreateEggErrors[keyof AdminCreateEggErrors]; +export type AdminCreateEggResponses = { + /** + * Egg created. + */ + 201: AdminEggResource; +}; +export type AdminCreateEggResponse = AdminCreateEggResponses[keyof AdminCreateEggResponses]; +export type AdminDeleteEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}'; +}; +export type AdminDeleteEggErrors = { + /** + * The egg has active servers or child eggs. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteEggError = AdminDeleteEggErrors[keyof AdminDeleteEggErrors]; +export type AdminDeleteEggResponses = { + /** + * Egg deleted. + */ + 204: void; +}; +export type AdminDeleteEggResponse = AdminDeleteEggResponses[keyof AdminDeleteEggResponses]; +export type AdminGetEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggEggIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include: variables, tags, servers. + */ + include?: AdminGetEggIncludeQueryParameter; + }; + url: '/api/admin/eggs/{egg_id}'; +}; +export type AdminGetEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetEggError = AdminGetEggErrors[keyof AdminGetEggErrors]; +export type AdminGetEggResponses = { + /** + * Egg returned. + */ + 200: AdminEggResource; +}; +export type AdminGetEggResponse = AdminGetEggResponses[keyof AdminGetEggResponses]; +export type AdminUpdateEggData = { + body: AdminUpdateEggRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}'; +}; +export type AdminUpdateEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateEggError = AdminUpdateEggErrors[keyof AdminUpdateEggErrors]; +export type AdminUpdateEggResponses = { + /** + * Egg updated. + */ + 200: AdminEggResource; +}; +export type AdminUpdateEggResponse = AdminUpdateEggResponses[keyof AdminUpdateEggResponses]; +export type AdminListTagsData = { + body?: never; + path?: never; + query?: { + /** + * Filter tags by name. + */ + 'filter[name]'?: AdminListTagsFilterNameQueryParameter; + /** + * Filter tags by slug. + */ + 'filter[slug]'?: AdminListTagsFilterSlugQueryParameter; + /** + * Sort tags by id, name, or slug. Prefix with a hyphen for descending order. + */ + sort?: AdminListTagsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListTagsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListTagsPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ + include?: AdminListTagsIncludeQueryParameter; + }; + url: '/api/admin/tags'; +}; +export type AdminListTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListTagsError = AdminListTagsErrors[keyof AdminListTagsErrors]; +export type AdminListTagsResponses = { + /** + * Tags returned. + */ + 200: AdminTagPaginatedResponse; +}; +export type AdminListTagsResponse = AdminListTagsResponses[keyof AdminListTagsResponses]; +export type AdminCreateTagData = { + body: AdminCreateTagRequest; + path?: never; + query?: never; + url: '/api/admin/tags'; +}; +export type AdminCreateTagErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateTagError = AdminCreateTagErrors[keyof AdminCreateTagErrors]; +export type AdminCreateTagResponses = { + /** + * Tag created. + */ + 201: AdminTagResource; +}; +export type AdminCreateTagResponse = AdminCreateTagResponses[keyof AdminCreateTagResponses]; +export type AdminDeleteTagData = { + body?: never; + path: { + /** + * The ID of the tag. + */ + tag_id: AdminGetTagTagIdPathParameter; + }; + query?: never; + url: '/api/admin/tags/{tag_id}'; +}; +export type AdminDeleteTagErrors = { + /** + * The tag is a built-in game tag. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteTagError = AdminDeleteTagErrors[keyof AdminDeleteTagErrors]; +export type AdminDeleteTagResponses = { + /** + * Tag deleted. + */ + 204: void; +}; +export type AdminDeleteTagResponse = AdminDeleteTagResponses[keyof AdminDeleteTagResponses]; +export type AdminGetTagData = { + body?: never; + path: { + /** + * The ID of the tag. + */ + tag_id: AdminGetTagTagIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ + include?: AdminGetTagIncludeQueryParameter; + }; + url: '/api/admin/tags/{tag_id}'; +}; +export type AdminGetTagErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetTagError = AdminGetTagErrors[keyof AdminGetTagErrors]; +export type AdminGetTagResponses = { + /** + * Tag returned. + */ + 200: AdminTagResource; +}; +export type AdminGetTagResponse = AdminGetTagResponses[keyof AdminGetTagResponses]; +export type AdminUpdateTagData = { + body: AdminUpdateTagRequest; + path: { + /** + * The ID of the tag. + */ + tag_id: AdminGetTagTagIdPathParameter; + }; + query?: never; + url: '/api/admin/tags/{tag_id}'; +}; +export type AdminUpdateTagErrors = { + /** + * The tag is a built-in game tag. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateTagError = AdminUpdateTagErrors[keyof AdminUpdateTagErrors]; +export type AdminUpdateTagResponses = { + /** + * Tag updated. + */ + 200: AdminTagResource; +}; +export type AdminUpdateTagResponse = AdminUpdateTagResponses[keyof AdminUpdateTagResponses]; +export type AdminGetSettingsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/settings'; +}; +export type AdminGetSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminGetSettingsError = AdminGetSettingsErrors[keyof AdminGetSettingsErrors]; +export type AdminGetSettingsResponses = { + /** + * Settings returned. + */ + 200: AdminSettingsResponse; +}; +export type AdminGetSettingsResponse = AdminGetSettingsResponses[keyof AdminGetSettingsResponses]; +export type AdminUpdateGeneralSettingsData = { + body: AdminUpdateGeneralSettingsRequest; + path?: never; + query?: never; + url: '/api/admin/settings/general'; +}; +export type AdminUpdateGeneralSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateGeneralSettingsError = AdminUpdateGeneralSettingsErrors[keyof AdminUpdateGeneralSettingsErrors]; +export type AdminUpdateGeneralSettingsResponses = { + /** + * General settings updated. + */ + 204: void; +}; +export type AdminUpdateGeneralSettingsResponse = AdminUpdateGeneralSettingsResponses[keyof AdminUpdateGeneralSettingsResponses]; +export type AdminUpdateMailSettingsData = { + body?: AdminUpdateMailSettingsRequest; + path?: never; + query?: never; + url: '/api/admin/settings/mail'; +}; +export type AdminUpdateMailSettingsErrors = { + /** + * The panel is not configured to use SMTP mail. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateMailSettingsError = AdminUpdateMailSettingsErrors[keyof AdminUpdateMailSettingsErrors]; +export type AdminUpdateMailSettingsResponses = { + /** + * Mail settings updated. + */ + 204: void; +}; +export type AdminUpdateMailSettingsResponse = AdminUpdateMailSettingsResponses[keyof AdminUpdateMailSettingsResponses]; +export type AdminSendTestMailData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/settings/mail/test'; +}; +export type AdminSendTestMailErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The configured mail transport failed to send the message. + */ + 500: ErrorEnvelope; +}; +export type AdminSendTestMailError = AdminSendTestMailErrors[keyof AdminSendTestMailErrors]; +export type AdminSendTestMailResponses = { + /** + * Test mail queued. + */ + 204: void; +}; +export type AdminSendTestMailResponse = AdminSendTestMailResponses[keyof AdminSendTestMailResponses]; +export type AdminUpdateAdvancedSettingsData = { + body: AdminUpdateAdvancedSettingsRequest; + path?: never; + query?: never; + url: '/api/admin/settings/advanced'; +}; +export type AdminUpdateAdvancedSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateAdvancedSettingsError = AdminUpdateAdvancedSettingsErrors[keyof AdminUpdateAdvancedSettingsErrors]; +export type AdminUpdateAdvancedSettingsResponses = { + /** + * Advanced settings updated. + */ + 204: void; +}; +export type AdminUpdateAdvancedSettingsResponse = AdminUpdateAdvancedSettingsResponses[keyof AdminUpdateAdvancedSettingsResponses]; +export type AdminListDatabaseHostsData = { + body?: never; + path?: never; + query?: { + /** + * Page number to retrieve. + */ + page?: AdminListDatabaseHostsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListDatabaseHostsPerPageQueryParameter; + /** + * Filter hosts by name. + */ + 'filter[name]'?: AdminListDatabaseHostsFilterNameQueryParameter; + /** + * Filter hosts by address or hostname. + */ + 'filter[host]'?: AdminListDatabaseHostsFilterHostQueryParameter; + /** + * Sort hosts by ID, name, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListDatabaseHostsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports node and databases. + */ + include?: AdminListDatabaseHostsIncludeQueryParameter; + }; + url: '/api/admin/database-hosts'; +}; +export type AdminListDatabaseHostsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListDatabaseHostsError = AdminListDatabaseHostsErrors[keyof AdminListDatabaseHostsErrors]; +export type AdminListDatabaseHostsResponses = { + /** + * Database hosts returned. + */ + 200: AdminDatabaseHostPaginatedResponse; +}; +export type AdminListDatabaseHostsResponse = AdminListDatabaseHostsResponses[keyof AdminListDatabaseHostsResponses]; +export type AdminCreateDatabaseHostData = { + body: AdminCreateDatabaseHostRequest; + path?: never; + query?: never; + url: '/api/admin/database-hosts'; +}; +export type AdminCreateDatabaseHostErrors = { + /** + * The panel could not connect to the database host. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateDatabaseHostError = AdminCreateDatabaseHostErrors[keyof AdminCreateDatabaseHostErrors]; +export type AdminCreateDatabaseHostResponses = { + /** + * Database host created. + */ + 201: AdminDatabaseHostResource; +}; +export type AdminCreateDatabaseHostResponse = AdminCreateDatabaseHostResponses[keyof AdminCreateDatabaseHostResponses]; +export type AdminDeleteDatabaseHostData = { + body?: never; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminGetDatabaseHostDatabaseHostIdPathParameter; + }; + query?: never; + url: '/api/admin/database-hosts/{databaseHost_id}'; +}; +export type AdminDeleteDatabaseHostErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteDatabaseHostError = AdminDeleteDatabaseHostErrors[keyof AdminDeleteDatabaseHostErrors]; +export type AdminDeleteDatabaseHostResponses = { + /** + * Database host deleted. + */ + 204: void; +}; +export type AdminDeleteDatabaseHostResponse = AdminDeleteDatabaseHostResponses[keyof AdminDeleteDatabaseHostResponses]; +export type AdminGetDatabaseHostData = { + body?: never; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminGetDatabaseHostDatabaseHostIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports node and databases. + */ + include?: AdminGetDatabaseHostIncludeQueryParameter; + }; + url: '/api/admin/database-hosts/{databaseHost_id}'; +}; +export type AdminGetDatabaseHostErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetDatabaseHostError = AdminGetDatabaseHostErrors[keyof AdminGetDatabaseHostErrors]; +export type AdminGetDatabaseHostResponses = { + /** + * Database host returned. + */ + 200: AdminDatabaseHostResource; +}; +export type AdminGetDatabaseHostResponse = AdminGetDatabaseHostResponses[keyof AdminGetDatabaseHostResponses]; +export type AdminUpdateDatabaseHostData = { + body: AdminUpdateDatabaseHostRequest; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminGetDatabaseHostDatabaseHostIdPathParameter; + }; + query?: never; + url: '/api/admin/database-hosts/{databaseHost_id}'; +}; +export type AdminUpdateDatabaseHostErrors = { + /** + * The panel could not connect to the database host. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateDatabaseHostError = AdminUpdateDatabaseHostErrors[keyof AdminUpdateDatabaseHostErrors]; +export type AdminUpdateDatabaseHostResponses = { + /** + * Database host updated. + */ + 200: AdminDatabaseHostResource; +}; +export type AdminUpdateDatabaseHostResponse = AdminUpdateDatabaseHostResponses[keyof AdminUpdateDatabaseHostResponses]; +export type AdminListDatabaseHostDatabasesData = { + body?: never; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminListDatabaseHostDatabasesDatabaseHostIdPathParameter; + }; + query?: { + /** + * Page number to retrieve. + */ + page?: AdminListDatabaseHostDatabasesPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListDatabaseHostDatabasesPerPageQueryParameter; + }; + url: '/api/admin/database-hosts/{databaseHost_id}/databases'; +}; +export type AdminListDatabaseHostDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminListDatabaseHostDatabasesError = AdminListDatabaseHostDatabasesErrors[keyof AdminListDatabaseHostDatabasesErrors]; +export type AdminListDatabaseHostDatabasesResponses = { + /** + * Databases returned. + */ + 200: AdminDatabasePaginatedResponse; +}; +export type AdminListDatabaseHostDatabasesResponse = AdminListDatabaseHostDatabasesResponses[keyof AdminListDatabaseHostDatabasesResponses]; +export type AdminListApiKeysData = { + body?: never; + path?: never; + query?: { + /** + * Filter keys by memo. + */ + 'filter[memo]'?: AdminListApiKeysFilterMemoQueryParameter; + /** + * Filter keys by identifier. + */ + 'filter[identifier]'?: AdminListApiKeysFilterIdentifierQueryParameter; + /** + * Sort keys by ID, memo, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListApiKeysSortQueryParameter; + /** + * Page number to retrieve. + */ + page?: AdminListApiKeysPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListApiKeysPerPageQueryParameter; + }; + url: '/api/admin/api-keys'; +}; +export type AdminListApiKeysErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminListApiKeysError = AdminListApiKeysErrors[keyof AdminListApiKeysErrors]; +export type AdminListApiKeysResponses = { + /** + * API keys returned. + */ + 200: AdminApiKeyPaginatedResponse; +}; +export type AdminListApiKeysResponse = AdminListApiKeysResponses[keyof AdminListApiKeysResponses]; +export type AdminCreateApiKeyData = { + body: AdminCreateApiKeyRequest; + path?: never; + query?: never; + url: '/api/admin/api-keys'; +}; +export type AdminCreateApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminCreateApiKeyError = AdminCreateApiKeyErrors[keyof AdminCreateApiKeyErrors]; +export type AdminCreateApiKeyResponses = { + /** + * API key created. + */ + 201: AdminApiKeyResource; +}; +export type AdminCreateApiKeyResponse = AdminCreateApiKeyResponses[keyof AdminCreateApiKeyResponses]; +export type AdminDeleteApiKeyData = { + body?: never; + path: { + /** + * The server UUID or short UUID. + */ + identifier: AdminGetApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/api-keys/{identifier}'; +}; +export type AdminDeleteApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminDeleteApiKeyError = AdminDeleteApiKeyErrors[keyof AdminDeleteApiKeyErrors]; +export type AdminDeleteApiKeyResponses = { + /** + * API key deleted. + */ + 204: void; +}; +export type AdminDeleteApiKeyResponse = AdminDeleteApiKeyResponses[keyof AdminDeleteApiKeyResponses]; +export type AdminGetApiKeyData = { + body?: never; + path: { + /** + * The server UUID or short UUID. + */ + identifier: AdminGetApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/api-keys/{identifier}'; +}; +export type AdminGetApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type AdminGetApiKeyError = AdminGetApiKeyErrors[keyof AdminGetApiKeyErrors]; +export type AdminGetApiKeyResponses = { + /** + * API key returned. + */ + 200: AdminApiKeyResource; +}; +export type AdminGetApiKeyResponse = AdminGetApiKeyResponses[keyof AdminGetApiKeyResponses]; +export type AdminUpdateApiKeyData = { + body: AdminUpdateApiKeyRequest; + path: { + /** + * The server UUID or short UUID. + */ + identifier: AdminGetApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/api-keys/{identifier}'; +}; +export type AdminUpdateApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AdminUpdateApiKeyError = AdminUpdateApiKeyErrors[keyof AdminUpdateApiKeyErrors]; +export type AdminUpdateApiKeyResponses = { + /** + * API key updated. + */ + 200: AdminApiKeyResource; +}; +export type AdminUpdateApiKeyResponse = AdminUpdateApiKeyResponses[keyof AdminUpdateApiKeyResponses]; +export type AdminGetVersionInformationData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/version'; +}; +export type AdminGetVersionInformationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type AdminGetVersionInformationError = AdminGetVersionInformationErrors[keyof AdminGetVersionInformationErrors]; +export type AdminGetVersionInformationResponses = { + /** + * Version information returned. + */ + 200: AdminVersionInformationResponse; +}; +export type AdminGetVersionInformationResponse = AdminGetVersionInformationResponses[keyof AdminGetVersionInformationResponses]; +export type ApplicationListUsersData = { + body?: never; + path?: never; + query?: { + /** + * Number of users to return per page, up to 100. + */ + per_page?: ApplicationListUsersPerPageQueryParameter; + /** + * Filter users by email address. + */ + 'filter[email]'?: ApplicationListUsersFilterEmailQueryParameter; + /** + * Filter users by UUID. + */ + 'filter[uuid]'?: ApplicationListUsersFilterUuidQueryParameter; + /** + * Filter users by username. + */ + 'filter[username]'?: ApplicationListUsersFilterUsernameQueryParameter; + /** + * Filter users by external identifier. + */ + 'filter[external_id]'?: ApplicationListUsersFilterExternalIdQueryParameter; + /** + * Sort users by id or uuid. Prefix with "-" for descending order. + */ + sort?: ApplicationListUsersSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ + include?: ApplicationListUsersIncludeQueryParameter; + }; + url: '/api/application/users'; +}; +export type ApplicationListUsersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ApplicationListUsersError = ApplicationListUsersErrors[keyof ApplicationListUsersErrors]; +export type ApplicationListUsersResponses = { + 200: ApplicationUserPaginatedResponse; +}; +export type ApplicationListUsersResponse = ApplicationListUsersResponses[keyof ApplicationListUsersResponses]; +export type ApplicationCreateUserData = { + body: ApplicationCreateUserRequest; + path?: never; + query?: never; + url: '/api/application/users'; +}; +export type ApplicationCreateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationCreateUserError = ApplicationCreateUserErrors[keyof ApplicationCreateUserErrors]; +export type ApplicationCreateUserResponses = { + /** + * User created. + */ + 201: ApplicationUserResource; +}; +export type ApplicationCreateUserResponse = ApplicationCreateUserResponses[keyof ApplicationCreateUserResponses]; +export type ApplicationDeleteUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: ApplicationGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/application/users/{user_id}'; +}; +export type ApplicationDeleteUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationDeleteUserError = ApplicationDeleteUserErrors[keyof ApplicationDeleteUserErrors]; +export type ApplicationDeleteUserResponses = { + /** + * User deleted. + */ + 204: void; +}; +export type ApplicationDeleteUserResponse = ApplicationDeleteUserResponses[keyof ApplicationDeleteUserResponses]; +export type ApplicationGetUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: ApplicationGetUserUserIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ + include?: ApplicationGetUserIncludeQueryParameter; + }; + url: '/api/application/users/{user_id}'; +}; +export type ApplicationGetUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetUserError = ApplicationGetUserErrors[keyof ApplicationGetUserErrors]; +export type ApplicationGetUserResponses = { + 200: ApplicationUserResource; +}; +export type ApplicationGetUserResponse = ApplicationGetUserResponses[keyof ApplicationGetUserResponses]; +export type ApplicationUpdateUserData = { + body: ApplicationUpdateUserRequest; + path: { + /** + * The user ID. + */ + user_id: ApplicationGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/application/users/{user_id}'; +}; +export type ApplicationUpdateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationUpdateUserError = ApplicationUpdateUserErrors[keyof ApplicationUpdateUserErrors]; +export type ApplicationUpdateUserResponses = { + 200: ApplicationUserResource; +}; +export type ApplicationUpdateUserResponse = ApplicationUpdateUserResponses[keyof ApplicationUpdateUserResponses]; +export type ApplicationGetUserByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: ApplicationGetUserByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/application/users/external/{external_id}'; +}; +export type ApplicationGetUserByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetUserByExternalIdError = ApplicationGetUserByExternalIdErrors[keyof ApplicationGetUserByExternalIdErrors]; +export type ApplicationGetUserByExternalIdResponses = { + 200: ApplicationUserResource; +}; +export type ApplicationGetUserByExternalIdResponse = ApplicationGetUserByExternalIdResponses[keyof ApplicationGetUserByExternalIdResponses]; +export type ApplicationListNodesData = { + body?: never; + path?: never; + query?: { + /** + * Number of nodes to return per page, up to 100. + */ + per_page?: ApplicationListNodesPerPageQueryParameter; + /** + * Filter nodes by UUID. + */ + 'filter[uuid]'?: ApplicationListNodesFilterUuidQueryParameter; + /** + * Filter nodes by name. + */ + 'filter[name]'?: ApplicationListNodesFilterNameQueryParameter; + /** + * Filter nodes by fully qualified domain name. + */ + 'filter[fqdn]'?: ApplicationListNodesFilterFqdnQueryParameter; + /** + * Filter nodes by daemon token identifier. + */ + 'filter[daemon_token_id]'?: ApplicationListNodesFilterDaemonTokenIdQueryParameter; + /** + * Sort nodes by id, uuid, memory, or disk. Prefix with "-" for descending order. + */ + sort?: ApplicationListNodesSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ + include?: ApplicationListNodesIncludeQueryParameter; + }; + url: '/api/application/nodes'; +}; +export type ApplicationListNodesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ApplicationListNodesError = ApplicationListNodesErrors[keyof ApplicationListNodesErrors]; +export type ApplicationListNodesResponses = { + 200: ApplicationNodePaginatedResponse; +}; +export type ApplicationListNodesResponse = ApplicationListNodesResponses[keyof ApplicationListNodesResponses]; +export type ApplicationCreateNodeData = { + body: ApplicationCreateNodeRequest; + path?: never; + query?: never; + url: '/api/application/nodes'; +}; +export type ApplicationCreateNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationCreateNodeError = ApplicationCreateNodeErrors[keyof ApplicationCreateNodeErrors]; +export type ApplicationCreateNodeResponses = { + /** + * Node created. + */ + 201: ApplicationNodeResource; +}; +export type ApplicationCreateNodeResponse = ApplicationCreateNodeResponses[keyof ApplicationCreateNodeResponses]; +export type ApplicationListDeployableNodesData = { + body?: never; + path?: never; + query: { + /** + * Memory required for the deployment, in megabytes. + */ + memory: ApplicationListDeployableNodesMemoryQueryParameter; + /** + * Disk required for the deployment, in megabytes. + */ + disk: ApplicationListDeployableNodesDiskQueryParameter; + /** + * Restrict results to these location IDs. + */ + location_ids?: ApplicationListDeployableNodesLocationIdsQueryParameter; + /** + * Deploy tags (IDs or slugs) the deployment declares. They must match a node's deployment tags exactly: a node reserved for a tag missing here is left out, and every tag listed must be reserved on the node. Without tags, only nodes with no reservations are returned. + */ + tags?: ApplicationListDeployableNodesTagsQueryParameter; + /** + * Only return nodes that accept this egg. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. + */ + egg?: ApplicationListDeployableNodesEggQueryParameter; + /** + * Page number to return. When omitted, all viable nodes are returned without pagination metadata. + */ + page?: ApplicationListDeployableNodesPageQueryParameter; + /** + * Number of nodes to return per page when page is supplied, up to 100. + */ + per_page?: ApplicationListDeployableNodesPerPageQueryParameter; + }; + url: '/api/application/nodes/deployable'; +}; +export type ApplicationListDeployableNodesErrors = { + /** + * No nodes can satisfy the requested deployment constraints. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationListDeployableNodesError = ApplicationListDeployableNodesErrors[keyof ApplicationListDeployableNodesErrors]; +export type ApplicationListDeployableNodesResponses = { + /** + * Deployable nodes returned. + */ + 200: ApplicationNodeListResponse; +}; +export type ApplicationListDeployableNodesResponse = ApplicationListDeployableNodesResponses[keyof ApplicationListDeployableNodesResponses]; +export type ApplicationDeleteNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}'; +}; +export type ApplicationDeleteNodeErrors = { + /** + * The node has active servers attached. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationDeleteNodeError = ApplicationDeleteNodeErrors[keyof ApplicationDeleteNodeErrors]; +export type ApplicationDeleteNodeResponses = { + /** + * Node deleted. + */ + 204: void; +}; +export type ApplicationDeleteNodeResponse = ApplicationDeleteNodeResponses[keyof ApplicationDeleteNodeResponses]; +export type ApplicationGetNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeNodeIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ + include?: ApplicationGetNodeIncludeQueryParameter; + }; + url: '/api/application/nodes/{node_id}'; +}; +export type ApplicationGetNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetNodeError = ApplicationGetNodeErrors[keyof ApplicationGetNodeErrors]; +export type ApplicationGetNodeResponses = { + 200: ApplicationNodeResource; +}; +export type ApplicationGetNodeResponse = ApplicationGetNodeResponses[keyof ApplicationGetNodeResponses]; +export type ApplicationUpdateNodeData = { + body: ApplicationUpdateNodeRequest; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}'; +}; +export type ApplicationUpdateNodeErrors = { + /** + * The panel saved the node changes but could not persist the configuration to Wings. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationUpdateNodeError = ApplicationUpdateNodeErrors[keyof ApplicationUpdateNodeErrors]; +export type ApplicationUpdateNodeResponses = { + 200: ApplicationNodeResource; +}; +export type ApplicationUpdateNodeResponse = ApplicationUpdateNodeResponses[keyof ApplicationUpdateNodeResponses]; +export type ApplicationGetNodeConfigurationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeConfigurationNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}/configuration'; +}; +export type ApplicationGetNodeConfigurationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetNodeConfigurationError = ApplicationGetNodeConfigurationErrors[keyof ApplicationGetNodeConfigurationErrors]; +export type ApplicationGetNodeConfigurationResponses = { + /** + * Node configuration. + */ + 200: ApplicationGetNodeConfigurationResponseBody; +}; +export type ApplicationGetNodeConfigurationResponse = ApplicationGetNodeConfigurationResponses[keyof ApplicationGetNodeConfigurationResponses]; +export type ApplicationListNodeAllocationsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationListNodeAllocationsNodeIdPathParameter; + }; + query?: { + /** + * Number of allocations to return per page, up to 100. + */ + per_page?: ApplicationListNodeAllocationsPerPageQueryParameter; + /** + * Filter allocations by exact IP address. + */ + 'filter[ip]'?: ApplicationListNodeAllocationsFilterIpQueryParameter; + /** + * Filter allocations by exact port. + */ + 'filter[port]'?: ApplicationListNodeAllocationsFilterPortQueryParameter; + /** + * Filter allocations by IP alias. + */ + 'filter[ip_alias]'?: ApplicationListNodeAllocationsFilterIpAliasQueryParameter; + /** + * Filter allocations by assigned server ID. Empty or non-numeric values return unassigned allocations. + */ + 'filter[server_id]'?: ApplicationListNodeAllocationsFilterServerIdQueryParameter; + /** + * Comma-separated relationships to include. Supports "node" and "server" when the key can read those resources. + */ + include?: ApplicationListNodeAllocationsIncludeQueryParameter; + }; + url: '/api/application/nodes/{node_id}/allocations'; +}; +export type ApplicationListNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationListNodeAllocationsError = ApplicationListNodeAllocationsErrors[keyof ApplicationListNodeAllocationsErrors]; +export type ApplicationListNodeAllocationsResponses = { + 200: ApplicationAllocationPaginatedResponse; +}; +export type ApplicationListNodeAllocationsResponse = ApplicationListNodeAllocationsResponses[keyof ApplicationListNodeAllocationsResponses]; +export type ApplicationCreateNodeAllocationsData = { + body: ApplicationCreateNodeAllocationsRequest; + path: { + /** + * The node ID. + */ + node_id: ApplicationListNodeAllocationsNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}/allocations'; +}; +export type ApplicationCreateNodeAllocationsErrors = { + /** + * The allocation IP, CIDR, or port mapping could not be processed. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationCreateNodeAllocationsError = ApplicationCreateNodeAllocationsErrors[keyof ApplicationCreateNodeAllocationsErrors]; +export type ApplicationCreateNodeAllocationsResponses = { + /** + * Allocations created. + */ + 204: void; +}; +export type ApplicationCreateNodeAllocationsResponse = ApplicationCreateNodeAllocationsResponses[keyof ApplicationCreateNodeAllocationsResponses]; +export type ApplicationDeleteNodeAllocationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationDeleteNodeAllocationNodeIdPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ApplicationDeleteNodeAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}/allocations/{allocation_id}'; +}; +export type ApplicationDeleteNodeAllocationErrors = { + /** + * The allocation is currently assigned to a server. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationDeleteNodeAllocationError = ApplicationDeleteNodeAllocationErrors[keyof ApplicationDeleteNodeAllocationErrors]; +export type ApplicationDeleteNodeAllocationResponses = { + /** + * Allocation deleted. + */ + 204: void; +}; +export type ApplicationDeleteNodeAllocationResponse = ApplicationDeleteNodeAllocationResponses[keyof ApplicationDeleteNodeAllocationResponses]; +export type ApplicationListLocationsData = { + body?: never; + path?: never; + query?: { + /** + * Number of locations to return per page, up to 100. + */ + per_page?: ApplicationListLocationsPerPageQueryParameter; + /** + * Filter locations by short identifier. + */ + 'filter[short]'?: ApplicationListLocationsFilterShortQueryParameter; + /** + * Filter locations by description. + */ + 'filter[long]'?: ApplicationListLocationsFilterLongQueryParameter; + /** + * Sort locations by id. Prefix with "-" for descending order. + */ + sort?: ApplicationListLocationsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ + include?: ApplicationListLocationsIncludeQueryParameter; + }; + url: '/api/application/locations'; +}; +export type ApplicationListLocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ApplicationListLocationsError = ApplicationListLocationsErrors[keyof ApplicationListLocationsErrors]; +export type ApplicationListLocationsResponses = { + 200: ApplicationLocationPaginatedResponse; +}; +export type ApplicationListLocationsResponse = ApplicationListLocationsResponses[keyof ApplicationListLocationsResponses]; +export type ApplicationCreateLocationData = { + body: ApplicationCreateLocationRequest; + path?: never; + query?: never; + url: '/api/application/locations'; +}; +export type ApplicationCreateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationCreateLocationError = ApplicationCreateLocationErrors[keyof ApplicationCreateLocationErrors]; +export type ApplicationCreateLocationResponses = { + /** + * Location created. + */ + 201: ApplicationLocationResource; +}; +export type ApplicationCreateLocationResponse = ApplicationCreateLocationResponses[keyof ApplicationCreateLocationResponses]; +export type ApplicationDeleteLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: ApplicationGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/application/locations/{location_id}'; +}; +export type ApplicationDeleteLocationErrors = { + /** + * The location has active nodes attached. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationDeleteLocationError = ApplicationDeleteLocationErrors[keyof ApplicationDeleteLocationErrors]; +export type ApplicationDeleteLocationResponses = { + /** + * Location deleted. + */ + 204: void; +}; +export type ApplicationDeleteLocationResponse = ApplicationDeleteLocationResponses[keyof ApplicationDeleteLocationResponses]; +export type ApplicationGetLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: ApplicationGetLocationLocationIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ + include?: ApplicationGetLocationIncludeQueryParameter; + }; + url: '/api/application/locations/{location_id}'; +}; +export type ApplicationGetLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetLocationError = ApplicationGetLocationErrors[keyof ApplicationGetLocationErrors]; +export type ApplicationGetLocationResponses = { + 200: ApplicationLocationResource; +}; +export type ApplicationGetLocationResponse = ApplicationGetLocationResponses[keyof ApplicationGetLocationResponses]; +export type ApplicationUpdateLocationData = { + body: ApplicationUpdateLocationRequest; + path: { + /** + * The location ID. + */ + location_id: ApplicationGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/application/locations/{location_id}'; +}; +export type ApplicationUpdateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationUpdateLocationError = ApplicationUpdateLocationErrors[keyof ApplicationUpdateLocationErrors]; +export type ApplicationUpdateLocationResponses = { + 200: ApplicationLocationResource; +}; +export type ApplicationUpdateLocationResponse = ApplicationUpdateLocationResponses[keyof ApplicationUpdateLocationResponses]; +export type ApplicationListEggsData = { + body?: never; + path?: never; + query?: { + /** + * Number of eggs to return per page, up to 100. + */ + per_page?: ApplicationListEggsPerPageQueryParameter; + /** + * Filter eggs by name. + */ + 'filter[name]'?: ApplicationListEggsFilterNameQueryParameter; + /** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ + 'filter[tag]'?: ApplicationListEggsFilterTagQueryParameter; + /** + * Sort eggs by id or name. Prefix with "-" for descending order. + */ + sort?: ApplicationListEggsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ + include?: ApplicationListEggsIncludeQueryParameter; + }; + url: '/api/application/eggs'; +}; +export type ApplicationListEggsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ApplicationListEggsError = ApplicationListEggsErrors[keyof ApplicationListEggsErrors]; +export type ApplicationListEggsResponses = { + 200: ApplicationEggPaginatedResponse; +}; +export type ApplicationListEggsResponse = ApplicationListEggsResponses[keyof ApplicationListEggsResponses]; +export type ApplicationGetEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: ApplicationGetEggEggIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ + include?: ApplicationGetEggIncludeQueryParameter; + }; + url: '/api/application/eggs/{egg_id}'; +}; +export type ApplicationGetEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetEggError = ApplicationGetEggErrors[keyof ApplicationGetEggErrors]; +export type ApplicationGetEggResponses = { + 200: ApplicationEggResource; +}; +export type ApplicationGetEggResponse = ApplicationGetEggResponses[keyof ApplicationGetEggResponses]; +export type ApplicationListTagsData = { + body?: never; + path?: never; + query?: { + /** + * Number of tags to return per page, up to 100. + */ + per_page?: ApplicationListTagsPerPageQueryParameter; + /** + * Filter tags by name. + */ + 'filter[name]'?: ApplicationListTagsFilterNameQueryParameter; + /** + * Filter tags by slug. + */ + 'filter[slug]'?: ApplicationListTagsFilterSlugQueryParameter; + /** + * Filter tags by the ID of the nest they were created from. + */ + 'filter[legacy_nest_id]'?: ApplicationListTagsFilterLegacyNestIdQueryParameter; + /** + * Sort tags by id, name, or slug. Prefix with "-" for descending order. + */ + sort?: ApplicationListTagsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ + include?: ApplicationListTagsIncludeQueryParameter; + }; + url: '/api/application/tags'; +}; +export type ApplicationListTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ApplicationListTagsError = ApplicationListTagsErrors[keyof ApplicationListTagsErrors]; +export type ApplicationListTagsResponses = { + 200: ApplicationTagPaginatedResponse; +}; +export type ApplicationListTagsResponse = ApplicationListTagsResponses[keyof ApplicationListTagsResponses]; +export type ApplicationGetTagData = { + body?: never; + path: { + /** + * The ID of the tag. + */ + tag_id: ApplicationGetTagTagIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ + include?: ApplicationGetTagIncludeQueryParameter; + }; + url: '/api/application/tags/{tag_id}'; +}; +export type ApplicationGetTagErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetTagError = ApplicationGetTagErrors[keyof ApplicationGetTagErrors]; +export type ApplicationGetTagResponses = { + 200: ApplicationTagResource; +}; +export type ApplicationGetTagResponse = ApplicationGetTagResponses[keyof ApplicationGetTagResponses]; +export type ApplicationListServersData = { + body?: never; + path?: never; + query?: { + /** + * Number of servers to return per page, up to 100. + */ + per_page?: ApplicationListServersPerPageQueryParameter; + /** + * Filter servers by UUID. + */ + 'filter[uuid]'?: ApplicationListServersFilterUuidQueryParameter; + /** + * Filter servers by short UUID identifier. + */ + 'filter[uuidShort]'?: ApplicationListServersFilterUuidShortQueryParameter; + /** + * Filter servers by name. + */ + 'filter[name]'?: ApplicationListServersFilterNameQueryParameter; + /** + * Filter servers by description. + */ + 'filter[description]'?: ApplicationListServersFilterDescriptionQueryParameter; + /** + * Filter servers by Docker image. + */ + 'filter[image]'?: ApplicationListServersFilterImageQueryParameter; + /** + * Filter servers by external identifier. + */ + 'filter[external_id]'?: ApplicationListServersFilterExternalIdQueryParameter; + /** + * Search term accepted by the list request. Must not exceed 100 characters. + */ + search?: ApplicationListServersSearchQueryParameter; + /** + * Sort servers by id or uuid. Prefix with "-" for descending order. + */ + sort?: ApplicationListServersSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ + include?: ApplicationListServersIncludeQueryParameter; + }; + url: '/api/application/servers'; +}; +export type ApplicationListServersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationListServersError = ApplicationListServersErrors[keyof ApplicationListServersErrors]; +export type ApplicationListServersResponses = { + 200: ApplicationServerPaginatedResponse; +}; +export type ApplicationListServersResponse = ApplicationListServersResponses[keyof ApplicationListServersResponses]; +export type ApplicationCreateServerData = { + body: ApplicationCreateServerRequest; + path?: never; + query?: never; + url: '/api/application/servers'; +}; +export type ApplicationCreateServerErrors = { + /** + * Automatic deployment could not find a viable node or allocation. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationCreateServerError = ApplicationCreateServerErrors[keyof ApplicationCreateServerErrors]; +export type ApplicationCreateServerResponses = { + /** + * Server created. + */ + 201: ApplicationServerResource; +}; +export type ApplicationCreateServerResponse = ApplicationCreateServerResponses[keyof ApplicationCreateServerResponses]; +export type ApplicationDeleteServerForServersServerIdData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}'; +}; +export type ApplicationDeleteServerForServersServerIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationDeleteServerForServersServerIdError = ApplicationDeleteServerForServersServerIdErrors[keyof ApplicationDeleteServerForServersServerIdErrors]; +export type ApplicationDeleteServerForServersServerIdResponses = { + /** + * Server deleted. + */ + 204: void; +}; +export type ApplicationDeleteServerForServersServerIdResponse = ApplicationDeleteServerForServersServerIdResponses[keyof ApplicationDeleteServerForServersServerIdResponses]; +export type ApplicationGetServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerServerIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ + include?: ApplicationGetServerIncludeQueryParameter; + }; + url: '/api/application/servers/{server_id}'; +}; +export type ApplicationGetServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetServerError = ApplicationGetServerErrors[keyof ApplicationGetServerErrors]; +export type ApplicationGetServerResponses = { + 200: ApplicationServerResource; +}; +export type ApplicationGetServerResponse = ApplicationGetServerResponses[keyof ApplicationGetServerResponses]; +export type ApplicationGetServerByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: ApplicationGetServerByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/application/servers/external/{external_id}'; +}; +export type ApplicationGetServerByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetServerByExternalIdError = ApplicationGetServerByExternalIdErrors[keyof ApplicationGetServerByExternalIdErrors]; +export type ApplicationGetServerByExternalIdResponses = { + 200: ApplicationServerResource; +}; +export type ApplicationGetServerByExternalIdResponse = ApplicationGetServerByExternalIdResponses[keyof ApplicationGetServerByExternalIdResponses]; +export type ApplicationUpdateServerDetailsData = { + body: ApplicationUpdateServerDetailsRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationUpdateServerDetailsServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/details'; +}; +export type ApplicationUpdateServerDetailsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationUpdateServerDetailsError = ApplicationUpdateServerDetailsErrors[keyof ApplicationUpdateServerDetailsErrors]; +export type ApplicationUpdateServerDetailsResponses = { + 200: ApplicationServerResource; +}; +export type ApplicationUpdateServerDetailsResponse = ApplicationUpdateServerDetailsResponses[keyof ApplicationUpdateServerDetailsResponses]; +export type ApplicationUpdateServerBuildData = { + body: ApplicationUpdateServerBuildRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationUpdateServerBuildServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/build'; +}; +export type ApplicationUpdateServerBuildErrors = { + /** + * The requested allocation change is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationUpdateServerBuildError = ApplicationUpdateServerBuildErrors[keyof ApplicationUpdateServerBuildErrors]; +export type ApplicationUpdateServerBuildResponses = { + 200: ApplicationServerResource; +}; +export type ApplicationUpdateServerBuildResponse = ApplicationUpdateServerBuildResponses[keyof ApplicationUpdateServerBuildResponses]; +export type ApplicationUpdateServerStartupData = { + body: ApplicationUpdateServerStartupRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationUpdateServerStartupServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/startup'; +}; +export type ApplicationUpdateServerStartupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not be reached while syncing startup changes. + */ + 504: ErrorEnvelope; +}; +export type ApplicationUpdateServerStartupError = ApplicationUpdateServerStartupErrors[keyof ApplicationUpdateServerStartupErrors]; +export type ApplicationUpdateServerStartupResponses = { + 200: ApplicationServerResource; +}; +export type ApplicationUpdateServerStartupResponse = ApplicationUpdateServerStartupResponses[keyof ApplicationUpdateServerStartupResponses]; +export type ApplicationSuspendServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationSuspendServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/suspend'; +}; +export type ApplicationSuspendServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The server is currently being transferred. + */ + 409: ErrorEnvelope; + /** + * Wings could not be reached while syncing suspension state. + */ + 504: ErrorEnvelope; +}; +export type ApplicationSuspendServerError = ApplicationSuspendServerErrors[keyof ApplicationSuspendServerErrors]; +export type ApplicationSuspendServerResponses = { + /** + * Server suspended. + */ + 204: void; +}; +export type ApplicationSuspendServerResponse = ApplicationSuspendServerResponses[keyof ApplicationSuspendServerResponses]; +export type ApplicationUnsuspendServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationUnsuspendServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/unsuspend'; +}; +export type ApplicationUnsuspendServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The server is currently being transferred. + */ + 409: ErrorEnvelope; + /** + * Wings could not be reached while syncing suspension state. + */ + 504: ErrorEnvelope; +}; +export type ApplicationUnsuspendServerError = ApplicationUnsuspendServerErrors[keyof ApplicationUnsuspendServerErrors]; +export type ApplicationUnsuspendServerResponses = { + /** + * Server unsuspended. + */ + 204: void; +}; +export type ApplicationUnsuspendServerResponse = ApplicationUnsuspendServerResponses[keyof ApplicationUnsuspendServerResponses]; +export type ApplicationReinstallServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationReinstallServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/reinstall'; +}; +export type ApplicationReinstallServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * Wings could not be reached while starting reinstall. + */ + 504: ErrorEnvelope; +}; +export type ApplicationReinstallServerError = ApplicationReinstallServerErrors[keyof ApplicationReinstallServerErrors]; +export type ApplicationReinstallServerResponses = { + /** + * Server marked for reinstall. + */ + 204: void; +}; +export type ApplicationReinstallServerResponse = ApplicationReinstallServerResponses[keyof ApplicationReinstallServerResponses]; +export type ApplicationDeleteServerForServersServerIdForceData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationDeleteServerServerIdPathParameter; + /** + * Optional parameter. Whether to force the delete operation. + */ + force: ApplicationDeleteServerForcePathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/{force}'; +}; +export type ApplicationDeleteServerForServersServerIdForceErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationDeleteServerForServersServerIdForceError = ApplicationDeleteServerForServersServerIdForceErrors[keyof ApplicationDeleteServerForServersServerIdForceErrors]; +export type ApplicationDeleteServerForServersServerIdForceResponses = { + /** + * Server deleted. + */ + 204: void; +}; +export type ApplicationDeleteServerForServersServerIdForceResponse = ApplicationDeleteServerForServersServerIdForceResponses[keyof ApplicationDeleteServerForServersServerIdForceResponses]; +export type ApplicationListServerDatabasesData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationListServerDatabasesServerIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ + include?: ApplicationListServerDatabasesIncludeQueryParameter; + }; + url: '/api/application/servers/{server_id}/databases'; +}; +export type ApplicationListServerDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationListServerDatabasesError = ApplicationListServerDatabasesErrors[keyof ApplicationListServerDatabasesErrors]; +export type ApplicationListServerDatabasesResponses = { + /** + * Server databases returned. + */ + 200: ApplicationServerDatabaseListResponse; +}; +export type ApplicationListServerDatabasesResponse = ApplicationListServerDatabasesResponses[keyof ApplicationListServerDatabasesResponses]; +export type ApplicationCreateServerDatabaseData = { + body: ApplicationCreateServerDatabaseRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationListServerDatabasesServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/databases'; +}; +export type ApplicationCreateServerDatabaseErrors = { + /** + * The server has reached its configured database limit. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ApplicationCreateServerDatabaseError = ApplicationCreateServerDatabaseErrors[keyof ApplicationCreateServerDatabaseErrors]; +export type ApplicationCreateServerDatabaseResponses = { + /** + * Database created. + */ + 201: ApplicationServerDatabaseResource; +}; +export type ApplicationCreateServerDatabaseResponse = ApplicationCreateServerDatabaseResponses[keyof ApplicationCreateServerDatabaseResponses]; +export type ApplicationDeleteServerDatabaseData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerDatabaseServerIdPathParameter; + /** + * The database ID. + */ + database_id: ApplicationGetServerDatabaseDatabaseIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/databases/{database_id}'; +}; +export type ApplicationDeleteServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationDeleteServerDatabaseError = ApplicationDeleteServerDatabaseErrors[keyof ApplicationDeleteServerDatabaseErrors]; +export type ApplicationDeleteServerDatabaseResponses = { + /** + * Database deleted. + */ + 204: void; +}; +export type ApplicationDeleteServerDatabaseResponse = ApplicationDeleteServerDatabaseResponses[keyof ApplicationDeleteServerDatabaseResponses]; +export type ApplicationGetServerDatabaseData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerDatabaseServerIdPathParameter; + /** + * The database ID. + */ + database_id: ApplicationGetServerDatabaseDatabaseIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ + include?: ApplicationGetServerDatabaseIncludeQueryParameter; + }; + url: '/api/application/servers/{server_id}/databases/{database_id}'; +}; +export type ApplicationGetServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationGetServerDatabaseError = ApplicationGetServerDatabaseErrors[keyof ApplicationGetServerDatabaseErrors]; +export type ApplicationGetServerDatabaseResponses = { + 200: ApplicationServerDatabaseResource; +}; +export type ApplicationGetServerDatabaseResponse = ApplicationGetServerDatabaseResponses[keyof ApplicationGetServerDatabaseResponses]; +export type ApplicationResetServerDatabasePasswordData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationResetServerDatabasePasswordServerIdPathParameter; + /** + * The database ID. + */ + database_id: ApplicationResetServerDatabasePasswordDatabaseIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/databases/{database_id}/reset-password'; +}; +export type ApplicationResetServerDatabasePasswordErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ApplicationResetServerDatabasePasswordError = ApplicationResetServerDatabasePasswordErrors[keyof ApplicationResetServerDatabasePasswordErrors]; +export type ApplicationResetServerDatabasePasswordResponses = { + /** + * Database password reset. + */ + 204: void; +}; +export type ApplicationResetServerDatabasePasswordResponse = ApplicationResetServerDatabasePasswordResponses[keyof ApplicationResetServerDatabasePasswordResponses]; +export type AuthLoginData = { + body: AuthLoginRequest; + path?: never; + query?: never; + url: '/auth/login'; +}; +export type AuthLoginErrors = { + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AuthLoginError = AuthLoginErrors[keyof AuthLoginErrors]; +export type AuthLoginResponses = { + 200: AuthLoginResponse; +}; +export type AuthLoginResponse2 = AuthLoginResponses[keyof AuthLoginResponses]; +export type AuthCompleteLoginCheckpointData = { + body: AuthCompleteLoginCheckpointRequest; + path?: never; + query?: never; + url: '/auth/login/checkpoint'; +}; +export type AuthCompleteLoginCheckpointErrors = { + /** + * The checkpoint token, TOTP code, or recovery token is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AuthCompleteLoginCheckpointError = AuthCompleteLoginCheckpointErrors[keyof AuthCompleteLoginCheckpointErrors]; +export type AuthCompleteLoginCheckpointResponses = { + /** + * Login completed and a browser session was created. + */ + 200: AuthLoginCompleteResponse; +}; +export type AuthCompleteLoginCheckpointResponse = AuthCompleteLoginCheckpointResponses[keyof AuthCompleteLoginCheckpointResponses]; +export type AuthRequestPasswordResetEmailData = { + body: AuthRequestPasswordResetEmailRequest; + path?: never; + query?: never; + url: '/auth/password'; +}; +export type AuthRequestPasswordResetEmailErrors = { + /** + * The reCAPTCHA token is invalid or missing. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AuthRequestPasswordResetEmailError = AuthRequestPasswordResetEmailErrors[keyof AuthRequestPasswordResetEmailErrors]; +export type AuthRequestPasswordResetEmailResponses = { + /** + * Password reset email accepted. + */ + 200: AuthPasswordResetEmailResponse; +}; +export type AuthRequestPasswordResetEmailResponse = AuthRequestPasswordResetEmailResponses[keyof AuthRequestPasswordResetEmailResponses]; +export type AuthResetPasswordData = { + body: AuthResetPasswordRequest; + path?: never; + query?: never; + url: '/auth/password/reset'; +}; +export type AuthResetPasswordErrors = { + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type AuthResetPasswordError = AuthResetPasswordErrors[keyof AuthResetPasswordErrors]; +export type AuthResetPasswordResponses = { + /** + * Password reset completed. + */ + 200: AuthResetPasswordResponse; +}; +export type AuthResetPasswordResponse2 = AuthResetPasswordResponses[keyof AuthResetPasswordResponses]; +export type AuthLogoutData = { + body?: never; + path?: never; + query?: never; + url: '/auth/logout'; +}; +export type AuthLogoutErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; +export type AuthLogoutError = AuthLogoutErrors[keyof AuthLogoutErrors]; +export type AuthLogoutResponses = { + /** + * The browser session was destroyed. + */ + 204: void; +}; +export type AuthLogoutResponse = AuthLogoutResponses[keyof AuthLogoutResponses]; +export type ClientListClientServersData = { + body?: never; + path?: never; + query?: { + /** + * Page number to return. + */ + page?: ClientListClientServersPageQueryParameter; + /** + * Number of servers to return per page. The maximum is 100. + */ + per_page?: ClientListClientServersPerPageQueryParameter; + /** + * Scope of servers to return. "owner" returns owned servers, "admin" returns admin-accessible servers excluding owned or subuser servers, and "admin-all" returns all servers for root administrators. + */ + type?: ClientListClientServersTypeQueryParameter; + /** + * Filter servers by UUID. + */ + 'filter[uuid]'?: ClientListClientServersFilterUuidQueryParameter; + /** + * Filter servers by name. + */ + 'filter[name]'?: ClientListClientServersFilterNameQueryParameter; + /** + * Filter servers by description. + */ + 'filter[description]'?: ClientListClientServersFilterDescriptionQueryParameter; + /** + * Filter servers by external identifier. + */ + 'filter[external_id]'?: ClientListClientServersFilterExternalIdQueryParameter; + /** + * Search across server name, UUID, short UUID, external identifier, or allocation address and port. + */ + 'filter[*]'?: ClientListClientServersFilterWildcardQueryParameter; + }; + url: '/api/client'; +}; +export type ClientListClientServersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientListClientServersError = ClientListClientServersErrors[keyof ClientListClientServersErrors]; +export type ClientListClientServersResponses = { + /** + * Accessible servers returned. + */ + 200: ClientServerPaginatedResponse; +}; +export type ClientListClientServersResponse = ClientListClientServersResponses[keyof ClientListClientServersResponses]; +export type ClientListServerPermissionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/permissions'; +}; +export type ClientListServerPermissionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; +export type ClientListServerPermissionsError = ClientListServerPermissionsErrors[keyof ClientListServerPermissionsErrors]; +export type ClientListServerPermissionsResponses = { + /** + * System permission definitions returned. + */ + 200: ClientSystemPermissionsResponse; +}; +export type ClientListServerPermissionsResponse = ClientListServerPermissionsResponses[keyof ClientListServerPermissionsResponses]; +export type ClientGetExtensionJobProgressData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: ClientGetExtensionJobProgressExtensionPathParameter; + /** + * The progress job UUID. + */ + job: ClientGetExtensionJobProgressJobPathParameter; + }; + query?: never; + url: '/api/client/extension-progress/{extension}/{job}'; +}; +export type ClientGetExtensionJobProgressErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetExtensionJobProgressError = ClientGetExtensionJobProgressErrors[keyof ClientGetExtensionJobProgressErrors]; +export type ClientGetExtensionJobProgressResponses = { + 200: ClientGetExtensionJobProgressResponseBody; +}; +export type ClientGetExtensionJobProgressResponse = ClientGetExtensionJobProgressResponses[keyof ClientGetExtensionJobProgressResponses]; +export type ClientGetAccountData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account'; +}; +export type ClientGetAccountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; +export type ClientGetAccountError = ClientGetAccountErrors[keyof ClientGetAccountErrors]; +export type ClientGetAccountResponses = { + 200: ClientUserResource; +}; +export type ClientGetAccountResponse = ClientGetAccountResponses[keyof ClientGetAccountResponses]; +export type ClientGetTwoFactorSetupData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/two-factor'; +}; +export type ClientGetTwoFactorSetupErrors = { + /** + * Two-factor authentication is already enabled. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; +export type ClientGetTwoFactorSetupError = ClientGetTwoFactorSetupErrors[keyof ClientGetTwoFactorSetupErrors]; +export type ClientGetTwoFactorSetupResponses = { + /** + * Two-factor setup data returned. + */ + 200: ClientTwoFactorSetupResponse; +}; +export type ClientGetTwoFactorSetupResponse = ClientGetTwoFactorSetupResponses[keyof ClientGetTwoFactorSetupResponses]; +export type ClientEnableTwoFactorAuthenticationData = { + body: ClientEnableTwoFactorAuthenticationRequest; + path?: never; + query?: never; + url: '/api/client/account/two-factor'; +}; +export type ClientEnableTwoFactorAuthenticationErrors = { + /** + * The password or TOTP code is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientEnableTwoFactorAuthenticationError = ClientEnableTwoFactorAuthenticationErrors[keyof ClientEnableTwoFactorAuthenticationErrors]; +export type ClientEnableTwoFactorAuthenticationResponses = { + /** + * Two-factor authentication enabled. Store these recovery tokens now; they are not shown again. + */ + 200: ClientRecoveryTokensResource; +}; +export type ClientEnableTwoFactorAuthenticationResponse = ClientEnableTwoFactorAuthenticationResponses[keyof ClientEnableTwoFactorAuthenticationResponses]; +export type ClientDisableTwoFactorAuthenticationData = { + body: ClientDisableTwoFactorAuthenticationRequest; + path?: never; + query?: never; + url: '/api/client/account/two-factor/disable'; +}; +export type ClientDisableTwoFactorAuthenticationErrors = { + /** + * The password is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientDisableTwoFactorAuthenticationError = ClientDisableTwoFactorAuthenticationErrors[keyof ClientDisableTwoFactorAuthenticationErrors]; +export type ClientDisableTwoFactorAuthenticationResponses = { + /** + * Two-factor authentication disabled. + */ + 204: void; +}; +export type ClientDisableTwoFactorAuthenticationResponse = ClientDisableTwoFactorAuthenticationResponses[keyof ClientDisableTwoFactorAuthenticationResponses]; +export type ClientUpdateAccountEmailData = { + body: ClientUpdateAccountEmailRequest; + path?: never; + query?: never; + url: '/api/client/account/email'; +}; +export type ClientUpdateAccountEmailErrors = { + /** + * The current password is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * The account has changed email too many times in the current throttle window. + */ + 429: ErrorEnvelope; +}; +export type ClientUpdateAccountEmailError = ClientUpdateAccountEmailErrors[keyof ClientUpdateAccountEmailErrors]; +export type ClientUpdateAccountEmailResponses = { + /** + * Email address updated. + */ + 204: void; +}; +export type ClientUpdateAccountEmailResponse = ClientUpdateAccountEmailResponses[keyof ClientUpdateAccountEmailResponses]; +export type ClientUpdateAccountPasswordData = { + body: ClientUpdateAccountPasswordRequest; + path?: never; + query?: never; + url: '/api/client/account/password'; +}; +export type ClientUpdateAccountPasswordErrors = { + /** + * The current password is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientUpdateAccountPasswordError = ClientUpdateAccountPasswordErrors[keyof ClientUpdateAccountPasswordErrors]; +export type ClientUpdateAccountPasswordResponses = { + /** + * Password updated. + */ + 204: void; +}; +export type ClientUpdateAccountPasswordResponse = ClientUpdateAccountPasswordResponses[keyof ClientUpdateAccountPasswordResponses]; +export type ClientListAccountActivityData = { + body?: never; + path?: never; + query?: { + /** + * Page number to retrieve. + */ + page?: ClientListAccountActivityPageQueryParameter; + /** + * Number of activity log entries to return per page. The maximum is 100. + */ + per_page?: ClientListAccountActivityPerPageQueryParameter; + /** + * Filter activity by event name. + */ + 'filter[event]'?: ClientListAccountActivityFilterEventQueryParameter; + /** + * Filter activity by the username or email of the user that performed it. + */ + 'filter[user]'?: ClientListAccountActivityFilterUserQueryParameter; + /** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ + 'filter[user_id]'?: ClientListAccountActivityFilterUserIdQueryParameter; + /** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ + 'filter[event_name]'?: ClientListAccountActivityFilterEventNameQueryParameter; + /** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ + sort?: ClientListAccountActivitySortQueryParameter; + /** + * Comma-separated relationships to include. Supports actor. + */ + include?: ClientListAccountActivityIncludeQueryParameter; + }; + url: '/api/client/account/activity'; +}; +export type ClientListAccountActivityErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientListAccountActivityError = ClientListAccountActivityErrors[keyof ClientListAccountActivityErrors]; +export type ClientListAccountActivityResponses = { + /** + * Activity logs returned. + */ + 200: ClientActivityLogPaginatedResponse; +}; +export type ClientListAccountActivityResponse = ClientListAccountActivityResponses[keyof ClientListAccountActivityResponses]; +export type ClientListAccountActivityFilterOptionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/activity/filters'; +}; +export type ClientListAccountActivityFilterOptionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ClientListAccountActivityFilterOptionsError = ClientListAccountActivityFilterOptionsErrors[keyof ClientListAccountActivityFilterOptionsErrors]; +export type ClientListAccountActivityFilterOptionsResponses = { + /** + * Filter options returned. + */ + 200: ClientListAccountActivityFilterOptionsResponseBody; +}; +export type ClientListAccountActivityFilterOptionsResponse = ClientListAccountActivityFilterOptionsResponses[keyof ClientListAccountActivityFilterOptionsResponses]; +export type ClientListAccountApiKeysData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/api-keys'; +}; +export type ClientListAccountApiKeysErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ClientListAccountApiKeysError = ClientListAccountApiKeysErrors[keyof ClientListAccountApiKeysErrors]; +export type ClientListAccountApiKeysResponses = { + /** + * API keys returned. + */ + 200: ClientApiKeyListResponse; +}; +export type ClientListAccountApiKeysResponse = ClientListAccountApiKeysResponses[keyof ClientListAccountApiKeysResponses]; +export type ClientCreateAccountApiKeyData = { + body: ClientCreateAccountApiKeyRequest; + path?: never; + query?: never; + url: '/api/client/account/api-keys'; +}; +export type ClientCreateAccountApiKeyErrors = { + /** + * The account already has the maximum number of API keys. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientCreateAccountApiKeyError = ClientCreateAccountApiKeyErrors[keyof ClientCreateAccountApiKeyErrors]; +export type ClientCreateAccountApiKeyResponses = { + /** + * API key created. + */ + 200: ClientApiKeyResource; +}; +export type ClientCreateAccountApiKeyResponse = ClientCreateAccountApiKeyResponses[keyof ClientCreateAccountApiKeyResponses]; +export type ClientDeleteAccountApiKeyData = { + body?: never; + path: { + /** + * The server UUID or short UUID. + */ + identifier: ClientDeleteAccountApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/client/account/api-keys/{identifier}'; +}; +export type ClientDeleteAccountApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientDeleteAccountApiKeyError = ClientDeleteAccountApiKeyErrors[keyof ClientDeleteAccountApiKeyErrors]; +export type ClientDeleteAccountApiKeyResponses = { + /** + * API key deleted. + */ + 204: void; +}; +export type ClientDeleteAccountApiKeyResponse = ClientDeleteAccountApiKeyResponses[keyof ClientDeleteAccountApiKeyResponses]; +export type ClientListSshKeysData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/ssh-keys'; +}; +export type ClientListSshKeysErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; +export type ClientListSshKeysError = ClientListSshKeysErrors[keyof ClientListSshKeysErrors]; +export type ClientListSshKeysResponses = { + /** + * SSH keys returned. + */ + 200: ClientSshKeyListResponse; +}; +export type ClientListSshKeysResponse = ClientListSshKeysResponses[keyof ClientListSshKeysResponses]; +export type ClientCreateSshKeyData = { + body: ClientCreateSshKeyRequest; + path?: never; + query?: never; + url: '/api/client/account/ssh-keys'; +}; +export type ClientCreateSshKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientCreateSshKeyError = ClientCreateSshKeyErrors[keyof ClientCreateSshKeyErrors]; +export type ClientCreateSshKeyResponses = { + /** + * SSH key created. + */ + 200: ClientSshKeyResource; +}; +export type ClientCreateSshKeyResponse = ClientCreateSshKeyResponses[keyof ClientCreateSshKeyResponses]; +export type ClientDeleteSshKeyData = { + body: ClientDeleteSshKeyRequest; + path?: never; + query?: never; + url: '/api/client/account/ssh-keys/remove'; +}; +export type ClientDeleteSshKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientDeleteSshKeyError = ClientDeleteSshKeyErrors[keyof ClientDeleteSshKeyErrors]; +export type ClientDeleteSshKeyResponses = { + /** + * SSH key deleted or already absent. + */ + 204: void; +}; +export type ClientDeleteSshKeyResponse = ClientDeleteSshKeyResponses[keyof ClientDeleteSshKeyResponses]; +export type ClientGetServerData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}'; +}; +export type ClientGetServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetServerError = ClientGetServerErrors[keyof ClientGetServerErrors]; +export type ClientGetServerResponses = { + /** + * Server details returned. + */ + 200: ClientServerResource; +}; +export type ClientGetServerResponse = ClientGetServerResponses[keyof ClientGetServerResponses]; +export type ClientGetWebsocketCredentialsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetWebsocketCredentialsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/websocket'; +}; +export type ClientGetWebsocketCredentialsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetWebsocketCredentialsError = ClientGetWebsocketCredentialsErrors[keyof ClientGetWebsocketCredentialsErrors]; +export type ClientGetWebsocketCredentialsResponses = { + /** + * Websocket credentials returned. + */ + 200: ClientGetWebsocketCredentialsResponseBody; +}; +export type ClientGetWebsocketCredentialsResponse = ClientGetWebsocketCredentialsResponses[keyof ClientGetWebsocketCredentialsResponses]; +export type ClientGetServerResourcesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerResourcesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/resources'; +}; +export type ClientGetServerResourcesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * Wings could not be reached for resource utilization. + */ + 502: ErrorEnvelope; +}; +export type ClientGetServerResourcesError = ClientGetServerResourcesErrors[keyof ClientGetServerResourcesErrors]; +export type ClientGetServerResourcesResponses = { + /** + * Resource utilization returned. + */ + 200: ClientStatsResource; +}; +export type ClientGetServerResourcesResponse = ClientGetServerResourcesResponses[keyof ClientGetServerResourcesResponses]; +export type ClientGetServerLogsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerLogsServerUuidPathParameter; + }; + query?: { + /** + * Number of lines to return. Defaults to the maximum of 100. + */ + lines?: ClientGetServerLogsLinesQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/logs'; +}; +export type ClientGetServerLogsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not read the console output. + */ + 502: ErrorEnvelope; +}; +export type ClientGetServerLogsError = ClientGetServerLogsErrors[keyof ClientGetServerLogsErrors]; +export type ClientGetServerLogsResponses = { + /** + * Console output returned. + */ + 200: ClientServerLogsResource; +}; +export type ClientGetServerLogsResponse = ClientGetServerLogsResponses[keyof ClientGetServerLogsResponses]; +export type ClientGetServerExtensionJobProgressData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerExtensionJobProgressServerUuidPathParameter; + /** + * The extension identifier. + */ + extension: ClientGetServerExtensionJobProgressExtensionPathParameter; + /** + * The progress job UUID. + */ + job: ClientGetServerExtensionJobProgressJobPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/extension-progress/{extension}/{job}'; +}; +export type ClientGetServerExtensionJobProgressErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetServerExtensionJobProgressError = ClientGetServerExtensionJobProgressErrors[keyof ClientGetServerExtensionJobProgressErrors]; +export type ClientGetServerExtensionJobProgressResponses = { + 200: ClientGetServerExtensionJobProgressResponseBody; +}; +export type ClientGetServerExtensionJobProgressResponse = ClientGetServerExtensionJobProgressResponses[keyof ClientGetServerExtensionJobProgressResponses]; +export type ClientListServerActivityData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerActivityServerUuidPathParameter; + }; + query?: { + /** + * Page number to retrieve. + */ + page?: ClientListServerActivityPageQueryParameter; + /** + * Number of activity log entries to return per page. The maximum is 100. + */ + per_page?: ClientListServerActivityPerPageQueryParameter; + /** + * Filter activity by event name. + */ + 'filter[event]'?: ClientListServerActivityFilterEventQueryParameter; + /** + * Filter activity by the username or email of the user that performed it. + */ + 'filter[user]'?: ClientListServerActivityFilterUserQueryParameter; + /** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ + 'filter[user_id]'?: ClientListServerActivityFilterUserIdQueryParameter; + /** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ + 'filter[event_name]'?: ClientListServerActivityFilterEventNameQueryParameter; + /** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ + sort?: ClientListServerActivitySortQueryParameter; + /** + * Comma-separated relationships to include. Supports actor. + */ + include?: ClientListServerActivityIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/activity'; +}; +export type ClientListServerActivityErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientListServerActivityError = ClientListServerActivityErrors[keyof ClientListServerActivityErrors]; +export type ClientListServerActivityResponses = { + /** + * Server activity logs returned. + */ + 200: ClientActivityLogPaginatedResponse; +}; +export type ClientListServerActivityResponse = ClientListServerActivityResponses[keyof ClientListServerActivityResponses]; +export type ClientListServerActivityFilterOptionsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerActivityFilterOptionsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/activity/filters'; +}; +export type ClientListServerActivityFilterOptionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientListServerActivityFilterOptionsError = ClientListServerActivityFilterOptionsErrors[keyof ClientListServerActivityFilterOptionsErrors]; +export type ClientListServerActivityFilterOptionsResponses = { + /** + * Filter options returned. + */ + 200: ClientListServerActivityFilterOptionsResponseBody; +}; +export type ClientListServerActivityFilterOptionsResponse = ClientListServerActivityFilterOptionsResponses[keyof ClientListServerActivityFilterOptionsResponses]; +export type ClientSendServerCommandData = { + body: ClientSendServerCommandRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSendServerCommandServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/command'; +}; +export type ClientSendServerCommandErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * The server is not online or Wings rejected the command. + */ + 502: ErrorEnvelope; +}; +export type ClientSendServerCommandError = ClientSendServerCommandErrors[keyof ClientSendServerCommandErrors]; +export type ClientSendServerCommandResponses = { + /** + * Command accepted by Wings. + */ + 204: void; +}; +export type ClientSendServerCommandResponse = ClientSendServerCommandResponses[keyof ClientSendServerCommandResponses]; +export type ClientSendPowerActionData = { + body: ClientSendPowerActionRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSendPowerActionServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/power'; +}; +export type ClientSendPowerActionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientSendPowerActionError = ClientSendPowerActionErrors[keyof ClientSendPowerActionErrors]; +export type ClientSendPowerActionResponses = { + /** + * Power signal accepted by Wings. + */ + 204: void; +}; +export type ClientSendPowerActionResponse = ClientSendPowerActionResponses[keyof ClientSendPowerActionResponses]; +export type ClientListServerDatabasesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerDatabasesServerUuidPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ + include?: ClientListServerDatabasesIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/databases'; +}; +export type ClientListServerDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientListServerDatabasesError = ClientListServerDatabasesErrors[keyof ClientListServerDatabasesErrors]; +export type ClientListServerDatabasesResponses = { + /** + * Server databases returned. + */ + 200: ClientServerDatabaseListResponse; +}; +export type ClientListServerDatabasesResponse = ClientListServerDatabasesResponses[keyof ClientListServerDatabasesResponses]; +export type ClientCreateServerDatabaseData = { + body: ClientCreateServerDatabaseRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerDatabasesServerUuidPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ + include?: ClientCreateServerDatabaseIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/databases'; +}; +export type ClientCreateServerDatabaseErrors = { + /** + * The server has reached its configured database limit or client database creation is disabled. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientCreateServerDatabaseError = ClientCreateServerDatabaseErrors[keyof ClientCreateServerDatabaseErrors]; +export type ClientCreateServerDatabaseResponses = { + /** + * Database created. + */ + 200: ClientServerDatabaseResource; +}; +export type ClientCreateServerDatabaseResponse = ClientCreateServerDatabaseResponses[keyof ClientCreateServerDatabaseResponses]; +export type ClientRotateServerDatabasePasswordData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRotateServerDatabasePasswordServerUuidPathParameter; + /** + * The database ID. + */ + database_id: ClientRotateServerDatabasePasswordDatabaseIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ + include?: ClientRotateServerDatabasePasswordIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/databases/{database_id}/rotate-password'; +}; +export type ClientRotateServerDatabasePasswordErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientRotateServerDatabasePasswordError = ClientRotateServerDatabasePasswordErrors[keyof ClientRotateServerDatabasePasswordErrors]; +export type ClientRotateServerDatabasePasswordResponses = { + /** + * Database password rotated. + */ + 200: ClientServerDatabaseResource; +}; +export type ClientRotateServerDatabasePasswordResponse = ClientRotateServerDatabasePasswordResponses[keyof ClientRotateServerDatabasePasswordResponses]; +export type ClientDeleteServerDatabaseData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientDeleteServerDatabaseServerUuidPathParameter; + /** + * The database ID. + */ + database_id: ClientDeleteServerDatabaseDatabaseIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/databases/{database_id}'; +}; +export type ClientDeleteServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientDeleteServerDatabaseError = ClientDeleteServerDatabaseErrors[keyof ClientDeleteServerDatabaseErrors]; +export type ClientDeleteServerDatabaseResponses = { + /** + * Database deleted. + */ + 204: void; +}; +export type ClientDeleteServerDatabaseResponse = ClientDeleteServerDatabaseResponses[keyof ClientDeleteServerDatabaseResponses]; +export type ClientListFilesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListFilesServerUuidPathParameter; + }; + query?: { + /** + * Directory to list. Defaults to the server root. + */ + directory?: ClientListFilesDirectoryQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/list'; +}; +export type ClientListFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not list the directory. + */ + 502: ErrorEnvelope; +}; +export type ClientListFilesError = ClientListFilesErrors[keyof ClientListFilesErrors]; +export type ClientListFilesResponses = { + /** + * Directory contents returned. + */ + 200: ClientFileObjectListResponse; +}; +export type ClientListFilesResponse = ClientListFilesResponses[keyof ClientListFilesResponses]; +export type ClientGetFileContentsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetFileContentsServerUuidPathParameter; + }; + query: { + /** + * Path to the file to read. + */ + file: ClientGetFileContentsFileQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/contents'; +}; +export type ClientGetFileContentsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not read the file. + */ + 502: ErrorEnvelope; +}; +export type ClientGetFileContentsError = ClientGetFileContentsErrors[keyof ClientGetFileContentsErrors]; +export type ClientGetFileContentsResponses = { + /** + * File contents returned as text/plain. + */ + 200: ClientGetFileContentsResponseBody; +}; +export type ClientGetFileContentsResponse = ClientGetFileContentsResponses[keyof ClientGetFileContentsResponses]; +export type ClientGetFileDownloadUrlData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetFileDownloadUrlServerUuidPathParameter; + }; + query: { + /** + * Path to the file to download. + */ + file: ClientGetFileDownloadUrlFileQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/download'; +}; +export type ClientGetFileDownloadUrlErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not create the download URL. + */ + 502: ErrorEnvelope; +}; +export type ClientGetFileDownloadUrlError = ClientGetFileDownloadUrlErrors[keyof ClientGetFileDownloadUrlErrors]; +export type ClientGetFileDownloadUrlResponses = { + /** + * Signed download URL returned. + */ + 200: ClientSignedUrlResource; +}; +export type ClientGetFileDownloadUrlResponse = ClientGetFileDownloadUrlResponses[keyof ClientGetFileDownloadUrlResponses]; +export type ClientRenameFilesData = { + body?: ClientRenameFilesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRenameFilesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/rename'; +}; +export type ClientRenameFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not rename the files. + */ + 502: ErrorEnvelope; +}; +export type ClientRenameFilesError = ClientRenameFilesErrors[keyof ClientRenameFilesErrors]; +export type ClientRenameFilesResponses = { + /** + * Files renamed. + */ + 204: void; +}; +export type ClientRenameFilesResponse = ClientRenameFilesResponses[keyof ClientRenameFilesResponses]; +export type ClientCopyFileData = { + body: ClientCopyFileRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCopyFileServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/copy'; +}; +export type ClientCopyFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not copy the file. + */ + 502: ErrorEnvelope; +}; +export type ClientCopyFileError = ClientCopyFileErrors[keyof ClientCopyFileErrors]; +export type ClientCopyFileResponses = { + /** + * File copied. + */ + 204: void; +}; +export type ClientCopyFileResponse = ClientCopyFileResponses[keyof ClientCopyFileResponses]; +export type ClientWriteFileContentsData = { + body: ClientWriteFileContentsRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientWriteFileContentsServerUuidPathParameter; + }; + query: { + /** + * Path to the file to write. + */ + file: ClientWriteFileContentsFileQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/write'; +}; +export type ClientWriteFileContentsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not write the file. + */ + 502: ErrorEnvelope; +}; +export type ClientWriteFileContentsError = ClientWriteFileContentsErrors[keyof ClientWriteFileContentsErrors]; +export type ClientWriteFileContentsResponses = { + /** + * File contents written. + */ + 204: void; +}; +export type ClientWriteFileContentsResponse = ClientWriteFileContentsResponses[keyof ClientWriteFileContentsResponses]; +export type ClientCompressFilesData = { + body?: ClientCompressFilesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCompressFilesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/compress'; +}; +export type ClientCompressFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not create the archive. + */ + 502: ErrorEnvelope; +}; +export type ClientCompressFilesError = ClientCompressFilesErrors[keyof ClientCompressFilesErrors]; +export type ClientCompressFilesResponses = { + /** + * Archive created. + */ + 200: ClientFileObjectResource; +}; +export type ClientCompressFilesResponse = ClientCompressFilesResponses[keyof ClientCompressFilesResponses]; +export type ClientDecompressFileData = { + body: ClientDecompressFileRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientDecompressFileServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/decompress'; +}; +export type ClientDecompressFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not extract the archive. + */ + 502: ErrorEnvelope; +}; +export type ClientDecompressFileError = ClientDecompressFileErrors[keyof ClientDecompressFileErrors]; +export type ClientDecompressFileResponses = { + /** + * Archive extracted. + */ + 204: void; +}; +export type ClientDecompressFileResponse = ClientDecompressFileResponses[keyof ClientDecompressFileResponses]; +export type ClientDeleteFilesData = { + body?: ClientDeleteFilesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientDeleteFilesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/delete'; +}; +export type ClientDeleteFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not delete the files. + */ + 502: ErrorEnvelope; +}; +export type ClientDeleteFilesError = ClientDeleteFilesErrors[keyof ClientDeleteFilesErrors]; +export type ClientDeleteFilesResponses = { + /** + * Files deleted. + */ + 204: void; +}; +export type ClientDeleteFilesResponse = ClientDeleteFilesResponses[keyof ClientDeleteFilesResponses]; +export type ClientCreateFolderData = { + body: ClientCreateFolderRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCreateFolderServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/create-folder'; +}; +export type ClientCreateFolderErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not create the folder. + */ + 502: ErrorEnvelope; +}; +export type ClientCreateFolderError = ClientCreateFolderErrors[keyof ClientCreateFolderErrors]; +export type ClientCreateFolderResponses = { + /** + * Folder created. + */ + 204: void; +}; +export type ClientCreateFolderResponse = ClientCreateFolderResponses[keyof ClientCreateFolderResponses]; +export type ClientChangeFilePermissionsData = { + body: ClientChangeFilePermissionsRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientChangeFilePermissionsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/chmod'; +}; +export type ClientChangeFilePermissionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not update file permissions. + */ + 502: ErrorEnvelope; +}; +export type ClientChangeFilePermissionsError = ClientChangeFilePermissionsErrors[keyof ClientChangeFilePermissionsErrors]; +export type ClientChangeFilePermissionsResponses = { + /** + * File permissions updated. + */ + 204: void; +}; +export type ClientChangeFilePermissionsResponse = ClientChangeFilePermissionsResponses[keyof ClientChangeFilePermissionsResponses]; +export type ClientPullRemoteFileData = { + body: ClientPullRemoteFileRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientPullRemoteFileServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/pull'; +}; +export type ClientPullRemoteFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not pull the remote file. + */ + 502: ErrorEnvelope; +}; +export type ClientPullRemoteFileError = ClientPullRemoteFileErrors[keyof ClientPullRemoteFileErrors]; +export type ClientPullRemoteFileResponses = { + /** + * Remote file pull queued or completed. + */ + 204: void; +}; +export type ClientPullRemoteFileResponse = ClientPullRemoteFileResponses[keyof ClientPullRemoteFileResponses]; +export type ClientGetFileUploadUrlData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetFileUploadUrlServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/upload'; +}; +export type ClientGetFileUploadUrlErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetFileUploadUrlError = ClientGetFileUploadUrlErrors[keyof ClientGetFileUploadUrlErrors]; +export type ClientGetFileUploadUrlResponses = { + /** + * Signed upload URL returned. + */ + 200: ClientSignedUrlResource; +}; +export type ClientGetFileUploadUrlResponse = ClientGetFileUploadUrlResponses[keyof ClientGetFileUploadUrlResponses]; +export type ClientListServerSchedulesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSchedulesServerUuidPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports tasks. + */ + include?: ClientListServerSchedulesIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/schedules'; +}; +export type ClientListServerSchedulesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientListServerSchedulesError = ClientListServerSchedulesErrors[keyof ClientListServerSchedulesErrors]; +export type ClientListServerSchedulesResponses = { + /** + * Server schedules returned. + */ + 200: ClientServerScheduleListResponse; +}; +export type ClientListServerSchedulesResponse = ClientListServerSchedulesResponses[keyof ClientListServerSchedulesResponses]; +export type ClientCreateServerScheduleData = { + body: ClientCreateServerScheduleRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSchedulesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules'; +}; +export type ClientCreateServerScheduleErrors = { + /** + * The cron expression is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientCreateServerScheduleError = ClientCreateServerScheduleErrors[keyof ClientCreateServerScheduleErrors]; +export type ClientCreateServerScheduleResponses = { + /** + * Schedule created. + */ + 200: ClientServerScheduleResource; +}; +export type ClientCreateServerScheduleResponse = ClientCreateServerScheduleResponses[keyof ClientCreateServerScheduleResponses]; +export type ClientDeleteServerScheduleData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientGetServerScheduleScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}'; +}; +export type ClientDeleteServerScheduleErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientDeleteServerScheduleError = ClientDeleteServerScheduleErrors[keyof ClientDeleteServerScheduleErrors]; +export type ClientDeleteServerScheduleResponses = { + /** + * Schedule deleted. + */ + 204: void; +}; +export type ClientDeleteServerScheduleResponse = ClientDeleteServerScheduleResponses[keyof ClientDeleteServerScheduleResponses]; +export type ClientGetServerScheduleData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientGetServerScheduleScheduleIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports tasks. + */ + include?: ClientGetServerScheduleIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}'; +}; +export type ClientGetServerScheduleErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetServerScheduleError = ClientGetServerScheduleErrors[keyof ClientGetServerScheduleErrors]; +export type ClientGetServerScheduleResponses = { + /** + * Server schedule returned. + */ + 200: ClientServerScheduleResource; +}; +export type ClientGetServerScheduleResponse = ClientGetServerScheduleResponses[keyof ClientGetServerScheduleResponses]; +export type ClientUpdateServerScheduleData = { + body: ClientUpdateServerScheduleRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientGetServerScheduleScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}'; +}; +export type ClientUpdateServerScheduleErrors = { + /** + * The cron expression is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientUpdateServerScheduleError = ClientUpdateServerScheduleErrors[keyof ClientUpdateServerScheduleErrors]; +export type ClientUpdateServerScheduleResponses = { + /** + * Schedule updated. + */ + 200: ClientServerScheduleResource; +}; +export type ClientUpdateServerScheduleResponse = ClientUpdateServerScheduleResponses[keyof ClientUpdateServerScheduleResponses]; +export type ClientExecuteServerScheduleData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientExecuteServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientExecuteServerScheduleScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/execute'; +}; +export type ClientExecuteServerScheduleErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientExecuteServerScheduleError = ClientExecuteServerScheduleErrors[keyof ClientExecuteServerScheduleErrors]; +export type ClientExecuteServerScheduleResponses = { + /** + * Schedule execution queued. + */ + 202: unknown; +}; +export type ClientCreateScheduleTaskData = { + body: ClientCreateScheduleTaskRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCreateScheduleTaskServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientCreateScheduleTaskScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/tasks'; +}; +export type ClientCreateScheduleTaskErrors = { + /** + * The schedule has reached its configured task limit. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientCreateScheduleTaskError = ClientCreateScheduleTaskErrors[keyof ClientCreateScheduleTaskErrors]; +export type ClientCreateScheduleTaskResponses = { + /** + * Schedule task created. + */ + 200: ClientScheduleTaskResource; +}; +export type ClientCreateScheduleTaskResponse = ClientCreateScheduleTaskResponses[keyof ClientCreateScheduleTaskResponses]; +export type ClientDeleteScheduleTaskData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateScheduleTaskServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientUpdateScheduleTaskScheduleIdPathParameter; + /** + * The task ID. + */ + task_id: ClientUpdateScheduleTaskTaskIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/tasks/{task_id}'; +}; +export type ClientDeleteScheduleTaskErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientDeleteScheduleTaskError = ClientDeleteScheduleTaskErrors[keyof ClientDeleteScheduleTaskErrors]; +export type ClientDeleteScheduleTaskResponses = { + /** + * Schedule task deleted. + */ + 204: void; +}; +export type ClientDeleteScheduleTaskResponse = ClientDeleteScheduleTaskResponses[keyof ClientDeleteScheduleTaskResponses]; +export type ClientUpdateScheduleTaskData = { + body: ClientUpdateScheduleTaskRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateScheduleTaskServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientUpdateScheduleTaskScheduleIdPathParameter; + /** + * The task ID. + */ + task_id: ClientUpdateScheduleTaskTaskIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/tasks/{task_id}'; +}; +export type ClientUpdateScheduleTaskErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientUpdateScheduleTaskError = ClientUpdateScheduleTaskErrors[keyof ClientUpdateScheduleTaskErrors]; +export type ClientUpdateScheduleTaskResponses = { + /** + * Schedule task updated. + */ + 200: ClientScheduleTaskResource; +}; +export type ClientUpdateScheduleTaskResponse = ClientUpdateScheduleTaskResponses[keyof ClientUpdateScheduleTaskResponses]; +export type ClientListServerAllocationsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerAllocationsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations'; +}; +export type ClientListServerAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientListServerAllocationsError = ClientListServerAllocationsErrors[keyof ClientListServerAllocationsErrors]; +export type ClientListServerAllocationsResponses = { + /** + * Server allocations returned. + */ + 200: ClientAllocationListResponse; +}; +export type ClientListServerAllocationsResponse = ClientListServerAllocationsResponses[keyof ClientListServerAllocationsResponses]; +export type ClientCreateServerAllocationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerAllocationsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations'; +}; +export type ClientCreateServerAllocationErrors = { + /** + * The server has reached its configured allocation limit or no allocation is available. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientCreateServerAllocationError = ClientCreateServerAllocationErrors[keyof ClientCreateServerAllocationErrors]; +export type ClientCreateServerAllocationResponses = { + /** + * Allocation assigned. + */ + 200: ClientAllocationResource; +}; +export type ClientCreateServerAllocationResponse = ClientCreateServerAllocationResponses[keyof ClientCreateServerAllocationResponses]; +export type ClientDeleteServerAllocationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateAllocationNotesServerUuidPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ClientUpdateAllocationNotesAllocationIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations/{allocation_id}'; +}; +export type ClientDeleteServerAllocationErrors = { + /** + * The allocation cannot be removed because it is primary or the server has no allocation limit. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientDeleteServerAllocationError = ClientDeleteServerAllocationErrors[keyof ClientDeleteServerAllocationErrors]; +export type ClientDeleteServerAllocationResponses = { + /** + * Allocation removed. + */ + 204: void; +}; +export type ClientDeleteServerAllocationResponse = ClientDeleteServerAllocationResponses[keyof ClientDeleteServerAllocationResponses]; +export type ClientUpdateAllocationNotesData = { + body?: ClientUpdateAllocationNotesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateAllocationNotesServerUuidPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ClientUpdateAllocationNotesAllocationIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations/{allocation_id}'; +}; +export type ClientUpdateAllocationNotesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientUpdateAllocationNotesError = ClientUpdateAllocationNotesErrors[keyof ClientUpdateAllocationNotesErrors]; +export type ClientUpdateAllocationNotesResponses = { + /** + * Allocation notes updated. + */ + 200: ClientAllocationResource; +}; +export type ClientUpdateAllocationNotesResponse = ClientUpdateAllocationNotesResponses[keyof ClientUpdateAllocationNotesResponses]; +export type ClientSetPrimaryAllocationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSetPrimaryAllocationServerUuidPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ClientSetPrimaryAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations/{allocation_id}/primary'; +}; +export type ClientSetPrimaryAllocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientSetPrimaryAllocationError = ClientSetPrimaryAllocationErrors[keyof ClientSetPrimaryAllocationErrors]; +export type ClientSetPrimaryAllocationResponses = { + /** + * Primary allocation updated. + */ + 200: ClientAllocationResource; +}; +export type ClientSetPrimaryAllocationResponse = ClientSetPrimaryAllocationResponses[keyof ClientSetPrimaryAllocationResponses]; +export type ClientListServerSubusersData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSubusersServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users'; +}; +export type ClientListServerSubusersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientListServerSubusersError = ClientListServerSubusersErrors[keyof ClientListServerSubusersErrors]; +export type ClientListServerSubusersResponses = { + /** + * Server subusers returned. + */ + 200: ClientServerSubuserListResponse; +}; +export type ClientListServerSubusersResponse = ClientListServerSubusersResponses[keyof ClientListServerSubusersResponses]; +export type ClientCreateServerSubuserData = { + body: ClientCreateServerSubuserRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSubusersServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users'; +}; +export type ClientCreateServerSubuserErrors = { + /** + * The user is already assigned to the server or is the server owner. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientCreateServerSubuserError = ClientCreateServerSubuserErrors[keyof ClientCreateServerSubuserErrors]; +export type ClientCreateServerSubuserResponses = { + /** + * Server subuser created. + */ + 200: ClientServerSubuserResource; +}; +export type ClientCreateServerSubuserResponse = ClientCreateServerSubuserResponses[keyof ClientCreateServerSubuserResponses]; +export type ClientDeleteServerSubuserData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerSubuserServerUuidPathParameter; + /** + * The user UUID. + */ + user: ClientGetServerSubuserUserPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users/{user}'; +}; +export type ClientDeleteServerSubuserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientDeleteServerSubuserError = ClientDeleteServerSubuserErrors[keyof ClientDeleteServerSubuserErrors]; +export type ClientDeleteServerSubuserResponses = { + /** + * Server subuser removed. + */ + 204: void; +}; +export type ClientDeleteServerSubuserResponse = ClientDeleteServerSubuserResponses[keyof ClientDeleteServerSubuserResponses]; +export type ClientGetServerSubuserData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerSubuserServerUuidPathParameter; + /** + * The user UUID. + */ + user: ClientGetServerSubuserUserPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users/{user}'; +}; +export type ClientGetServerSubuserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetServerSubuserError = ClientGetServerSubuserErrors[keyof ClientGetServerSubuserErrors]; +export type ClientGetServerSubuserResponses = { + /** + * Server subuser returned. + */ + 200: ClientServerSubuserResource; +}; +export type ClientGetServerSubuserResponse = ClientGetServerSubuserResponses[keyof ClientGetServerSubuserResponses]; +export type ClientUpdateServerSubuserData = { + body?: ClientUpdateServerSubuserRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerSubuserServerUuidPathParameter; + /** + * The user UUID. + */ + user: ClientGetServerSubuserUserPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users/{user}'; +}; +export type ClientUpdateServerSubuserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientUpdateServerSubuserError = ClientUpdateServerSubuserErrors[keyof ClientUpdateServerSubuserErrors]; +export type ClientUpdateServerSubuserResponses = { + /** + * Server subuser updated. + */ + 200: ClientServerSubuserResource; +}; +export type ClientUpdateServerSubuserResponse = ClientUpdateServerSubuserResponses[keyof ClientUpdateServerSubuserResponses]; +export type ClientListServerBackupsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerBackupsServerUuidPathParameter; + }; + query?: { + /** + * The page number to return. + */ + page?: ClientListServerBackupsPageQueryParameter; + /** + * Number of backups to return per page. The maximum is 50. + */ + per_page?: ClientListServerBackupsPerPageQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/backups'; +}; +export type ClientListServerBackupsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientListServerBackupsError = ClientListServerBackupsErrors[keyof ClientListServerBackupsErrors]; +export type ClientListServerBackupsResponses = { + /** + * Server backups returned. + */ + 200: ClientBackupPaginatedResponse; +}; +export type ClientListServerBackupsResponse = ClientListServerBackupsResponses[keyof ClientListServerBackupsResponses]; +export type ClientCreateServerBackupData = { + body?: ClientCreateServerBackupRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerBackupsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups'; +}; +export type ClientCreateServerBackupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientCreateServerBackupError = ClientCreateServerBackupErrors[keyof ClientCreateServerBackupErrors]; +export type ClientCreateServerBackupResponses = { + /** + * Backup started. + */ + 200: ClientBackupResource; +}; +export type ClientCreateServerBackupResponse = ClientCreateServerBackupResponses[keyof ClientCreateServerBackupResponses]; +export type ClientDeleteServerBackupData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerBackupServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientGetServerBackupBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}'; +}; +export type ClientDeleteServerBackupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientDeleteServerBackupError = ClientDeleteServerBackupErrors[keyof ClientDeleteServerBackupErrors]; +export type ClientDeleteServerBackupResponses = { + /** + * Backup deleted. + */ + 204: void; +}; +export type ClientDeleteServerBackupResponse = ClientDeleteServerBackupResponses[keyof ClientDeleteServerBackupResponses]; +export type ClientGetServerBackupData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerBackupServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientGetServerBackupBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}'; +}; +export type ClientGetServerBackupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetServerBackupError = ClientGetServerBackupErrors[keyof ClientGetServerBackupErrors]; +export type ClientGetServerBackupResponses = { + /** + * Server backup returned. + */ + 200: ClientBackupResource; +}; +export type ClientGetServerBackupResponse = ClientGetServerBackupResponses[keyof ClientGetServerBackupResponses]; +export type ClientGetBackupDownloadUrlData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetBackupDownloadUrlServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientGetBackupDownloadUrlBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}/download'; +}; +export type ClientGetBackupDownloadUrlErrors = { + /** + * The backup cannot be downloaded from its storage driver. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetBackupDownloadUrlError = ClientGetBackupDownloadUrlErrors[keyof ClientGetBackupDownloadUrlErrors]; +export type ClientGetBackupDownloadUrlResponses = { + /** + * Signed backup download URL returned. + */ + 200: ClientSignedUrlResource; +}; +export type ClientGetBackupDownloadUrlResponse = ClientGetBackupDownloadUrlResponses[keyof ClientGetBackupDownloadUrlResponses]; +export type ClientToggleBackupLockData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientToggleBackupLockServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientToggleBackupLockBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}/lock'; +}; +export type ClientToggleBackupLockErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientToggleBackupLockError = ClientToggleBackupLockErrors[keyof ClientToggleBackupLockErrors]; +export type ClientToggleBackupLockResponses = { + /** + * Backup lock state toggled. + */ + 200: ClientBackupResource; +}; +export type ClientToggleBackupLockResponse = ClientToggleBackupLockResponses[keyof ClientToggleBackupLockResponses]; +export type ClientRestoreServerBackupData = { + body: ClientRestoreServerBackupRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRestoreServerBackupServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientRestoreServerBackupBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}/restore'; +}; +export type ClientRestoreServerBackupErrors = { + /** + * The server or backup is not in a restorable state. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientRestoreServerBackupError = ClientRestoreServerBackupErrors[keyof ClientRestoreServerBackupErrors]; +export type ClientRestoreServerBackupResponses = { + /** + * Backup restore started. + */ + 204: void; +}; +export type ClientRestoreServerBackupResponse = ClientRestoreServerBackupResponses[keyof ClientRestoreServerBackupResponses]; +export type ClientGetStartupConfigurationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetStartupConfigurationServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/startup'; +}; +export type ClientGetStartupConfigurationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientGetStartupConfigurationError = ClientGetStartupConfigurationErrors[keyof ClientGetStartupConfigurationErrors]; +export type ClientGetStartupConfigurationResponses = { + /** + * Startup configuration returned. + */ + 200: ClientEggVariableListResponse; +}; +export type ClientGetStartupConfigurationResponse = ClientGetStartupConfigurationResponses[keyof ClientGetStartupConfigurationResponses]; +export type ClientUpdateStartupVariableData = { + body: ClientUpdateStartupVariableRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateStartupVariableServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/startup/variable'; +}; +export type ClientUpdateStartupVariableErrors = { + /** + * The variable does not exist, is hidden, or is read-only. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientUpdateStartupVariableError = ClientUpdateStartupVariableErrors[keyof ClientUpdateStartupVariableErrors]; +export type ClientUpdateStartupVariableResponses = { + /** + * Startup variable updated. + */ + 200: ClientEggVariableResource; +}; +export type ClientUpdateStartupVariableResponse = ClientUpdateStartupVariableResponses[keyof ClientUpdateStartupVariableResponses]; +export type ClientRenameServerData = { + body: ClientRenameServerRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRenameServerServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/settings/rename'; +}; +export type ClientRenameServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientRenameServerError = ClientRenameServerErrors[keyof ClientRenameServerErrors]; +export type ClientRenameServerResponses = { + /** + * Server renamed. + */ + 204: void; +}; +export type ClientRenameServerResponse = ClientRenameServerResponses[keyof ClientRenameServerResponses]; +export type ClientReinstallServerData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientReinstallServerServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/settings/reinstall'; +}; +export type ClientReinstallServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; +export type ClientReinstallServerError = ClientReinstallServerErrors[keyof ClientReinstallServerErrors]; +export type ClientReinstallServerResponses = { + /** + * Server reinstall queued. + */ + 202: unknown; +}; +export type ClientSetServerDockerImageData = { + body: ClientSetServerDockerImageRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSetServerDockerImageServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/settings/docker-image'; +}; +export type ClientSetServerDockerImageErrors = { + /** + * The server image was manually set by an administrator and cannot be changed through this endpoint. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; +export type ClientSetServerDockerImageError = ClientSetServerDockerImageErrors[keyof ClientSetServerDockerImageErrors]; +export type ClientSetServerDockerImageResponses = { + /** + * Docker image updated. + */ + 204: void; +}; +export type ClientSetServerDockerImageResponse = ClientSetServerDockerImageResponses[keyof ClientSetServerDockerImageResponses]; +export type AuthGetCsrfCookieData = { + body?: never; + path?: never; + query?: never; + url: '/sanctum/csrf-cookie'; +}; +export type AuthGetCsrfCookieResponses = { + /** + * The CSRF cookie was queued on the response. + */ + 204: void; +}; +export type AuthGetCsrfCookieResponse = AuthGetCsrfCookieResponses[keyof AuthGetCsrfCookieResponses]; diff --git a/resources/scripts/api/generated/types.gen.ts b/resources/scripts/api/generated/types.gen.ts new file mode 100644 index 0000000..2c57aa8 --- /dev/null +++ b/resources/scripts/api/generated/types.gen.ts @@ -0,0 +1,15901 @@ +// Generated by @hey-api/openapi-ts. +// Do not edit this directory by hand; run npm run api:generate instead. + +export type ClientOptions = { + baseURL: 'http://localhost' | (string & {}); +}; + +export type AdminActivityLogAttributes = { + id: string; + batch: string | null; + event: string; + is_api: boolean; + ip: string | null; + description: string | null; + properties: { + [key: string]: string | number | number | boolean | Array | { + [key: string]: string; + }; + }; + has_additional_metadata: boolean; + timestamp: string; + relationships?: { + actor?: AdminUserResource | NullResource; + }; +}; + +export type AdminActivityLogPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminActivityLogResource = { + object: string; + attributes: AdminActivityLogAttributes; +}; + +export type AdminAllocationAttributes = { + id: number; + ip: string; + alias: string | null; + port: number; + notes: string | null; + server_id: number | null; + server_name: string | null; + assigned: boolean; +}; + +export type AdminAllocationListResponse = { + object: string; + data: Array; +}; + +export type AdminAllocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminAllocationResource = { + object: string; + attributes: AdminAllocationAttributes; +}; + +export type AdminApiKeyAttributes = { + identifier: string; + memo: string; + created_by: { + id: number; + username: string; + email: string; + }; + last_used_at: string | null; + created_at: string; + r_servers: number; + r_nodes: number; + r_allocations: number; + r_users: number; + r_locations: number; + r_eggs: number; + r_database_hosts: number; + r_server_databases: number; +}; + +export type AdminApiKeyPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminApiKeyResource = { + object: string; + attributes: AdminApiKeyAttributes; + meta?: { + secret_token: string; + }; +}; + +export type AdminBackupAttributes = { + uuid: string; + name: string; + ignored_files: Array; + checksum: string | null; + bytes: number; + is_successful: boolean; + is_locked: boolean; + created_at: string; + completed_at: string | null; +}; + +export type AdminBackupPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminBackupResource = { + object: string; + attributes: AdminBackupAttributes; +}; + +export type AdminDatabaseAttributes = { + server: { + id: number; + name: string; + }; + name: string; + username: string; + connections_from: string; + max_connections: number | null; +}; + +export type AdminDatabaseHostAttributes = { + id: number; + name: string; + host: string; + port: number; + username: string; + max_databases: number | null; + databases_count: number; + node_id: number | null; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + node?: AdminNodeResource | NullResource; + databases?: AdminDatabaseListResponse | NullResource; + }; +}; + +export type AdminDatabaseHostPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminDatabaseHostResource = { + object: string; + attributes: AdminDatabaseHostAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminDatabaseListResponse = { + object: string; + data: Array; +}; + +export type AdminDatabasePaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminDatabaseResource = { + object: string; + attributes: AdminDatabaseAttributes; +}; + +export type AdminEggAttributes = { + id: number; + uuid: string; + author: string; + name: string; + description: string | null; + features: Array | null; + docker_image: string; + docker_images: { + [key: string]: string; + }; + force_outgoing_ip: boolean | null; + config: { + files: AdminEggConfigurationFiles | null; + startup: { + [key: string]: string | Array; + } | null; + stop: string; + logs: { + [key: string]: string | number | boolean; + } | null; + file_denylist: Array | null; + extends: number | null; + }; + startup: string; + script: { + privileged: boolean | null; + install: string | null; + entry: string; + container: string; + extends: number | null; + }; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + variables?: AdminEggVariableListResponse | NullResource; + tags?: AdminTagListResponse | NullResource; + servers?: AdminServerListResponse | NullResource; + }; +}; + +export type AdminEggConfigurationFile = { + parser?: string; + find?: AdminEggConfigurationFind; +}; + +export type AdminEggConfigurationFiles = { + [key: string]: AdminEggConfigurationFile; +}; + +export type AdminEggConfigurationFind = { + [key: string]: string | number | boolean | { + [key: string]: string; + }; +}; + +export type AdminEggListResponse = { + object: string; + data: Array; +}; + +export type AdminEggPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminEggResource = { + object: string; + attributes: AdminEggAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminEggVariableAttributes = { + id: number; + egg_id: number; + name: string; + description: string; + env_variable: string; + default_value: string; + user_viewable: boolean; + user_editable: boolean; + rules: string; + sort_order: number | null; + created_at: string; + updated_at: string; +}; + +export type AdminEggVariableListResponse = { + object: string; + data: Array; +}; + +export type AdminEggVariableResource = { + object: string; + attributes: AdminEggVariableAttributes; +}; + +export type AdminExtensionFormsResponse = { + /** + * The extensions whose fields each admin form shows, keyed by form (admin.user, admin.server, admin.node, admin.egg, admin.location, admin.mount, admin.database_host). Forms without any are left out. + */ + data: { + [key: string]: Array<{ + id: string; + name: string; + }>; + }; +}; + +export type AdminExtensionSettingField = { + input: string; + label: string; + help: string | null; + tab: string | null; + field: 'text' | 'password' | 'number' | 'toggle' | 'select' | 'color' | 'textarea' | 'multiselect' | 'list' | 'file'; + options: Array; + value: string | number | boolean | Array | null; + constraints: { + max_length: number | null; + max_items: number | null; + max_kilobytes: number | null; + accept: Array; + }; + visibility: 'admin' | 'frontend' | 'public'; +}; + +export type AdminExtensionSettingOption = { + value: string | number | boolean; + label: string; +}; + +/** + * Available panel locales keyed by locale code. + */ +export type AdminLanguagesResponse = { + [key: string]: string; +}; + +export type AdminLocationAttributes = { + id: number; + short: string; + long: string; + nodes_count: number; + servers_count: number; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + nodes?: AdminNodeListResponse | NullResource; + }; +}; + +export type AdminLocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminLocationResource = { + object: string; + attributes: AdminLocationAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminMountAttributes = { + id: number; + uuid: string; + name: string; + description: string | null; + source: string; + target: string; + read_only: boolean; + user_mountable: boolean; + eggs_count: number; + nodes_count: number; + servers_count: number; + /** + * Present only when listed in the context of a server. + */ + mounted?: boolean | null; + extensions?: ExtensionFields; + relationships?: { + eggs?: AdminEggListResponse | NullResource; + nodes?: AdminNodeListResponse | NullResource; + servers?: AdminServerListResponse | NullResource; + }; +}; + +export type AdminMountListResponse = { + object: string; + data: Array; +}; + +export type AdminMountPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminMountResource = { + object: string; + attributes: AdminMountAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminNodeAttributes = { + id: number; + uuid: string; + public: boolean; + name: string; + description: string | null; + location_id: number; + fqdn: string; + scheme: string; + behind_proxy: boolean; + maintenance_mode: boolean; + memory: number; + memory_overallocate: number; + disk: number; + disk_overallocate: number; + upload_size: number; + daemon_listen: number; + daemon_sftp: number; + daemon_base: string; + created_at: string; + updated_at: string; + /** + * Present when the endpoint loads server counts. + */ + servers_count?: number; + allocated_resources: { + memory: number; + disk: number; + }; + extensions?: ExtensionFields; + relationships?: { + location?: AdminLocationResource | NullResource; + tags?: AdminTagListResponse | NullResource; + deployment_tags?: AdminTagListResponse | NullResource; + }; +}; + +export type AdminNodeConfigurationResponse = { + debug: boolean; + uuid: string; + token_id: string; + token: string; + api: { + host: string; + port: number; + ssl: { + enabled: boolean; + cert: string; + key: string; + }; + upload_limit: number; + }; + system: { + data: string; + sftp: { + bind_port: number; + }; + }; + allowed_mounts: Array; + remote: string; +}; + +export type AdminNodeDeployTokenResponse = { + node: number; + token: string; + panel_url: string; + allow_insecure: boolean; +}; + +export type AdminNodeListResponse = { + object: string; + data: Array; +}; + +export type AdminNodePaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminNodeResource = { + object: string; + attributes: AdminNodeAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminNodeSystemInformationResponse = { + architecture: string; + cpu_count: number; + kernel_version: string; + os: string; + version: string; +}; + +export type AdminNodeUtilizationResponse = { + disk: { + value: string; + max: string; + percent: number; + css: string; + }; + memory: { + value: string; + max: string; + percent: number; + css: string; + }; +}; + +export type AdminServerAttributes = { + id: number; + external_id: string | null; + uuid: string; + identifier: string; + name: string; + description: string | null; + status: string | null; + suspended: boolean; + limits: { + memory: number; + swap: number; + disk: number; + io: number; + cpu: number; + threads: string | null; + oom_disabled: boolean; + }; + feature_limits: { + databases: number | null; + allocations: number | null; + backups: number; + }; + user: number; + node: number; + allocation: number; + egg: number; + container: { + startup_command: string; + image: string; + skip_scripts: boolean; + installed: number; + environment: { + [key: string]: string | number | null; + }; + }; + updated_at: string; + created_at: string; + extensions?: ExtensionFields; + relationships?: { + allocation?: AdminAllocationResource | NullResource; + allocations?: AdminAllocationListResponse | NullResource; + user?: AdminUserResource | NullResource; + egg?: AdminEggResource | NullResource; + variables?: AdminServerVariableListResponse | NullResource; + node?: AdminNodeResource | NullResource; + }; +}; + +export type AdminServerDatabaseAttributes = { + id: string; + host: { + address: string; + port: number; + }; + name: string; + username: string; + connections_from: string; + max_connections: number | null; + relationships?: { + password?: { + object: string; + attributes: { + password: string; + }; + }; + }; +}; + +export type AdminServerDatabaseListResponse = { + object: string; + data: Array; +}; + +export type AdminServerDatabaseResource = { + object: string; + attributes: AdminServerDatabaseAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminServerListResponse = { + object: string; + data: Array; +}; + +export type AdminServerPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminServerResource = { + object: string; + attributes: AdminServerAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminServerTransferAttributes = { + id: number; + server_id: number; + old_node: number; + new_node: number; + old_allocation: number; + new_allocation: number; + successful: boolean | null; + archived: boolean; + created_at: string; + updated_at: string; +}; + +export type AdminServerTransferResource = { + object: string; + attributes: AdminServerTransferAttributes; +}; + +export type AdminServerVariableAttributes = { + id: number; + egg_id: number; + name: string; + description: string; + env_variable: string; + default_value: string; + server_value: string | null; + user_viewable: boolean; + user_editable: boolean; + rules: string; + required?: boolean; + sort_order: number | null; + created_at: string; + updated_at: string; +}; + +export type AdminServerVariableListResponse = { + object: string; + data: Array; +}; + +export type AdminServerVariableResource = { + object: string; + attributes: AdminServerVariableAttributes; +}; + +export type AdminSettingsResponse = { + general: { + 'app:name': string; + 'pterodactyl:auth:2fa_required': 0 | 1 | 2; + 'app:locale': string; + }; + mail: { + 'mail:default': string; + 'mail:mailers:smtp:host': string; + 'mail:mailers:smtp:port': number; + 'mail:mailers:smtp:encryption': 'tls' | 'ssl' | null; + 'mail:mailers:smtp:username': string | null; + 'mail:mailers:smtp:password': string; + 'mail:from:address': string; + 'mail:from:name': string | null; + }; + advanced: { + 'recaptcha:enabled': boolean; + 'recaptcha:secret_key': string; + 'recaptcha:website_key': string; + 'pterodactyl:guzzle:timeout': number; + 'pterodactyl:guzzle:connect_timeout': number; + 'pterodactyl:client_features:allocations:enabled': boolean; + 'pterodactyl:client_features:allocations:range_start': number | null; + 'pterodactyl:client_features:allocations:range_end': number | null; + }; + meta: { + load_environment_only: boolean; + show_recaptcha_warning: boolean; + }; +}; + +export type AdminTagAttributes = { + id: number; + name: string; + slug: string; + color: string | null; + is_predefined: boolean; + legacy_nest_id: number | null; + eggs_count: number; + nodes_count: number; + created_at: string; + updated_at: string; +}; + +export type AdminTagListResponse = { + object: string; + data: Array; +}; + +export type AdminTagPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminTagResource = { + object: string; + attributes: AdminTagAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminThemeAttributes = { + id: string; + name: string; + version: string | null; + description: string | null; + author: string | null; + icon: string | null; + icon_url: string | null; + builtin: boolean; + enabled: boolean; + active: boolean; + previewing: boolean; + /** + * The theme this one is built on; null for the built-in classic theme. + */ + extends: string | null; + settings_count: number; + /** + * Why the theme cannot be activated right now. + */ + problem: string | null; +}; + +export type AdminThemeListResponse = { + object: string; + data: Array; + meta?: { + active: string; + preview: string | null; + safe_mode: boolean; + }; +}; + +export type AdminThemeResource = { + object: string; + attributes: AdminThemeAttributes; +}; + +export type AdminThemeSettingAttributes = { + key: string; + type: 'color' | 'select' | 'toggle' | 'number' | 'text' | 'image'; + label: string; + help: string | null; + tab: string | null; + default: string | number | boolean | null; + value: string | number | boolean | null; + options: Array<{ + value: string; + label: string; + }>; + min: number | null; + max: number | null; + step: number | null; + unit: string | null; + max_length: number | null; + accept: Array; + max_kilobytes: number | null; +}; + +export type AdminThemeSettingListResponse = { + object: string; + data: Array; +}; + +export type AdminThemeSettingResource = { + object: string; + attributes: AdminThemeSettingAttributes; +}; + +export type AdminUserAttributes = { + id: number; + external_id: string | null; + uuid: string; + username: string; + email: string; + first_name: string; + last_name: string; + language: string; + root_admin: boolean; + '2fa': boolean; + image: string; + servers_count: number; + subuser_of_count: number; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; + relationships?: { + servers?: AdminServerListResponse | NullResource; + }; +}; + +export type AdminUserPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type AdminUserResource = { + object: string; + attributes: AdminUserAttributes; + meta?: { + resource: string; + }; +}; + +export type AdminVersionInformationResponse = { + current: string; + latest: string; + is_latest: boolean; + daemon: string; + discord: string; + donations: string; +}; + +export type ApplicationAllocationAttributes = { + id: number; + ip: string; + alias: string | null; + port: number; + notes: string | null; + assigned: boolean; +}; + +export type ApplicationAllocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ApplicationAllocationResource = { + object: string; + attributes: ApplicationAllocationAttributes; +}; + +export type ApplicationEggAttributes = { + id: number; + uuid: string; + name: string; + author: string; + description: string | null; + docker_image: string; + docker_images: { + [key: string]: string; + }; + config: { + files: AdminEggConfigurationFiles; + startup: { + [key: string]: string | Array; + } | null; + stop: string | null; + logs: { + [key: string]: string | number | boolean; + } | null; + file_denylist: Array | null; + extends: number | null; + }; + startup: string; + script: { + privileged: boolean; + install: string | null; + entry: string; + container: string; + extends: number | null; + }; + created_at: string; + updated_at: string; +}; + +export type ApplicationEggPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ApplicationEggResource = { + object: string; + attributes: ApplicationEggAttributes; +}; + +export type ApplicationLocationAttributes = { + id: number; + short: string; + long: string; + updated_at: string; + created_at: string; + extensions?: ExtensionFields; +}; + +export type ApplicationLocationPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ApplicationLocationResource = { + object: string; + attributes: ApplicationLocationAttributes; + meta?: { + resource: string; + }; +}; + +export type ApplicationNodeAttributes = { + id: number; + uuid: string; + public: boolean; + name: string; + description: string | null; + location_id: number; + fqdn: string; + scheme: string; + behind_proxy: boolean; + maintenance_mode: boolean; + memory: number; + memory_overallocate: number; + disk: number; + disk_overallocate: number; + upload_size: number; + daemon_listen: number; + daemon_sftp: number; + daemon_base: string; + created_at: string; + updated_at: string; + allocated_resources: { + memory: number; + disk: number; + }; + extensions?: ExtensionFields; +}; + +export type ApplicationNodeListResponse = { + object: string; + data: Array; +}; + +export type ApplicationNodePaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ApplicationNodeResource = { + object: string; + attributes: ApplicationNodeAttributes; + meta?: { + resource: string; + }; +}; + +export type ApplicationServerAttributes = { + id: number; + external_id: string | null; + uuid: string; + identifier: string; + name: string; + description: string | null; + status: string | null; + suspended: boolean; + limits: { + memory: number; + swap: number; + disk: number; + io: number; + cpu: number; + threads: string | null; + oom_disabled: boolean; + }; + feature_limits: { + databases: number | null; + allocations: number | null; + backups: number | null; + }; + user: number; + node: number; + allocation: number; + egg: number; + container: { + startup_command: string; + image: string; + installed: number; + environment: { + [key: string]: string | number | boolean | null; + }; + skip_scripts: boolean; + }; + updated_at: string; + created_at: string; + extensions?: ExtensionFields; +}; + +export type ApplicationServerDatabaseAttributes = { + id: number; + server: number; + host: number; + database: string; + username: string; + remote: string; + max_connections: number | null; + created_at: string; + updated_at: string; +}; + +export type ApplicationServerDatabaseListResponse = { + object: string; + data: Array; +}; + +export type ApplicationServerDatabaseResource = { + object: string; + attributes: ApplicationServerDatabaseAttributes; + meta?: { + resource: string; + }; +}; + +export type ApplicationServerPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ApplicationServerResource = { + object: string; + attributes: ApplicationServerAttributes; +}; + +export type ApplicationTagAttributes = { + id: number; + name: string; + slug: string; + color: string | null; + is_predefined: boolean; + legacy_nest_id: number | null; + created_at: string; + updated_at: string; +}; + +export type ApplicationTagPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ApplicationTagResource = { + object: string; + attributes: ApplicationTagAttributes; +}; + +export type ApplicationUserAttributes = { + id: number; + external_id: string | null; + uuid: string; + username: string; + email: string; + first_name: string; + last_name: string; + language: string; + root_admin: boolean; + '2fa': boolean; + created_at: string; + updated_at: string; + extensions?: ExtensionFields; +}; + +export type ApplicationUserPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ApplicationUserResource = { + object: string; + attributes: ApplicationUserAttributes; + meta?: { + resource: string; + }; +}; + +export type AuthLoginCheckpointResponse = { + data: { + complete: false; + confirmation_token: string; + }; +}; + +export type AuthLoginCompleteResponse = { + data: { + complete: true; + intended: string; + user: AuthUser; + }; +}; + +export type AuthLoginResponse = AuthLoginCompleteResponse | AuthLoginCheckpointResponse; + +export type AuthPasswordResetEmailResponse = { + status: string; +}; + +export type AuthResetPasswordResponse = { + success: true; + redirect_to: string | null; + send_to_login: boolean; +}; + +export type AuthUser = { + uuid: string; + username: string; + email: string; + name_first: string | null; + name_last: string | null; + language: string; + root_admin: boolean; + use_totp: boolean; + gravatar: boolean; + created_at: string; + updated_at: string; + identifier: string; +}; + +export type ClientActivityLogAttributes = { + id: string; + batch: string | null; + event: string; + is_api: boolean; + ip: string | null; + description: string | null; + properties: { + [key: string]: string | number | number | boolean | Array | { + [key: string]: string; + }; + }; + has_additional_metadata: boolean; + timestamp: string; + relationships?: { + actor?: ClientUserResource | NullResource; + }; +}; + +export type ClientActivityLogPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ClientActivityLogResource = { + object: string; + attributes: ClientActivityLogAttributes; +}; + +export type ClientAllocationAttributes = { + id: number; + ip: string; + ip_alias: string | null; + port: number; + notes: string | null; + is_default: boolean; +}; + +export type ClientAllocationListResponse = { + object: string; + data: Array; +}; + +export type ClientAllocationResource = { + object: string; + attributes: ClientAllocationAttributes; +}; + +export type ClientApiKeyAttributes = { + identifier: string; + description: string; + allowed_ips: Array | null; + last_used_at: string | null; + created_at: string; +}; + +export type ClientApiKeyListResponse = { + object: string; + data: Array; +}; + +export type ClientApiKeyResource = { + object: string; + attributes: ClientApiKeyAttributes; + meta?: { + secret_token: string; + }; +}; + +export type ClientBackupAttributes = { + uuid: string; + is_successful: boolean; + is_locked: boolean; + name: string; + ignored_files: Array; + checksum: string | null; + bytes: number; + created_at: string; + completed_at: string | null; +}; + +export type ClientBackupPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + backup_count: number; + }; +}; + +export type ClientBackupResource = { + object: string; + attributes: ClientBackupAttributes; +}; + +export type ClientEggVariableAttributes = { + name: string; + description: string; + env_variable: string; + default_value: string; + server_value: string | null; + is_editable: boolean; + rules: string; +}; + +export type ClientEggVariableListResponse = { + object: string; + data: Array; + meta?: { + startup_command: string; + docker_images: { + [key: string]: string; + }; + raw_startup_command: string; + }; +}; + +export type ClientEggVariableResource = { + object: string; + attributes: ClientEggVariableAttributes; + meta?: { + startup_command: string; + raw_startup_command: string; + }; +}; + +export type ClientFileObjectAttributes = { + name: string; + mode: string | null; + mode_bits: string | null; + size: number | null; + is_file: boolean; + is_symlink: boolean; + mimetype: string; + created_at: string; + modified_at: string; +}; + +export type ClientFileObjectListResponse = { + object: string; + data: Array; +}; + +export type ClientFileObjectResource = { + object: string; + attributes: ClientFileObjectAttributes; +}; + +export type ClientRecoveryTokensAttributes = { + tokens: Array; +}; + +export type ClientRecoveryTokensResource = { + object: string; + attributes: ClientRecoveryTokensAttributes; +}; + +export type ClientScheduleTaskAttributes = { + id: number; + sequence_id: number; + action: 'power' | 'command' | 'backup'; + payload: string; + time_offset: number; + is_queued: boolean; + continue_on_failure: boolean; + created_at: string; + updated_at: string; +}; + +export type ClientScheduleTaskListResponse = { + object: string; + data: Array; +}; + +export type ClientScheduleTaskResource = { + object: string; + attributes: ClientScheduleTaskAttributes; +}; + +export type ClientServerAttributes = { + server_owner: boolean; + identifier: string; + __deprecated_uuid_short: string; + server_identifier: string; + internal_id: number; + uuid: string; + name: string; + node: string; + is_node_under_maintenance: boolean; + sftp_details: { + ip: string; + port: number; + }; + description: string | null; + limits: { + memory: number; + swap: number; + disk: number; + io: number; + cpu: number; + threads: string | null; + oom_disabled: boolean; + }; + invocation: string; + docker_image: string; + egg_features: Array | null; + egg_tags: Array; + feature_limits: { + databases: number | null; + allocations: number | null; + backups: number | null; + }; + status: 'installing' | 'install_failed' | 'reinstall_failed' | 'suspended' | 'restoring_backup' | null; + is_suspended: boolean; + is_installing: boolean; + is_transferring: boolean; + skip_scripts: boolean; + relationships?: { + allocations?: ClientAllocationListResponse | NullResource; + variables?: ClientEggVariableListResponse | NullResource; + }; +}; + +export type ClientServerDatabaseAttributes = { + id: string; + host: { + address: string; + port: number; + }; + name: string; + username: string; + connections_from: string; + max_connections: number | null; + relationships?: { + password?: { + object: string; + attributes: { + password: string; + }; + }; + }; +}; + +export type ClientServerDatabaseListResponse = { + object: string; + data: Array; +}; + +export type ClientServerDatabaseResource = { + object: string; + attributes: ClientServerDatabaseAttributes; +}; + +export type ClientServerLogsAttributes = { + lines: Array; +}; + +export type ClientServerLogsResource = { + object: string; + attributes: ClientServerLogsAttributes; +}; + +export type ClientServerPaginatedResponse = { + object: string; + data: Array; + meta: { + pagination: PaginationMeta; + }; +}; + +export type ClientServerResource = { + object: string; + attributes: ClientServerAttributes; + meta?: { + is_server_owner: boolean; + user_permissions: Array; + }; +}; + +export type ClientServerScheduleAttributes = { + id: number; + name: string; + cron: { + day_of_week: string; + day_of_month: string; + month: string; + hour: string; + minute: string; + }; + is_active: boolean; + is_processing: boolean; + only_when_online: boolean; + last_run_at: string | null; + next_run_at: string | null; + created_at: string; + updated_at: string; + relationships?: { + tasks?: ClientScheduleTaskListResponse | NullResource; + }; +}; + +export type ClientServerScheduleListResponse = { + object: string; + data: Array; +}; + +export type ClientServerScheduleResource = { + object: string; + attributes: ClientServerScheduleAttributes; +}; + +export type ClientServerSubuserAttributes = { + uuid: string; + identifier: string; + username: string; + email: string; + image: string; + '2fa_enabled': boolean; + created_at: string; + permissions: Array<'websocket.connect' | 'control.console' | 'control.start' | 'control.stop' | 'control.restart' | 'user.create' | 'user.read' | 'user.update' | 'user.delete' | 'file.create' | 'file.read' | 'file.read-content' | 'file.update' | 'file.delete' | 'file.archive' | 'file.sftp' | 'backup.create' | 'backup.read' | 'backup.delete' | 'backup.download' | 'backup.restore' | 'allocation.read' | 'allocation.create' | 'allocation.update' | 'allocation.delete' | 'startup.read' | 'startup.update' | 'startup.docker-image' | 'database.create' | 'database.read' | 'database.update' | 'database.delete' | 'database.view_password' | 'schedule.create' | 'schedule.read' | 'schedule.update' | 'schedule.delete' | 'settings.rename' | 'settings.reinstall' | 'activity.read' | string>; +}; + +export type ClientServerSubuserListResponse = { + object: string; + data: Array; +}; + +export type ClientServerSubuserResource = { + object: string; + attributes: ClientServerSubuserAttributes; +}; + +export type ClientSignedUrlAttributes = { + url: string; +}; + +export type ClientSignedUrlResource = { + object: string; + attributes: ClientSignedUrlAttributes; +}; + +export type ClientSshKeyAttributes = { + name: string; + fingerprint: string; + public_key: string; + created_at: string; +}; + +export type ClientSshKeyListResponse = { + object: string; + data: Array; +}; + +export type ClientSshKeyResource = { + object: string; + attributes: ClientSshKeyAttributes; +}; + +export type ClientStatsAttributes = { + current_state: 'offline' | 'stopped' | 'starting' | 'running' | 'stopping'; + is_suspended: boolean; + resources: { + memory_bytes: number; + cpu_absolute: number; + disk_bytes: number; + network_rx_bytes: number; + network_tx_bytes: number; + uptime: number; + }; +}; + +export type ClientStatsResource = { + object: string; + attributes: ClientStatsAttributes; +}; + +export type ClientSystemPermissionsResponse = { + object: string; + attributes: { + permissions: { + [key: string]: { + description: string; + keys: { + [key: string]: string; + }; + }; + }; + }; +}; + +export type ClientTwoFactorSetupResponse = { + data: { + image_url_data: string; + secret: string; + }; +}; + +export type ClientUserAttributes = { + id: number; + admin: boolean; + username: string; + email: string; + first_name: string; + last_name: string; + language: string; +}; + +export type ClientUserResource = { + object: string; + attributes: ClientUserAttributes; +}; + +export type ErrorEnvelope = { + errors: Array<{ + code: string; + status: string; + detail: string; + }>; +}; + +/** + * Values of the fields extensions add to this resource, keyed by extension id and then by field name. Each extension validates the values sent for it; extensions left out of a request keep their values. Responses about one resource include them; lists leave them out. + */ +export type ExtensionFields = { + [key: string]: { + [key: string]: string | number | boolean | Array | null; + }; +}; + +export type NullResource = { + object: 'null_resource'; + attributes: null; +}; + +export type PaginationMeta = { + total: number; + count: number; + per_page: number; + current_page: number; + total_pages: number; + links?: { + [key: string]: string; + }; +}; + +export type ValidationErrorEnvelope = { + errors: Array<{ + code: string; + status: string; + detail: string; + meta?: { + source_field?: string; + rule?: string; + }; + }>; +}; + +export type AdminInstallExtensionRequest = { + /** + * Extension archive to install. + */ + package: Blob | File; + /** + * Enable the extension after installing it. + */ + enable?: boolean; + /** + * Replace an installed extension with the same id. Without it, such a package is rejected with a 409 naming the id and both versions. + */ + replace?: boolean; +}; + +export type AdminUpdateExtensionSettingsRequest = { + /** + * Field values keyed by input name, as described by the settings schema. + */ + settings: { + [key: string]: string | number | boolean | Array | null; + }; +}; + +export type AdminUploadExtensionSettingFileRequest = { + /** + * File to store. + */ + file: Blob | File; +}; + +export type AdminUpdateThemeSettingsRequest = { + /** + * Values keyed by setting name; null restores a setting's default. + */ + settings: { + [key: string]: string | number | boolean | null; + }; +}; + +export type AdminUploadThemeImageRequest = { + /** + * Image to store. + */ + file: Blob | File; +}; + +export type AdminCreateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The name first. Must be between 1 and 191 characters. + */ + name_first: string; + /** + * The name last. Must be between 1 and 191 characters. + */ + name_last: string; + preferences?: { + /** + * The preferences language. + */ + language?: string; + }; + extensions?: ExtensionFields; +}; + +export type AdminUpdateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The name first. Must be between 1 and 191 characters. + */ + name_first: string; + /** + * The name last. Must be between 1 and 191 characters. + */ + name_last: string; + preferences?: { + /** + * The preferences language. + */ + language?: string; + }; + extensions?: ExtensionFields; +}; + +export type AdminAttachServerMountRequest = { + /** + * The mount ID. Must match an existing stored value. + */ + mount_id: number; +}; + +export type AdminCreateServerRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The owner user ID. Must match an existing stored value. + */ + owner_id: number; + /** + * The egg ID. Must match an existing stored value. + */ + egg_id: number; + /** + * The Docker image to use. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + docker_image: string; + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The memory limit in megabytes. Must be at least 0. + */ + memory: number; + /** + * The swap limit in megabytes. Must be at least -1. + */ + swap: number; + /** + * The disk limit in megabytes. Must be at least 0. + */ + disk: number; + /** + * The block IO weight. Must be between 10 and 1000. + */ + io: number; + /** + * CPU threads available to the server. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The CPU limit percentage. Must be at least 0. + */ + cpu: number; + /** + * The maximum number of databases allowed. Must be at least 0. + */ + database_limit?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocation_limit?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backup_limit?: number | null; + /** + * The primary allocation ID. + */ + primary_allocation_id: number; + /** + * The deploy. + */ + deploy?: { + /** + * Must be at least 1. + */ + locations: Array; + /** + * The deploy dedicated ip. This field is required when deploy is present. + */ + dedicated_ip?: boolean; + port_range?: Array; + /** + * Deploy tags (IDs or slugs) the deployment declares. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. Its deployment tags must match these exactly: a node reserved for a tag missing here is skipped, and every tag listed must be reserved on the node. + */ + tags?: Array; + }; + /** + * Whether the server should start when the operation completes. + */ + start_on_completion?: boolean; + /** + * Whether to place the server on a node whose egg tags the egg does not share. The node's deployment tags are never checked here. + */ + ignore_tags?: boolean; + secondary_allocations_ids?: Array; + extensions?: ExtensionFields; +}; + +export type AdminUpdateServerDetailsRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * The owner user ID. Must match an existing stored value. + */ + owner_id: number; + /** + * A description for this resource. + */ + description?: string | null; + extensions?: ExtensionFields; +}; + +export type AdminUpdateServerBuildRequest = { + /** + * The allocation ID. Must match an existing stored value. + */ + allocation_id: number; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The memory limit in megabytes. Must be at least 0. + */ + memory: number; + /** + * The swap limit in megabytes. Must be at least -1. + */ + swap: number; + /** + * The block IO weight. Must be between 10 and 1000. + */ + io: number; + /** + * The CPU limit percentage. Must be at least 0. + */ + cpu: number; + /** + * CPU threads available to the server. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The disk limit in megabytes. Must be at least 0. + */ + disk: number; + add_allocation_ids?: Array; + remove_allocation_ids?: Array; + /** + * The maximum number of databases allowed. Must be at least 0. + */ + database_limit?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocation_limit?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backup_limit?: number | null; +}; + +export type AdminUpdateServerStartupRequest = { + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * The egg ID. Must match an existing stored value. + */ + egg_id: number; + /** + * The Docker image to use. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + docker_image: string; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; + /** + * Whether to place the server on a node whose egg tags the egg does not share. The node's deployment tags are never checked here. + */ + ignore_tags?: boolean; +}; + +export type AdminUpdateServerSuspensionRequest = { + /** + * The suspended. + */ + suspended?: boolean | null; +}; + +export type AdminTransferServerRequest = { + /** + * The destination node ID. + */ + node_id: number; + /** + * The primary allocation ID on the destination node. + */ + allocation_id: number; + /** + * Additional allocation IDs on the destination node. + */ + allocation_additional?: Array; + /** + * Whether to move the server to a node whose egg tags its egg does not share. + */ + ignore_tags?: boolean; +}; + +export type AdminCreateServerDatabaseRequest = { + /** + * The database. Must contain only letters, numbers, dashes and underscores. Must be at least 1 character. Must not be greater than 48 characters. + */ + database: string; + /** + * The remote database address. Must match the regex /^[0-9%.]{1,15}$/. + */ + remote: string; + /** + * The database host ID. Must match an existing stored value. + */ + database_host_id: number; + /** + * The maximum number of connections allowed. Must be at least 0. + */ + max_connections?: number | null; +}; + +export type AdminCreateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + extensions?: ExtensionFields; +}; + +export type AdminUpdateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + /** + * Whether to rotate the daemon secret. + */ + reset_secret?: boolean; + extensions?: ExtensionFields; +}; + +export type AdminSyncNodeGameTagsRequest = { + /** + * Must not be greater than 191 characters. + */ + tags?: Array; +}; + +export type AdminSyncNodeDeploymentTagsRequest = { + /** + * Must not be greater than 191 characters. + */ + tags?: Array; +}; + +export type AdminCreateNodeAllocationsRequest = { + ip?: Array; + /** + * An optional alias for this resource. Must not be greater than 255 characters. + */ + alias?: string | null; + ports?: Array; +}; + +export type AdminBulkDeleteNodeAllocationsRequest = { + ids?: Array; +}; + +export type AdminDeleteNodeAllocationIpBlockRequest = { + /** + * The IP address. + */ + ip: string; +}; + +export type AdminUpdateNodeAllocationRequest = { + /** + * An optional alias for this resource. + */ + alias?: string | null; +}; + +export type AdminCreateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; + +export type AdminUpdateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; + +export type AdminCreateMountRequest = { + /** + * The display name. Must be at least 2 characters. Must not be greater than 64 characters. + */ + name: string; + /** + * A description for this resource. Must not be greater than 191 characters. + */ + description?: string | null; + /** + * The source path. Must start with one of /. + */ + source: string; + /** + * The target path. Must start with one of /. + */ + target: string; + /** + * The read only. + */ + read_only?: boolean; + /** + * Whether users can mount this resource. + */ + user_mountable?: boolean; + extensions?: ExtensionFields; +}; + +export type AdminUpdateMountRequest = { + /** + * The display name. Must be at least 2 characters. Must not be greater than 64 characters. + */ + name: string; + /** + * A description for this resource. Must not be greater than 191 characters. + */ + description?: string | null; + /** + * The source path. Must start with one of /. + */ + source: string; + /** + * The target path. Must start with one of /. + */ + target: string; + /** + * The read only. + */ + read_only?: boolean; + /** + * Whether users can mount this resource. + */ + user_mountable?: boolean; + extensions?: ExtensionFields; +}; + +export type AdminAttachEggsToMountRequest = { + eggs: Array; +}; + +export type AdminAttachNodesToMountRequest = { + nodes: Array; +}; + +export type AdminImportCatalogEggRequest = { + /** + * The catalog id. Must not be greater than 255 characters. + */ + catalog_id: string; +}; + +export type AdminCreateEggVariableRequest = { + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The environment variable name. Must not be one of SERVER_MEMORY, SERVER_IP, SERVER_PORT, ENV, HOME, USER, STARTUP, SERVER_UUID, UUID, in any letter case. Must match the regex /^[\w]{1,191}$/. + */ + env_variable: string; + /** + * Laravel validation rules applied to user-submitted values. + */ + rules: string; + /** + * The default value. + */ + default_value?: string; + options?: Array; +}; + +export type AdminReorderEggVariablesRequest = { + order: Array; +}; + +export type AdminUpdateEggVariableRequest = { + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The environment variable name. Must not be one of SERVER_MEMORY, SERVER_IP, SERVER_PORT, ENV, HOME, USER, STARTUP, SERVER_UUID, UUID, in any letter case. Must match the regex /^[\w]{1,191}$/. + */ + env_variable: string; + /** + * Laravel validation rules applied to user-submitted values. + */ + rules: string; + /** + * The default value. + */ + default_value?: string; + options?: Array; +}; + +export type AdminUpdateEggInstallScriptRequest = { + /** + * The install script body. + */ + script_install?: string | null; + /** + * Whether the install script runs in privileged mode. + */ + script_is_privileged?: boolean; + /** + * The install container entrypoint. + */ + script_entry?: string; + /** + * The install container image. + */ + script_container?: string; + /** + * Another egg ID to copy the install script from. + */ + copy_script_from?: number | null; +}; + +export type AdminUpdateEggFromImportRequest = { + /** + * The file to import. Must be a file. Must not be greater than 1000 kilobytes. + */ + import_file: Blob | File; +}; + +export type AdminSyncEggTagsRequest = { + /** + * Must not be greater than 191 characters. + */ + tags?: Array; +}; + +export type AdminImportEggRequest = { + /** + * The file to import. Must be a file. Must not be greater than 1000 kilobytes. + */ + import_file: Blob | File; +}; + +export type AdminCreateEggRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * Docker images available to this resource. One image per line, optionally prefixed with a display name and a pipe (Java 21|ghcr.io/pterodactyl/yolks:java_21). Each must be at most 191 characters and match the regex /^[\w#\.\/\- ]*\|?~?[\w\.\/\-:@ ]*$/. + */ + docker_images: string; + /** + * Whether servers should use their allocation IP for outgoing traffic. + */ + force_outgoing_ip?: boolean; + /** + * File patterns denied by the file manager. + */ + file_denylist?: Array; + /** + * Feature flags enabled for this resource. + */ + features?: Array; + /** + * The startup command. + */ + startup: string; + /** + * The config from. Must match an existing stored value. + */ + config_from?: number | null; + /** + * The config stop. This field is required when config_from is not present. Must not be greater than 191 characters. + */ + config_stop?: string | null; + /** + * The config startup. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_startup?: string | null; + /** + * The config logs. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_logs?: string | null; + /** + * The config files. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_files?: string | null; + extensions?: ExtensionFields; +}; + +export type AdminUpdateEggRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * Docker images available to this resource. One image per line, optionally prefixed with a display name and a pipe (Java 21|ghcr.io/pterodactyl/yolks:java_21). Each must be at most 191 characters and match the regex /^[\w#\.\/\- ]*\|?~?[\w\.\/\-:@ ]*$/. + */ + docker_images: string; + /** + * Whether servers should use their allocation IP for outgoing traffic. + */ + force_outgoing_ip?: boolean; + /** + * File patterns denied by the file manager. + */ + file_denylist?: Array; + /** + * Feature flags enabled for this resource. + */ + features?: Array; + /** + * The startup command. + */ + startup: string; + /** + * The config from. Must match an existing stored value. + */ + config_from?: number | null; + /** + * The config stop. This field is required when config_from is not present. Must not be greater than 191 characters. + */ + config_stop?: string | null; + /** + * The config startup. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_startup?: string | null; + /** + * The config logs. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_logs?: string | null; + /** + * The config files. This field is required when config_from is not present. Must be a valid JSON string. + */ + config_files?: string | null; + extensions?: ExtensionFields; +}; + +export type AdminCreateTagRequest = { + /** + * The display name. Must be between 1 and 191 characters. + */ + name: string; + /** + * The slug. Must be between 1 and 191 characters. + */ + slug: string; + /** + * The color. + */ + color?: string | null; +}; + +export type AdminUpdateTagRequest = { + /** + * The display name. Must be between 1 and 191 characters. + */ + name: string; + /** + * The slug. Must be between 1 and 191 characters. + */ + slug: string; + /** + * The color. + */ + color?: string | null; +}; + +export type AdminUpdateGeneralSettingsRequest = { + branding?: { + /** + * The branding name. Must not be greater than 191 characters. + */ + name: string; + }; + misc?: { + /** + * The misc required 2fa. + */ + required_2fa: 0 | 1 | 2; + }; + /** + * The default locale. + */ + default_locale: string; +}; + +export type AdminUpdateMailSettingsRequest = { + smtp?: { + /** + * The smtp host. + */ + host: string; + /** + * The smtp port. Must be between 1 and 65535. + */ + port: number; + /** + * The smtp encryption. + */ + encryption?: 'tls' | 'ssl' | null; + /** + * The smtp username. Must not be greater than 191 characters. + */ + username?: string | null; + /** + * The smtp password. Must not be greater than 191 characters. + */ + password?: string | null; + /** + * The smtp from address. Must be a valid email address. + */ + from_address: string; + /** + * The smtp from name. Must not be greater than 191 characters. + */ + from_name?: string | null; + }; +}; + +export type AdminUpdateAdvancedSettingsRequest = { + /** + * The recaptcha:enabled. + */ + 'recaptcha:enabled': 'true' | 'false'; + /** + * The recaptcha:secret key. Must not be greater than 191 characters. + */ + 'recaptcha:secret_key'?: string | null; + /** + * The recaptcha:website key. Must not be greater than 191 characters. + */ + 'recaptcha:website_key': string; + /** + * The pterodactyl:guzzle:timeout. Must be between 1 and 60. + */ + 'pterodactyl:guzzle:timeout': number; + /** + * The pterodactyl:guzzle:connect timeout. Must be between 1 and 60. + */ + 'pterodactyl:guzzle:connect_timeout': number; + /** + * The pterodactyl:client features:allocations:enabled. + */ + 'pterodactyl:client_features:allocations:enabled': 'true' | 'false'; + /** + * The pterodactyl:client features:allocations:range start. This field is required when pterodactyl:client_features:allocations:enabled is true. Must be between 1024 and 65535. + */ + 'pterodactyl:client_features:allocations:range_start'?: number | null; + /** + * The pterodactyl:client features:allocations:range end. This field is required when pterodactyl:client_features:allocations:enabled is true. Must be between 1024 and 65535. + */ + 'pterodactyl:client_features:allocations:range_end'?: number | null; +}; + +export type AdminCreateDatabaseHostRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * The database host address. Must match the regex /^[\w\-\.]+$/. + */ + host: string; + /** + * The port number. Must be between 1 and 65535. + */ + port: number; + /** + * The username. Must not be greater than 32 characters. + */ + username: string; + /** + * The password. + */ + password?: string | null; + /** + * The node ID. Must match an existing stored value. + */ + node_id?: number | null; + extensions?: ExtensionFields; +}; + +export type AdminUpdateDatabaseHostRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * The database host address. Must match the regex /^[\w\-\.]+$/. + */ + host: string; + /** + * The port number. Must be between 1 and 65535. + */ + port: number; + /** + * The username. Must not be greater than 32 characters. + */ + username: string; + /** + * The password. + */ + password?: string | null; + /** + * The node ID. Must match an existing stored value. + */ + node_id?: number | null; + extensions?: ExtensionFields; +}; + +export type AdminCreateApiKeyRequest = { + /** + * The memo. Must not be greater than 500 characters. + */ + memo: string; + /** + * The r servers. Must be at least 0. Must not be greater than 3. + */ + r_servers?: number; + /** + * The r nodes. Must be at least 0. Must not be greater than 3. + */ + r_nodes?: number; + /** + * The r allocations. Must be at least 0. Must not be greater than 3. + */ + r_allocations?: number; + /** + * The r users. Must be at least 0. Must not be greater than 3. + */ + r_users?: number; + /** + * The r locations. Must be at least 0. Must not be greater than 3. + */ + r_locations?: number; + /** + * The r eggs. Must be at least 0. Must not be greater than 3. + */ + r_eggs?: number; + /** + * The r database hosts. Must be at least 0. Must not be greater than 3. + */ + r_database_hosts?: number; + /** + * The r server databases. Must be at least 0. Must not be greater than 3. + */ + r_server_databases?: number; +}; + +export type AdminUpdateApiKeyRequest = { + /** + * The memo. Must not be greater than 500 characters. + */ + memo: string; + /** + * The r servers. Must be at least 0. Must not be greater than 3. + */ + r_servers?: number; + /** + * The r nodes. Must be at least 0. Must not be greater than 3. + */ + r_nodes?: number; + /** + * The r allocations. Must be at least 0. Must not be greater than 3. + */ + r_allocations?: number; + /** + * The r users. Must be at least 0. Must not be greater than 3. + */ + r_users?: number; + /** + * The r locations. Must be at least 0. Must not be greater than 3. + */ + r_locations?: number; + /** + * The r eggs. Must be at least 0. Must not be greater than 3. + */ + r_eggs?: number; + /** + * The r database hosts. Must be at least 0. Must not be greater than 3. + */ + r_database_hosts?: number; + /** + * The r server databases. Must be at least 0. Must not be greater than 3. + */ + r_server_databases?: number; +}; + +export type ApplicationCreateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * The locale code. + */ + language?: 'en'; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The first name. Must be between 1 and 191 characters. + */ + first_name: string; + /** + * The last name. Must be between 1 and 191 characters. + */ + last_name: string; + extensions?: ExtensionFields; +}; + +export type ApplicationUpdateUserRequest = { + /** + * An external identifier for this resource. Must not be greater than 191 characters. + */ + external_id?: string | null; + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The username. Must be between 1 and 191 characters. + */ + username: string; + /** + * The password. Must be at least 8 characters. + */ + password?: string | null; + /** + * The locale code. + */ + language?: 'en'; + /** + * Whether the user has administrator privileges. + */ + root_admin?: boolean; + /** + * The first name. Must be between 1 and 191 characters. + */ + first_name: string; + /** + * The last name. Must be between 1 and 191 characters. + */ + last_name: string; + extensions?: ExtensionFields; +}; + +export type ApplicationCreateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + extensions?: ExtensionFields; +}; + +export type ApplicationUpdateNodeRequest = { + /** + * The public. + */ + public?: boolean; + /** + * The display name. Must match the regex /^([\w .-]{1,100})$/. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The location ID. Must match an existing stored value. + */ + location_id: number; + /** + * The fully qualified domain name. + */ + fqdn: string; + /** + * The scheme. + */ + scheme: string; + /** + * Whether the node is behind a proxy. + */ + behind_proxy?: boolean; + /** + * The maintenance mode. + */ + maintenance_mode?: boolean; + /** + * The memory limit in megabytes. Must be at least 1. + */ + memory: number; + /** + * The memory overallocate. Must be at least -1. + */ + memory_overallocate: number; + /** + * The disk limit in megabytes. Must be at least 1. + */ + disk: number; + /** + * The disk overallocate. Must be at least -1. + */ + disk_overallocate: number; + /** + * The upload size. Must be at least 1. + */ + upload_size?: number; + /** + * The daemon listen. Must be between 1 and 65535. + */ + daemon_listen: number; + /** + * The daemon sftp. Must be between 1 and 65535. + */ + daemon_sftp: number; + /** + * The daemon base. Must match the regex /^([\/][\d\w.\-\/]+)$/. + */ + daemon_base?: string; + /** + * The reset secret. + */ + reset_secret?: boolean; + extensions?: ExtensionFields; +}; + +export type ApplicationCreateNodeAllocationsRequest = { + /** + * The IP address. + */ + ip: string; + /** + * An optional alias for this resource. Must not be greater than 191 characters. + */ + alias?: string | null; + ports?: Array; +}; + +export type ApplicationCreateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; + +export type ApplicationUpdateLocationRequest = { + /** + * The short. Must be between 1 and 60 characters. + */ + short: string; + /** + * The long. Must be between 1 and 191 characters. + */ + long?: string | null; + extensions?: ExtensionFields; +}; + +export type ApplicationCreateServerRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; + /** + * The user ID. Must match an existing stored value. + */ + user: number; + /** + * The egg. Must match an existing stored value. + */ + egg: string; + /** + * The Docker image to use. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + docker_image: string; + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The limits. + */ + limits: { + /** + * The limits memory. Must be at least 0. + */ + memory: number; + /** + * The limits swap. Must be at least -1. + */ + swap: number; + /** + * The limits disk. Must be at least 0. + */ + disk: number; + /** + * The limits io. Must be between 10 and 1000. + */ + io: number; + /** + * The limits threads. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The limits cpu. Must be at least 0. + */ + cpu: number; + }; + /** + * The feature limits. + */ + feature_limits: { + /** + * The maximum number of databases allowed. Must be at least 0. + */ + databases?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocations?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backups?: number | null; + }; + allocation?: { + /** + * The allocation default. + */ + default: number; + additional?: Array; + }; + /** + * The deploy. + */ + deploy?: { + /** + * Must be at least 1. + */ + locations: Array; + /** + * The deploy dedicated ip. + */ + dedicated_ip?: boolean; + port_range?: Array; + /** + * Deploy tags (IDs or slugs) the deployment declares. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. Its deployment tags must match these exactly: a node reserved for a tag missing here is skipped, and every tag listed must be reserved on the node. + */ + tags?: Array; + }; + /** + * Whether the server should start when the operation completes. + */ + start_on_completion?: boolean; + extensions?: ExtensionFields; +}; + +export type ApplicationUpdateServerDetailsRequest = { + /** + * An external identifier for this resource. Must be between 1 and 191 characters. + */ + external_id?: string | null; + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * The user ID. Must match an existing stored value. + */ + user: number; + /** + * A description for this resource. + */ + description?: string | null; + extensions?: ExtensionFields; +}; + +export type ApplicationUpdateServerBuildRequest = { + /** + * The allocation ID. Must match an existing stored value. + */ + allocation: string; + /** + * Whether the OOM killer is disabled. + */ + oom_disabled?: boolean; + /** + * The limits. + */ + limits?: { + /** + * The limits memory. This field is required when limits is present. Must be at least 0. + */ + memory?: number; + /** + * The limits swap. This field is required when limits is present. Must be at least -1. + */ + swap?: number; + /** + * The limits io. This field is required when limits is present. Must be between 10 and 1000. + */ + io?: number; + /** + * The limits cpu. This field is required when limits is present. Must be at least 0. + */ + cpu?: number; + /** + * The limits threads. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The limits disk. This field is required when limits is present. Must be at least 0. + */ + disk?: number; + }; + /** + * The memory limit in megabytes. This field is required when limits is not present. Must be at least 0. + */ + memory?: number; + /** + * The swap limit in megabytes. This field is required when limits is not present. Must be at least -1. + */ + swap?: number; + /** + * The block IO weight. This field is required when limits is not present. Must be between 10 and 1000. + */ + io?: number; + /** + * The CPU limit percentage. This field is required when limits is not present. Must be at least 0. + */ + cpu?: number; + /** + * CPU threads available to the server. Must match the regex /^[0-9-,]+$/. + */ + threads?: string | null; + /** + * The disk limit in megabytes. This field is required when limits is not present. Must be at least 0. + */ + disk?: number; + add_allocations?: Array; + remove_allocations?: Array; + /** + * The feature limits. + */ + feature_limits: { + /** + * The maximum number of databases allowed. Must be at least 0. + */ + databases?: number | null; + /** + * The maximum number of allocations allowed. Must be at least 0. + */ + allocations?: number | null; + /** + * The maximum number of backups allowed. Must be at least 0. + */ + backups?: number | null; + }; +}; + +export type ApplicationUpdateServerStartupRequest = { + /** + * The startup command. + */ + startup: string; + /** + * Environment variables for the server. + */ + environment?: { + [key: string]: string; + }; + /** + * The egg. Must match an existing stored value. + */ + egg: string; + /** + * The image. Must match the regex /^~?[\w\.\/\-:@ ]*$/. Must not be greater than 191 characters. + */ + image: string; + /** + * Whether install scripts should be skipped. + */ + skip_scripts?: boolean; +}; + +export type ApplicationCreateServerDatabaseRequest = { + /** + * The database. Must contain only letters, numbers, dashes and underscores. Must be at least 1 character. Must not be greater than 48 characters. + */ + database: string; + /** + * The remote database address. Must match the regex /^[0-9%.]{1,15}$/. + */ + remote: string; + /** + * The database host address. Must match an existing stored value. + */ + host: number; +}; + +export type AuthLoginRequest = { + /** + * The account username or email address. + */ + user: string; + /** + * The account password. + */ + password: string; + /** + * The reCAPTCHA token when reCAPTCHA is enabled. + */ + 'g-recaptcha-response'?: string | null; +}; + +export type AuthCompleteLoginCheckpointRequest = { + /** + * The confirmation token returned by the login endpoint. + */ + confirmation_token: string; + /** + * The six-digit TOTP code. Required when recovery_token is not provided. + */ + authentication_code?: string | null; + /** + * A recovery token. Required when authentication_code is not provided. + */ + recovery_token?: string | null; +}; + +export type AuthRequestPasswordResetEmailRequest = { + /** + * The account email address. + */ + email: string; + /** + * The reCAPTCHA token when reCAPTCHA is enabled. + */ + 'g-recaptcha-response'?: string | null; +}; + +export type AuthResetPasswordRequest = { + /** + * The password reset token. + */ + token: string; + /** + * The account email address. + */ + email: string; + /** + * The new account password. Must be at least eight characters. + */ + password: string; + /** + * Confirmation matching the new account password. + */ + password_confirmation: string; + /** + * The reCAPTCHA token when reCAPTCHA is enabled. + */ + 'g-recaptcha-response'?: string | null; +}; + +export type ClientEnableTwoFactorAuthenticationRequest = { + /** + * The six-digit TOTP code generated by the authenticator app. + */ + code: string; + /** + * The current account password. + */ + password: string; +}; + +export type ClientDisableTwoFactorAuthenticationRequest = { + /** + * The current account password. + */ + password: string; +}; + +export type ClientUpdateAccountEmailRequest = { + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * The current account password. + */ + password: string; +}; + +export type ClientUpdateAccountPasswordRequest = { + /** + * The current account password. + */ + current_password: string; + /** + * The password. Must be at least 8 characters. + */ + password: string; + /** + * Confirmation matching the new password. + */ + password_confirmation: string; +}; + +export type ClientCreateAccountApiKeyRequest = { + /** + * A description for this resource. Must not be greater than 500 characters. + */ + description: string; + allowed_ips?: Array; +}; + +export type ClientCreateSshKeyRequest = { + /** + * The display name. + */ + name: string; + /** + * The SSH public key. Must not be greater than 16384 characters. + */ + public_key: string; +}; + +export type ClientDeleteSshKeyRequest = { + /** + * The SSH key fingerprint. + */ + fingerprint: string; +}; + +export type ClientSendServerCommandRequest = { + /** + * The console command to send. Must be at least 1 character. + */ + command: string; +}; + +export type ClientSendPowerActionRequest = { + /** + * The power signal. + */ + signal: 'start' | 'stop' | 'restart' | 'kill'; +}; + +export type ClientCreateServerDatabaseRequest = { + /** + * The database. Must contain only letters, numbers, dashes and underscores. Must be at least 3 characters. Must not be greater than 48 characters. + */ + database: string; + /** + * The remote database address. Must match the regex /^[\w\-\/.%:]+$/. + */ + remote: string; +}; + +export type ClientRenameFilesRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + files?: Array<{ + /** + * Must not be greater than 2048 characters. + */ + to: string; + /** + * Must not be greater than 2048 characters. + */ + from: string; + }>; +}; + +export type ClientCopyFileRequest = { + /** + * The location. Must not be greater than 2048 characters. + */ + location: string; +}; + +/** + * Raw file contents to write. + */ +export type ClientWriteFileContentsRequest = string; + +export type ClientCompressFilesRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * Must not be greater than 2048 characters. + */ + files?: Array; +}; + +export type ClientDecompressFileRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * The file path. Must not be greater than 2048 characters. + */ + file: string; +}; + +export type ClientDeleteFilesRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * Must not be greater than 2048 characters. + */ + files?: Array; +}; + +export type ClientCreateFolderRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * The display name. Must not be greater than 255 characters. + */ + name: string; +}; + +export type ClientChangeFilePermissionsRequest = { + /** + * The root. Must not be greater than 2048 characters. + */ + root?: string | null; + /** + * File paths affected by the operation. + */ + files: Array<{ + /** + * Must not be greater than 2048 characters. + */ + file: string; + /** + * Must match the regex /^[0-7]{3,4}$/. + */ + mode: string; + }>; +}; + +export type ClientPullRemoteFileRequest = { + /** + * The URL. Must be a valid URL. Must not be greater than 2048 characters. + */ + url: string; + /** + * The directory path. Must not be greater than 2048 characters. + */ + directory?: string | null; + /** + * The file name. Must not be greater than 255 characters. + */ + filename?: string | null; + /** + * The use header. + */ + use_header?: boolean; + /** + * The foreground. + */ + foreground?: boolean; +}; + +export type ClientCreateServerScheduleRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * Whether the resource is active. + */ + is_active?: boolean; + /** + * The minute. + */ + minute: string; + /** + * The hour. + */ + hour: string; + /** + * The day of month. + */ + day_of_month: string; + /** + * The month. + */ + month: string; + /** + * The day of week. + */ + day_of_week: string; + /** + * Whether the schedule should run only when the server is online. + */ + only_when_online?: boolean; +}; + +export type ClientUpdateServerScheduleRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name: string; + /** + * Whether the resource is active. + */ + is_active?: boolean; + /** + * The minute. + */ + minute: string; + /** + * The hour. + */ + hour: string; + /** + * The day of month. + */ + day_of_month: string; + /** + * The month. + */ + month: string; + /** + * The day of week. + */ + day_of_week: string; + /** + * Whether the schedule should run only when the server is online. + */ + only_when_online?: boolean; +}; + +export type ClientCreateScheduleTaskRequest = { + /** + * The action to perform. + */ + action: 'command' | 'power' | 'backup'; + /** + * The payload. This field is required unless action is in backup. + */ + payload?: string | null; + /** + * The delay before this task runs. Must be at least 0. Must not be greater than 900. + */ + time_offset: number; + /** + * The task execution order. Must be at least 1. + */ + sequence_id?: number; + /** + * Whether the schedule continues when this task fails. + */ + continue_on_failure?: boolean; +}; + +export type ClientUpdateScheduleTaskRequest = { + /** + * The action to perform. + */ + action: 'command' | 'power' | 'backup'; + /** + * The payload. This field is required unless action is in backup. + */ + payload?: string | null; + /** + * The delay before this task runs. Must be at least 0. Must not be greater than 900. + */ + time_offset: number; + /** + * The task execution order. Must be at least 1. + */ + sequence_id?: number; + /** + * Whether the schedule continues when this task fails. + */ + continue_on_failure?: boolean; +}; + +export type ClientUpdateAllocationNotesRequest = { + /** + * Notes for this resource. Must not be greater than 256 characters. + */ + notes?: string | null; +}; + +export type ClientCreateServerSubuserRequest = { + /** + * The user email address. Must be a valid email address. Must be between 1 and 191 characters. + */ + email: string; + /** + * Permissions granted to the user. + */ + permissions?: Array<'websocket.connect' | 'control.console' | 'control.start' | 'control.stop' | 'control.restart' | 'user.create' | 'user.read' | 'user.update' | 'user.delete' | 'file.create' | 'file.read' | 'file.read-content' | 'file.update' | 'file.delete' | 'file.archive' | 'file.sftp' | 'backup.create' | 'backup.read' | 'backup.delete' | 'backup.download' | 'backup.restore' | 'allocation.read' | 'allocation.create' | 'allocation.update' | 'allocation.delete' | 'startup.read' | 'startup.update' | 'startup.docker-image' | 'database.create' | 'database.read' | 'database.update' | 'database.delete' | 'database.view_password' | 'schedule.create' | 'schedule.read' | 'schedule.update' | 'schedule.delete' | 'settings.rename' | 'settings.reinstall' | 'activity.read' | string>; +}; + +export type ClientUpdateServerSubuserRequest = { + /** + * Permissions granted to the user. + */ + permissions?: Array<'websocket.connect' | 'control.console' | 'control.start' | 'control.stop' | 'control.restart' | 'user.create' | 'user.read' | 'user.update' | 'user.delete' | 'file.create' | 'file.read' | 'file.read-content' | 'file.update' | 'file.delete' | 'file.archive' | 'file.sftp' | 'backup.create' | 'backup.read' | 'backup.delete' | 'backup.download' | 'backup.restore' | 'allocation.read' | 'allocation.create' | 'allocation.update' | 'allocation.delete' | 'startup.read' | 'startup.update' | 'startup.docker-image' | 'database.create' | 'database.read' | 'database.update' | 'database.delete' | 'database.view_password' | 'schedule.create' | 'schedule.read' | 'schedule.update' | 'schedule.delete' | 'settings.rename' | 'settings.reinstall' | 'activity.read' | string>; +}; + +export type ClientCreateServerBackupRequest = { + /** + * The display name. Must not be greater than 191 characters. + */ + name?: string | null; + /** + * Whether the resource is locked. + */ + is_locked?: boolean | null; + /** + * Whether this item should be ignored. + */ + ignored?: string | null; +}; + +export type ClientRestoreServerBackupRequest = { + /** + * The truncate. + */ + truncate: boolean; +}; + +export type ClientUpdateStartupVariableRequest = { + /** + * The key. + */ + key: string; + /** + * The value. + */ + value?: string; +}; + +export type ClientRenameServerRequest = { + /** + * The display name. Must be at least 1 character. Must not be greater than 191 characters. + */ + name: string; + /** + * A description for this resource. + */ + description?: string | null; +}; + +export type ClientSetServerDockerImageRequest = { + /** + * The Docker image to use. + */ + docker_image: string; +}; + +export type AdminListActivityFilterOptionsResponseBody = { + data?: { + events?: Array; + users?: Array<{ + id?: number; + username?: string; + email?: string; + }>; + }; +}; + +export type AdminListExtensionsResponseBody = { + data?: Array<{ + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }>; + meta?: { + enabled?: boolean; + directory?: string; + }; +}; + +export type AdminInstallExtensionResponseBody = { + data?: { + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }; +}; + +export type AdminGetExtensionSettingsResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; + +export type AdminUpdateExtensionSettingsResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; + +/** + * Icon image bytes. + */ +export type AdminGetExtensionIcon200ImagePngResponseBody = Blob | File; + +/** + * Icon image bytes. + */ +export type AdminGetExtensionIcon200ImageJpegResponseBody = Blob | File; + +/** + * Icon image bytes. + */ +export type AdminGetExtensionIcon200ImageWebpResponseBody = Blob | File; + +export type AdminUploadExtensionSettingFileResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; + +export type AdminClearExtensionSettingFileResponseBody = { + data: { + registered: boolean; + schema: Array; + }; +}; + +export type AdminEnableExtensionResponseBody = { + data?: { + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }; +}; + +export type AdminDisableExtensionResponseBody = { + data?: { + id?: string; + name?: string; + version?: string; + description: string | null; + author: string | null; + provider: string | null; + icon: string | null; + icon_url: string | null; + has_ui?: boolean; + ui_entry: string | null; + ui_mode?: string; + frontend_entry: string | null; + installed?: boolean; + enabled?: boolean; + state?: string; + error?: string | null; + /** + * Where the last failure happened: register, boot or compatibility while loading, manifest for an invalid package, or a runtime phase such as event, action, command, schedule or runtime. + */ + error_phase: string | null; + /** + * When the last failure was recorded. + */ + errored_at: string | null; + }; +}; + +export type AdminListNodeAllocationIpsResponseBody = { + data?: Array; +}; + +export type AdminListEggCatalogResponseBody = { + /** + * The available catalog entries. + */ + data: Array<{ + /** + * The catalog identifier used to import this egg. + */ + id: string; + /** + * The egg name. + */ + name: string; + /** + * The egg description, or an empty string. + */ + description: string; + /** + * The catalog category, or an empty string. + */ + category: string; + /** + * The egg page on eggs.pterodactyl.io. + */ + source_url: string; + }>; +}; + +/** + * Raw egg export JSON document returned as a text download. + */ +export type AdminExportEggResponseBody = string; + +export type ApplicationGetNodeConfigurationResponseBody = { + debug?: boolean; + uuid?: string; + token_id?: string; + token?: string; + api?: { + host?: string; + port?: number; + ssl?: { + enabled?: boolean; + cert?: string; + key?: string; + }; + upload_limit?: number; + }; + system?: { + data?: string; + sftp?: { + bind_port?: number; + }; + }; + allowed_mounts?: Array; + remote?: string; +}; + +export type ClientGetExtensionJobProgressResponseBody = { + /** + * Latest progress snapshot. + */ + data: { + /** + * Progress job UUID. + */ + id: string; + /** + * Extension identifier. + */ + extension: string; + /** + * Job state. + */ + status: 'running' | 'completed' | 'failed'; + /** + * Progress from zero to one hundred. + */ + percent: number; + /** + * Current progress message. + */ + message: string; + /** + * Monotonically increasing update sequence. + */ + sequence: number; + /** + * Update timestamp in ISO 8601 format. + */ + updated_at: string; + }; +}; + +export type ClientListAccountActivityFilterOptionsResponseBody = { + data?: { + events?: Array; + users?: Array<{ + id?: number; + username?: string; + email?: string; + }>; + }; +}; + +export type ClientGetWebsocketCredentialsResponseBody = { + data?: { + token?: string; + socket?: string; + }; +}; + +export type ClientGetServerExtensionJobProgressResponseBody = { + /** + * Latest progress snapshot. + */ + data: { + /** + * Progress job UUID. + */ + id: string; + /** + * Extension identifier. + */ + extension: string; + /** + * Job state. + */ + status: 'running' | 'completed' | 'failed'; + /** + * Progress from zero to one hundred. + */ + percent: number; + /** + * Current progress message. + */ + message: string; + /** + * Monotonically increasing update sequence. + */ + sequence: number; + /** + * Update timestamp in ISO 8601 format. + */ + updated_at: string; + }; +}; + +export type ClientListServerActivityFilterOptionsResponseBody = { + data?: { + events?: Array; + users?: Array<{ + id?: number; + username?: string; + email?: string; + }>; + }; +}; + +export type ClientGetFileContentsResponseBody = string; + +/** + * Filter activity by event name. + */ +export type AdminListActivityFilterEventQueryParameter = string; + +/** + * Filter activity by originating IP address. + */ +export type AdminListActivityFilterIpQueryParameter = string; + +/** + * Filter activity by the username or email of the user that performed it. + */ +export type AdminListActivityFilterUserQueryParameter = string; + +/** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ +export type AdminListActivityFilterUserIdQueryParameter = number; + +/** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ +export type AdminListActivityFilterEventNameQueryParameter = string; + +/** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ +export type AdminListActivitySortQueryParameter = 'timestamp' | '-timestamp'; + +/** + * Page number to return. + */ +export type AdminListActivityPageQueryParameter = number; + +/** + * Results to return per page. The maximum is 100. + */ +export type AdminListActivityPerPageQueryParameter = number; + +/** + * Comma-separated relationships to include. Supports actor. + */ +export type AdminListActivityIncludeQueryParameter = string; + +export type AdminGetExtensionSettingsExtensionPathParameter = string; + +export type AdminGetExtensionIconExtensionPathParameter = string; + +export type AdminUploadExtensionSettingFileExtensionPathParameter = string; + +export type AdminUploadExtensionSettingFileInputPathParameter = string; + +export type AdminEnableExtensionExtensionPathParameter = string; + +export type AdminDisableExtensionExtensionPathParameter = string; + +export type AdminRemoveExtensionExtensionPathParameter = string; + +export type AdminGetThemeSettingsThemePathParameter = string; + +export type AdminActivateThemeThemePathParameter = string; + +export type AdminPreviewThemeThemePathParameter = string; + +export type AdminUploadThemeImageThemePathParameter = string; + +export type AdminUploadThemeImageSettingPathParameter = string; + +/** + * Page number to retrieve. + */ +export type AdminListUsersPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListUsersPerPageQueryParameter = number; + +/** + * Filter users by email address. + */ +export type AdminListUsersFilterEmailQueryParameter = string; + +/** + * Filter users by UUID. + */ +export type AdminListUsersFilterUuidQueryParameter = string; + +/** + * Filter users by username. + */ +export type AdminListUsersFilterUsernameQueryParameter = string; + +/** + * Filter users by external identifier. + */ +export type AdminListUsersFilterExternalIdQueryParameter = string; + +/** + * Search users by username, email, or UUID. + */ +export type AdminListUsersFilterSearchQueryParameter = string; + +/** + * Sort users by id, uuid, email, username, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListUsersSortQueryParameter = string; + +export type AdminGetUserByExternalIdExternalIdPathParameter = string; + +/** + * Comma-separated relationships to include. Supports servers. + */ +export type AdminGetUserIncludeQueryParameter = string; + +export type AdminGetUserUserIdPathParameter = number; + +export type AdminDisableUserTwoFactorAuthenticationUserIdPathParameter = number; + +export type AdminGetNodeSystemInformationNodeIdPathParameter = number; + +export type AdminCreateNodeDeployTokenNodeIdPathParameter = number; + +export type AdminGetNodeUtilizationNodeIdPathParameter = number; + +export type AdminListServerMountsServerAdminIdentifierPathParameter = string; + +export type AdminDetachServerMountServerAdminIdentifierPathParameter = string; + +export type AdminDetachServerMountMountIdPathParameter = number; + +/** + * Search servers by UUID, name, owner, node, allocation, or external identifier. + */ +export type AdminListServersFilterWildcardQueryParameter = string; + +/** + * Filter servers by UUID. + */ +export type AdminListServersFilterUuidQueryParameter = string; + +/** + * Filter servers by short UUID identifier. + */ +export type AdminListServersFilterUuidShortQueryParameter = string; + +/** + * Filter servers by name. + */ +export type AdminListServersFilterNameQueryParameter = string; + +/** + * Filter servers by external identifier. + */ +export type AdminListServersFilterExternalIdQueryParameter = string; + +/** + * Filter servers by Docker image. + */ +export type AdminListServersFilterImageQueryParameter = string; + +/** + * Filter servers by node ID. + */ +export type AdminListServersFilterNodeIdQueryParameter = number; + +/** + * Filter servers by owner user ID. + */ +export type AdminListServersFilterOwnerIdQueryParameter = number; + +/** + * Sort servers by id, uuid, name, or creation time. Prefix with a hyphen for descending order. + */ +export type AdminListServersSortQueryParameter = string; + +/** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ +export type AdminListServersIncludeQueryParameter = string; + +/** + * Page number to retrieve. + */ +export type AdminListServersPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListServersPerPageQueryParameter = number; + +export type AdminGetServerByExternalIdExternalIdPathParameter = string; + +/** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ +export type AdminGetServerIncludeQueryParameter = string; + +export type AdminGetServerServerAdminIdentifierPathParameter = string; + +export type AdminUpdateServerDetailsServerAdminIdentifierPathParameter = string; + +export type AdminUpdateServerBuildServerAdminIdentifierPathParameter = string; + +export type AdminUpdateServerStartupServerAdminIdentifierPathParameter = string; + +export type AdminUpdateServerSuspensionServerAdminIdentifierPathParameter = string; + +export type AdminReinstallServerServerAdminIdentifierPathParameter = string; + +export type AdminRebuildServerServerAdminIdentifierPathParameter = string; + +export type AdminGetServerTransferProgressServerAdminIdentifierPathParameter = string; + +export type AdminTransferServerServerAdminIdentifierPathParameter = string; + +export type AdminToggleServerInstallStateServerAdminIdentifierPathParameter = string; + +export type AdminForceDeleteServerServerAdminIdentifierPathParameter = string; + +/** + * Comma-separated relationships to include. Supports "password". + */ +export type AdminListServerDatabasesIncludeQueryParameter = 'password'; + +export type AdminListServerDatabasesServerAdminIdentifierPathParameter = string; + +/** + * Comma-separated relationships to include. Supports "password". + */ +export type AdminGetServerDatabaseIncludeQueryParameter = 'password'; + +export type AdminGetServerDatabaseServerAdminIdentifierPathParameter = string; + +export type AdminGetServerDatabaseDatabaseIdPathParameter = string; + +export type AdminRotateServerDatabasePasswordServerAdminIdentifierPathParameter = string; + +export type AdminRotateServerDatabasePasswordDatabaseIdPathParameter = string; + +/** + * Filter backups by UUID. + */ +export type AdminListServerBackupsFilterUuidQueryParameter = string; + +/** + * Filter backups by name. + */ +export type AdminListServerBackupsFilterNameQueryParameter = string; + +/** + * Sort backups by id, bytes, or created_at. Prefix with a hyphen for descending order. + */ +export type AdminListServerBackupsSortQueryParameter = string; + +/** + * Results to return per page. + */ +export type AdminListServerBackupsPerPageQueryParameter = number; + +export type AdminListServerBackupsServerAdminIdentifierPathParameter = string; + +export type AdminToggleServerBackupLockServerAdminIdentifierPathParameter = string; + +export type AdminToggleServerBackupLockBackupUuidPathParameter = string; + +/** + * Filter nodes by UUID. + */ +export type AdminListNodesFilterUuidQueryParameter = string; + +/** + * Filter nodes by name. + */ +export type AdminListNodesFilterNameQueryParameter = string; + +/** + * Filter nodes by FQDN. + */ +export type AdminListNodesFilterFqdnQueryParameter = string; + +/** + * Sort nodes by id, uuid, name, memory, disk, or creation time. Prefix with a hyphen for descending order. + */ +export type AdminListNodesSortQueryParameter = string; + +/** + * Page number to return. + */ +export type AdminListNodesPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListNodesPerPageQueryParameter = number; + +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ +export type AdminListNodesIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'allocations,location' | 'location,servers' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; + +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ +export type AdminGetNodeIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'allocations,location' | 'location,servers' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; + +export type AdminGetNodeNodeIdPathParameter = number; + +export type AdminGetNodeConfigurationNodeIdPathParameter = number; + +export type AdminSyncNodeGameTagsNodeIdPathParameter = number; + +export type AdminSyncNodeDeploymentTagsNodeIdPathParameter = number; + +/** + * Filter allocations by exact IP address. + */ +export type AdminListNodeAllocationsFilterIpQueryParameter = string; + +/** + * Filter allocations by exact port. + */ +export type AdminListNodeAllocationsFilterPortQueryParameter = number; + +/** + * Filter allocations by IP alias. + */ +export type AdminListNodeAllocationsFilterIpAliasQueryParameter = string; + +/** + * Filter allocations by server ID, or pass an empty value to return unassigned allocations. + */ +export type AdminListNodeAllocationsFilterServerIdQueryParameter = string; + +/** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ +export type AdminListNodeAllocationsSortQueryParameter = string; + +/** + * Page number to return. + */ +export type AdminListNodeAllocationsPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListNodeAllocationsPerPageQueryParameter = number; + +export type AdminListNodeAllocationsNodeIdPathParameter = number; + +export type AdminListNodeAllocationIpsNodeIdPathParameter = number; + +/** + * Filter allocations by exact IP address. + */ +export type AdminListAvailableNodeAllocationsFilterIpQueryParameter = string; + +/** + * Filter allocations by exact port. + */ +export type AdminListAvailableNodeAllocationsFilterPortQueryParameter = number; + +/** + * Filter allocations by IP alias. + */ +export type AdminListAvailableNodeAllocationsFilterIpAliasQueryParameter = string; + +/** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ +export type AdminListAvailableNodeAllocationsSortQueryParameter = string; + +/** + * Results to return per page. + */ +export type AdminListAvailableNodeAllocationsPerPageQueryParameter = number; + +export type AdminListAvailableNodeAllocationsNodeIdPathParameter = number; + +export type AdminDeleteNodeAllocationIpBlockNodeIdPathParameter = number; + +export type AdminUpdateNodeAllocationNodeIdPathParameter = number; + +export type AdminUpdateNodeAllocationAllocationIdPathParameter = number; + +/** + * Filter locations by short identifier. + */ +export type AdminListLocationsFilterShortQueryParameter = string; + +/** + * Filter locations by long description. + */ +export type AdminListLocationsFilterLongQueryParameter = string; + +/** + * Sort locations by ID, short identifier, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListLocationsSortQueryParameter = string; + +/** + * Page number to return. + */ +export type AdminListLocationsPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListLocationsPerPageQueryParameter = number; + +/** + * Comma-separated relationships to include. Supports "nodes" and "servers". + */ +export type AdminGetLocationIncludeQueryParameter = 'nodes' | 'servers' | 'nodes,servers'; + +export type AdminGetLocationLocationIdPathParameter = number; + +export type AdminListEligibleLocationNodesLocationIdPathParameter = number; + +/** + * Filter mounts by name. + */ +export type AdminListMountsFilterNameQueryParameter = string; + +/** + * Sort mounts by id or name. Prefix with a hyphen for descending order. + */ +export type AdminListMountsSortQueryParameter = string; + +/** + * Page number to return. + */ +export type AdminListMountsPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListMountsPerPageQueryParameter = number; + +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminListMountsIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; + +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminGetMountIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; + +export type AdminGetMountMountIdPathParameter = number; + +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminAttachEggsToMountIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; + +export type AdminAttachEggsToMountMountIdPathParameter = number; + +export type AdminDetachEggFromMountMountIdPathParameter = number; + +export type AdminDetachEggFromMountEggIdPathParameter = number; + +/** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ +export type AdminAttachNodesToMountIncludeQueryParameter = 'eggs' | 'nodes' | 'servers' | 'eggs,nodes' | 'eggs,nodes,servers'; + +export type AdminAttachNodesToMountMountIdPathParameter = number; + +export type AdminDetachNodeFromMountMountIdPathParameter = number; + +export type AdminDetachNodeFromMountNodeIdPathParameter = number; + +/** + * Comma-separated relationships to include. Unknown includes are ignored. + */ +export type AdminListEggVariablesIncludeQueryParameter = string; + +export type AdminListEggVariablesEggIdPathParameter = number; + +export type AdminReorderEggVariablesEggIdPathParameter = number; + +export type AdminUpdateEggVariableEggIdPathParameter = number; + +export type AdminUpdateEggVariableVariableIdPathParameter = number; + +export type AdminGetEggInstallScriptEggIdPathParameter = number; + +export type AdminExportEggEggIdPathParameter = number; + +export type AdminUpdateEggFromImportEggIdPathParameter = number; + +export type AdminSyncEggTagsEggIdPathParameter = number; + +/** + * Filter eggs by name. + */ +export type AdminListEggsFilterNameQueryParameter = string; + +/** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ +export type AdminListEggsFilterTagQueryParameter = string; + +/** + * Sort eggs by id or name. Prefix with a hyphen for descending order. + */ +export type AdminListEggsSortQueryParameter = string; + +/** + * Page number to return. + */ +export type AdminListEggsPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListEggsPerPageQueryParameter = number; + +/** + * Comma-separated relationships to include: variables, tags, servers. + */ +export type AdminListEggsIncludeQueryParameter = 'variables' | 'tags' | 'servers' | 'variables,tags' | 'variables,servers' | 'tags,servers' | 'variables,tags,servers'; + +/** + * Comma-separated relationships to include: variables, tags, servers. + */ +export type AdminGetEggIncludeQueryParameter = 'variables' | 'tags' | 'servers' | 'variables,tags' | 'variables,servers' | 'tags,servers' | 'variables,tags,servers'; + +export type AdminGetEggEggIdPathParameter = number; + +/** + * Filter tags by name. + */ +export type AdminListTagsFilterNameQueryParameter = string; + +/** + * Filter tags by slug. + */ +export type AdminListTagsFilterSlugQueryParameter = string; + +/** + * Sort tags by id, name, or slug. Prefix with a hyphen for descending order. + */ +export type AdminListTagsSortQueryParameter = string; + +/** + * Page number to return. + */ +export type AdminListTagsPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListTagsPerPageQueryParameter = number; + +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ +export type AdminListTagsIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; + +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ +export type AdminGetTagIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; + +export type AdminGetTagTagIdPathParameter = number; + +/** + * Page number to retrieve. + */ +export type AdminListDatabaseHostsPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListDatabaseHostsPerPageQueryParameter = number; + +/** + * Filter hosts by name. + */ +export type AdminListDatabaseHostsFilterNameQueryParameter = string; + +/** + * Filter hosts by address or hostname. + */ +export type AdminListDatabaseHostsFilterHostQueryParameter = string; + +/** + * Sort hosts by ID, name, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListDatabaseHostsSortQueryParameter = string; + +/** + * Comma-separated relationships to include. Supports node and databases. + */ +export type AdminListDatabaseHostsIncludeQueryParameter = string; + +/** + * Comma-separated relationships to include. Supports node and databases. + */ +export type AdminGetDatabaseHostIncludeQueryParameter = string; + +export type AdminGetDatabaseHostDatabaseHostIdPathParameter = string; + +/** + * Page number to retrieve. + */ +export type AdminListDatabaseHostDatabasesPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListDatabaseHostDatabasesPerPageQueryParameter = number; + +export type AdminListDatabaseHostDatabasesDatabaseHostIdPathParameter = string; + +/** + * Filter keys by memo. + */ +export type AdminListApiKeysFilterMemoQueryParameter = string; + +/** + * Filter keys by identifier. + */ +export type AdminListApiKeysFilterIdentifierQueryParameter = string; + +/** + * Sort keys by ID, memo, or creation date. Prefix with a hyphen for descending order. + */ +export type AdminListApiKeysSortQueryParameter = string; + +/** + * Page number to retrieve. + */ +export type AdminListApiKeysPageQueryParameter = number; + +/** + * Results to return per page. + */ +export type AdminListApiKeysPerPageQueryParameter = number; + +export type AdminGetApiKeyIdentifierPathParameter = string; + +/** + * Number of users to return per page, up to 100. + */ +export type ApplicationListUsersPerPageQueryParameter = number; + +/** + * Filter users by email address. + */ +export type ApplicationListUsersFilterEmailQueryParameter = string; + +/** + * Filter users by UUID. + */ +export type ApplicationListUsersFilterUuidQueryParameter = string; + +/** + * Filter users by username. + */ +export type ApplicationListUsersFilterUsernameQueryParameter = string; + +/** + * Filter users by external identifier. + */ +export type ApplicationListUsersFilterExternalIdQueryParameter = string; + +/** + * Sort users by id or uuid. Prefix with "-" for descending order. + */ +export type ApplicationListUsersSortQueryParameter = 'id' | '-id' | 'uuid' | '-uuid'; + +/** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ +export type ApplicationListUsersIncludeQueryParameter = 'servers'; + +/** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ +export type ApplicationGetUserIncludeQueryParameter = 'servers'; + +export type ApplicationGetUserUserIdPathParameter = number; + +export type ApplicationGetUserByExternalIdExternalIdPathParameter = string; + +/** + * Number of nodes to return per page, up to 100. + */ +export type ApplicationListNodesPerPageQueryParameter = number; + +/** + * Filter nodes by UUID. + */ +export type ApplicationListNodesFilterUuidQueryParameter = string; + +/** + * Filter nodes by name. + */ +export type ApplicationListNodesFilterNameQueryParameter = string; + +/** + * Filter nodes by fully qualified domain name. + */ +export type ApplicationListNodesFilterFqdnQueryParameter = string; + +/** + * Filter nodes by daemon token identifier. + */ +export type ApplicationListNodesFilterDaemonTokenIdQueryParameter = string; + +/** + * Sort nodes by id, uuid, memory, or disk. Prefix with "-" for descending order. + */ +export type ApplicationListNodesSortQueryParameter = 'id' | '-id' | 'uuid' | '-uuid' | 'memory' | '-memory' | 'disk' | '-disk'; + +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ +export type ApplicationListNodesIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'location,allocations' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; + +/** + * Memory required for the deployment, in megabytes. + */ +export type ApplicationListDeployableNodesMemoryQueryParameter = number; + +/** + * Disk required for the deployment, in megabytes. + */ +export type ApplicationListDeployableNodesDiskQueryParameter = number; + +/** + * Restrict results to these location IDs. + */ +export type ApplicationListDeployableNodesLocationIdsQueryParameter = Array; + +/** + * Deploy tags (IDs or slugs) the deployment declares. They must match a node's deployment tags exactly: a node reserved for a tag missing here is left out, and every tag listed must be reserved on the node. Without tags, only nodes with no reservations are returned. + */ +export type ApplicationListDeployableNodesTagsQueryParameter = Array; + +/** + * Only return nodes that accept this egg. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. + */ +export type ApplicationListDeployableNodesEggQueryParameter = number; + +/** + * Page number to return. When omitted, all viable nodes are returned without pagination metadata. + */ +export type ApplicationListDeployableNodesPageQueryParameter = number; + +/** + * Number of nodes to return per page when page is supplied, up to 100. + */ +export type ApplicationListDeployableNodesPerPageQueryParameter = number; + +/** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ +export type ApplicationGetNodeIncludeQueryParameter = 'allocations' | 'location' | 'servers' | 'location,allocations' | 'tags' | 'deployment_tags' | 'tags,deployment_tags'; + +export type ApplicationGetNodeNodeIdPathParameter = number; + +export type ApplicationGetNodeConfigurationNodeIdPathParameter = number; + +/** + * Number of allocations to return per page, up to 100. + */ +export type ApplicationListNodeAllocationsPerPageQueryParameter = number; + +/** + * Filter allocations by exact IP address. + */ +export type ApplicationListNodeAllocationsFilterIpQueryParameter = string; + +/** + * Filter allocations by exact port. + */ +export type ApplicationListNodeAllocationsFilterPortQueryParameter = number; + +/** + * Filter allocations by IP alias. + */ +export type ApplicationListNodeAllocationsFilterIpAliasQueryParameter = string; + +/** + * Filter allocations by assigned server ID. Empty or non-numeric values return unassigned allocations. + */ +export type ApplicationListNodeAllocationsFilterServerIdQueryParameter = string; + +/** + * Comma-separated relationships to include. Supports "node" and "server" when the key can read those resources. + */ +export type ApplicationListNodeAllocationsIncludeQueryParameter = 'node' | 'server' | 'node,server'; + +export type ApplicationListNodeAllocationsNodeIdPathParameter = number; + +export type ApplicationDeleteNodeAllocationNodeIdPathParameter = number; + +export type ApplicationDeleteNodeAllocationAllocationIdPathParameter = number; + +/** + * Number of locations to return per page, up to 100. + */ +export type ApplicationListLocationsPerPageQueryParameter = number; + +/** + * Filter locations by short identifier. + */ +export type ApplicationListLocationsFilterShortQueryParameter = string; + +/** + * Filter locations by description. + */ +export type ApplicationListLocationsFilterLongQueryParameter = string; + +/** + * Sort locations by id. Prefix with "-" for descending order. + */ +export type ApplicationListLocationsSortQueryParameter = 'id' | '-id'; + +/** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ +export type ApplicationListLocationsIncludeQueryParameter = 'nodes' | 'servers' | 'nodes,servers'; + +/** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ +export type ApplicationGetLocationIncludeQueryParameter = 'nodes' | 'servers' | 'nodes,servers'; + +export type ApplicationGetLocationLocationIdPathParameter = number; + +/** + * Number of eggs to return per page, up to 100. + */ +export type ApplicationListEggsPerPageQueryParameter = number; + +/** + * Filter eggs by name. + */ +export type ApplicationListEggsFilterNameQueryParameter = string; + +/** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ +export type ApplicationListEggsFilterTagQueryParameter = string; + +/** + * Sort eggs by id or name. Prefix with "-" for descending order. + */ +export type ApplicationListEggsSortQueryParameter = 'id' | '-id' | 'name' | '-name'; + +/** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ +export type ApplicationListEggsIncludeQueryParameter = 'servers' | 'config' | 'script' | 'variables' | 'tags'; + +/** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ +export type ApplicationGetEggIncludeQueryParameter = 'servers' | 'config' | 'script' | 'variables' | 'tags'; + +export type ApplicationGetEggEggIdPathParameter = number; + +/** + * Number of tags to return per page, up to 100. + */ +export type ApplicationListTagsPerPageQueryParameter = number; + +/** + * Filter tags by name. + */ +export type ApplicationListTagsFilterNameQueryParameter = string; + +/** + * Filter tags by slug. + */ +export type ApplicationListTagsFilterSlugQueryParameter = string; + +/** + * Filter tags by the ID of the nest they were created from. + */ +export type ApplicationListTagsFilterLegacyNestIdQueryParameter = number; + +/** + * Sort tags by id, name, or slug. Prefix with "-" for descending order. + */ +export type ApplicationListTagsSortQueryParameter = 'id' | '-id' | 'name' | '-name' | 'slug' | '-slug'; + +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ +export type ApplicationListTagsIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; + +/** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ +export type ApplicationGetTagIncludeQueryParameter = 'eggs' | 'nodes' | 'eggs,nodes'; + +export type ApplicationGetTagTagIdPathParameter = number; + +/** + * Number of servers to return per page, up to 100. + */ +export type ApplicationListServersPerPageQueryParameter = number; + +/** + * Filter servers by UUID. + */ +export type ApplicationListServersFilterUuidQueryParameter = string; + +/** + * Filter servers by short UUID identifier. + */ +export type ApplicationListServersFilterUuidShortQueryParameter = string; + +/** + * Filter servers by name. + */ +export type ApplicationListServersFilterNameQueryParameter = string; + +/** + * Filter servers by description. + */ +export type ApplicationListServersFilterDescriptionQueryParameter = string; + +/** + * Filter servers by Docker image. + */ +export type ApplicationListServersFilterImageQueryParameter = string; + +/** + * Filter servers by external identifier. + */ +export type ApplicationListServersFilterExternalIdQueryParameter = string; + +/** + * Search term accepted by the list request. Must not exceed 100 characters. + */ +export type ApplicationListServersSearchQueryParameter = string; + +/** + * Sort servers by id or uuid. Prefix with "-" for descending order. + */ +export type ApplicationListServersSortQueryParameter = 'id' | '-id' | 'uuid' | '-uuid'; + +/** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ +export type ApplicationListServersIncludeQueryParameter = string; + +/** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ +export type ApplicationGetServerIncludeQueryParameter = string; + +export type ApplicationGetServerServerIdPathParameter = number; + +export type ApplicationGetServerByExternalIdExternalIdPathParameter = string; + +export type ApplicationUpdateServerDetailsServerIdPathParameter = number; + +export type ApplicationUpdateServerBuildServerIdPathParameter = number; + +export type ApplicationUpdateServerStartupServerIdPathParameter = number; + +export type ApplicationSuspendServerServerIdPathParameter = number; + +export type ApplicationUnsuspendServerServerIdPathParameter = number; + +export type ApplicationReinstallServerServerIdPathParameter = number; + +export type ApplicationDeleteServerServerIdPathParameter = number; + +export type ApplicationDeleteServerForcePathParameter = string; + +/** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ +export type ApplicationListServerDatabasesIncludeQueryParameter = 'password' | 'host' | 'password,host'; + +export type ApplicationListServerDatabasesServerIdPathParameter = number; + +/** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ +export type ApplicationGetServerDatabaseIncludeQueryParameter = 'password' | 'host' | 'password,host'; + +export type ApplicationGetServerDatabaseServerIdPathParameter = number; + +export type ApplicationGetServerDatabaseDatabaseIdPathParameter = string; + +export type ApplicationResetServerDatabasePasswordServerIdPathParameter = number; + +export type ApplicationResetServerDatabasePasswordDatabaseIdPathParameter = string; + +/** + * Page number to return. + */ +export type ClientListClientServersPageQueryParameter = number; + +/** + * Number of servers to return per page. The maximum is 100. + */ +export type ClientListClientServersPerPageQueryParameter = number; + +/** + * Scope of servers to return. "owner" returns owned servers, "admin" returns admin-accessible servers excluding owned or subuser servers, and "admin-all" returns all servers for root administrators. + */ +export type ClientListClientServersTypeQueryParameter = 'owner' | 'admin' | 'admin-all'; + +/** + * Filter servers by UUID. + */ +export type ClientListClientServersFilterUuidQueryParameter = string; + +/** + * Filter servers by name. + */ +export type ClientListClientServersFilterNameQueryParameter = string; + +/** + * Filter servers by description. + */ +export type ClientListClientServersFilterDescriptionQueryParameter = string; + +/** + * Filter servers by external identifier. + */ +export type ClientListClientServersFilterExternalIdQueryParameter = string; + +/** + * Search across server name, UUID, short UUID, external identifier, or allocation address and port. + */ +export type ClientListClientServersFilterWildcardQueryParameter = string; + +export type ClientGetExtensionJobProgressExtensionPathParameter = string; + +export type ClientGetExtensionJobProgressJobPathParameter = string; + +/** + * Page number to retrieve. + */ +export type ClientListAccountActivityPageQueryParameter = number; + +/** + * Number of activity log entries to return per page. The maximum is 100. + */ +export type ClientListAccountActivityPerPageQueryParameter = number; + +/** + * Filter activity by event name. + */ +export type ClientListAccountActivityFilterEventQueryParameter = string; + +/** + * Filter activity by the username or email of the user that performed it. + */ +export type ClientListAccountActivityFilterUserQueryParameter = string; + +/** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ +export type ClientListAccountActivityFilterUserIdQueryParameter = number; + +/** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ +export type ClientListAccountActivityFilterEventNameQueryParameter = string; + +/** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ +export type ClientListAccountActivitySortQueryParameter = 'timestamp' | '-timestamp'; + +/** + * Comma-separated relationships to include. Supports actor. + */ +export type ClientListAccountActivityIncludeQueryParameter = string; + +export type ClientDeleteAccountApiKeyIdentifierPathParameter = string; + +export type ClientGetServerServerUuidPathParameter = string; + +export type ClientGetWebsocketCredentialsServerUuidPathParameter = string; + +export type ClientGetServerResourcesServerUuidPathParameter = string; + +/** + * Number of lines to return. Defaults to the maximum of 100. + */ +export type ClientGetServerLogsLinesQueryParameter = number; + +export type ClientGetServerLogsServerUuidPathParameter = string; + +export type ClientGetServerExtensionJobProgressServerUuidPathParameter = string; + +export type ClientGetServerExtensionJobProgressExtensionPathParameter = string; + +export type ClientGetServerExtensionJobProgressJobPathParameter = string; + +/** + * Page number to retrieve. + */ +export type ClientListServerActivityPageQueryParameter = number; + +/** + * Number of activity log entries to return per page. The maximum is 100. + */ +export type ClientListServerActivityPerPageQueryParameter = number; + +/** + * Filter activity by event name. + */ +export type ClientListServerActivityFilterEventQueryParameter = string; + +/** + * Filter activity by the username or email of the user that performed it. + */ +export type ClientListServerActivityFilterUserQueryParameter = string; + +/** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ +export type ClientListServerActivityFilterUserIdQueryParameter = number; + +/** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ +export type ClientListServerActivityFilterEventNameQueryParameter = string; + +/** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ +export type ClientListServerActivitySortQueryParameter = 'timestamp' | '-timestamp'; + +/** + * Comma-separated relationships to include. Supports actor. + */ +export type ClientListServerActivityIncludeQueryParameter = string; + +export type ClientListServerActivityServerUuidPathParameter = string; + +export type ClientListServerActivityFilterOptionsServerUuidPathParameter = string; + +export type ClientSendServerCommandServerUuidPathParameter = string; + +export type ClientSendPowerActionServerUuidPathParameter = string; + +/** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ +export type ClientListServerDatabasesIncludeQueryParameter = 'password'; + +/** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ +export type ClientCreateServerDatabaseIncludeQueryParameter = 'password'; + +export type ClientListServerDatabasesServerUuidPathParameter = string; + +/** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ +export type ClientRotateServerDatabasePasswordIncludeQueryParameter = 'password'; + +export type ClientRotateServerDatabasePasswordServerUuidPathParameter = string; + +export type ClientRotateServerDatabasePasswordDatabaseIdPathParameter = string; + +export type ClientDeleteServerDatabaseServerUuidPathParameter = string; + +export type ClientDeleteServerDatabaseDatabaseIdPathParameter = string; + +/** + * Directory to list. Defaults to the server root. + */ +export type ClientListFilesDirectoryQueryParameter = string | null; + +export type ClientListFilesServerUuidPathParameter = string; + +/** + * Path to the file to read. + */ +export type ClientGetFileContentsFileQueryParameter = string; + +export type ClientGetFileContentsServerUuidPathParameter = string; + +/** + * Path to the file to download. + */ +export type ClientGetFileDownloadUrlFileQueryParameter = string; + +export type ClientGetFileDownloadUrlServerUuidPathParameter = string; + +export type ClientRenameFilesServerUuidPathParameter = string; + +export type ClientCopyFileServerUuidPathParameter = string; + +/** + * Path to the file to write. + */ +export type ClientWriteFileContentsFileQueryParameter = string; + +export type ClientWriteFileContentsServerUuidPathParameter = string; + +export type ClientCompressFilesServerUuidPathParameter = string; + +export type ClientDecompressFileServerUuidPathParameter = string; + +export type ClientDeleteFilesServerUuidPathParameter = string; + +export type ClientCreateFolderServerUuidPathParameter = string; + +export type ClientChangeFilePermissionsServerUuidPathParameter = string; + +export type ClientPullRemoteFileServerUuidPathParameter = string; + +export type ClientGetFileUploadUrlServerUuidPathParameter = string; + +/** + * Comma-separated relationships to include. Supports tasks. + */ +export type ClientListServerSchedulesIncludeQueryParameter = string; + +export type ClientListServerSchedulesServerUuidPathParameter = string; + +/** + * Comma-separated relationships to include. Supports tasks. + */ +export type ClientGetServerScheduleIncludeQueryParameter = string; + +export type ClientGetServerScheduleServerUuidPathParameter = string; + +export type ClientGetServerScheduleScheduleIdPathParameter = number; + +export type ClientExecuteServerScheduleServerUuidPathParameter = string; + +export type ClientExecuteServerScheduleScheduleIdPathParameter = number; + +export type ClientCreateScheduleTaskServerUuidPathParameter = string; + +export type ClientCreateScheduleTaskScheduleIdPathParameter = number; + +export type ClientUpdateScheduleTaskServerUuidPathParameter = string; + +export type ClientUpdateScheduleTaskScheduleIdPathParameter = number; + +export type ClientUpdateScheduleTaskTaskIdPathParameter = number; + +export type ClientListServerAllocationsServerUuidPathParameter = string; + +export type ClientUpdateAllocationNotesServerUuidPathParameter = string; + +export type ClientUpdateAllocationNotesAllocationIdPathParameter = number; + +export type ClientSetPrimaryAllocationServerUuidPathParameter = string; + +export type ClientSetPrimaryAllocationAllocationIdPathParameter = number; + +export type ClientListServerSubusersServerUuidPathParameter = string; + +export type ClientGetServerSubuserServerUuidPathParameter = string; + +export type ClientGetServerSubuserUserPathParameter = string; + +/** + * The page number to return. + */ +export type ClientListServerBackupsPageQueryParameter = number; + +/** + * Number of backups to return per page. The maximum is 50. + */ +export type ClientListServerBackupsPerPageQueryParameter = number; + +export type ClientListServerBackupsServerUuidPathParameter = string; + +export type ClientGetServerBackupServerUuidPathParameter = string; + +export type ClientGetServerBackupBackupUuidPathParameter = string; + +export type ClientGetBackupDownloadUrlServerUuidPathParameter = string; + +export type ClientGetBackupDownloadUrlBackupUuidPathParameter = string; + +export type ClientToggleBackupLockServerUuidPathParameter = string; + +export type ClientToggleBackupLockBackupUuidPathParameter = string; + +export type ClientRestoreServerBackupServerUuidPathParameter = string; + +export type ClientRestoreServerBackupBackupUuidPathParameter = string; + +export type ClientGetStartupConfigurationServerUuidPathParameter = string; + +export type ClientUpdateStartupVariableServerUuidPathParameter = string; + +export type ClientRenameServerServerUuidPathParameter = string; + +export type ClientReinstallServerServerUuidPathParameter = string; + +export type ClientSetServerDockerImageServerUuidPathParameter = string; + +export type AdminListLanguagesData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/languages'; +}; + +export type AdminListLanguagesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListLanguagesError = AdminListLanguagesErrors[keyof AdminListLanguagesErrors]; + +export type AdminListLanguagesResponses = { + /** + * Available languages returned. + */ + 200: AdminLanguagesResponse; +}; + +export type AdminListLanguagesResponse = AdminListLanguagesResponses[keyof AdminListLanguagesResponses]; + +export type AdminListActivityData = { + body?: never; + path?: never; + query?: { + /** + * Filter activity by event name. + */ + 'filter[event]'?: AdminListActivityFilterEventQueryParameter; + /** + * Filter activity by originating IP address. + */ + 'filter[ip]'?: AdminListActivityFilterIpQueryParameter; + /** + * Filter activity by the username or email of the user that performed it. + */ + 'filter[user]'?: AdminListActivityFilterUserQueryParameter; + /** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ + 'filter[user_id]'?: AdminListActivityFilterUserIdQueryParameter; + /** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ + 'filter[event_name]'?: AdminListActivityFilterEventNameQueryParameter; + /** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ + sort?: AdminListActivitySortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListActivityPageQueryParameter; + /** + * Results to return per page. The maximum is 100. + */ + per_page?: AdminListActivityPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports actor. + */ + include?: AdminListActivityIncludeQueryParameter; + }; + url: '/api/admin/activity'; +}; + +export type AdminListActivityErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminListActivityError = AdminListActivityErrors[keyof AdminListActivityErrors]; + +export type AdminListActivityResponses = { + /** + * Activity logs returned. + */ + 200: AdminActivityLogPaginatedResponse; +}; + +export type AdminListActivityResponse = AdminListActivityResponses[keyof AdminListActivityResponses]; + +export type AdminListActivityFilterOptionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/activity/filters'; +}; + +export type AdminListActivityFilterOptionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminListActivityFilterOptionsError = AdminListActivityFilterOptionsErrors[keyof AdminListActivityFilterOptionsErrors]; + +export type AdminListActivityFilterOptionsResponses = { + /** + * Filter options returned. + */ + 200: AdminListActivityFilterOptionsResponseBody; +}; + +export type AdminListActivityFilterOptionsResponse = AdminListActivityFilterOptionsResponses[keyof AdminListActivityFilterOptionsResponses]; + +export type AdminListExtensionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/extensions'; +}; + +export type AdminListExtensionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListExtensionsError = AdminListExtensionsErrors[keyof AdminListExtensionsErrors]; + +export type AdminListExtensionsResponses = { + /** + * Extensions returned. + */ + 200: AdminListExtensionsResponseBody; +}; + +export type AdminListExtensionsResponse = AdminListExtensionsResponses[keyof AdminListExtensionsResponses]; + +export type AdminInstallExtensionData = { + body: AdminInstallExtensionRequest; + path?: never; + query?: never; + url: '/api/admin/extensions'; +}; + +export type AdminInstallExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminInstallExtensionError = AdminInstallExtensionErrors[keyof AdminInstallExtensionErrors]; + +export type AdminInstallExtensionResponses = { + /** + * Extension installed. + */ + 201: AdminInstallExtensionResponseBody; +}; + +export type AdminInstallExtensionResponse = AdminInstallExtensionResponses[keyof AdminInstallExtensionResponses]; + +export type AdminListExtensionFormsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/extensions/forms'; +}; + +export type AdminListExtensionFormsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListExtensionFormsError = AdminListExtensionFormsErrors[keyof AdminListExtensionFormsErrors]; + +export type AdminListExtensionFormsResponses = { + /** + * Extension forms returned. + */ + 200: AdminExtensionFormsResponse; +}; + +export type AdminListExtensionFormsResponse = AdminListExtensionFormsResponses[keyof AdminListExtensionFormsResponses]; + +export type AdminGetExtensionSettingsData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminGetExtensionSettingsExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings'; +}; + +export type AdminGetExtensionSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetExtensionSettingsError = AdminGetExtensionSettingsErrors[keyof AdminGetExtensionSettingsErrors]; + +export type AdminGetExtensionSettingsResponses = { + /** + * Settings schema returned. + */ + 200: AdminGetExtensionSettingsResponseBody; +}; + +export type AdminGetExtensionSettingsResponse = AdminGetExtensionSettingsResponses[keyof AdminGetExtensionSettingsResponses]; + +export type AdminUpdateExtensionSettingsData = { + body: AdminUpdateExtensionSettingsRequest; + path: { + /** + * The extension identifier. + */ + extension: AdminGetExtensionSettingsExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings'; +}; + +export type AdminUpdateExtensionSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateExtensionSettingsError = AdminUpdateExtensionSettingsErrors[keyof AdminUpdateExtensionSettingsErrors]; + +export type AdminUpdateExtensionSettingsResponses = { + /** + * Settings updated; fresh schema returned. + */ + 200: AdminUpdateExtensionSettingsResponseBody; +}; + +export type AdminUpdateExtensionSettingsResponse = AdminUpdateExtensionSettingsResponses[keyof AdminUpdateExtensionSettingsResponses]; + +export type AdminGetExtensionIconData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminGetExtensionIconExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/icon'; +}; + +export type AdminGetExtensionIconErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetExtensionIconError = AdminGetExtensionIconErrors[keyof AdminGetExtensionIconErrors]; + +export type AdminGetExtensionIconResponses = { + /** + * Icon image returned. + */ + 200: AdminGetExtensionIcon200ImagePngResponseBody; +}; + +export type AdminGetExtensionIconResponse = AdminGetExtensionIconResponses[keyof AdminGetExtensionIconResponses]; + +export type AdminClearExtensionSettingFileData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminUploadExtensionSettingFileExtensionPathParameter; + /** + * The input name of the extension setting. + */ + input: AdminUploadExtensionSettingFileInputPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings/{input}/file'; +}; + +export type AdminClearExtensionSettingFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminClearExtensionSettingFileError = AdminClearExtensionSettingFileErrors[keyof AdminClearExtensionSettingFileErrors]; + +export type AdminClearExtensionSettingFileResponses = { + /** + * File removed; fresh schema returned. + */ + 200: AdminClearExtensionSettingFileResponseBody; +}; + +export type AdminClearExtensionSettingFileResponse = AdminClearExtensionSettingFileResponses[keyof AdminClearExtensionSettingFileResponses]; + +export type AdminUploadExtensionSettingFileData = { + body: AdminUploadExtensionSettingFileRequest; + path: { + /** + * The extension identifier. + */ + extension: AdminUploadExtensionSettingFileExtensionPathParameter; + /** + * The input name of the extension setting. + */ + input: AdminUploadExtensionSettingFileInputPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/settings/{input}/file'; +}; + +export type AdminUploadExtensionSettingFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUploadExtensionSettingFileError = AdminUploadExtensionSettingFileErrors[keyof AdminUploadExtensionSettingFileErrors]; + +export type AdminUploadExtensionSettingFileResponses = { + /** + * File stored; fresh schema returned. + */ + 200: AdminUploadExtensionSettingFileResponseBody; +}; + +export type AdminUploadExtensionSettingFileResponse = AdminUploadExtensionSettingFileResponses[keyof AdminUploadExtensionSettingFileResponses]; + +export type AdminEnableExtensionData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminEnableExtensionExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/enable'; +}; + +export type AdminEnableExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminEnableExtensionError = AdminEnableExtensionErrors[keyof AdminEnableExtensionErrors]; + +export type AdminEnableExtensionResponses = { + /** + * Extension enabled. + */ + 200: AdminEnableExtensionResponseBody; +}; + +export type AdminEnableExtensionResponse = AdminEnableExtensionResponses[keyof AdminEnableExtensionResponses]; + +export type AdminDisableExtensionData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminDisableExtensionExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}/disable'; +}; + +export type AdminDisableExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDisableExtensionError = AdminDisableExtensionErrors[keyof AdminDisableExtensionErrors]; + +export type AdminDisableExtensionResponses = { + /** + * Extension disabled. + */ + 200: AdminDisableExtensionResponseBody; +}; + +export type AdminDisableExtensionResponse = AdminDisableExtensionResponses[keyof AdminDisableExtensionResponses]; + +export type AdminRemoveExtensionData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: AdminRemoveExtensionExtensionPathParameter; + }; + query?: never; + url: '/api/admin/extensions/{extension}'; +}; + +export type AdminRemoveExtensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminRemoveExtensionError = AdminRemoveExtensionErrors[keyof AdminRemoveExtensionErrors]; + +export type AdminRemoveExtensionResponses = { + /** + * Extension removed. + */ + 204: void; +}; + +export type AdminRemoveExtensionResponse = AdminRemoveExtensionResponses[keyof AdminRemoveExtensionResponses]; + +export type AdminListThemesData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/themes'; +}; + +export type AdminListThemesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListThemesError = AdminListThemesErrors[keyof AdminListThemesErrors]; + +export type AdminListThemesResponses = { + /** + * Themes returned. + */ + 200: AdminThemeListResponse; +}; + +export type AdminListThemesResponse = AdminListThemesResponses[keyof AdminListThemesResponses]; + +export type AdminGetThemeSettingsData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminGetThemeSettingsThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings'; +}; + +export type AdminGetThemeSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetThemeSettingsError = AdminGetThemeSettingsErrors[keyof AdminGetThemeSettingsErrors]; + +export type AdminGetThemeSettingsResponses = { + /** + * Settings returned. + */ + 200: AdminThemeSettingListResponse; +}; + +export type AdminGetThemeSettingsResponse = AdminGetThemeSettingsResponses[keyof AdminGetThemeSettingsResponses]; + +export type AdminUpdateThemeSettingsData = { + body: AdminUpdateThemeSettingsRequest; + path: { + /** + * The theme. + */ + theme: AdminGetThemeSettingsThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings'; +}; + +export type AdminUpdateThemeSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateThemeSettingsError = AdminUpdateThemeSettingsErrors[keyof AdminUpdateThemeSettingsErrors]; + +export type AdminUpdateThemeSettingsResponses = { + /** + * Settings updated; fresh settings returned. + */ + 200: AdminThemeSettingListResponse; +}; + +export type AdminUpdateThemeSettingsResponse = AdminUpdateThemeSettingsResponses[keyof AdminUpdateThemeSettingsResponses]; + +export type AdminStopThemePreviewData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/themes/preview'; +}; + +export type AdminStopThemePreviewErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminStopThemePreviewError = AdminStopThemePreviewErrors[keyof AdminStopThemePreviewErrors]; + +export type AdminStopThemePreviewResponses = { + /** + * Preview stopped. + */ + 204: void; +}; + +export type AdminStopThemePreviewResponse = AdminStopThemePreviewResponses[keyof AdminStopThemePreviewResponses]; + +export type AdminActivateThemeData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminActivateThemeThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/activate'; +}; + +export type AdminActivateThemeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminActivateThemeError = AdminActivateThemeErrors[keyof AdminActivateThemeErrors]; + +export type AdminActivateThemeResponses = { + /** + * Theme activated. + */ + 200: AdminThemeResource; +}; + +export type AdminActivateThemeResponse = AdminActivateThemeResponses[keyof AdminActivateThemeResponses]; + +export type AdminPreviewThemeData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminPreviewThemeThemePathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/preview'; +}; + +export type AdminPreviewThemeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminPreviewThemeError = AdminPreviewThemeErrors[keyof AdminPreviewThemeErrors]; + +export type AdminPreviewThemeResponses = { + /** + * Preview started. + */ + 200: AdminThemeResource; +}; + +export type AdminPreviewThemeResponse = AdminPreviewThemeResponses[keyof AdminPreviewThemeResponses]; + +export type AdminClearThemeImageData = { + body?: never; + path: { + /** + * The theme. + */ + theme: AdminUploadThemeImageThemePathParameter; + /** + * The setting. + */ + setting: AdminUploadThemeImageSettingPathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings/{setting}/image'; +}; + +export type AdminClearThemeImageErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminClearThemeImageError = AdminClearThemeImageErrors[keyof AdminClearThemeImageErrors]; + +export type AdminClearThemeImageResponses = { + /** + * Image removed; fresh settings returned. + */ + 200: AdminThemeSettingListResponse; +}; + +export type AdminClearThemeImageResponse = AdminClearThemeImageResponses[keyof AdminClearThemeImageResponses]; + +export type AdminUploadThemeImageData = { + body: AdminUploadThemeImageRequest; + path: { + /** + * The theme. + */ + theme: AdminUploadThemeImageThemePathParameter; + /** + * The setting. + */ + setting: AdminUploadThemeImageSettingPathParameter; + }; + query?: never; + url: '/api/admin/themes/{theme}/settings/{setting}/image'; +}; + +export type AdminUploadThemeImageErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUploadThemeImageError = AdminUploadThemeImageErrors[keyof AdminUploadThemeImageErrors]; + +export type AdminUploadThemeImageResponses = { + /** + * Image stored; fresh settings returned. + */ + 200: AdminThemeSettingListResponse; +}; + +export type AdminUploadThemeImageResponse = AdminUploadThemeImageResponses[keyof AdminUploadThemeImageResponses]; + +export type AdminListUsersData = { + body?: never; + path?: never; + query?: { + /** + * Page number to retrieve. + */ + page?: AdminListUsersPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListUsersPerPageQueryParameter; + /** + * Filter users by email address. + */ + 'filter[email]'?: AdminListUsersFilterEmailQueryParameter; + /** + * Filter users by UUID. + */ + 'filter[uuid]'?: AdminListUsersFilterUuidQueryParameter; + /** + * Filter users by username. + */ + 'filter[username]'?: AdminListUsersFilterUsernameQueryParameter; + /** + * Filter users by external identifier. + */ + 'filter[external_id]'?: AdminListUsersFilterExternalIdQueryParameter; + /** + * Search users by username, email, or UUID. + */ + 'filter[search]'?: AdminListUsersFilterSearchQueryParameter; + /** + * Sort users by id, uuid, email, username, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListUsersSortQueryParameter; + }; + url: '/api/admin/users'; +}; + +export type AdminListUsersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListUsersError = AdminListUsersErrors[keyof AdminListUsersErrors]; + +export type AdminListUsersResponses = { + /** + * Users returned. + */ + 200: AdminUserPaginatedResponse; +}; + +export type AdminListUsersResponse = AdminListUsersResponses[keyof AdminListUsersResponses]; + +export type AdminCreateUserData = { + body: AdminCreateUserRequest; + path?: never; + query?: never; + url: '/api/admin/users'; +}; + +export type AdminCreateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateUserError = AdminCreateUserErrors[keyof AdminCreateUserErrors]; + +export type AdminCreateUserResponses = { + /** + * User created. + */ + 201: AdminUserResource; +}; + +export type AdminCreateUserResponse = AdminCreateUserResponses[keyof AdminCreateUserResponses]; + +export type AdminGetUserByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: AdminGetUserByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/admin/users/external/{external_id}'; +}; + +export type AdminGetUserByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetUserByExternalIdError = AdminGetUserByExternalIdErrors[keyof AdminGetUserByExternalIdErrors]; + +export type AdminGetUserByExternalIdResponses = { + /** + * User returned. + */ + 200: AdminUserResource; +}; + +export type AdminGetUserByExternalIdResponse = AdminGetUserByExternalIdResponses[keyof AdminGetUserByExternalIdResponses]; + +export type AdminDeleteUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: AdminGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/admin/users/{user_id}'; +}; + +export type AdminDeleteUserErrors = { + /** + * The authenticated administrator attempted to delete their own user account. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteUserError = AdminDeleteUserErrors[keyof AdminDeleteUserErrors]; + +export type AdminDeleteUserResponses = { + /** + * User deleted. + */ + 204: void; +}; + +export type AdminDeleteUserResponse = AdminDeleteUserResponses[keyof AdminDeleteUserResponses]; + +export type AdminGetUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: AdminGetUserUserIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports servers. + */ + include?: AdminGetUserIncludeQueryParameter; + }; + url: '/api/admin/users/{user_id}'; +}; + +export type AdminGetUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetUserError = AdminGetUserErrors[keyof AdminGetUserErrors]; + +export type AdminGetUserResponses = { + /** + * User returned. + */ + 200: AdminUserResource; +}; + +export type AdminGetUserResponse = AdminGetUserResponses[keyof AdminGetUserResponses]; + +export type AdminUpdateUserData = { + body: AdminUpdateUserRequest; + path: { + /** + * The user ID. + */ + user_id: AdminGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/admin/users/{user_id}'; +}; + +export type AdminUpdateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateUserError = AdminUpdateUserErrors[keyof AdminUpdateUserErrors]; + +export type AdminUpdateUserResponses = { + /** + * User updated. + */ + 200: AdminUserResource; +}; + +export type AdminUpdateUserResponse = AdminUpdateUserResponses[keyof AdminUpdateUserResponses]; + +export type AdminDisableUserTwoFactorAuthenticationData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: AdminDisableUserTwoFactorAuthenticationUserIdPathParameter; + }; + query?: never; + url: '/api/admin/users/{user_id}/disable-2fa'; +}; + +export type AdminDisableUserTwoFactorAuthenticationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDisableUserTwoFactorAuthenticationError = AdminDisableUserTwoFactorAuthenticationErrors[keyof AdminDisableUserTwoFactorAuthenticationErrors]; + +export type AdminDisableUserTwoFactorAuthenticationResponses = { + /** + * Two-factor authentication disabled. + */ + 204: void; +}; + +export type AdminDisableUserTwoFactorAuthenticationResponse = AdminDisableUserTwoFactorAuthenticationResponses[keyof AdminDisableUserTwoFactorAuthenticationResponses]; + +export type AdminGetNodeSystemInformationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeSystemInformationNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/system-information'; +}; + +export type AdminGetNodeSystemInformationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The panel could not connect to Wings. + */ + 502: ErrorEnvelope; +}; + +export type AdminGetNodeSystemInformationError = AdminGetNodeSystemInformationErrors[keyof AdminGetNodeSystemInformationErrors]; + +export type AdminGetNodeSystemInformationResponses = { + /** + * System information returned. + */ + 200: AdminNodeSystemInformationResponse; +}; + +export type AdminGetNodeSystemInformationResponse = AdminGetNodeSystemInformationResponses[keyof AdminGetNodeSystemInformationResponses]; + +export type AdminCreateNodeDeployTokenData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminCreateNodeDeployTokenNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/deploy-token'; +}; + +export type AdminCreateNodeDeployTokenErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminCreateNodeDeployTokenError = AdminCreateNodeDeployTokenErrors[keyof AdminCreateNodeDeployTokenErrors]; + +export type AdminCreateNodeDeployTokenResponses = { + /** + * Deploy token returned. + */ + 200: AdminNodeDeployTokenResponse; +}; + +export type AdminCreateNodeDeployTokenResponse = AdminCreateNodeDeployTokenResponses[keyof AdminCreateNodeDeployTokenResponses]; + +export type AdminGetNodeUtilizationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeUtilizationNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/utilization'; +}; + +export type AdminGetNodeUtilizationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetNodeUtilizationError = AdminGetNodeUtilizationErrors[keyof AdminGetNodeUtilizationErrors]; + +export type AdminGetNodeUtilizationResponses = { + /** + * Utilization returned. + */ + 200: AdminNodeUtilizationResponse; +}; + +export type AdminGetNodeUtilizationResponse = AdminGetNodeUtilizationResponses[keyof AdminGetNodeUtilizationResponses]; + +export type AdminListServerMountsData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerMountsServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/mounts'; +}; + +export type AdminListServerMountsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListServerMountsError = AdminListServerMountsErrors[keyof AdminListServerMountsErrors]; + +export type AdminListServerMountsResponses = { + /** + * Eligible server mounts returned. + */ + 200: AdminMountListResponse; +}; + +export type AdminListServerMountsResponse = AdminListServerMountsResponses[keyof AdminListServerMountsResponses]; + +export type AdminAttachServerMountData = { + body: AdminAttachServerMountRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerMountsServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/mounts'; +}; + +export type AdminAttachServerMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminAttachServerMountError = AdminAttachServerMountErrors[keyof AdminAttachServerMountErrors]; + +export type AdminAttachServerMountResponses = { + /** + * Mount attached. + */ + 204: void; +}; + +export type AdminAttachServerMountResponse = AdminAttachServerMountResponses[keyof AdminAttachServerMountResponses]; + +export type AdminDetachServerMountData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminDetachServerMountServerAdminIdentifierPathParameter; + /** + * The mount ID. + */ + mount_id: AdminDetachServerMountMountIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/mounts/{mount_id}'; +}; + +export type AdminDetachServerMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDetachServerMountError = AdminDetachServerMountErrors[keyof AdminDetachServerMountErrors]; + +export type AdminDetachServerMountResponses = { + /** + * Mount detached. + */ + 204: void; +}; + +export type AdminDetachServerMountResponse = AdminDetachServerMountResponses[keyof AdminDetachServerMountResponses]; + +export type AdminListServersData = { + body?: never; + path?: never; + query?: { + /** + * Search servers by UUID, name, owner, node, allocation, or external identifier. + */ + 'filter[*]'?: AdminListServersFilterWildcardQueryParameter; + /** + * Filter servers by UUID. + */ + 'filter[uuid]'?: AdminListServersFilterUuidQueryParameter; + /** + * Filter servers by short UUID identifier. + */ + 'filter[uuidShort]'?: AdminListServersFilterUuidShortQueryParameter; + /** + * Filter servers by name. + */ + 'filter[name]'?: AdminListServersFilterNameQueryParameter; + /** + * Filter servers by external identifier. + */ + 'filter[external_id]'?: AdminListServersFilterExternalIdQueryParameter; + /** + * Filter servers by Docker image. + */ + 'filter[image]'?: AdminListServersFilterImageQueryParameter; + /** + * Filter servers by node ID. + */ + 'filter[node_id]'?: AdminListServersFilterNodeIdQueryParameter; + /** + * Filter servers by owner user ID. + */ + 'filter[owner_id]'?: AdminListServersFilterOwnerIdQueryParameter; + /** + * Sort servers by id, uuid, name, or creation time. Prefix with a hyphen for descending order. + */ + sort?: AdminListServersSortQueryParameter; + /** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ + include?: AdminListServersIncludeQueryParameter; + /** + * Page number to retrieve. + */ + page?: AdminListServersPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListServersPerPageQueryParameter; + }; + url: '/api/admin/servers'; +}; + +export type AdminListServersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListServersError = AdminListServersErrors[keyof AdminListServersErrors]; + +export type AdminListServersResponses = { + /** + * Servers returned. + */ + 200: AdminServerPaginatedResponse; +}; + +export type AdminListServersResponse = AdminListServersResponses[keyof AdminListServersResponses]; + +export type AdminCreateServerData = { + body: AdminCreateServerRequest; + path?: never; + query?: never; + url: '/api/admin/servers'; +}; + +export type AdminCreateServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateServerError = AdminCreateServerErrors[keyof AdminCreateServerErrors]; + +export type AdminCreateServerResponses = { + /** + * Server created. + */ + 201: AdminServerResource; +}; + +export type AdminCreateServerResponse = AdminCreateServerResponses[keyof AdminCreateServerResponses]; + +export type AdminGetServerByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: AdminGetServerByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/external/{external_id}'; +}; + +export type AdminGetServerByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetServerByExternalIdError = AdminGetServerByExternalIdErrors[keyof AdminGetServerByExternalIdErrors]; + +export type AdminGetServerByExternalIdResponses = { + /** + * Server returned. + */ + 200: AdminServerResource; +}; + +export type AdminGetServerByExternalIdResponse = AdminGetServerByExternalIdResponses[keyof AdminGetServerByExternalIdResponses]; + +export type AdminDeleteServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}'; +}; + +export type AdminDeleteServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteServerError = AdminDeleteServerErrors[keyof AdminDeleteServerErrors]; + +export type AdminDeleteServerResponses = { + /** + * Server deleted. + */ + 204: void; +}; + +export type AdminDeleteServerResponse = AdminDeleteServerResponses[keyof AdminDeleteServerResponses]; + +export type AdminGetServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerServerAdminIdentifierPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports allocation, allocations, user, subusers, egg, variables, location, node, and databases. + */ + include?: AdminGetServerIncludeQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}'; +}; + +export type AdminGetServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetServerError = AdminGetServerErrors[keyof AdminGetServerErrors]; + +export type AdminGetServerResponses = { + /** + * Server returned. + */ + 200: AdminServerResource; +}; + +export type AdminGetServerResponse = AdminGetServerResponses[keyof AdminGetServerResponses]; + +export type AdminUpdateServerDetailsData = { + body: AdminUpdateServerDetailsRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerDetailsServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/details'; +}; + +export type AdminUpdateServerDetailsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateServerDetailsError = AdminUpdateServerDetailsErrors[keyof AdminUpdateServerDetailsErrors]; + +export type AdminUpdateServerDetailsResponses = { + /** + * Server updated. + */ + 200: AdminServerResource; +}; + +export type AdminUpdateServerDetailsResponse = AdminUpdateServerDetailsResponses[keyof AdminUpdateServerDetailsResponses]; + +export type AdminUpdateServerBuildData = { + body: AdminUpdateServerBuildRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerBuildServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/build'; +}; + +export type AdminUpdateServerBuildErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateServerBuildError = AdminUpdateServerBuildErrors[keyof AdminUpdateServerBuildErrors]; + +export type AdminUpdateServerBuildResponses = { + /** + * Server build updated. + */ + 200: AdminServerResource; +}; + +export type AdminUpdateServerBuildResponse = AdminUpdateServerBuildResponses[keyof AdminUpdateServerBuildResponses]; + +export type AdminUpdateServerStartupData = { + body: AdminUpdateServerStartupRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerStartupServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/startup'; +}; + +export type AdminUpdateServerStartupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateServerStartupError = AdminUpdateServerStartupErrors[keyof AdminUpdateServerStartupErrors]; + +export type AdminUpdateServerStartupResponses = { + /** + * Server startup updated. + */ + 200: AdminServerResource; +}; + +export type AdminUpdateServerStartupResponse = AdminUpdateServerStartupResponses[keyof AdminUpdateServerStartupResponses]; + +export type AdminUpdateServerSuspensionData = { + body?: AdminUpdateServerSuspensionRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminUpdateServerSuspensionServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/suspension'; +}; + +export type AdminUpdateServerSuspensionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateServerSuspensionError = AdminUpdateServerSuspensionErrors[keyof AdminUpdateServerSuspensionErrors]; + +export type AdminUpdateServerSuspensionResponses = { + /** + * Server suspension state updated. + */ + 204: void; +}; + +export type AdminUpdateServerSuspensionResponse = AdminUpdateServerSuspensionResponses[keyof AdminUpdateServerSuspensionResponses]; + +export type AdminReinstallServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminReinstallServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/reinstall'; +}; + +export type AdminReinstallServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminReinstallServerError = AdminReinstallServerErrors[keyof AdminReinstallServerErrors]; + +export type AdminReinstallServerResponses = { + /** + * Server reinstall accepted. + */ + 202: unknown; +}; + +export type AdminRebuildServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminRebuildServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/rebuild'; +}; + +export type AdminRebuildServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminRebuildServerError = AdminRebuildServerErrors[keyof AdminRebuildServerErrors]; + +export type AdminRebuildServerResponses = { + /** + * Server rebuild synchronized. + */ + 204: void; +}; + +export type AdminRebuildServerResponse = AdminRebuildServerResponses[keyof AdminRebuildServerResponses]; + +export type AdminGetServerTransferProgressData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerTransferProgressServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/transfer/progress'; +}; + +export type AdminGetServerTransferProgressErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetServerTransferProgressError = AdminGetServerTransferProgressErrors[keyof AdminGetServerTransferProgressErrors]; + +export type AdminGetServerTransferProgressResponses = { + /** + * Transfer progress returned. + */ + 200: AdminServerTransferResource; + /** + * No server transfer is currently in progress. + */ + 204: void; +}; + +export type AdminGetServerTransferProgressResponse = AdminGetServerTransferProgressResponses[keyof AdminGetServerTransferProgressResponses]; + +export type AdminTransferServerData = { + body: AdminTransferServerRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminTransferServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/transfer'; +}; + +export type AdminTransferServerErrors = { + /** + * The destination node cannot fit the server or the server cannot currently be transferred. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminTransferServerError = AdminTransferServerErrors[keyof AdminTransferServerErrors]; + +export type AdminTransferServerResponses = { + /** + * Server transfer started. + */ + 204: void; +}; + +export type AdminTransferServerResponse = AdminTransferServerResponses[keyof AdminTransferServerResponses]; + +export type AdminToggleServerInstallStateData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminToggleServerInstallStateServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/settings/toggle-install'; +}; + +export type AdminToggleServerInstallStateErrors = { + /** + * The server is marked as failed. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminToggleServerInstallStateError = AdminToggleServerInstallStateErrors[keyof AdminToggleServerInstallStateErrors]; + +export type AdminToggleServerInstallStateResponses = { + /** + * Server install state toggled. + */ + 204: void; +}; + +export type AdminToggleServerInstallStateResponse = AdminToggleServerInstallStateResponses[keyof AdminToggleServerInstallStateResponses]; + +export type AdminForceDeleteServerData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminForceDeleteServerServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/force'; +}; + +export type AdminForceDeleteServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminForceDeleteServerError = AdminForceDeleteServerErrors[keyof AdminForceDeleteServerErrors]; + +export type AdminForceDeleteServerResponses = { + /** + * Server force deleted. + */ + 204: void; +}; + +export type AdminForceDeleteServerResponse = AdminForceDeleteServerResponses[keyof AdminForceDeleteServerResponses]; + +export type AdminListServerDatabasesData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerDatabasesServerAdminIdentifierPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password". + */ + include?: AdminListServerDatabasesIncludeQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}/databases'; +}; + +export type AdminListServerDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListServerDatabasesError = AdminListServerDatabasesErrors[keyof AdminListServerDatabasesErrors]; + +export type AdminListServerDatabasesResponses = { + /** + * Server databases returned. + */ + 200: AdminServerDatabaseListResponse; +}; + +export type AdminListServerDatabasesResponse = AdminListServerDatabasesResponses[keyof AdminListServerDatabasesResponses]; + +export type AdminCreateServerDatabaseData = { + body: AdminCreateServerDatabaseRequest; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerDatabasesServerAdminIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/databases'; +}; + +export type AdminCreateServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateServerDatabaseError = AdminCreateServerDatabaseErrors[keyof AdminCreateServerDatabaseErrors]; + +export type AdminCreateServerDatabaseResponses = { + /** + * Server database created. + */ + 201: AdminServerDatabaseResource; +}; + +export type AdminCreateServerDatabaseResponse = AdminCreateServerDatabaseResponses[keyof AdminCreateServerDatabaseResponses]; + +export type AdminDeleteServerDatabaseData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerDatabaseServerAdminIdentifierPathParameter; + /** + * The database ID. + */ + database_id: AdminGetServerDatabaseDatabaseIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/databases/{database_id}'; +}; + +export type AdminDeleteServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteServerDatabaseError = AdminDeleteServerDatabaseErrors[keyof AdminDeleteServerDatabaseErrors]; + +export type AdminDeleteServerDatabaseResponses = { + /** + * Server database deleted. + */ + 204: void; +}; + +export type AdminDeleteServerDatabaseResponse = AdminDeleteServerDatabaseResponses[keyof AdminDeleteServerDatabaseResponses]; + +export type AdminGetServerDatabaseData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminGetServerDatabaseServerAdminIdentifierPathParameter; + /** + * The database ID. + */ + database_id: AdminGetServerDatabaseDatabaseIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password". + */ + include?: AdminGetServerDatabaseIncludeQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}/databases/{database_id}'; +}; + +export type AdminGetServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The server is not installed. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetServerDatabaseError = AdminGetServerDatabaseErrors[keyof AdminGetServerDatabaseErrors]; + +export type AdminGetServerDatabaseResponses = { + /** + * Server database returned. + */ + 200: AdminServerDatabaseResource; +}; + +export type AdminGetServerDatabaseResponse = AdminGetServerDatabaseResponses[keyof AdminGetServerDatabaseResponses]; + +export type AdminRotateServerDatabasePasswordData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminRotateServerDatabasePasswordServerAdminIdentifierPathParameter; + /** + * The database ID. + */ + database_id: AdminRotateServerDatabasePasswordDatabaseIdPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/databases/{database_id}/rotate-password'; +}; + +export type AdminRotateServerDatabasePasswordErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminRotateServerDatabasePasswordError = AdminRotateServerDatabasePasswordErrors[keyof AdminRotateServerDatabasePasswordErrors]; + +export type AdminRotateServerDatabasePasswordResponses = { + /** + * Database password rotated. + */ + 200: AdminServerDatabaseResource; +}; + +export type AdminRotateServerDatabasePasswordResponse = AdminRotateServerDatabasePasswordResponses[keyof AdminRotateServerDatabasePasswordResponses]; + +export type AdminListServerBackupsData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminListServerBackupsServerAdminIdentifierPathParameter; + }; + query: { + /** + * Filter backups by UUID. + */ + 'filter[uuid]': AdminListServerBackupsFilterUuidQueryParameter; + /** + * Filter backups by name. + */ + 'filter[name]': AdminListServerBackupsFilterNameQueryParameter; + /** + * Sort backups by id, bytes, or created_at. Prefix with a hyphen for descending order. + */ + sort: AdminListServerBackupsSortQueryParameter; + /** + * Results to return per page. + */ + per_page: AdminListServerBackupsPerPageQueryParameter; + }; + url: '/api/admin/servers/{server_admin_identifier}/backups'; +}; + +export type AdminListServerBackupsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListServerBackupsError = AdminListServerBackupsErrors[keyof AdminListServerBackupsErrors]; + +export type AdminListServerBackupsResponses = { + /** + * Server backups returned. + */ + 200: AdminBackupPaginatedResponse; +}; + +export type AdminListServerBackupsResponse = AdminListServerBackupsResponses[keyof AdminListServerBackupsResponses]; + +export type AdminToggleServerBackupLockData = { + body?: never; + path: { + /** + * The server ID or UUID. + */ + server_admin_identifier: AdminToggleServerBackupLockServerAdminIdentifierPathParameter; + /** + * The backup UUID. + */ + backup_uuid: AdminToggleServerBackupLockBackupUuidPathParameter; + }; + query?: never; + url: '/api/admin/servers/{server_admin_identifier}/backups/{backup_uuid}/toggle'; +}; + +export type AdminToggleServerBackupLockErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminToggleServerBackupLockError = AdminToggleServerBackupLockErrors[keyof AdminToggleServerBackupLockErrors]; + +export type AdminToggleServerBackupLockResponses = { + /** + * Server backup lock state toggled. + */ + 200: AdminBackupResource; +}; + +export type AdminToggleServerBackupLockResponse = AdminToggleServerBackupLockResponses[keyof AdminToggleServerBackupLockResponses]; + +export type AdminListNodesData = { + body?: never; + path?: never; + query?: { + /** + * Filter nodes by UUID. + */ + 'filter[uuid]'?: AdminListNodesFilterUuidQueryParameter; + /** + * Filter nodes by name. + */ + 'filter[name]'?: AdminListNodesFilterNameQueryParameter; + /** + * Filter nodes by FQDN. + */ + 'filter[fqdn]'?: AdminListNodesFilterFqdnQueryParameter; + /** + * Sort nodes by id, uuid, name, memory, disk, or creation time. Prefix with a hyphen for descending order. + */ + sort?: AdminListNodesSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListNodesPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListNodesPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ + include?: AdminListNodesIncludeQueryParameter; + }; + url: '/api/admin/nodes'; +}; + +export type AdminListNodesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListNodesError = AdminListNodesErrors[keyof AdminListNodesErrors]; + +export type AdminListNodesResponses = { + /** + * Nodes returned. + */ + 200: AdminNodePaginatedResponse; +}; + +export type AdminListNodesResponse = AdminListNodesResponses[keyof AdminListNodesResponses]; + +export type AdminCreateNodeData = { + body: AdminCreateNodeRequest; + path?: never; + query?: never; + url: '/api/admin/nodes'; +}; + +export type AdminCreateNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateNodeError = AdminCreateNodeErrors[keyof AdminCreateNodeErrors]; + +export type AdminCreateNodeResponses = { + /** + * Node created. + */ + 201: AdminNodeResource; +}; + +export type AdminCreateNodeResponse = AdminCreateNodeResponses[keyof AdminCreateNodeResponses]; + +export type AdminDeleteNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}'; +}; + +export type AdminDeleteNodeErrors = { + /** + * The node has active servers. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteNodeError = AdminDeleteNodeErrors[keyof AdminDeleteNodeErrors]; + +export type AdminDeleteNodeResponses = { + /** + * Node deleted. + */ + 204: void; +}; + +export type AdminDeleteNodeResponse = AdminDeleteNodeResponses[keyof AdminDeleteNodeResponses]; + +export type AdminGetNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeNodeIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations). + */ + include?: AdminGetNodeIncludeQueryParameter; + }; + url: '/api/admin/nodes/{node_id}'; +}; + +export type AdminGetNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetNodeError = AdminGetNodeErrors[keyof AdminGetNodeErrors]; + +export type AdminGetNodeResponses = { + /** + * Node returned. + */ + 200: AdminNodeResource; +}; + +export type AdminGetNodeResponse = AdminGetNodeResponses[keyof AdminGetNodeResponses]; + +export type AdminUpdateNodeData = { + body: AdminUpdateNodeRequest; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}'; +}; + +export type AdminUpdateNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateNodeError = AdminUpdateNodeErrors[keyof AdminUpdateNodeErrors]; + +export type AdminUpdateNodeResponses = { + /** + * Node updated. + */ + 200: AdminNodeResource; +}; + +export type AdminUpdateNodeResponse = AdminUpdateNodeResponses[keyof AdminUpdateNodeResponses]; + +export type AdminGetNodeConfigurationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminGetNodeConfigurationNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/configuration'; +}; + +export type AdminGetNodeConfigurationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetNodeConfigurationError = AdminGetNodeConfigurationErrors[keyof AdminGetNodeConfigurationErrors]; + +export type AdminGetNodeConfigurationResponses = { + /** + * Node configuration returned. + */ + 200: AdminNodeConfigurationResponse; +}; + +export type AdminGetNodeConfigurationResponse = AdminGetNodeConfigurationResponses[keyof AdminGetNodeConfigurationResponses]; + +export type AdminSyncNodeGameTagsData = { + body?: AdminSyncNodeGameTagsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminSyncNodeGameTagsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/tags'; +}; + +export type AdminSyncNodeGameTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminSyncNodeGameTagsError = AdminSyncNodeGameTagsErrors[keyof AdminSyncNodeGameTagsErrors]; + +export type AdminSyncNodeGameTagsResponses = { + /** + * Games the node accepts. + */ + 200: AdminTagListResponse; +}; + +export type AdminSyncNodeGameTagsResponse = AdminSyncNodeGameTagsResponses[keyof AdminSyncNodeGameTagsResponses]; + +export type AdminSyncNodeDeploymentTagsData = { + body?: AdminSyncNodeDeploymentTagsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminSyncNodeDeploymentTagsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/deployment-tags'; +}; + +export type AdminSyncNodeDeploymentTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminSyncNodeDeploymentTagsError = AdminSyncNodeDeploymentTagsErrors[keyof AdminSyncNodeDeploymentTagsErrors]; + +export type AdminSyncNodeDeploymentTagsResponses = { + /** + * Reservations on the node. + */ + 200: AdminTagListResponse; +}; + +export type AdminSyncNodeDeploymentTagsResponse = AdminSyncNodeDeploymentTagsResponses[keyof AdminSyncNodeDeploymentTagsResponses]; + +export type AdminBulkDeleteNodeAllocationsData = { + body?: AdminBulkDeleteNodeAllocationsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations'; +}; + +export type AdminBulkDeleteNodeAllocationsErrors = { + /** + * One of the allocations is currently assigned to a server. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminBulkDeleteNodeAllocationsError = AdminBulkDeleteNodeAllocationsErrors[keyof AdminBulkDeleteNodeAllocationsErrors]; + +export type AdminBulkDeleteNodeAllocationsResponses = { + /** + * Allocations deleted. + */ + 204: void; +}; + +export type AdminBulkDeleteNodeAllocationsResponse = AdminBulkDeleteNodeAllocationsResponses[keyof AdminBulkDeleteNodeAllocationsResponses]; + +export type AdminListNodeAllocationsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationsNodeIdPathParameter; + }; + query?: { + /** + * Filter allocations by exact IP address. + */ + 'filter[ip]'?: AdminListNodeAllocationsFilterIpQueryParameter; + /** + * Filter allocations by exact port. + */ + 'filter[port]'?: AdminListNodeAllocationsFilterPortQueryParameter; + /** + * Filter allocations by IP alias. + */ + 'filter[ip_alias]'?: AdminListNodeAllocationsFilterIpAliasQueryParameter; + /** + * Filter allocations by server ID, or pass an empty value to return unassigned allocations. + */ + 'filter[server_id]'?: AdminListNodeAllocationsFilterServerIdQueryParameter; + /** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ + sort?: AdminListNodeAllocationsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListNodeAllocationsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListNodeAllocationsPerPageQueryParameter; + }; + url: '/api/admin/nodes/{node_id}/allocations'; +}; + +export type AdminListNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListNodeAllocationsError = AdminListNodeAllocationsErrors[keyof AdminListNodeAllocationsErrors]; + +export type AdminListNodeAllocationsResponses = { + /** + * Allocations returned. + */ + 200: AdminAllocationPaginatedResponse; +}; + +export type AdminListNodeAllocationsResponse = AdminListNodeAllocationsResponses[keyof AdminListNodeAllocationsResponses]; + +export type AdminCreateNodeAllocationsData = { + body?: AdminCreateNodeAllocationsRequest; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations'; +}; + +export type AdminCreateNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateNodeAllocationsError = AdminCreateNodeAllocationsErrors[keyof AdminCreateNodeAllocationsErrors]; + +export type AdminCreateNodeAllocationsResponses = { + /** + * Allocations created. + */ + 204: void; +}; + +export type AdminCreateNodeAllocationsResponse = AdminCreateNodeAllocationsResponses[keyof AdminCreateNodeAllocationsResponses]; + +export type AdminListNodeAllocationIpsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminListNodeAllocationIpsNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/ips'; +}; + +export type AdminListNodeAllocationIpsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListNodeAllocationIpsError = AdminListNodeAllocationIpsErrors[keyof AdminListNodeAllocationIpsErrors]; + +export type AdminListNodeAllocationIpsResponses = { + /** + * Allocation IPs returned. + */ + 200: AdminListNodeAllocationIpsResponseBody; +}; + +export type AdminListNodeAllocationIpsResponse = AdminListNodeAllocationIpsResponses[keyof AdminListNodeAllocationIpsResponses]; + +export type AdminListAvailableNodeAllocationsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminListAvailableNodeAllocationsNodeIdPathParameter; + }; + query: { + /** + * Filter allocations by exact IP address. + */ + 'filter[ip]': AdminListAvailableNodeAllocationsFilterIpQueryParameter; + /** + * Filter allocations by exact port. + */ + 'filter[port]': AdminListAvailableNodeAllocationsFilterPortQueryParameter; + /** + * Filter allocations by IP alias. + */ + 'filter[ip_alias]': AdminListAvailableNodeAllocationsFilterIpAliasQueryParameter; + /** + * Sort allocations by id, ip, or port. Prefix with a hyphen for descending order. + */ + sort: AdminListAvailableNodeAllocationsSortQueryParameter; + /** + * Results to return per page. + */ + per_page: AdminListAvailableNodeAllocationsPerPageQueryParameter; + }; + url: '/api/admin/nodes/{node_id}/allocations/available'; +}; + +export type AdminListAvailableNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListAvailableNodeAllocationsError = AdminListAvailableNodeAllocationsErrors[keyof AdminListAvailableNodeAllocationsErrors]; + +export type AdminListAvailableNodeAllocationsResponses = { + /** + * Available allocations returned. + */ + 200: AdminAllocationPaginatedResponse; +}; + +export type AdminListAvailableNodeAllocationsResponse = AdminListAvailableNodeAllocationsResponses[keyof AdminListAvailableNodeAllocationsResponses]; + +export type AdminDeleteNodeAllocationIpBlockData = { + body: AdminDeleteNodeAllocationIpBlockRequest; + path: { + /** + * The node ID. + */ + node_id: AdminDeleteNodeAllocationIpBlockNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/block'; +}; + +export type AdminDeleteNodeAllocationIpBlockErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminDeleteNodeAllocationIpBlockError = AdminDeleteNodeAllocationIpBlockErrors[keyof AdminDeleteNodeAllocationIpBlockErrors]; + +export type AdminDeleteNodeAllocationIpBlockResponses = { + /** + * Unassigned allocations for the IP were deleted. + */ + 204: void; +}; + +export type AdminDeleteNodeAllocationIpBlockResponse = AdminDeleteNodeAllocationIpBlockResponses[keyof AdminDeleteNodeAllocationIpBlockResponses]; + +export type AdminDeleteNodeAllocationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: AdminUpdateNodeAllocationNodeIdPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: AdminUpdateNodeAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/{allocation_id}'; +}; + +export type AdminDeleteNodeAllocationErrors = { + /** + * The allocation is currently assigned to a server. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteNodeAllocationError = AdminDeleteNodeAllocationErrors[keyof AdminDeleteNodeAllocationErrors]; + +export type AdminDeleteNodeAllocationResponses = { + /** + * Allocation deleted. + */ + 204: void; +}; + +export type AdminDeleteNodeAllocationResponse = AdminDeleteNodeAllocationResponses[keyof AdminDeleteNodeAllocationResponses]; + +export type AdminUpdateNodeAllocationData = { + body?: AdminUpdateNodeAllocationRequest; + path: { + /** + * The node ID. + */ + node_id: AdminUpdateNodeAllocationNodeIdPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: AdminUpdateNodeAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/admin/nodes/{node_id}/allocations/{allocation_id}'; +}; + +export type AdminUpdateNodeAllocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateNodeAllocationError = AdminUpdateNodeAllocationErrors[keyof AdminUpdateNodeAllocationErrors]; + +export type AdminUpdateNodeAllocationResponses = { + /** + * Allocation updated. + */ + 200: AdminAllocationResource; +}; + +export type AdminUpdateNodeAllocationResponse = AdminUpdateNodeAllocationResponses[keyof AdminUpdateNodeAllocationResponses]; + +export type AdminListLocationsData = { + body?: never; + path?: never; + query?: { + /** + * Filter locations by short identifier. + */ + 'filter[short]'?: AdminListLocationsFilterShortQueryParameter; + /** + * Filter locations by long description. + */ + 'filter[long]'?: AdminListLocationsFilterLongQueryParameter; + /** + * Sort locations by ID, short identifier, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListLocationsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListLocationsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListLocationsPerPageQueryParameter; + }; + url: '/api/admin/locations'; +}; + +export type AdminListLocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListLocationsError = AdminListLocationsErrors[keyof AdminListLocationsErrors]; + +export type AdminListLocationsResponses = { + /** + * Locations returned. + */ + 200: AdminLocationPaginatedResponse; +}; + +export type AdminListLocationsResponse = AdminListLocationsResponses[keyof AdminListLocationsResponses]; + +export type AdminCreateLocationData = { + body: AdminCreateLocationRequest; + path?: never; + query?: never; + url: '/api/admin/locations'; +}; + +export type AdminCreateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateLocationError = AdminCreateLocationErrors[keyof AdminCreateLocationErrors]; + +export type AdminCreateLocationResponses = { + /** + * Location created. + */ + 201: AdminLocationResource; +}; + +export type AdminCreateLocationResponse = AdminCreateLocationResponses[keyof AdminCreateLocationResponses]; + +export type AdminDeleteLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: AdminGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/admin/locations/{location_id}'; +}; + +export type AdminDeleteLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteLocationError = AdminDeleteLocationErrors[keyof AdminDeleteLocationErrors]; + +export type AdminDeleteLocationResponses = { + /** + * Location deleted. + */ + 204: void; +}; + +export type AdminDeleteLocationResponse = AdminDeleteLocationResponses[keyof AdminDeleteLocationResponses]; + +export type AdminGetLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: AdminGetLocationLocationIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "nodes" and "servers". + */ + include?: AdminGetLocationIncludeQueryParameter; + }; + url: '/api/admin/locations/{location_id}'; +}; + +export type AdminGetLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetLocationError = AdminGetLocationErrors[keyof AdminGetLocationErrors]; + +export type AdminGetLocationResponses = { + /** + * Location returned. + */ + 200: AdminLocationResource; +}; + +export type AdminGetLocationResponse = AdminGetLocationResponses[keyof AdminGetLocationResponses]; + +export type AdminUpdateLocationData = { + body: AdminUpdateLocationRequest; + path: { + /** + * The location ID. + */ + location_id: AdminGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/admin/locations/{location_id}'; +}; + +export type AdminUpdateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateLocationError = AdminUpdateLocationErrors[keyof AdminUpdateLocationErrors]; + +export type AdminUpdateLocationResponses = { + /** + * Location updated. + */ + 200: AdminLocationResource; +}; + +export type AdminUpdateLocationResponse = AdminUpdateLocationResponses[keyof AdminUpdateLocationResponses]; + +export type AdminListEligibleLocationNodesData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: AdminListEligibleLocationNodesLocationIdPathParameter; + }; + query?: never; + url: '/api/admin/locations/{location_id}/eligible-nodes'; +}; + +export type AdminListEligibleLocationNodesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListEligibleLocationNodesError = AdminListEligibleLocationNodesErrors[keyof AdminListEligibleLocationNodesErrors]; + +export type AdminListEligibleLocationNodesResponses = { + /** + * Eligible nodes returned. + */ + 200: AdminNodeListResponse; +}; + +export type AdminListEligibleLocationNodesResponse = AdminListEligibleLocationNodesResponses[keyof AdminListEligibleLocationNodesResponses]; + +export type AdminListMountsData = { + body?: never; + path?: never; + query?: { + /** + * Filter mounts by name. + */ + 'filter[name]'?: AdminListMountsFilterNameQueryParameter; + /** + * Sort mounts by id or name. Prefix with a hyphen for descending order. + */ + sort?: AdminListMountsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListMountsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListMountsPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminListMountsIncludeQueryParameter; + }; + url: '/api/admin/mounts'; +}; + +export type AdminListMountsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListMountsError = AdminListMountsErrors[keyof AdminListMountsErrors]; + +export type AdminListMountsResponses = { + /** + * Mounts returned. + */ + 200: AdminMountPaginatedResponse; +}; + +export type AdminListMountsResponse = AdminListMountsResponses[keyof AdminListMountsResponses]; + +export type AdminCreateMountData = { + body: AdminCreateMountRequest; + path?: never; + query?: never; + url: '/api/admin/mounts'; +}; + +export type AdminCreateMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateMountError = AdminCreateMountErrors[keyof AdminCreateMountErrors]; + +export type AdminCreateMountResponses = { + /** + * Mount created. + */ + 201: AdminMountResource; +}; + +export type AdminCreateMountResponse = AdminCreateMountResponses[keyof AdminCreateMountResponses]; + +export type AdminDeleteMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminGetMountMountIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}'; +}; + +export type AdminDeleteMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteMountError = AdminDeleteMountErrors[keyof AdminDeleteMountErrors]; + +export type AdminDeleteMountResponses = { + /** + * Mount deleted. + */ + 204: void; +}; + +export type AdminDeleteMountResponse = AdminDeleteMountResponses[keyof AdminDeleteMountResponses]; + +export type AdminGetMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminGetMountMountIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminGetMountIncludeQueryParameter; + }; + url: '/api/admin/mounts/{mount_id}'; +}; + +export type AdminGetMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetMountError = AdminGetMountErrors[keyof AdminGetMountErrors]; + +export type AdminGetMountResponses = { + /** + * Mount returned. + */ + 200: AdminMountResource; +}; + +export type AdminGetMountResponse = AdminGetMountResponses[keyof AdminGetMountResponses]; + +export type AdminUpdateMountData = { + body: AdminUpdateMountRequest; + path: { + /** + * The mount ID. + */ + mount_id: AdminGetMountMountIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}'; +}; + +export type AdminUpdateMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateMountError = AdminUpdateMountErrors[keyof AdminUpdateMountErrors]; + +export type AdminUpdateMountResponses = { + /** + * Mount updated. + */ + 200: AdminMountResource; +}; + +export type AdminUpdateMountResponse = AdminUpdateMountResponses[keyof AdminUpdateMountResponses]; + +export type AdminAttachEggsToMountData = { + body: AdminAttachEggsToMountRequest; + path: { + /** + * The mount ID. + */ + mount_id: AdminAttachEggsToMountMountIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminAttachEggsToMountIncludeQueryParameter; + }; + url: '/api/admin/mounts/{mount_id}/eggs'; +}; + +export type AdminAttachEggsToMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminAttachEggsToMountError = AdminAttachEggsToMountErrors[keyof AdminAttachEggsToMountErrors]; + +export type AdminAttachEggsToMountResponses = { + /** + * Mount updated. + */ + 200: AdminMountResource; +}; + +export type AdminAttachEggsToMountResponse = AdminAttachEggsToMountResponses[keyof AdminAttachEggsToMountResponses]; + +export type AdminDetachEggFromMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminDetachEggFromMountMountIdPathParameter; + /** + * The egg ID. + */ + egg_id: AdminDetachEggFromMountEggIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}/eggs/{egg_id}'; +}; + +export type AdminDetachEggFromMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDetachEggFromMountError = AdminDetachEggFromMountErrors[keyof AdminDetachEggFromMountErrors]; + +export type AdminDetachEggFromMountResponses = { + /** + * Egg detached from mount. + */ + 204: void; +}; + +export type AdminDetachEggFromMountResponse = AdminDetachEggFromMountResponses[keyof AdminDetachEggFromMountResponses]; + +export type AdminAttachNodesToMountData = { + body: AdminAttachNodesToMountRequest; + path: { + /** + * The mount ID. + */ + mount_id: AdminAttachNodesToMountMountIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs", "nodes", and "servers". + */ + include?: AdminAttachNodesToMountIncludeQueryParameter; + }; + url: '/api/admin/mounts/{mount_id}/nodes'; +}; + +export type AdminAttachNodesToMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminAttachNodesToMountError = AdminAttachNodesToMountErrors[keyof AdminAttachNodesToMountErrors]; + +export type AdminAttachNodesToMountResponses = { + /** + * Mount updated. + */ + 200: AdminMountResource; +}; + +export type AdminAttachNodesToMountResponse = AdminAttachNodesToMountResponses[keyof AdminAttachNodesToMountResponses]; + +export type AdminDetachNodeFromMountData = { + body?: never; + path: { + /** + * The mount ID. + */ + mount_id: AdminDetachNodeFromMountMountIdPathParameter; + /** + * The node ID. + */ + node_id: AdminDetachNodeFromMountNodeIdPathParameter; + }; + query?: never; + url: '/api/admin/mounts/{mount_id}/nodes/{node_id}'; +}; + +export type AdminDetachNodeFromMountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDetachNodeFromMountError = AdminDetachNodeFromMountErrors[keyof AdminDetachNodeFromMountErrors]; + +export type AdminDetachNodeFromMountResponses = { + /** + * Node detached from mount. + */ + 204: void; +}; + +export type AdminDetachNodeFromMountResponse = AdminDetachNodeFromMountResponses[keyof AdminDetachNodeFromMountResponses]; + +export type AdminListEggCatalogData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/eggs/catalog'; +}; + +export type AdminListEggCatalogErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The upstream catalog is unavailable or invalid. + */ + 502: ErrorEnvelope; +}; + +export type AdminListEggCatalogError = AdminListEggCatalogErrors[keyof AdminListEggCatalogErrors]; + +export type AdminListEggCatalogResponses = { + /** + * Catalog entries returned. + */ + 200: AdminListEggCatalogResponseBody; +}; + +export type AdminListEggCatalogResponse = AdminListEggCatalogResponses[keyof AdminListEggCatalogResponses]; + +export type AdminRefreshEggCatalogData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/eggs/catalog/refresh'; +}; + +export type AdminRefreshEggCatalogErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminRefreshEggCatalogError = AdminRefreshEggCatalogErrors[keyof AdminRefreshEggCatalogErrors]; + +export type AdminRefreshEggCatalogResponses = { + /** + * Catalog cache cleared. + */ + 204: void; +}; + +export type AdminRefreshEggCatalogResponse = AdminRefreshEggCatalogResponses[keyof AdminRefreshEggCatalogResponses]; + +export type AdminImportCatalogEggData = { + body: AdminImportCatalogEggRequest; + path?: never; + query?: never; + url: '/api/admin/eggs/catalog/import'; +}; + +export type AdminImportCatalogEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The selected catalog entry does not exist. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * The upstream catalog or egg definition could not be loaded. + */ + 502: ErrorEnvelope; +}; + +export type AdminImportCatalogEggError = AdminImportCatalogEggErrors[keyof AdminImportCatalogEggErrors]; + +export type AdminImportCatalogEggResponses = { + /** + * Egg imported. + */ + 201: AdminEggResource; +}; + +export type AdminImportCatalogEggResponse = AdminImportCatalogEggResponses[keyof AdminImportCatalogEggResponses]; + +export type AdminListEggVariablesData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminListEggVariablesEggIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Unknown includes are ignored. + */ + include?: AdminListEggVariablesIncludeQueryParameter; + }; + url: '/api/admin/eggs/{egg_id}/variables'; +}; + +export type AdminListEggVariablesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListEggVariablesError = AdminListEggVariablesErrors[keyof AdminListEggVariablesErrors]; + +export type AdminListEggVariablesResponses = { + /** + * Egg variables returned. + */ + 200: AdminEggVariableListResponse; +}; + +export type AdminListEggVariablesResponse = AdminListEggVariablesResponses[keyof AdminListEggVariablesResponses]; + +export type AdminCreateEggVariableData = { + body: AdminCreateEggVariableRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminListEggVariablesEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables'; +}; + +export type AdminCreateEggVariableErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateEggVariableError = AdminCreateEggVariableErrors[keyof AdminCreateEggVariableErrors]; + +export type AdminCreateEggVariableResponses = { + /** + * Egg variable created. + */ + 201: AdminEggVariableResource; +}; + +export type AdminCreateEggVariableResponse = AdminCreateEggVariableResponses[keyof AdminCreateEggVariableResponses]; + +export type AdminReorderEggVariablesData = { + body: AdminReorderEggVariablesRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminReorderEggVariablesEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables/reorder'; +}; + +export type AdminReorderEggVariablesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminReorderEggVariablesError = AdminReorderEggVariablesErrors[keyof AdminReorderEggVariablesErrors]; + +export type AdminReorderEggVariablesResponses = { + /** + * Egg variables reordered. + */ + 200: AdminEggVariableListResponse; +}; + +export type AdminReorderEggVariablesResponse = AdminReorderEggVariablesResponses[keyof AdminReorderEggVariablesResponses]; + +export type AdminDeleteEggVariableData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminUpdateEggVariableEggIdPathParameter; + /** + * The variable ID. + */ + variable_id: AdminUpdateEggVariableVariableIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables/{variable_id}'; +}; + +export type AdminDeleteEggVariableErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteEggVariableError = AdminDeleteEggVariableErrors[keyof AdminDeleteEggVariableErrors]; + +export type AdminDeleteEggVariableResponses = { + /** + * Egg variable deleted. + */ + 204: void; +}; + +export type AdminDeleteEggVariableResponse = AdminDeleteEggVariableResponses[keyof AdminDeleteEggVariableResponses]; + +export type AdminUpdateEggVariableData = { + body: AdminUpdateEggVariableRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminUpdateEggVariableEggIdPathParameter; + /** + * The variable ID. + */ + variable_id: AdminUpdateEggVariableVariableIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/variables/{variable_id}'; +}; + +export type AdminUpdateEggVariableErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateEggVariableError = AdminUpdateEggVariableErrors[keyof AdminUpdateEggVariableErrors]; + +export type AdminUpdateEggVariableResponses = { + /** + * Egg variable updated. + */ + 200: AdminEggVariableResource; +}; + +export type AdminUpdateEggVariableResponse = AdminUpdateEggVariableResponses[keyof AdminUpdateEggVariableResponses]; + +export type AdminGetEggInstallScriptData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggInstallScriptEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/scripts'; +}; + +export type AdminGetEggInstallScriptErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetEggInstallScriptError = AdminGetEggInstallScriptErrors[keyof AdminGetEggInstallScriptErrors]; + +export type AdminGetEggInstallScriptResponses = { + /** + * Egg install script returned. + */ + 200: AdminEggResource; +}; + +export type AdminGetEggInstallScriptResponse = AdminGetEggInstallScriptResponses[keyof AdminGetEggInstallScriptResponses]; + +export type AdminUpdateEggInstallScriptData = { + body?: AdminUpdateEggInstallScriptRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggInstallScriptEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/scripts'; +}; + +export type AdminUpdateEggInstallScriptErrors = { + /** + * The selected copy source is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateEggInstallScriptError = AdminUpdateEggInstallScriptErrors[keyof AdminUpdateEggInstallScriptErrors]; + +export type AdminUpdateEggInstallScriptResponses = { + /** + * Egg install script updated. + */ + 200: AdminEggResource; +}; + +export type AdminUpdateEggInstallScriptResponse = AdminUpdateEggInstallScriptResponses[keyof AdminUpdateEggInstallScriptResponses]; + +export type AdminExportEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminExportEggEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/export'; +}; + +export type AdminExportEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminExportEggError = AdminExportEggErrors[keyof AdminExportEggErrors]; + +export type AdminExportEggResponses = { + /** + * Egg share file returned. + */ + 200: AdminExportEggResponseBody; +}; + +export type AdminExportEggResponse = AdminExportEggResponses[keyof AdminExportEggResponses]; + +export type AdminUpdateEggFromImportData = { + body: AdminUpdateEggFromImportRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminUpdateEggFromImportEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/import'; +}; + +export type AdminUpdateEggFromImportErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateEggFromImportError = AdminUpdateEggFromImportErrors[keyof AdminUpdateEggFromImportErrors]; + +export type AdminUpdateEggFromImportResponses = { + /** + * Egg updated from import. + */ + 200: AdminEggResource; +}; + +export type AdminUpdateEggFromImportResponse = AdminUpdateEggFromImportResponses[keyof AdminUpdateEggFromImportResponses]; + +export type AdminSyncEggTagsData = { + body?: AdminSyncEggTagsRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminSyncEggTagsEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}/tags'; +}; + +export type AdminSyncEggTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminSyncEggTagsError = AdminSyncEggTagsErrors[keyof AdminSyncEggTagsErrors]; + +export type AdminSyncEggTagsResponses = { + /** + * Tags applied to the egg. + */ + 200: AdminTagListResponse; +}; + +export type AdminSyncEggTagsResponse = AdminSyncEggTagsResponses[keyof AdminSyncEggTagsResponses]; + +export type AdminImportEggData = { + body: AdminImportEggRequest; + path?: never; + query?: never; + url: '/api/admin/eggs/import'; +}; + +export type AdminImportEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminImportEggError = AdminImportEggErrors[keyof AdminImportEggErrors]; + +export type AdminImportEggResponses = { + /** + * Egg imported. + */ + 201: AdminEggResource; +}; + +export type AdminImportEggResponse = AdminImportEggResponses[keyof AdminImportEggResponses]; + +export type AdminListEggsData = { + body?: never; + path?: never; + query?: { + /** + * Filter eggs by name. + */ + 'filter[name]'?: AdminListEggsFilterNameQueryParameter; + /** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ + 'filter[tag]'?: AdminListEggsFilterTagQueryParameter; + /** + * Sort eggs by id or name. Prefix with a hyphen for descending order. + */ + sort?: AdminListEggsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListEggsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListEggsPerPageQueryParameter; + /** + * Comma-separated relationships to include: variables, tags, servers. + */ + include?: AdminListEggsIncludeQueryParameter; + }; + url: '/api/admin/eggs'; +}; + +export type AdminListEggsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListEggsError = AdminListEggsErrors[keyof AdminListEggsErrors]; + +export type AdminListEggsResponses = { + /** + * Eggs returned. + */ + 200: AdminEggPaginatedResponse; +}; + +export type AdminListEggsResponse = AdminListEggsResponses[keyof AdminListEggsResponses]; + +export type AdminCreateEggData = { + body: AdminCreateEggRequest; + path?: never; + query?: never; + url: '/api/admin/eggs'; +}; + +export type AdminCreateEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateEggError = AdminCreateEggErrors[keyof AdminCreateEggErrors]; + +export type AdminCreateEggResponses = { + /** + * Egg created. + */ + 201: AdminEggResource; +}; + +export type AdminCreateEggResponse = AdminCreateEggResponses[keyof AdminCreateEggResponses]; + +export type AdminDeleteEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}'; +}; + +export type AdminDeleteEggErrors = { + /** + * The egg has active servers or child eggs. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteEggError = AdminDeleteEggErrors[keyof AdminDeleteEggErrors]; + +export type AdminDeleteEggResponses = { + /** + * Egg deleted. + */ + 204: void; +}; + +export type AdminDeleteEggResponse = AdminDeleteEggResponses[keyof AdminDeleteEggResponses]; + +export type AdminGetEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggEggIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include: variables, tags, servers. + */ + include?: AdminGetEggIncludeQueryParameter; + }; + url: '/api/admin/eggs/{egg_id}'; +}; + +export type AdminGetEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetEggError = AdminGetEggErrors[keyof AdminGetEggErrors]; + +export type AdminGetEggResponses = { + /** + * Egg returned. + */ + 200: AdminEggResource; +}; + +export type AdminGetEggResponse = AdminGetEggResponses[keyof AdminGetEggResponses]; + +export type AdminUpdateEggData = { + body: AdminUpdateEggRequest; + path: { + /** + * The egg ID. + */ + egg_id: AdminGetEggEggIdPathParameter; + }; + query?: never; + url: '/api/admin/eggs/{egg_id}'; +}; + +export type AdminUpdateEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateEggError = AdminUpdateEggErrors[keyof AdminUpdateEggErrors]; + +export type AdminUpdateEggResponses = { + /** + * Egg updated. + */ + 200: AdminEggResource; +}; + +export type AdminUpdateEggResponse = AdminUpdateEggResponses[keyof AdminUpdateEggResponses]; + +export type AdminListTagsData = { + body?: never; + path?: never; + query?: { + /** + * Filter tags by name. + */ + 'filter[name]'?: AdminListTagsFilterNameQueryParameter; + /** + * Filter tags by slug. + */ + 'filter[slug]'?: AdminListTagsFilterSlugQueryParameter; + /** + * Sort tags by id, name, or slug. Prefix with a hyphen for descending order. + */ + sort?: AdminListTagsSortQueryParameter; + /** + * Page number to return. + */ + page?: AdminListTagsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListTagsPerPageQueryParameter; + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ + include?: AdminListTagsIncludeQueryParameter; + }; + url: '/api/admin/tags'; +}; + +export type AdminListTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListTagsError = AdminListTagsErrors[keyof AdminListTagsErrors]; + +export type AdminListTagsResponses = { + /** + * Tags returned. + */ + 200: AdminTagPaginatedResponse; +}; + +export type AdminListTagsResponse = AdminListTagsResponses[keyof AdminListTagsResponses]; + +export type AdminCreateTagData = { + body: AdminCreateTagRequest; + path?: never; + query?: never; + url: '/api/admin/tags'; +}; + +export type AdminCreateTagErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateTagError = AdminCreateTagErrors[keyof AdminCreateTagErrors]; + +export type AdminCreateTagResponses = { + /** + * Tag created. + */ + 201: AdminTagResource; +}; + +export type AdminCreateTagResponse = AdminCreateTagResponses[keyof AdminCreateTagResponses]; + +export type AdminDeleteTagData = { + body?: never; + path: { + /** + * The ID of the tag. + */ + tag_id: AdminGetTagTagIdPathParameter; + }; + query?: never; + url: '/api/admin/tags/{tag_id}'; +}; + +export type AdminDeleteTagErrors = { + /** + * The tag is a built-in game tag. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteTagError = AdminDeleteTagErrors[keyof AdminDeleteTagErrors]; + +export type AdminDeleteTagResponses = { + /** + * Tag deleted. + */ + 204: void; +}; + +export type AdminDeleteTagResponse = AdminDeleteTagResponses[keyof AdminDeleteTagResponses]; + +export type AdminGetTagData = { + body?: never; + path: { + /** + * The ID of the tag. + */ + tag_id: AdminGetTagTagIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes". + */ + include?: AdminGetTagIncludeQueryParameter; + }; + url: '/api/admin/tags/{tag_id}'; +}; + +export type AdminGetTagErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetTagError = AdminGetTagErrors[keyof AdminGetTagErrors]; + +export type AdminGetTagResponses = { + /** + * Tag returned. + */ + 200: AdminTagResource; +}; + +export type AdminGetTagResponse = AdminGetTagResponses[keyof AdminGetTagResponses]; + +export type AdminUpdateTagData = { + body: AdminUpdateTagRequest; + path: { + /** + * The ID of the tag. + */ + tag_id: AdminGetTagTagIdPathParameter; + }; + query?: never; + url: '/api/admin/tags/{tag_id}'; +}; + +export type AdminUpdateTagErrors = { + /** + * The tag is a built-in game tag. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateTagError = AdminUpdateTagErrors[keyof AdminUpdateTagErrors]; + +export type AdminUpdateTagResponses = { + /** + * Tag updated. + */ + 200: AdminTagResource; +}; + +export type AdminUpdateTagResponse = AdminUpdateTagResponses[keyof AdminUpdateTagResponses]; + +export type AdminGetSettingsData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/settings'; +}; + +export type AdminGetSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminGetSettingsError = AdminGetSettingsErrors[keyof AdminGetSettingsErrors]; + +export type AdminGetSettingsResponses = { + /** + * Settings returned. + */ + 200: AdminSettingsResponse; +}; + +export type AdminGetSettingsResponse = AdminGetSettingsResponses[keyof AdminGetSettingsResponses]; + +export type AdminUpdateGeneralSettingsData = { + body: AdminUpdateGeneralSettingsRequest; + path?: never; + query?: never; + url: '/api/admin/settings/general'; +}; + +export type AdminUpdateGeneralSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateGeneralSettingsError = AdminUpdateGeneralSettingsErrors[keyof AdminUpdateGeneralSettingsErrors]; + +export type AdminUpdateGeneralSettingsResponses = { + /** + * General settings updated. + */ + 204: void; +}; + +export type AdminUpdateGeneralSettingsResponse = AdminUpdateGeneralSettingsResponses[keyof AdminUpdateGeneralSettingsResponses]; + +export type AdminUpdateMailSettingsData = { + body?: AdminUpdateMailSettingsRequest; + path?: never; + query?: never; + url: '/api/admin/settings/mail'; +}; + +export type AdminUpdateMailSettingsErrors = { + /** + * The panel is not configured to use SMTP mail. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateMailSettingsError = AdminUpdateMailSettingsErrors[keyof AdminUpdateMailSettingsErrors]; + +export type AdminUpdateMailSettingsResponses = { + /** + * Mail settings updated. + */ + 204: void; +}; + +export type AdminUpdateMailSettingsResponse = AdminUpdateMailSettingsResponses[keyof AdminUpdateMailSettingsResponses]; + +export type AdminSendTestMailData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/settings/mail/test'; +}; + +export type AdminSendTestMailErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The configured mail transport failed to send the message. + */ + 500: ErrorEnvelope; +}; + +export type AdminSendTestMailError = AdminSendTestMailErrors[keyof AdminSendTestMailErrors]; + +export type AdminSendTestMailResponses = { + /** + * Test mail queued. + */ + 204: void; +}; + +export type AdminSendTestMailResponse = AdminSendTestMailResponses[keyof AdminSendTestMailResponses]; + +export type AdminUpdateAdvancedSettingsData = { + body: AdminUpdateAdvancedSettingsRequest; + path?: never; + query?: never; + url: '/api/admin/settings/advanced'; +}; + +export type AdminUpdateAdvancedSettingsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateAdvancedSettingsError = AdminUpdateAdvancedSettingsErrors[keyof AdminUpdateAdvancedSettingsErrors]; + +export type AdminUpdateAdvancedSettingsResponses = { + /** + * Advanced settings updated. + */ + 204: void; +}; + +export type AdminUpdateAdvancedSettingsResponse = AdminUpdateAdvancedSettingsResponses[keyof AdminUpdateAdvancedSettingsResponses]; + +export type AdminListDatabaseHostsData = { + body?: never; + path?: never; + query?: { + /** + * Page number to retrieve. + */ + page?: AdminListDatabaseHostsPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListDatabaseHostsPerPageQueryParameter; + /** + * Filter hosts by name. + */ + 'filter[name]'?: AdminListDatabaseHostsFilterNameQueryParameter; + /** + * Filter hosts by address or hostname. + */ + 'filter[host]'?: AdminListDatabaseHostsFilterHostQueryParameter; + /** + * Sort hosts by ID, name, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListDatabaseHostsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports node and databases. + */ + include?: AdminListDatabaseHostsIncludeQueryParameter; + }; + url: '/api/admin/database-hosts'; +}; + +export type AdminListDatabaseHostsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListDatabaseHostsError = AdminListDatabaseHostsErrors[keyof AdminListDatabaseHostsErrors]; + +export type AdminListDatabaseHostsResponses = { + /** + * Database hosts returned. + */ + 200: AdminDatabaseHostPaginatedResponse; +}; + +export type AdminListDatabaseHostsResponse = AdminListDatabaseHostsResponses[keyof AdminListDatabaseHostsResponses]; + +export type AdminCreateDatabaseHostData = { + body: AdminCreateDatabaseHostRequest; + path?: never; + query?: never; + url: '/api/admin/database-hosts'; +}; + +export type AdminCreateDatabaseHostErrors = { + /** + * The panel could not connect to the database host. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateDatabaseHostError = AdminCreateDatabaseHostErrors[keyof AdminCreateDatabaseHostErrors]; + +export type AdminCreateDatabaseHostResponses = { + /** + * Database host created. + */ + 201: AdminDatabaseHostResource; +}; + +export type AdminCreateDatabaseHostResponse = AdminCreateDatabaseHostResponses[keyof AdminCreateDatabaseHostResponses]; + +export type AdminDeleteDatabaseHostData = { + body?: never; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminGetDatabaseHostDatabaseHostIdPathParameter; + }; + query?: never; + url: '/api/admin/database-hosts/{databaseHost_id}'; +}; + +export type AdminDeleteDatabaseHostErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteDatabaseHostError = AdminDeleteDatabaseHostErrors[keyof AdminDeleteDatabaseHostErrors]; + +export type AdminDeleteDatabaseHostResponses = { + /** + * Database host deleted. + */ + 204: void; +}; + +export type AdminDeleteDatabaseHostResponse = AdminDeleteDatabaseHostResponses[keyof AdminDeleteDatabaseHostResponses]; + +export type AdminGetDatabaseHostData = { + body?: never; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminGetDatabaseHostDatabaseHostIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports node and databases. + */ + include?: AdminGetDatabaseHostIncludeQueryParameter; + }; + url: '/api/admin/database-hosts/{databaseHost_id}'; +}; + +export type AdminGetDatabaseHostErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetDatabaseHostError = AdminGetDatabaseHostErrors[keyof AdminGetDatabaseHostErrors]; + +export type AdminGetDatabaseHostResponses = { + /** + * Database host returned. + */ + 200: AdminDatabaseHostResource; +}; + +export type AdminGetDatabaseHostResponse = AdminGetDatabaseHostResponses[keyof AdminGetDatabaseHostResponses]; + +export type AdminUpdateDatabaseHostData = { + body: AdminUpdateDatabaseHostRequest; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminGetDatabaseHostDatabaseHostIdPathParameter; + }; + query?: never; + url: '/api/admin/database-hosts/{databaseHost_id}'; +}; + +export type AdminUpdateDatabaseHostErrors = { + /** + * The panel could not connect to the database host. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateDatabaseHostError = AdminUpdateDatabaseHostErrors[keyof AdminUpdateDatabaseHostErrors]; + +export type AdminUpdateDatabaseHostResponses = { + /** + * Database host updated. + */ + 200: AdminDatabaseHostResource; +}; + +export type AdminUpdateDatabaseHostResponse = AdminUpdateDatabaseHostResponses[keyof AdminUpdateDatabaseHostResponses]; + +export type AdminListDatabaseHostDatabasesData = { + body?: never; + path: { + /** + * The ID of the databaseHost. + */ + databaseHost_id: AdminListDatabaseHostDatabasesDatabaseHostIdPathParameter; + }; + query?: { + /** + * Page number to retrieve. + */ + page?: AdminListDatabaseHostDatabasesPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListDatabaseHostDatabasesPerPageQueryParameter; + }; + url: '/api/admin/database-hosts/{databaseHost_id}/databases'; +}; + +export type AdminListDatabaseHostDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminListDatabaseHostDatabasesError = AdminListDatabaseHostDatabasesErrors[keyof AdminListDatabaseHostDatabasesErrors]; + +export type AdminListDatabaseHostDatabasesResponses = { + /** + * Databases returned. + */ + 200: AdminDatabasePaginatedResponse; +}; + +export type AdminListDatabaseHostDatabasesResponse = AdminListDatabaseHostDatabasesResponses[keyof AdminListDatabaseHostDatabasesResponses]; + +export type AdminListApiKeysData = { + body?: never; + path?: never; + query?: { + /** + * Filter keys by memo. + */ + 'filter[memo]'?: AdminListApiKeysFilterMemoQueryParameter; + /** + * Filter keys by identifier. + */ + 'filter[identifier]'?: AdminListApiKeysFilterIdentifierQueryParameter; + /** + * Sort keys by ID, memo, or creation date. Prefix with a hyphen for descending order. + */ + sort?: AdminListApiKeysSortQueryParameter; + /** + * Page number to retrieve. + */ + page?: AdminListApiKeysPageQueryParameter; + /** + * Results to return per page. + */ + per_page?: AdminListApiKeysPerPageQueryParameter; + }; + url: '/api/admin/api-keys'; +}; + +export type AdminListApiKeysErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminListApiKeysError = AdminListApiKeysErrors[keyof AdminListApiKeysErrors]; + +export type AdminListApiKeysResponses = { + /** + * API keys returned. + */ + 200: AdminApiKeyPaginatedResponse; +}; + +export type AdminListApiKeysResponse = AdminListApiKeysResponses[keyof AdminListApiKeysResponses]; + +export type AdminCreateApiKeyData = { + body: AdminCreateApiKeyRequest; + path?: never; + query?: never; + url: '/api/admin/api-keys'; +}; + +export type AdminCreateApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminCreateApiKeyError = AdminCreateApiKeyErrors[keyof AdminCreateApiKeyErrors]; + +export type AdminCreateApiKeyResponses = { + /** + * API key created. + */ + 201: AdminApiKeyResource; +}; + +export type AdminCreateApiKeyResponse = AdminCreateApiKeyResponses[keyof AdminCreateApiKeyResponses]; + +export type AdminDeleteApiKeyData = { + body?: never; + path: { + /** + * The server UUID or short UUID. + */ + identifier: AdminGetApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/api-keys/{identifier}'; +}; + +export type AdminDeleteApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminDeleteApiKeyError = AdminDeleteApiKeyErrors[keyof AdminDeleteApiKeyErrors]; + +export type AdminDeleteApiKeyResponses = { + /** + * API key deleted. + */ + 204: void; +}; + +export type AdminDeleteApiKeyResponse = AdminDeleteApiKeyResponses[keyof AdminDeleteApiKeyResponses]; + +export type AdminGetApiKeyData = { + body?: never; + path: { + /** + * The server UUID or short UUID. + */ + identifier: AdminGetApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/api-keys/{identifier}'; +}; + +export type AdminGetApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type AdminGetApiKeyError = AdminGetApiKeyErrors[keyof AdminGetApiKeyErrors]; + +export type AdminGetApiKeyResponses = { + /** + * API key returned. + */ + 200: AdminApiKeyResource; +}; + +export type AdminGetApiKeyResponse = AdminGetApiKeyResponses[keyof AdminGetApiKeyResponses]; + +export type AdminUpdateApiKeyData = { + body: AdminUpdateApiKeyRequest; + path: { + /** + * The server UUID or short UUID. + */ + identifier: AdminGetApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/admin/api-keys/{identifier}'; +}; + +export type AdminUpdateApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AdminUpdateApiKeyError = AdminUpdateApiKeyErrors[keyof AdminUpdateApiKeyErrors]; + +export type AdminUpdateApiKeyResponses = { + /** + * API key updated. + */ + 200: AdminApiKeyResource; +}; + +export type AdminUpdateApiKeyResponse = AdminUpdateApiKeyResponses[keyof AdminUpdateApiKeyResponses]; + +export type AdminGetVersionInformationData = { + body?: never; + path?: never; + query?: never; + url: '/api/admin/version'; +}; + +export type AdminGetVersionInformationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type AdminGetVersionInformationError = AdminGetVersionInformationErrors[keyof AdminGetVersionInformationErrors]; + +export type AdminGetVersionInformationResponses = { + /** + * Version information returned. + */ + 200: AdminVersionInformationResponse; +}; + +export type AdminGetVersionInformationResponse = AdminGetVersionInformationResponses[keyof AdminGetVersionInformationResponses]; + +export type ApplicationListUsersData = { + body?: never; + path?: never; + query?: { + /** + * Number of users to return per page, up to 100. + */ + per_page?: ApplicationListUsersPerPageQueryParameter; + /** + * Filter users by email address. + */ + 'filter[email]'?: ApplicationListUsersFilterEmailQueryParameter; + /** + * Filter users by UUID. + */ + 'filter[uuid]'?: ApplicationListUsersFilterUuidQueryParameter; + /** + * Filter users by username. + */ + 'filter[username]'?: ApplicationListUsersFilterUsernameQueryParameter; + /** + * Filter users by external identifier. + */ + 'filter[external_id]'?: ApplicationListUsersFilterExternalIdQueryParameter; + /** + * Sort users by id or uuid. Prefix with "-" for descending order. + */ + sort?: ApplicationListUsersSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ + include?: ApplicationListUsersIncludeQueryParameter; + }; + url: '/api/application/users'; +}; + +export type ApplicationListUsersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ApplicationListUsersError = ApplicationListUsersErrors[keyof ApplicationListUsersErrors]; + +export type ApplicationListUsersResponses = { + 200: ApplicationUserPaginatedResponse; +}; + +export type ApplicationListUsersResponse = ApplicationListUsersResponses[keyof ApplicationListUsersResponses]; + +export type ApplicationCreateUserData = { + body: ApplicationCreateUserRequest; + path?: never; + query?: never; + url: '/api/application/users'; +}; + +export type ApplicationCreateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationCreateUserError = ApplicationCreateUserErrors[keyof ApplicationCreateUserErrors]; + +export type ApplicationCreateUserResponses = { + /** + * User created. + */ + 201: ApplicationUserResource; +}; + +export type ApplicationCreateUserResponse = ApplicationCreateUserResponses[keyof ApplicationCreateUserResponses]; + +export type ApplicationDeleteUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: ApplicationGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/application/users/{user_id}'; +}; + +export type ApplicationDeleteUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationDeleteUserError = ApplicationDeleteUserErrors[keyof ApplicationDeleteUserErrors]; + +export type ApplicationDeleteUserResponses = { + /** + * User deleted. + */ + 204: void; +}; + +export type ApplicationDeleteUserResponse = ApplicationDeleteUserResponses[keyof ApplicationDeleteUserResponses]; + +export type ApplicationGetUserData = { + body?: never; + path: { + /** + * The user ID. + */ + user_id: ApplicationGetUserUserIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "servers" when the key can read servers. + */ + include?: ApplicationGetUserIncludeQueryParameter; + }; + url: '/api/application/users/{user_id}'; +}; + +export type ApplicationGetUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetUserError = ApplicationGetUserErrors[keyof ApplicationGetUserErrors]; + +export type ApplicationGetUserResponses = { + 200: ApplicationUserResource; +}; + +export type ApplicationGetUserResponse = ApplicationGetUserResponses[keyof ApplicationGetUserResponses]; + +export type ApplicationUpdateUserData = { + body: ApplicationUpdateUserRequest; + path: { + /** + * The user ID. + */ + user_id: ApplicationGetUserUserIdPathParameter; + }; + query?: never; + url: '/api/application/users/{user_id}'; +}; + +export type ApplicationUpdateUserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationUpdateUserError = ApplicationUpdateUserErrors[keyof ApplicationUpdateUserErrors]; + +export type ApplicationUpdateUserResponses = { + 200: ApplicationUserResource; +}; + +export type ApplicationUpdateUserResponse = ApplicationUpdateUserResponses[keyof ApplicationUpdateUserResponses]; + +export type ApplicationGetUserByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: ApplicationGetUserByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/application/users/external/{external_id}'; +}; + +export type ApplicationGetUserByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetUserByExternalIdError = ApplicationGetUserByExternalIdErrors[keyof ApplicationGetUserByExternalIdErrors]; + +export type ApplicationGetUserByExternalIdResponses = { + 200: ApplicationUserResource; +}; + +export type ApplicationGetUserByExternalIdResponse = ApplicationGetUserByExternalIdResponses[keyof ApplicationGetUserByExternalIdResponses]; + +export type ApplicationListNodesData = { + body?: never; + path?: never; + query?: { + /** + * Number of nodes to return per page, up to 100. + */ + per_page?: ApplicationListNodesPerPageQueryParameter; + /** + * Filter nodes by UUID. + */ + 'filter[uuid]'?: ApplicationListNodesFilterUuidQueryParameter; + /** + * Filter nodes by name. + */ + 'filter[name]'?: ApplicationListNodesFilterNameQueryParameter; + /** + * Filter nodes by fully qualified domain name. + */ + 'filter[fqdn]'?: ApplicationListNodesFilterFqdnQueryParameter; + /** + * Filter nodes by daemon token identifier. + */ + 'filter[daemon_token_id]'?: ApplicationListNodesFilterDaemonTokenIdQueryParameter; + /** + * Sort nodes by id, uuid, memory, or disk. Prefix with "-" for descending order. + */ + sort?: ApplicationListNodesSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ + include?: ApplicationListNodesIncludeQueryParameter; + }; + url: '/api/application/nodes'; +}; + +export type ApplicationListNodesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ApplicationListNodesError = ApplicationListNodesErrors[keyof ApplicationListNodesErrors]; + +export type ApplicationListNodesResponses = { + 200: ApplicationNodePaginatedResponse; +}; + +export type ApplicationListNodesResponse = ApplicationListNodesResponses[keyof ApplicationListNodesResponses]; + +export type ApplicationCreateNodeData = { + body: ApplicationCreateNodeRequest; + path?: never; + query?: never; + url: '/api/application/nodes'; +}; + +export type ApplicationCreateNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationCreateNodeError = ApplicationCreateNodeErrors[keyof ApplicationCreateNodeErrors]; + +export type ApplicationCreateNodeResponses = { + /** + * Node created. + */ + 201: ApplicationNodeResource; +}; + +export type ApplicationCreateNodeResponse = ApplicationCreateNodeResponses[keyof ApplicationCreateNodeResponses]; + +export type ApplicationListDeployableNodesData = { + body?: never; + path?: never; + query: { + /** + * Memory required for the deployment, in megabytes. + */ + memory: ApplicationListDeployableNodesMemoryQueryParameter; + /** + * Disk required for the deployment, in megabytes. + */ + disk: ApplicationListDeployableNodesDiskQueryParameter; + /** + * Restrict results to these location IDs. + */ + location_ids?: ApplicationListDeployableNodesLocationIdsQueryParameter; + /** + * Deploy tags (IDs or slugs) the deployment declares. They must match a node's deployment tags exactly: a node reserved for a tag missing here is left out, and every tag listed must be reserved on the node. Without tags, only nodes with no reservations are returned. + */ + tags?: ApplicationListDeployableNodesTagsQueryParameter; + /** + * Only return nodes that accept this egg. A node's egg tags are OR-matched against the egg's tags: a node with none accepts every egg, otherwise it needs one tag in common with the egg. + */ + egg?: ApplicationListDeployableNodesEggQueryParameter; + /** + * Page number to return. When omitted, all viable nodes are returned without pagination metadata. + */ + page?: ApplicationListDeployableNodesPageQueryParameter; + /** + * Number of nodes to return per page when page is supplied, up to 100. + */ + per_page?: ApplicationListDeployableNodesPerPageQueryParameter; + }; + url: '/api/application/nodes/deployable'; +}; + +export type ApplicationListDeployableNodesErrors = { + /** + * No nodes can satisfy the requested deployment constraints. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationListDeployableNodesError = ApplicationListDeployableNodesErrors[keyof ApplicationListDeployableNodesErrors]; + +export type ApplicationListDeployableNodesResponses = { + /** + * Deployable nodes returned. + */ + 200: ApplicationNodeListResponse; +}; + +export type ApplicationListDeployableNodesResponse = ApplicationListDeployableNodesResponses[keyof ApplicationListDeployableNodesResponses]; + +export type ApplicationDeleteNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}'; +}; + +export type ApplicationDeleteNodeErrors = { + /** + * The node has active servers attached. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationDeleteNodeError = ApplicationDeleteNodeErrors[keyof ApplicationDeleteNodeErrors]; + +export type ApplicationDeleteNodeResponses = { + /** + * Node deleted. + */ + 204: void; +}; + +export type ApplicationDeleteNodeResponse = ApplicationDeleteNodeResponses[keyof ApplicationDeleteNodeResponses]; + +export type ApplicationGetNodeData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeNodeIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "allocations", "location", "servers", "tags" (the games the node accepts), and "deployment_tags" (its reservations) when the key can read those resources. The tags need read access to eggs. + */ + include?: ApplicationGetNodeIncludeQueryParameter; + }; + url: '/api/application/nodes/{node_id}'; +}; + +export type ApplicationGetNodeErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetNodeError = ApplicationGetNodeErrors[keyof ApplicationGetNodeErrors]; + +export type ApplicationGetNodeResponses = { + 200: ApplicationNodeResource; +}; + +export type ApplicationGetNodeResponse = ApplicationGetNodeResponses[keyof ApplicationGetNodeResponses]; + +export type ApplicationUpdateNodeData = { + body: ApplicationUpdateNodeRequest; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}'; +}; + +export type ApplicationUpdateNodeErrors = { + /** + * The panel saved the node changes but could not persist the configuration to Wings. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationUpdateNodeError = ApplicationUpdateNodeErrors[keyof ApplicationUpdateNodeErrors]; + +export type ApplicationUpdateNodeResponses = { + 200: ApplicationNodeResource; +}; + +export type ApplicationUpdateNodeResponse = ApplicationUpdateNodeResponses[keyof ApplicationUpdateNodeResponses]; + +export type ApplicationGetNodeConfigurationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationGetNodeConfigurationNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}/configuration'; +}; + +export type ApplicationGetNodeConfigurationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetNodeConfigurationError = ApplicationGetNodeConfigurationErrors[keyof ApplicationGetNodeConfigurationErrors]; + +export type ApplicationGetNodeConfigurationResponses = { + /** + * Node configuration. + */ + 200: ApplicationGetNodeConfigurationResponseBody; +}; + +export type ApplicationGetNodeConfigurationResponse = ApplicationGetNodeConfigurationResponses[keyof ApplicationGetNodeConfigurationResponses]; + +export type ApplicationListNodeAllocationsData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationListNodeAllocationsNodeIdPathParameter; + }; + query?: { + /** + * Number of allocations to return per page, up to 100. + */ + per_page?: ApplicationListNodeAllocationsPerPageQueryParameter; + /** + * Filter allocations by exact IP address. + */ + 'filter[ip]'?: ApplicationListNodeAllocationsFilterIpQueryParameter; + /** + * Filter allocations by exact port. + */ + 'filter[port]'?: ApplicationListNodeAllocationsFilterPortQueryParameter; + /** + * Filter allocations by IP alias. + */ + 'filter[ip_alias]'?: ApplicationListNodeAllocationsFilterIpAliasQueryParameter; + /** + * Filter allocations by assigned server ID. Empty or non-numeric values return unassigned allocations. + */ + 'filter[server_id]'?: ApplicationListNodeAllocationsFilterServerIdQueryParameter; + /** + * Comma-separated relationships to include. Supports "node" and "server" when the key can read those resources. + */ + include?: ApplicationListNodeAllocationsIncludeQueryParameter; + }; + url: '/api/application/nodes/{node_id}/allocations'; +}; + +export type ApplicationListNodeAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationListNodeAllocationsError = ApplicationListNodeAllocationsErrors[keyof ApplicationListNodeAllocationsErrors]; + +export type ApplicationListNodeAllocationsResponses = { + 200: ApplicationAllocationPaginatedResponse; +}; + +export type ApplicationListNodeAllocationsResponse = ApplicationListNodeAllocationsResponses[keyof ApplicationListNodeAllocationsResponses]; + +export type ApplicationCreateNodeAllocationsData = { + body: ApplicationCreateNodeAllocationsRequest; + path: { + /** + * The node ID. + */ + node_id: ApplicationListNodeAllocationsNodeIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}/allocations'; +}; + +export type ApplicationCreateNodeAllocationsErrors = { + /** + * The allocation IP, CIDR, or port mapping could not be processed. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationCreateNodeAllocationsError = ApplicationCreateNodeAllocationsErrors[keyof ApplicationCreateNodeAllocationsErrors]; + +export type ApplicationCreateNodeAllocationsResponses = { + /** + * Allocations created. + */ + 204: void; +}; + +export type ApplicationCreateNodeAllocationsResponse = ApplicationCreateNodeAllocationsResponses[keyof ApplicationCreateNodeAllocationsResponses]; + +export type ApplicationDeleteNodeAllocationData = { + body?: never; + path: { + /** + * The node ID. + */ + node_id: ApplicationDeleteNodeAllocationNodeIdPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ApplicationDeleteNodeAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/application/nodes/{node_id}/allocations/{allocation_id}'; +}; + +export type ApplicationDeleteNodeAllocationErrors = { + /** + * The allocation is currently assigned to a server. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationDeleteNodeAllocationError = ApplicationDeleteNodeAllocationErrors[keyof ApplicationDeleteNodeAllocationErrors]; + +export type ApplicationDeleteNodeAllocationResponses = { + /** + * Allocation deleted. + */ + 204: void; +}; + +export type ApplicationDeleteNodeAllocationResponse = ApplicationDeleteNodeAllocationResponses[keyof ApplicationDeleteNodeAllocationResponses]; + +export type ApplicationListLocationsData = { + body?: never; + path?: never; + query?: { + /** + * Number of locations to return per page, up to 100. + */ + per_page?: ApplicationListLocationsPerPageQueryParameter; + /** + * Filter locations by short identifier. + */ + 'filter[short]'?: ApplicationListLocationsFilterShortQueryParameter; + /** + * Filter locations by description. + */ + 'filter[long]'?: ApplicationListLocationsFilterLongQueryParameter; + /** + * Sort locations by id. Prefix with "-" for descending order. + */ + sort?: ApplicationListLocationsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ + include?: ApplicationListLocationsIncludeQueryParameter; + }; + url: '/api/application/locations'; +}; + +export type ApplicationListLocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ApplicationListLocationsError = ApplicationListLocationsErrors[keyof ApplicationListLocationsErrors]; + +export type ApplicationListLocationsResponses = { + 200: ApplicationLocationPaginatedResponse; +}; + +export type ApplicationListLocationsResponse = ApplicationListLocationsResponses[keyof ApplicationListLocationsResponses]; + +export type ApplicationCreateLocationData = { + body: ApplicationCreateLocationRequest; + path?: never; + query?: never; + url: '/api/application/locations'; +}; + +export type ApplicationCreateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationCreateLocationError = ApplicationCreateLocationErrors[keyof ApplicationCreateLocationErrors]; + +export type ApplicationCreateLocationResponses = { + /** + * Location created. + */ + 201: ApplicationLocationResource; +}; + +export type ApplicationCreateLocationResponse = ApplicationCreateLocationResponses[keyof ApplicationCreateLocationResponses]; + +export type ApplicationDeleteLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: ApplicationGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/application/locations/{location_id}'; +}; + +export type ApplicationDeleteLocationErrors = { + /** + * The location has active nodes attached. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationDeleteLocationError = ApplicationDeleteLocationErrors[keyof ApplicationDeleteLocationErrors]; + +export type ApplicationDeleteLocationResponses = { + /** + * Location deleted. + */ + 204: void; +}; + +export type ApplicationDeleteLocationResponse = ApplicationDeleteLocationResponses[keyof ApplicationDeleteLocationResponses]; + +export type ApplicationGetLocationData = { + body?: never; + path: { + /** + * The location ID. + */ + location_id: ApplicationGetLocationLocationIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "nodes" and "servers" when the key can read those resources. + */ + include?: ApplicationGetLocationIncludeQueryParameter; + }; + url: '/api/application/locations/{location_id}'; +}; + +export type ApplicationGetLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetLocationError = ApplicationGetLocationErrors[keyof ApplicationGetLocationErrors]; + +export type ApplicationGetLocationResponses = { + 200: ApplicationLocationResource; +}; + +export type ApplicationGetLocationResponse = ApplicationGetLocationResponses[keyof ApplicationGetLocationResponses]; + +export type ApplicationUpdateLocationData = { + body: ApplicationUpdateLocationRequest; + path: { + /** + * The location ID. + */ + location_id: ApplicationGetLocationLocationIdPathParameter; + }; + query?: never; + url: '/api/application/locations/{location_id}'; +}; + +export type ApplicationUpdateLocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationUpdateLocationError = ApplicationUpdateLocationErrors[keyof ApplicationUpdateLocationErrors]; + +export type ApplicationUpdateLocationResponses = { + 200: ApplicationLocationResource; +}; + +export type ApplicationUpdateLocationResponse = ApplicationUpdateLocationResponses[keyof ApplicationUpdateLocationResponses]; + +export type ApplicationListEggsData = { + body?: never; + path?: never; + query?: { + /** + * Number of eggs to return per page, up to 100. + */ + per_page?: ApplicationListEggsPerPageQueryParameter; + /** + * Filter eggs by name. + */ + 'filter[name]'?: ApplicationListEggsFilterNameQueryParameter; + /** + * Filter eggs by tag slug. Separate several slugs with commas to return eggs that carry any of them. + */ + 'filter[tag]'?: ApplicationListEggsFilterTagQueryParameter; + /** + * Sort eggs by id or name. Prefix with "-" for descending order. + */ + sort?: ApplicationListEggsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ + include?: ApplicationListEggsIncludeQueryParameter; + }; + url: '/api/application/eggs'; +}; + +export type ApplicationListEggsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ApplicationListEggsError = ApplicationListEggsErrors[keyof ApplicationListEggsErrors]; + +export type ApplicationListEggsResponses = { + 200: ApplicationEggPaginatedResponse; +}; + +export type ApplicationListEggsResponse = ApplicationListEggsResponses[keyof ApplicationListEggsResponses]; + +export type ApplicationGetEggData = { + body?: never; + path: { + /** + * The egg ID. + */ + egg_id: ApplicationGetEggEggIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "servers", "config", "script", "variables", and "tags" when the key can read those resources. + */ + include?: ApplicationGetEggIncludeQueryParameter; + }; + url: '/api/application/eggs/{egg_id}'; +}; + +export type ApplicationGetEggErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetEggError = ApplicationGetEggErrors[keyof ApplicationGetEggErrors]; + +export type ApplicationGetEggResponses = { + 200: ApplicationEggResource; +}; + +export type ApplicationGetEggResponse = ApplicationGetEggResponses[keyof ApplicationGetEggResponses]; + +export type ApplicationListTagsData = { + body?: never; + path?: never; + query?: { + /** + * Number of tags to return per page, up to 100. + */ + per_page?: ApplicationListTagsPerPageQueryParameter; + /** + * Filter tags by name. + */ + 'filter[name]'?: ApplicationListTagsFilterNameQueryParameter; + /** + * Filter tags by slug. + */ + 'filter[slug]'?: ApplicationListTagsFilterSlugQueryParameter; + /** + * Filter tags by the ID of the nest they were created from. + */ + 'filter[legacy_nest_id]'?: ApplicationListTagsFilterLegacyNestIdQueryParameter; + /** + * Sort tags by id, name, or slug. Prefix with "-" for descending order. + */ + sort?: ApplicationListTagsSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ + include?: ApplicationListTagsIncludeQueryParameter; + }; + url: '/api/application/tags'; +}; + +export type ApplicationListTagsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ApplicationListTagsError = ApplicationListTagsErrors[keyof ApplicationListTagsErrors]; + +export type ApplicationListTagsResponses = { + 200: ApplicationTagPaginatedResponse; +}; + +export type ApplicationListTagsResponse = ApplicationListTagsResponses[keyof ApplicationListTagsResponses]; + +export type ApplicationGetTagData = { + body?: never; + path: { + /** + * The ID of the tag. + */ + tag_id: ApplicationGetTagTagIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "eggs" and "nodes" when the key can read those resources. + */ + include?: ApplicationGetTagIncludeQueryParameter; + }; + url: '/api/application/tags/{tag_id}'; +}; + +export type ApplicationGetTagErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetTagError = ApplicationGetTagErrors[keyof ApplicationGetTagErrors]; + +export type ApplicationGetTagResponses = { + 200: ApplicationTagResource; +}; + +export type ApplicationGetTagResponse = ApplicationGetTagResponses[keyof ApplicationGetTagResponses]; + +export type ApplicationListServersData = { + body?: never; + path?: never; + query?: { + /** + * Number of servers to return per page, up to 100. + */ + per_page?: ApplicationListServersPerPageQueryParameter; + /** + * Filter servers by UUID. + */ + 'filter[uuid]'?: ApplicationListServersFilterUuidQueryParameter; + /** + * Filter servers by short UUID identifier. + */ + 'filter[uuidShort]'?: ApplicationListServersFilterUuidShortQueryParameter; + /** + * Filter servers by name. + */ + 'filter[name]'?: ApplicationListServersFilterNameQueryParameter; + /** + * Filter servers by description. + */ + 'filter[description]'?: ApplicationListServersFilterDescriptionQueryParameter; + /** + * Filter servers by Docker image. + */ + 'filter[image]'?: ApplicationListServersFilterImageQueryParameter; + /** + * Filter servers by external identifier. + */ + 'filter[external_id]'?: ApplicationListServersFilterExternalIdQueryParameter; + /** + * Search term accepted by the list request. Must not exceed 100 characters. + */ + search?: ApplicationListServersSearchQueryParameter; + /** + * Sort servers by id or uuid. Prefix with "-" for descending order. + */ + sort?: ApplicationListServersSortQueryParameter; + /** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ + include?: ApplicationListServersIncludeQueryParameter; + }; + url: '/api/application/servers'; +}; + +export type ApplicationListServersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationListServersError = ApplicationListServersErrors[keyof ApplicationListServersErrors]; + +export type ApplicationListServersResponses = { + 200: ApplicationServerPaginatedResponse; +}; + +export type ApplicationListServersResponse = ApplicationListServersResponses[keyof ApplicationListServersResponses]; + +export type ApplicationCreateServerData = { + body: ApplicationCreateServerRequest; + path?: never; + query?: never; + url: '/api/application/servers'; +}; + +export type ApplicationCreateServerErrors = { + /** + * Automatic deployment could not find a viable node or allocation. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationCreateServerError = ApplicationCreateServerErrors[keyof ApplicationCreateServerErrors]; + +export type ApplicationCreateServerResponses = { + /** + * Server created. + */ + 201: ApplicationServerResource; +}; + +export type ApplicationCreateServerResponse = ApplicationCreateServerResponses[keyof ApplicationCreateServerResponses]; + +export type ApplicationDeleteServerForServersServerIdData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}'; +}; + +export type ApplicationDeleteServerForServersServerIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationDeleteServerForServersServerIdError = ApplicationDeleteServerForServersServerIdErrors[keyof ApplicationDeleteServerForServersServerIdErrors]; + +export type ApplicationDeleteServerForServersServerIdResponses = { + /** + * Server deleted. + */ + 204: void; +}; + +export type ApplicationDeleteServerForServersServerIdResponse = ApplicationDeleteServerForServersServerIdResponses[keyof ApplicationDeleteServerForServersServerIdResponses]; + +export type ApplicationGetServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerServerIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "allocations", "user", "subusers", "egg", "variables", "location", "node", "databases", and "transfer" when the key can read those resources. + */ + include?: ApplicationGetServerIncludeQueryParameter; + }; + url: '/api/application/servers/{server_id}'; +}; + +export type ApplicationGetServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetServerError = ApplicationGetServerErrors[keyof ApplicationGetServerErrors]; + +export type ApplicationGetServerResponses = { + 200: ApplicationServerResource; +}; + +export type ApplicationGetServerResponse = ApplicationGetServerResponses[keyof ApplicationGetServerResponses]; + +export type ApplicationGetServerByExternalIdData = { + body?: never; + path: { + /** + * The external ID. + */ + external_id: ApplicationGetServerByExternalIdExternalIdPathParameter; + }; + query?: never; + url: '/api/application/servers/external/{external_id}'; +}; + +export type ApplicationGetServerByExternalIdErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetServerByExternalIdError = ApplicationGetServerByExternalIdErrors[keyof ApplicationGetServerByExternalIdErrors]; + +export type ApplicationGetServerByExternalIdResponses = { + 200: ApplicationServerResource; +}; + +export type ApplicationGetServerByExternalIdResponse = ApplicationGetServerByExternalIdResponses[keyof ApplicationGetServerByExternalIdResponses]; + +export type ApplicationUpdateServerDetailsData = { + body: ApplicationUpdateServerDetailsRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationUpdateServerDetailsServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/details'; +}; + +export type ApplicationUpdateServerDetailsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationUpdateServerDetailsError = ApplicationUpdateServerDetailsErrors[keyof ApplicationUpdateServerDetailsErrors]; + +export type ApplicationUpdateServerDetailsResponses = { + 200: ApplicationServerResource; +}; + +export type ApplicationUpdateServerDetailsResponse = ApplicationUpdateServerDetailsResponses[keyof ApplicationUpdateServerDetailsResponses]; + +export type ApplicationUpdateServerBuildData = { + body: ApplicationUpdateServerBuildRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationUpdateServerBuildServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/build'; +}; + +export type ApplicationUpdateServerBuildErrors = { + /** + * The requested allocation change is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationUpdateServerBuildError = ApplicationUpdateServerBuildErrors[keyof ApplicationUpdateServerBuildErrors]; + +export type ApplicationUpdateServerBuildResponses = { + 200: ApplicationServerResource; +}; + +export type ApplicationUpdateServerBuildResponse = ApplicationUpdateServerBuildResponses[keyof ApplicationUpdateServerBuildResponses]; + +export type ApplicationUpdateServerStartupData = { + body: ApplicationUpdateServerStartupRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationUpdateServerStartupServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/startup'; +}; + +export type ApplicationUpdateServerStartupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not be reached while syncing startup changes. + */ + 504: ErrorEnvelope; +}; + +export type ApplicationUpdateServerStartupError = ApplicationUpdateServerStartupErrors[keyof ApplicationUpdateServerStartupErrors]; + +export type ApplicationUpdateServerStartupResponses = { + 200: ApplicationServerResource; +}; + +export type ApplicationUpdateServerStartupResponse = ApplicationUpdateServerStartupResponses[keyof ApplicationUpdateServerStartupResponses]; + +export type ApplicationSuspendServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationSuspendServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/suspend'; +}; + +export type ApplicationSuspendServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The server is currently being transferred. + */ + 409: ErrorEnvelope; + /** + * Wings could not be reached while syncing suspension state. + */ + 504: ErrorEnvelope; +}; + +export type ApplicationSuspendServerError = ApplicationSuspendServerErrors[keyof ApplicationSuspendServerErrors]; + +export type ApplicationSuspendServerResponses = { + /** + * Server suspended. + */ + 204: void; +}; + +export type ApplicationSuspendServerResponse = ApplicationSuspendServerResponses[keyof ApplicationSuspendServerResponses]; + +export type ApplicationUnsuspendServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationUnsuspendServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/unsuspend'; +}; + +export type ApplicationUnsuspendServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The server is currently being transferred. + */ + 409: ErrorEnvelope; + /** + * Wings could not be reached while syncing suspension state. + */ + 504: ErrorEnvelope; +}; + +export type ApplicationUnsuspendServerError = ApplicationUnsuspendServerErrors[keyof ApplicationUnsuspendServerErrors]; + +export type ApplicationUnsuspendServerResponses = { + /** + * Server unsuspended. + */ + 204: void; +}; + +export type ApplicationUnsuspendServerResponse = ApplicationUnsuspendServerResponses[keyof ApplicationUnsuspendServerResponses]; + +export type ApplicationReinstallServerData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationReinstallServerServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/reinstall'; +}; + +export type ApplicationReinstallServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * Wings could not be reached while starting reinstall. + */ + 504: ErrorEnvelope; +}; + +export type ApplicationReinstallServerError = ApplicationReinstallServerErrors[keyof ApplicationReinstallServerErrors]; + +export type ApplicationReinstallServerResponses = { + /** + * Server marked for reinstall. + */ + 204: void; +}; + +export type ApplicationReinstallServerResponse = ApplicationReinstallServerResponses[keyof ApplicationReinstallServerResponses]; + +export type ApplicationDeleteServerForServersServerIdForceData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationDeleteServerServerIdPathParameter; + /** + * Optional parameter. Whether to force the delete operation. + */ + force: ApplicationDeleteServerForcePathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/{force}'; +}; + +export type ApplicationDeleteServerForServersServerIdForceErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationDeleteServerForServersServerIdForceError = ApplicationDeleteServerForServersServerIdForceErrors[keyof ApplicationDeleteServerForServersServerIdForceErrors]; + +export type ApplicationDeleteServerForServersServerIdForceResponses = { + /** + * Server deleted. + */ + 204: void; +}; + +export type ApplicationDeleteServerForServersServerIdForceResponse = ApplicationDeleteServerForServersServerIdForceResponses[keyof ApplicationDeleteServerForServersServerIdForceResponses]; + +export type ApplicationListServerDatabasesData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationListServerDatabasesServerIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ + include?: ApplicationListServerDatabasesIncludeQueryParameter; + }; + url: '/api/application/servers/{server_id}/databases'; +}; + +export type ApplicationListServerDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationListServerDatabasesError = ApplicationListServerDatabasesErrors[keyof ApplicationListServerDatabasesErrors]; + +export type ApplicationListServerDatabasesResponses = { + /** + * Server databases returned. + */ + 200: ApplicationServerDatabaseListResponse; +}; + +export type ApplicationListServerDatabasesResponse = ApplicationListServerDatabasesResponses[keyof ApplicationListServerDatabasesResponses]; + +export type ApplicationCreateServerDatabaseData = { + body: ApplicationCreateServerDatabaseRequest; + path: { + /** + * The server ID. + */ + server_id: ApplicationListServerDatabasesServerIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/databases'; +}; + +export type ApplicationCreateServerDatabaseErrors = { + /** + * The server has reached its configured database limit. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ApplicationCreateServerDatabaseError = ApplicationCreateServerDatabaseErrors[keyof ApplicationCreateServerDatabaseErrors]; + +export type ApplicationCreateServerDatabaseResponses = { + /** + * Database created. + */ + 201: ApplicationServerDatabaseResource; +}; + +export type ApplicationCreateServerDatabaseResponse = ApplicationCreateServerDatabaseResponses[keyof ApplicationCreateServerDatabaseResponses]; + +export type ApplicationDeleteServerDatabaseData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerDatabaseServerIdPathParameter; + /** + * The database ID. + */ + database_id: ApplicationGetServerDatabaseDatabaseIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/databases/{database_id}'; +}; + +export type ApplicationDeleteServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationDeleteServerDatabaseError = ApplicationDeleteServerDatabaseErrors[keyof ApplicationDeleteServerDatabaseErrors]; + +export type ApplicationDeleteServerDatabaseResponses = { + /** + * Database deleted. + */ + 204: void; +}; + +export type ApplicationDeleteServerDatabaseResponse = ApplicationDeleteServerDatabaseResponses[keyof ApplicationDeleteServerDatabaseResponses]; + +export type ApplicationGetServerDatabaseData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationGetServerDatabaseServerIdPathParameter; + /** + * The database ID. + */ + database_id: ApplicationGetServerDatabaseDatabaseIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" and "host" when the key can read database hosts. + */ + include?: ApplicationGetServerDatabaseIncludeQueryParameter; + }; + url: '/api/application/servers/{server_id}/databases/{database_id}'; +}; + +export type ApplicationGetServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationGetServerDatabaseError = ApplicationGetServerDatabaseErrors[keyof ApplicationGetServerDatabaseErrors]; + +export type ApplicationGetServerDatabaseResponses = { + 200: ApplicationServerDatabaseResource; +}; + +export type ApplicationGetServerDatabaseResponse = ApplicationGetServerDatabaseResponses[keyof ApplicationGetServerDatabaseResponses]; + +export type ApplicationResetServerDatabasePasswordData = { + body?: never; + path: { + /** + * The server ID. + */ + server_id: ApplicationResetServerDatabasePasswordServerIdPathParameter; + /** + * The database ID. + */ + database_id: ApplicationResetServerDatabasePasswordDatabaseIdPathParameter; + }; + query?: never; + url: '/api/application/servers/{server_id}/databases/{database_id}/reset-password'; +}; + +export type ApplicationResetServerDatabasePasswordErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ApplicationResetServerDatabasePasswordError = ApplicationResetServerDatabasePasswordErrors[keyof ApplicationResetServerDatabasePasswordErrors]; + +export type ApplicationResetServerDatabasePasswordResponses = { + /** + * Database password reset. + */ + 204: void; +}; + +export type ApplicationResetServerDatabasePasswordResponse = ApplicationResetServerDatabasePasswordResponses[keyof ApplicationResetServerDatabasePasswordResponses]; + +export type AuthLoginData = { + body: AuthLoginRequest; + path?: never; + query?: never; + url: '/auth/login'; +}; + +export type AuthLoginErrors = { + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AuthLoginError = AuthLoginErrors[keyof AuthLoginErrors]; + +export type AuthLoginResponses = { + 200: AuthLoginResponse; +}; + +export type AuthLoginResponse2 = AuthLoginResponses[keyof AuthLoginResponses]; + +export type AuthCompleteLoginCheckpointData = { + body: AuthCompleteLoginCheckpointRequest; + path?: never; + query?: never; + url: '/auth/login/checkpoint'; +}; + +export type AuthCompleteLoginCheckpointErrors = { + /** + * The checkpoint token, TOTP code, or recovery token is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AuthCompleteLoginCheckpointError = AuthCompleteLoginCheckpointErrors[keyof AuthCompleteLoginCheckpointErrors]; + +export type AuthCompleteLoginCheckpointResponses = { + /** + * Login completed and a browser session was created. + */ + 200: AuthLoginCompleteResponse; +}; + +export type AuthCompleteLoginCheckpointResponse = AuthCompleteLoginCheckpointResponses[keyof AuthCompleteLoginCheckpointResponses]; + +export type AuthRequestPasswordResetEmailData = { + body: AuthRequestPasswordResetEmailRequest; + path?: never; + query?: never; + url: '/auth/password'; +}; + +export type AuthRequestPasswordResetEmailErrors = { + /** + * The reCAPTCHA token is invalid or missing. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AuthRequestPasswordResetEmailError = AuthRequestPasswordResetEmailErrors[keyof AuthRequestPasswordResetEmailErrors]; + +export type AuthRequestPasswordResetEmailResponses = { + /** + * Password reset email accepted. + */ + 200: AuthPasswordResetEmailResponse; +}; + +export type AuthRequestPasswordResetEmailResponse = AuthRequestPasswordResetEmailResponses[keyof AuthRequestPasswordResetEmailResponses]; + +export type AuthResetPasswordData = { + body: AuthResetPasswordRequest; + path?: never; + query?: never; + url: '/auth/password/reset'; +}; + +export type AuthResetPasswordErrors = { + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type AuthResetPasswordError = AuthResetPasswordErrors[keyof AuthResetPasswordErrors]; + +export type AuthResetPasswordResponses = { + /** + * Password reset completed. + */ + 200: AuthResetPasswordResponse; +}; + +export type AuthResetPasswordResponse2 = AuthResetPasswordResponses[keyof AuthResetPasswordResponses]; + +export type AuthLogoutData = { + body?: never; + path?: never; + query?: never; + url: '/auth/logout'; +}; + +export type AuthLogoutErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; + +export type AuthLogoutError = AuthLogoutErrors[keyof AuthLogoutErrors]; + +export type AuthLogoutResponses = { + /** + * The browser session was destroyed. + */ + 204: void; +}; + +export type AuthLogoutResponse = AuthLogoutResponses[keyof AuthLogoutResponses]; + +export type ClientListClientServersData = { + body?: never; + path?: never; + query?: { + /** + * Page number to return. + */ + page?: ClientListClientServersPageQueryParameter; + /** + * Number of servers to return per page. The maximum is 100. + */ + per_page?: ClientListClientServersPerPageQueryParameter; + /** + * Scope of servers to return. "owner" returns owned servers, "admin" returns admin-accessible servers excluding owned or subuser servers, and "admin-all" returns all servers for root administrators. + */ + type?: ClientListClientServersTypeQueryParameter; + /** + * Filter servers by UUID. + */ + 'filter[uuid]'?: ClientListClientServersFilterUuidQueryParameter; + /** + * Filter servers by name. + */ + 'filter[name]'?: ClientListClientServersFilterNameQueryParameter; + /** + * Filter servers by description. + */ + 'filter[description]'?: ClientListClientServersFilterDescriptionQueryParameter; + /** + * Filter servers by external identifier. + */ + 'filter[external_id]'?: ClientListClientServersFilterExternalIdQueryParameter; + /** + * Search across server name, UUID, short UUID, external identifier, or allocation address and port. + */ + 'filter[*]'?: ClientListClientServersFilterWildcardQueryParameter; + }; + url: '/api/client'; +}; + +export type ClientListClientServersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientListClientServersError = ClientListClientServersErrors[keyof ClientListClientServersErrors]; + +export type ClientListClientServersResponses = { + /** + * Accessible servers returned. + */ + 200: ClientServerPaginatedResponse; +}; + +export type ClientListClientServersResponse = ClientListClientServersResponses[keyof ClientListClientServersResponses]; + +export type ClientListServerPermissionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/permissions'; +}; + +export type ClientListServerPermissionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; + +export type ClientListServerPermissionsError = ClientListServerPermissionsErrors[keyof ClientListServerPermissionsErrors]; + +export type ClientListServerPermissionsResponses = { + /** + * System permission definitions returned. + */ + 200: ClientSystemPermissionsResponse; +}; + +export type ClientListServerPermissionsResponse = ClientListServerPermissionsResponses[keyof ClientListServerPermissionsResponses]; + +export type ClientGetExtensionJobProgressData = { + body?: never; + path: { + /** + * The extension identifier. + */ + extension: ClientGetExtensionJobProgressExtensionPathParameter; + /** + * The progress job UUID. + */ + job: ClientGetExtensionJobProgressJobPathParameter; + }; + query?: never; + url: '/api/client/extension-progress/{extension}/{job}'; +}; + +export type ClientGetExtensionJobProgressErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetExtensionJobProgressError = ClientGetExtensionJobProgressErrors[keyof ClientGetExtensionJobProgressErrors]; + +export type ClientGetExtensionJobProgressResponses = { + 200: ClientGetExtensionJobProgressResponseBody; +}; + +export type ClientGetExtensionJobProgressResponse = ClientGetExtensionJobProgressResponses[keyof ClientGetExtensionJobProgressResponses]; + +export type ClientGetAccountData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account'; +}; + +export type ClientGetAccountErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; + +export type ClientGetAccountError = ClientGetAccountErrors[keyof ClientGetAccountErrors]; + +export type ClientGetAccountResponses = { + 200: ClientUserResource; +}; + +export type ClientGetAccountResponse = ClientGetAccountResponses[keyof ClientGetAccountResponses]; + +export type ClientGetTwoFactorSetupData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/two-factor'; +}; + +export type ClientGetTwoFactorSetupErrors = { + /** + * Two-factor authentication is already enabled. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; +}; + +export type ClientGetTwoFactorSetupError = ClientGetTwoFactorSetupErrors[keyof ClientGetTwoFactorSetupErrors]; + +export type ClientGetTwoFactorSetupResponses = { + /** + * Two-factor setup data returned. + */ + 200: ClientTwoFactorSetupResponse; +}; + +export type ClientGetTwoFactorSetupResponse = ClientGetTwoFactorSetupResponses[keyof ClientGetTwoFactorSetupResponses]; + +export type ClientEnableTwoFactorAuthenticationData = { + body: ClientEnableTwoFactorAuthenticationRequest; + path?: never; + query?: never; + url: '/api/client/account/two-factor'; +}; + +export type ClientEnableTwoFactorAuthenticationErrors = { + /** + * The password or TOTP code is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientEnableTwoFactorAuthenticationError = ClientEnableTwoFactorAuthenticationErrors[keyof ClientEnableTwoFactorAuthenticationErrors]; + +export type ClientEnableTwoFactorAuthenticationResponses = { + /** + * Two-factor authentication enabled. Store these recovery tokens now; they are not shown again. + */ + 200: ClientRecoveryTokensResource; +}; + +export type ClientEnableTwoFactorAuthenticationResponse = ClientEnableTwoFactorAuthenticationResponses[keyof ClientEnableTwoFactorAuthenticationResponses]; + +export type ClientDisableTwoFactorAuthenticationData = { + body: ClientDisableTwoFactorAuthenticationRequest; + path?: never; + query?: never; + url: '/api/client/account/two-factor/disable'; +}; + +export type ClientDisableTwoFactorAuthenticationErrors = { + /** + * The password is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientDisableTwoFactorAuthenticationError = ClientDisableTwoFactorAuthenticationErrors[keyof ClientDisableTwoFactorAuthenticationErrors]; + +export type ClientDisableTwoFactorAuthenticationResponses = { + /** + * Two-factor authentication disabled. + */ + 204: void; +}; + +export type ClientDisableTwoFactorAuthenticationResponse = ClientDisableTwoFactorAuthenticationResponses[keyof ClientDisableTwoFactorAuthenticationResponses]; + +export type ClientUpdateAccountEmailData = { + body: ClientUpdateAccountEmailRequest; + path?: never; + query?: never; + url: '/api/client/account/email'; +}; + +export type ClientUpdateAccountEmailErrors = { + /** + * The current password is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * The account has changed email too many times in the current throttle window. + */ + 429: ErrorEnvelope; +}; + +export type ClientUpdateAccountEmailError = ClientUpdateAccountEmailErrors[keyof ClientUpdateAccountEmailErrors]; + +export type ClientUpdateAccountEmailResponses = { + /** + * Email address updated. + */ + 204: void; +}; + +export type ClientUpdateAccountEmailResponse = ClientUpdateAccountEmailResponses[keyof ClientUpdateAccountEmailResponses]; + +export type ClientUpdateAccountPasswordData = { + body: ClientUpdateAccountPasswordRequest; + path?: never; + query?: never; + url: '/api/client/account/password'; +}; + +export type ClientUpdateAccountPasswordErrors = { + /** + * The current password is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientUpdateAccountPasswordError = ClientUpdateAccountPasswordErrors[keyof ClientUpdateAccountPasswordErrors]; + +export type ClientUpdateAccountPasswordResponses = { + /** + * Password updated. + */ + 204: void; +}; + +export type ClientUpdateAccountPasswordResponse = ClientUpdateAccountPasswordResponses[keyof ClientUpdateAccountPasswordResponses]; + +export type ClientListAccountActivityData = { + body?: never; + path?: never; + query?: { + /** + * Page number to retrieve. + */ + page?: ClientListAccountActivityPageQueryParameter; + /** + * Number of activity log entries to return per page. The maximum is 100. + */ + per_page?: ClientListAccountActivityPerPageQueryParameter; + /** + * Filter activity by event name. + */ + 'filter[event]'?: ClientListAccountActivityFilterEventQueryParameter; + /** + * Filter activity by the username or email of the user that performed it. + */ + 'filter[user]'?: ClientListAccountActivityFilterUserQueryParameter; + /** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ + 'filter[user_id]'?: ClientListAccountActivityFilterUserIdQueryParameter; + /** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ + 'filter[event_name]'?: ClientListAccountActivityFilterEventNameQueryParameter; + /** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ + sort?: ClientListAccountActivitySortQueryParameter; + /** + * Comma-separated relationships to include. Supports actor. + */ + include?: ClientListAccountActivityIncludeQueryParameter; + }; + url: '/api/client/account/activity'; +}; + +export type ClientListAccountActivityErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientListAccountActivityError = ClientListAccountActivityErrors[keyof ClientListAccountActivityErrors]; + +export type ClientListAccountActivityResponses = { + /** + * Activity logs returned. + */ + 200: ClientActivityLogPaginatedResponse; +}; + +export type ClientListAccountActivityResponse = ClientListAccountActivityResponses[keyof ClientListAccountActivityResponses]; + +export type ClientListAccountActivityFilterOptionsData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/activity/filters'; +}; + +export type ClientListAccountActivityFilterOptionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ClientListAccountActivityFilterOptionsError = ClientListAccountActivityFilterOptionsErrors[keyof ClientListAccountActivityFilterOptionsErrors]; + +export type ClientListAccountActivityFilterOptionsResponses = { + /** + * Filter options returned. + */ + 200: ClientListAccountActivityFilterOptionsResponseBody; +}; + +export type ClientListAccountActivityFilterOptionsResponse = ClientListAccountActivityFilterOptionsResponses[keyof ClientListAccountActivityFilterOptionsResponses]; + +export type ClientListAccountApiKeysData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/api-keys'; +}; + +export type ClientListAccountApiKeysErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ClientListAccountApiKeysError = ClientListAccountApiKeysErrors[keyof ClientListAccountApiKeysErrors]; + +export type ClientListAccountApiKeysResponses = { + /** + * API keys returned. + */ + 200: ClientApiKeyListResponse; +}; + +export type ClientListAccountApiKeysResponse = ClientListAccountApiKeysResponses[keyof ClientListAccountApiKeysResponses]; + +export type ClientCreateAccountApiKeyData = { + body: ClientCreateAccountApiKeyRequest; + path?: never; + query?: never; + url: '/api/client/account/api-keys'; +}; + +export type ClientCreateAccountApiKeyErrors = { + /** + * The account already has the maximum number of API keys. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientCreateAccountApiKeyError = ClientCreateAccountApiKeyErrors[keyof ClientCreateAccountApiKeyErrors]; + +export type ClientCreateAccountApiKeyResponses = { + /** + * API key created. + */ + 200: ClientApiKeyResource; +}; + +export type ClientCreateAccountApiKeyResponse = ClientCreateAccountApiKeyResponses[keyof ClientCreateAccountApiKeyResponses]; + +export type ClientDeleteAccountApiKeyData = { + body?: never; + path: { + /** + * The server UUID or short UUID. + */ + identifier: ClientDeleteAccountApiKeyIdentifierPathParameter; + }; + query?: never; + url: '/api/client/account/api-keys/{identifier}'; +}; + +export type ClientDeleteAccountApiKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientDeleteAccountApiKeyError = ClientDeleteAccountApiKeyErrors[keyof ClientDeleteAccountApiKeyErrors]; + +export type ClientDeleteAccountApiKeyResponses = { + /** + * API key deleted. + */ + 204: void; +}; + +export type ClientDeleteAccountApiKeyResponse = ClientDeleteAccountApiKeyResponses[keyof ClientDeleteAccountApiKeyResponses]; + +export type ClientListSshKeysData = { + body?: never; + path?: never; + query?: never; + url: '/api/client/account/ssh-keys'; +}; + +export type ClientListSshKeysErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; +}; + +export type ClientListSshKeysError = ClientListSshKeysErrors[keyof ClientListSshKeysErrors]; + +export type ClientListSshKeysResponses = { + /** + * SSH keys returned. + */ + 200: ClientSshKeyListResponse; +}; + +export type ClientListSshKeysResponse = ClientListSshKeysResponses[keyof ClientListSshKeysResponses]; + +export type ClientCreateSshKeyData = { + body: ClientCreateSshKeyRequest; + path?: never; + query?: never; + url: '/api/client/account/ssh-keys'; +}; + +export type ClientCreateSshKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientCreateSshKeyError = ClientCreateSshKeyErrors[keyof ClientCreateSshKeyErrors]; + +export type ClientCreateSshKeyResponses = { + /** + * SSH key created. + */ + 200: ClientSshKeyResource; +}; + +export type ClientCreateSshKeyResponse = ClientCreateSshKeyResponses[keyof ClientCreateSshKeyResponses]; + +export type ClientDeleteSshKeyData = { + body: ClientDeleteSshKeyRequest; + path?: never; + query?: never; + url: '/api/client/account/ssh-keys/remove'; +}; + +export type ClientDeleteSshKeyErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientDeleteSshKeyError = ClientDeleteSshKeyErrors[keyof ClientDeleteSshKeyErrors]; + +export type ClientDeleteSshKeyResponses = { + /** + * SSH key deleted or already absent. + */ + 204: void; +}; + +export type ClientDeleteSshKeyResponse = ClientDeleteSshKeyResponses[keyof ClientDeleteSshKeyResponses]; + +export type ClientGetServerData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}'; +}; + +export type ClientGetServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetServerError = ClientGetServerErrors[keyof ClientGetServerErrors]; + +export type ClientGetServerResponses = { + /** + * Server details returned. + */ + 200: ClientServerResource; +}; + +export type ClientGetServerResponse = ClientGetServerResponses[keyof ClientGetServerResponses]; + +export type ClientGetWebsocketCredentialsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetWebsocketCredentialsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/websocket'; +}; + +export type ClientGetWebsocketCredentialsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetWebsocketCredentialsError = ClientGetWebsocketCredentialsErrors[keyof ClientGetWebsocketCredentialsErrors]; + +export type ClientGetWebsocketCredentialsResponses = { + /** + * Websocket credentials returned. + */ + 200: ClientGetWebsocketCredentialsResponseBody; +}; + +export type ClientGetWebsocketCredentialsResponse = ClientGetWebsocketCredentialsResponses[keyof ClientGetWebsocketCredentialsResponses]; + +export type ClientGetServerResourcesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerResourcesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/resources'; +}; + +export type ClientGetServerResourcesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * Wings could not be reached for resource utilization. + */ + 502: ErrorEnvelope; +}; + +export type ClientGetServerResourcesError = ClientGetServerResourcesErrors[keyof ClientGetServerResourcesErrors]; + +export type ClientGetServerResourcesResponses = { + /** + * Resource utilization returned. + */ + 200: ClientStatsResource; +}; + +export type ClientGetServerResourcesResponse = ClientGetServerResourcesResponses[keyof ClientGetServerResourcesResponses]; + +export type ClientGetServerLogsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerLogsServerUuidPathParameter; + }; + query?: { + /** + * Number of lines to return. Defaults to the maximum of 100. + */ + lines?: ClientGetServerLogsLinesQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/logs'; +}; + +export type ClientGetServerLogsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not read the console output. + */ + 502: ErrorEnvelope; +}; + +export type ClientGetServerLogsError = ClientGetServerLogsErrors[keyof ClientGetServerLogsErrors]; + +export type ClientGetServerLogsResponses = { + /** + * Console output returned. + */ + 200: ClientServerLogsResource; +}; + +export type ClientGetServerLogsResponse = ClientGetServerLogsResponses[keyof ClientGetServerLogsResponses]; + +export type ClientGetServerExtensionJobProgressData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerExtensionJobProgressServerUuidPathParameter; + /** + * The extension identifier. + */ + extension: ClientGetServerExtensionJobProgressExtensionPathParameter; + /** + * The progress job UUID. + */ + job: ClientGetServerExtensionJobProgressJobPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/extension-progress/{extension}/{job}'; +}; + +export type ClientGetServerExtensionJobProgressErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetServerExtensionJobProgressError = ClientGetServerExtensionJobProgressErrors[keyof ClientGetServerExtensionJobProgressErrors]; + +export type ClientGetServerExtensionJobProgressResponses = { + 200: ClientGetServerExtensionJobProgressResponseBody; +}; + +export type ClientGetServerExtensionJobProgressResponse = ClientGetServerExtensionJobProgressResponses[keyof ClientGetServerExtensionJobProgressResponses]; + +export type ClientListServerActivityData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerActivityServerUuidPathParameter; + }; + query?: { + /** + * Page number to retrieve. + */ + page?: ClientListServerActivityPageQueryParameter; + /** + * Number of activity log entries to return per page. The maximum is 100. + */ + per_page?: ClientListServerActivityPerPageQueryParameter; + /** + * Filter activity by event name. + */ + 'filter[event]'?: ClientListServerActivityFilterEventQueryParameter; + /** + * Filter activity by the username or email of the user that performed it. + */ + 'filter[user]'?: ClientListServerActivityFilterUserQueryParameter; + /** + * Filter activity to a single user by ID. Preferred over filter[user] when the exact user is known. + */ + 'filter[user_id]'?: ClientListServerActivityFilterUserIdQueryParameter; + /** + * Filter activity to one exact event name. Preferred over filter[event], which matches substrings. + */ + 'filter[event_name]'?: ClientListServerActivityFilterEventNameQueryParameter; + /** + * Sort activity by timestamp. Prefix with "-" for descending order. + */ + sort?: ClientListServerActivitySortQueryParameter; + /** + * Comma-separated relationships to include. Supports actor. + */ + include?: ClientListServerActivityIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/activity'; +}; + +export type ClientListServerActivityErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientListServerActivityError = ClientListServerActivityErrors[keyof ClientListServerActivityErrors]; + +export type ClientListServerActivityResponses = { + /** + * Server activity logs returned. + */ + 200: ClientActivityLogPaginatedResponse; +}; + +export type ClientListServerActivityResponse = ClientListServerActivityResponses[keyof ClientListServerActivityResponses]; + +export type ClientListServerActivityFilterOptionsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerActivityFilterOptionsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/activity/filters'; +}; + +export type ClientListServerActivityFilterOptionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientListServerActivityFilterOptionsError = ClientListServerActivityFilterOptionsErrors[keyof ClientListServerActivityFilterOptionsErrors]; + +export type ClientListServerActivityFilterOptionsResponses = { + /** + * Filter options returned. + */ + 200: ClientListServerActivityFilterOptionsResponseBody; +}; + +export type ClientListServerActivityFilterOptionsResponse = ClientListServerActivityFilterOptionsResponses[keyof ClientListServerActivityFilterOptionsResponses]; + +export type ClientSendServerCommandData = { + body: ClientSendServerCommandRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSendServerCommandServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/command'; +}; + +export type ClientSendServerCommandErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * The server is not online or Wings rejected the command. + */ + 502: ErrorEnvelope; +}; + +export type ClientSendServerCommandError = ClientSendServerCommandErrors[keyof ClientSendServerCommandErrors]; + +export type ClientSendServerCommandResponses = { + /** + * Command accepted by Wings. + */ + 204: void; +}; + +export type ClientSendServerCommandResponse = ClientSendServerCommandResponses[keyof ClientSendServerCommandResponses]; + +export type ClientSendPowerActionData = { + body: ClientSendPowerActionRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSendPowerActionServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/power'; +}; + +export type ClientSendPowerActionErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientSendPowerActionError = ClientSendPowerActionErrors[keyof ClientSendPowerActionErrors]; + +export type ClientSendPowerActionResponses = { + /** + * Power signal accepted by Wings. + */ + 204: void; +}; + +export type ClientSendPowerActionResponse = ClientSendPowerActionResponses[keyof ClientSendPowerActionResponses]; + +export type ClientListServerDatabasesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerDatabasesServerUuidPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ + include?: ClientListServerDatabasesIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/databases'; +}; + +export type ClientListServerDatabasesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientListServerDatabasesError = ClientListServerDatabasesErrors[keyof ClientListServerDatabasesErrors]; + +export type ClientListServerDatabasesResponses = { + /** + * Server databases returned. + */ + 200: ClientServerDatabaseListResponse; +}; + +export type ClientListServerDatabasesResponse = ClientListServerDatabasesResponses[keyof ClientListServerDatabasesResponses]; + +export type ClientCreateServerDatabaseData = { + body: ClientCreateServerDatabaseRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerDatabasesServerUuidPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ + include?: ClientCreateServerDatabaseIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/databases'; +}; + +export type ClientCreateServerDatabaseErrors = { + /** + * The server has reached its configured database limit or client database creation is disabled. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientCreateServerDatabaseError = ClientCreateServerDatabaseErrors[keyof ClientCreateServerDatabaseErrors]; + +export type ClientCreateServerDatabaseResponses = { + /** + * Database created. + */ + 200: ClientServerDatabaseResource; +}; + +export type ClientCreateServerDatabaseResponse = ClientCreateServerDatabaseResponses[keyof ClientCreateServerDatabaseResponses]; + +export type ClientRotateServerDatabasePasswordData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRotateServerDatabasePasswordServerUuidPathParameter; + /** + * The database ID. + */ + database_id: ClientRotateServerDatabasePasswordDatabaseIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports "password" when the user can view database passwords. + */ + include?: ClientRotateServerDatabasePasswordIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/databases/{database_id}/rotate-password'; +}; + +export type ClientRotateServerDatabasePasswordErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientRotateServerDatabasePasswordError = ClientRotateServerDatabasePasswordErrors[keyof ClientRotateServerDatabasePasswordErrors]; + +export type ClientRotateServerDatabasePasswordResponses = { + /** + * Database password rotated. + */ + 200: ClientServerDatabaseResource; +}; + +export type ClientRotateServerDatabasePasswordResponse = ClientRotateServerDatabasePasswordResponses[keyof ClientRotateServerDatabasePasswordResponses]; + +export type ClientDeleteServerDatabaseData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientDeleteServerDatabaseServerUuidPathParameter; + /** + * The database ID. + */ + database_id: ClientDeleteServerDatabaseDatabaseIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/databases/{database_id}'; +}; + +export type ClientDeleteServerDatabaseErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientDeleteServerDatabaseError = ClientDeleteServerDatabaseErrors[keyof ClientDeleteServerDatabaseErrors]; + +export type ClientDeleteServerDatabaseResponses = { + /** + * Database deleted. + */ + 204: void; +}; + +export type ClientDeleteServerDatabaseResponse = ClientDeleteServerDatabaseResponses[keyof ClientDeleteServerDatabaseResponses]; + +export type ClientListFilesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListFilesServerUuidPathParameter; + }; + query?: { + /** + * Directory to list. Defaults to the server root. + */ + directory?: ClientListFilesDirectoryQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/list'; +}; + +export type ClientListFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not list the directory. + */ + 502: ErrorEnvelope; +}; + +export type ClientListFilesError = ClientListFilesErrors[keyof ClientListFilesErrors]; + +export type ClientListFilesResponses = { + /** + * Directory contents returned. + */ + 200: ClientFileObjectListResponse; +}; + +export type ClientListFilesResponse = ClientListFilesResponses[keyof ClientListFilesResponses]; + +export type ClientGetFileContentsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetFileContentsServerUuidPathParameter; + }; + query: { + /** + * Path to the file to read. + */ + file: ClientGetFileContentsFileQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/contents'; +}; + +export type ClientGetFileContentsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not read the file. + */ + 502: ErrorEnvelope; +}; + +export type ClientGetFileContentsError = ClientGetFileContentsErrors[keyof ClientGetFileContentsErrors]; + +export type ClientGetFileContentsResponses = { + /** + * File contents returned as text/plain. + */ + 200: ClientGetFileContentsResponseBody; +}; + +export type ClientGetFileContentsResponse = ClientGetFileContentsResponses[keyof ClientGetFileContentsResponses]; + +export type ClientGetFileDownloadUrlData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetFileDownloadUrlServerUuidPathParameter; + }; + query: { + /** + * Path to the file to download. + */ + file: ClientGetFileDownloadUrlFileQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/download'; +}; + +export type ClientGetFileDownloadUrlErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not create the download URL. + */ + 502: ErrorEnvelope; +}; + +export type ClientGetFileDownloadUrlError = ClientGetFileDownloadUrlErrors[keyof ClientGetFileDownloadUrlErrors]; + +export type ClientGetFileDownloadUrlResponses = { + /** + * Signed download URL returned. + */ + 200: ClientSignedUrlResource; +}; + +export type ClientGetFileDownloadUrlResponse = ClientGetFileDownloadUrlResponses[keyof ClientGetFileDownloadUrlResponses]; + +export type ClientRenameFilesData = { + body?: ClientRenameFilesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRenameFilesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/rename'; +}; + +export type ClientRenameFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not rename the files. + */ + 502: ErrorEnvelope; +}; + +export type ClientRenameFilesError = ClientRenameFilesErrors[keyof ClientRenameFilesErrors]; + +export type ClientRenameFilesResponses = { + /** + * Files renamed. + */ + 204: void; +}; + +export type ClientRenameFilesResponse = ClientRenameFilesResponses[keyof ClientRenameFilesResponses]; + +export type ClientCopyFileData = { + body: ClientCopyFileRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCopyFileServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/copy'; +}; + +export type ClientCopyFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not copy the file. + */ + 502: ErrorEnvelope; +}; + +export type ClientCopyFileError = ClientCopyFileErrors[keyof ClientCopyFileErrors]; + +export type ClientCopyFileResponses = { + /** + * File copied. + */ + 204: void; +}; + +export type ClientCopyFileResponse = ClientCopyFileResponses[keyof ClientCopyFileResponses]; + +export type ClientWriteFileContentsData = { + body: ClientWriteFileContentsRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientWriteFileContentsServerUuidPathParameter; + }; + query: { + /** + * Path to the file to write. + */ + file: ClientWriteFileContentsFileQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/files/write'; +}; + +export type ClientWriteFileContentsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not write the file. + */ + 502: ErrorEnvelope; +}; + +export type ClientWriteFileContentsError = ClientWriteFileContentsErrors[keyof ClientWriteFileContentsErrors]; + +export type ClientWriteFileContentsResponses = { + /** + * File contents written. + */ + 204: void; +}; + +export type ClientWriteFileContentsResponse = ClientWriteFileContentsResponses[keyof ClientWriteFileContentsResponses]; + +export type ClientCompressFilesData = { + body?: ClientCompressFilesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCompressFilesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/compress'; +}; + +export type ClientCompressFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not create the archive. + */ + 502: ErrorEnvelope; +}; + +export type ClientCompressFilesError = ClientCompressFilesErrors[keyof ClientCompressFilesErrors]; + +export type ClientCompressFilesResponses = { + /** + * Archive created. + */ + 200: ClientFileObjectResource; +}; + +export type ClientCompressFilesResponse = ClientCompressFilesResponses[keyof ClientCompressFilesResponses]; + +export type ClientDecompressFileData = { + body: ClientDecompressFileRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientDecompressFileServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/decompress'; +}; + +export type ClientDecompressFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not extract the archive. + */ + 502: ErrorEnvelope; +}; + +export type ClientDecompressFileError = ClientDecompressFileErrors[keyof ClientDecompressFileErrors]; + +export type ClientDecompressFileResponses = { + /** + * Archive extracted. + */ + 204: void; +}; + +export type ClientDecompressFileResponse = ClientDecompressFileResponses[keyof ClientDecompressFileResponses]; + +export type ClientDeleteFilesData = { + body?: ClientDeleteFilesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientDeleteFilesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/delete'; +}; + +export type ClientDeleteFilesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not delete the files. + */ + 502: ErrorEnvelope; +}; + +export type ClientDeleteFilesError = ClientDeleteFilesErrors[keyof ClientDeleteFilesErrors]; + +export type ClientDeleteFilesResponses = { + /** + * Files deleted. + */ + 204: void; +}; + +export type ClientDeleteFilesResponse = ClientDeleteFilesResponses[keyof ClientDeleteFilesResponses]; + +export type ClientCreateFolderData = { + body: ClientCreateFolderRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCreateFolderServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/create-folder'; +}; + +export type ClientCreateFolderErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not create the folder. + */ + 502: ErrorEnvelope; +}; + +export type ClientCreateFolderError = ClientCreateFolderErrors[keyof ClientCreateFolderErrors]; + +export type ClientCreateFolderResponses = { + /** + * Folder created. + */ + 204: void; +}; + +export type ClientCreateFolderResponse = ClientCreateFolderResponses[keyof ClientCreateFolderResponses]; + +export type ClientChangeFilePermissionsData = { + body: ClientChangeFilePermissionsRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientChangeFilePermissionsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/chmod'; +}; + +export type ClientChangeFilePermissionsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not update file permissions. + */ + 502: ErrorEnvelope; +}; + +export type ClientChangeFilePermissionsError = ClientChangeFilePermissionsErrors[keyof ClientChangeFilePermissionsErrors]; + +export type ClientChangeFilePermissionsResponses = { + /** + * File permissions updated. + */ + 204: void; +}; + +export type ClientChangeFilePermissionsResponse = ClientChangeFilePermissionsResponses[keyof ClientChangeFilePermissionsResponses]; + +export type ClientPullRemoteFileData = { + body: ClientPullRemoteFileRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientPullRemoteFileServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/pull'; +}; + +export type ClientPullRemoteFileErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; + /** + * Wings could not pull the remote file. + */ + 502: ErrorEnvelope; +}; + +export type ClientPullRemoteFileError = ClientPullRemoteFileErrors[keyof ClientPullRemoteFileErrors]; + +export type ClientPullRemoteFileResponses = { + /** + * Remote file pull queued or completed. + */ + 204: void; +}; + +export type ClientPullRemoteFileResponse = ClientPullRemoteFileResponses[keyof ClientPullRemoteFileResponses]; + +export type ClientGetFileUploadUrlData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetFileUploadUrlServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/files/upload'; +}; + +export type ClientGetFileUploadUrlErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetFileUploadUrlError = ClientGetFileUploadUrlErrors[keyof ClientGetFileUploadUrlErrors]; + +export type ClientGetFileUploadUrlResponses = { + /** + * Signed upload URL returned. + */ + 200: ClientSignedUrlResource; +}; + +export type ClientGetFileUploadUrlResponse = ClientGetFileUploadUrlResponses[keyof ClientGetFileUploadUrlResponses]; + +export type ClientListServerSchedulesData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSchedulesServerUuidPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports tasks. + */ + include?: ClientListServerSchedulesIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/schedules'; +}; + +export type ClientListServerSchedulesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientListServerSchedulesError = ClientListServerSchedulesErrors[keyof ClientListServerSchedulesErrors]; + +export type ClientListServerSchedulesResponses = { + /** + * Server schedules returned. + */ + 200: ClientServerScheduleListResponse; +}; + +export type ClientListServerSchedulesResponse = ClientListServerSchedulesResponses[keyof ClientListServerSchedulesResponses]; + +export type ClientCreateServerScheduleData = { + body: ClientCreateServerScheduleRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSchedulesServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules'; +}; + +export type ClientCreateServerScheduleErrors = { + /** + * The cron expression is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientCreateServerScheduleError = ClientCreateServerScheduleErrors[keyof ClientCreateServerScheduleErrors]; + +export type ClientCreateServerScheduleResponses = { + /** + * Schedule created. + */ + 200: ClientServerScheduleResource; +}; + +export type ClientCreateServerScheduleResponse = ClientCreateServerScheduleResponses[keyof ClientCreateServerScheduleResponses]; + +export type ClientDeleteServerScheduleData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientGetServerScheduleScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}'; +}; + +export type ClientDeleteServerScheduleErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientDeleteServerScheduleError = ClientDeleteServerScheduleErrors[keyof ClientDeleteServerScheduleErrors]; + +export type ClientDeleteServerScheduleResponses = { + /** + * Schedule deleted. + */ + 204: void; +}; + +export type ClientDeleteServerScheduleResponse = ClientDeleteServerScheduleResponses[keyof ClientDeleteServerScheduleResponses]; + +export type ClientGetServerScheduleData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientGetServerScheduleScheduleIdPathParameter; + }; + query?: { + /** + * Comma-separated relationships to include. Supports tasks. + */ + include?: ClientGetServerScheduleIncludeQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}'; +}; + +export type ClientGetServerScheduleErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetServerScheduleError = ClientGetServerScheduleErrors[keyof ClientGetServerScheduleErrors]; + +export type ClientGetServerScheduleResponses = { + /** + * Server schedule returned. + */ + 200: ClientServerScheduleResource; +}; + +export type ClientGetServerScheduleResponse = ClientGetServerScheduleResponses[keyof ClientGetServerScheduleResponses]; + +export type ClientUpdateServerScheduleData = { + body: ClientUpdateServerScheduleRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientGetServerScheduleScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}'; +}; + +export type ClientUpdateServerScheduleErrors = { + /** + * The cron expression is invalid. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientUpdateServerScheduleError = ClientUpdateServerScheduleErrors[keyof ClientUpdateServerScheduleErrors]; + +export type ClientUpdateServerScheduleResponses = { + /** + * Schedule updated. + */ + 200: ClientServerScheduleResource; +}; + +export type ClientUpdateServerScheduleResponse = ClientUpdateServerScheduleResponses[keyof ClientUpdateServerScheduleResponses]; + +export type ClientExecuteServerScheduleData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientExecuteServerScheduleServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientExecuteServerScheduleScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/execute'; +}; + +export type ClientExecuteServerScheduleErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientExecuteServerScheduleError = ClientExecuteServerScheduleErrors[keyof ClientExecuteServerScheduleErrors]; + +export type ClientExecuteServerScheduleResponses = { + /** + * Schedule execution queued. + */ + 202: unknown; +}; + +export type ClientCreateScheduleTaskData = { + body: ClientCreateScheduleTaskRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientCreateScheduleTaskServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientCreateScheduleTaskScheduleIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/tasks'; +}; + +export type ClientCreateScheduleTaskErrors = { + /** + * The schedule has reached its configured task limit. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientCreateScheduleTaskError = ClientCreateScheduleTaskErrors[keyof ClientCreateScheduleTaskErrors]; + +export type ClientCreateScheduleTaskResponses = { + /** + * Schedule task created. + */ + 200: ClientScheduleTaskResource; +}; + +export type ClientCreateScheduleTaskResponse = ClientCreateScheduleTaskResponses[keyof ClientCreateScheduleTaskResponses]; + +export type ClientDeleteScheduleTaskData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateScheduleTaskServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientUpdateScheduleTaskScheduleIdPathParameter; + /** + * The task ID. + */ + task_id: ClientUpdateScheduleTaskTaskIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/tasks/{task_id}'; +}; + +export type ClientDeleteScheduleTaskErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientDeleteScheduleTaskError = ClientDeleteScheduleTaskErrors[keyof ClientDeleteScheduleTaskErrors]; + +export type ClientDeleteScheduleTaskResponses = { + /** + * Schedule task deleted. + */ + 204: void; +}; + +export type ClientDeleteScheduleTaskResponse = ClientDeleteScheduleTaskResponses[keyof ClientDeleteScheduleTaskResponses]; + +export type ClientUpdateScheduleTaskData = { + body: ClientUpdateScheduleTaskRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateScheduleTaskServerUuidPathParameter; + /** + * The schedule ID. + */ + schedule_id: ClientUpdateScheduleTaskScheduleIdPathParameter; + /** + * The task ID. + */ + task_id: ClientUpdateScheduleTaskTaskIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/schedules/{schedule_id}/tasks/{task_id}'; +}; + +export type ClientUpdateScheduleTaskErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientUpdateScheduleTaskError = ClientUpdateScheduleTaskErrors[keyof ClientUpdateScheduleTaskErrors]; + +export type ClientUpdateScheduleTaskResponses = { + /** + * Schedule task updated. + */ + 200: ClientScheduleTaskResource; +}; + +export type ClientUpdateScheduleTaskResponse = ClientUpdateScheduleTaskResponses[keyof ClientUpdateScheduleTaskResponses]; + +export type ClientListServerAllocationsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerAllocationsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations'; +}; + +export type ClientListServerAllocationsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientListServerAllocationsError = ClientListServerAllocationsErrors[keyof ClientListServerAllocationsErrors]; + +export type ClientListServerAllocationsResponses = { + /** + * Server allocations returned. + */ + 200: ClientAllocationListResponse; +}; + +export type ClientListServerAllocationsResponse = ClientListServerAllocationsResponses[keyof ClientListServerAllocationsResponses]; + +export type ClientCreateServerAllocationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerAllocationsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations'; +}; + +export type ClientCreateServerAllocationErrors = { + /** + * The server has reached its configured allocation limit or no allocation is available. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientCreateServerAllocationError = ClientCreateServerAllocationErrors[keyof ClientCreateServerAllocationErrors]; + +export type ClientCreateServerAllocationResponses = { + /** + * Allocation assigned. + */ + 200: ClientAllocationResource; +}; + +export type ClientCreateServerAllocationResponse = ClientCreateServerAllocationResponses[keyof ClientCreateServerAllocationResponses]; + +export type ClientDeleteServerAllocationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateAllocationNotesServerUuidPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ClientUpdateAllocationNotesAllocationIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations/{allocation_id}'; +}; + +export type ClientDeleteServerAllocationErrors = { + /** + * The allocation cannot be removed because it is primary or the server has no allocation limit. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientDeleteServerAllocationError = ClientDeleteServerAllocationErrors[keyof ClientDeleteServerAllocationErrors]; + +export type ClientDeleteServerAllocationResponses = { + /** + * Allocation removed. + */ + 204: void; +}; + +export type ClientDeleteServerAllocationResponse = ClientDeleteServerAllocationResponses[keyof ClientDeleteServerAllocationResponses]; + +export type ClientUpdateAllocationNotesData = { + body?: ClientUpdateAllocationNotesRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateAllocationNotesServerUuidPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ClientUpdateAllocationNotesAllocationIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations/{allocation_id}'; +}; + +export type ClientUpdateAllocationNotesErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientUpdateAllocationNotesError = ClientUpdateAllocationNotesErrors[keyof ClientUpdateAllocationNotesErrors]; + +export type ClientUpdateAllocationNotesResponses = { + /** + * Allocation notes updated. + */ + 200: ClientAllocationResource; +}; + +export type ClientUpdateAllocationNotesResponse = ClientUpdateAllocationNotesResponses[keyof ClientUpdateAllocationNotesResponses]; + +export type ClientSetPrimaryAllocationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSetPrimaryAllocationServerUuidPathParameter; + /** + * The ID of the allocation. + */ + allocation_id: ClientSetPrimaryAllocationAllocationIdPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/network/allocations/{allocation_id}/primary'; +}; + +export type ClientSetPrimaryAllocationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientSetPrimaryAllocationError = ClientSetPrimaryAllocationErrors[keyof ClientSetPrimaryAllocationErrors]; + +export type ClientSetPrimaryAllocationResponses = { + /** + * Primary allocation updated. + */ + 200: ClientAllocationResource; +}; + +export type ClientSetPrimaryAllocationResponse = ClientSetPrimaryAllocationResponses[keyof ClientSetPrimaryAllocationResponses]; + +export type ClientListServerSubusersData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSubusersServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users'; +}; + +export type ClientListServerSubusersErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientListServerSubusersError = ClientListServerSubusersErrors[keyof ClientListServerSubusersErrors]; + +export type ClientListServerSubusersResponses = { + /** + * Server subusers returned. + */ + 200: ClientServerSubuserListResponse; +}; + +export type ClientListServerSubusersResponse = ClientListServerSubusersResponses[keyof ClientListServerSubusersResponses]; + +export type ClientCreateServerSubuserData = { + body: ClientCreateServerSubuserRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerSubusersServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users'; +}; + +export type ClientCreateServerSubuserErrors = { + /** + * The user is already assigned to the server or is the server owner. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientCreateServerSubuserError = ClientCreateServerSubuserErrors[keyof ClientCreateServerSubuserErrors]; + +export type ClientCreateServerSubuserResponses = { + /** + * Server subuser created. + */ + 200: ClientServerSubuserResource; +}; + +export type ClientCreateServerSubuserResponse = ClientCreateServerSubuserResponses[keyof ClientCreateServerSubuserResponses]; + +export type ClientDeleteServerSubuserData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerSubuserServerUuidPathParameter; + /** + * The user UUID. + */ + user: ClientGetServerSubuserUserPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users/{user}'; +}; + +export type ClientDeleteServerSubuserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientDeleteServerSubuserError = ClientDeleteServerSubuserErrors[keyof ClientDeleteServerSubuserErrors]; + +export type ClientDeleteServerSubuserResponses = { + /** + * Server subuser removed. + */ + 204: void; +}; + +export type ClientDeleteServerSubuserResponse = ClientDeleteServerSubuserResponses[keyof ClientDeleteServerSubuserResponses]; + +export type ClientGetServerSubuserData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerSubuserServerUuidPathParameter; + /** + * The user UUID. + */ + user: ClientGetServerSubuserUserPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users/{user}'; +}; + +export type ClientGetServerSubuserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetServerSubuserError = ClientGetServerSubuserErrors[keyof ClientGetServerSubuserErrors]; + +export type ClientGetServerSubuserResponses = { + /** + * Server subuser returned. + */ + 200: ClientServerSubuserResource; +}; + +export type ClientGetServerSubuserResponse = ClientGetServerSubuserResponses[keyof ClientGetServerSubuserResponses]; + +export type ClientUpdateServerSubuserData = { + body?: ClientUpdateServerSubuserRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerSubuserServerUuidPathParameter; + /** + * The user UUID. + */ + user: ClientGetServerSubuserUserPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/users/{user}'; +}; + +export type ClientUpdateServerSubuserErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientUpdateServerSubuserError = ClientUpdateServerSubuserErrors[keyof ClientUpdateServerSubuserErrors]; + +export type ClientUpdateServerSubuserResponses = { + /** + * Server subuser updated. + */ + 200: ClientServerSubuserResource; +}; + +export type ClientUpdateServerSubuserResponse = ClientUpdateServerSubuserResponses[keyof ClientUpdateServerSubuserResponses]; + +export type ClientListServerBackupsData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerBackupsServerUuidPathParameter; + }; + query?: { + /** + * The page number to return. + */ + page?: ClientListServerBackupsPageQueryParameter; + /** + * Number of backups to return per page. The maximum is 50. + */ + per_page?: ClientListServerBackupsPerPageQueryParameter; + }; + url: '/api/client/servers/{server_uuid}/backups'; +}; + +export type ClientListServerBackupsErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientListServerBackupsError = ClientListServerBackupsErrors[keyof ClientListServerBackupsErrors]; + +export type ClientListServerBackupsResponses = { + /** + * Server backups returned. + */ + 200: ClientBackupPaginatedResponse; +}; + +export type ClientListServerBackupsResponse = ClientListServerBackupsResponses[keyof ClientListServerBackupsResponses]; + +export type ClientCreateServerBackupData = { + body?: ClientCreateServerBackupRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientListServerBackupsServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups'; +}; + +export type ClientCreateServerBackupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientCreateServerBackupError = ClientCreateServerBackupErrors[keyof ClientCreateServerBackupErrors]; + +export type ClientCreateServerBackupResponses = { + /** + * Backup started. + */ + 200: ClientBackupResource; +}; + +export type ClientCreateServerBackupResponse = ClientCreateServerBackupResponses[keyof ClientCreateServerBackupResponses]; + +export type ClientDeleteServerBackupData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerBackupServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientGetServerBackupBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}'; +}; + +export type ClientDeleteServerBackupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientDeleteServerBackupError = ClientDeleteServerBackupErrors[keyof ClientDeleteServerBackupErrors]; + +export type ClientDeleteServerBackupResponses = { + /** + * Backup deleted. + */ + 204: void; +}; + +export type ClientDeleteServerBackupResponse = ClientDeleteServerBackupResponses[keyof ClientDeleteServerBackupResponses]; + +export type ClientGetServerBackupData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetServerBackupServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientGetServerBackupBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}'; +}; + +export type ClientGetServerBackupErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetServerBackupError = ClientGetServerBackupErrors[keyof ClientGetServerBackupErrors]; + +export type ClientGetServerBackupResponses = { + /** + * Server backup returned. + */ + 200: ClientBackupResource; +}; + +export type ClientGetServerBackupResponse = ClientGetServerBackupResponses[keyof ClientGetServerBackupResponses]; + +export type ClientGetBackupDownloadUrlData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetBackupDownloadUrlServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientGetBackupDownloadUrlBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}/download'; +}; + +export type ClientGetBackupDownloadUrlErrors = { + /** + * The backup cannot be downloaded from its storage driver. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetBackupDownloadUrlError = ClientGetBackupDownloadUrlErrors[keyof ClientGetBackupDownloadUrlErrors]; + +export type ClientGetBackupDownloadUrlResponses = { + /** + * Signed backup download URL returned. + */ + 200: ClientSignedUrlResource; +}; + +export type ClientGetBackupDownloadUrlResponse = ClientGetBackupDownloadUrlResponses[keyof ClientGetBackupDownloadUrlResponses]; + +export type ClientToggleBackupLockData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientToggleBackupLockServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientToggleBackupLockBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}/lock'; +}; + +export type ClientToggleBackupLockErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientToggleBackupLockError = ClientToggleBackupLockErrors[keyof ClientToggleBackupLockErrors]; + +export type ClientToggleBackupLockResponses = { + /** + * Backup lock state toggled. + */ + 200: ClientBackupResource; +}; + +export type ClientToggleBackupLockResponse = ClientToggleBackupLockResponses[keyof ClientToggleBackupLockResponses]; + +export type ClientRestoreServerBackupData = { + body: ClientRestoreServerBackupRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRestoreServerBackupServerUuidPathParameter; + /** + * The backup UUID. + */ + backup_uuid: ClientRestoreServerBackupBackupUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/backups/{backup_uuid}/restore'; +}; + +export type ClientRestoreServerBackupErrors = { + /** + * The server or backup is not in a restorable state. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientRestoreServerBackupError = ClientRestoreServerBackupErrors[keyof ClientRestoreServerBackupErrors]; + +export type ClientRestoreServerBackupResponses = { + /** + * Backup restore started. + */ + 204: void; +}; + +export type ClientRestoreServerBackupResponse = ClientRestoreServerBackupResponses[keyof ClientRestoreServerBackupResponses]; + +export type ClientGetStartupConfigurationData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientGetStartupConfigurationServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/startup'; +}; + +export type ClientGetStartupConfigurationErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientGetStartupConfigurationError = ClientGetStartupConfigurationErrors[keyof ClientGetStartupConfigurationErrors]; + +export type ClientGetStartupConfigurationResponses = { + /** + * Startup configuration returned. + */ + 200: ClientEggVariableListResponse; +}; + +export type ClientGetStartupConfigurationResponse = ClientGetStartupConfigurationResponses[keyof ClientGetStartupConfigurationResponses]; + +export type ClientUpdateStartupVariableData = { + body: ClientUpdateStartupVariableRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientUpdateStartupVariableServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/startup/variable'; +}; + +export type ClientUpdateStartupVariableErrors = { + /** + * The variable does not exist, is hidden, or is read-only. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientUpdateStartupVariableError = ClientUpdateStartupVariableErrors[keyof ClientUpdateStartupVariableErrors]; + +export type ClientUpdateStartupVariableResponses = { + /** + * Startup variable updated. + */ + 200: ClientEggVariableResource; +}; + +export type ClientUpdateStartupVariableResponse = ClientUpdateStartupVariableResponses[keyof ClientUpdateStartupVariableResponses]; + +export type ClientRenameServerData = { + body: ClientRenameServerRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientRenameServerServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/settings/rename'; +}; + +export type ClientRenameServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientRenameServerError = ClientRenameServerErrors[keyof ClientRenameServerErrors]; + +export type ClientRenameServerResponses = { + /** + * Server renamed. + */ + 204: void; +}; + +export type ClientRenameServerResponse = ClientRenameServerResponses[keyof ClientRenameServerResponses]; + +export type ClientReinstallServerData = { + body?: never; + path: { + /** + * The server UUID. + */ + server_uuid: ClientReinstallServerServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/settings/reinstall'; +}; + +export type ClientReinstallServerErrors = { + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; +}; + +export type ClientReinstallServerError = ClientReinstallServerErrors[keyof ClientReinstallServerErrors]; + +export type ClientReinstallServerResponses = { + /** + * Server reinstall queued. + */ + 202: unknown; +}; + +export type ClientSetServerDockerImageData = { + body: ClientSetServerDockerImageRequest; + path: { + /** + * The server UUID. + */ + server_uuid: ClientSetServerDockerImageServerUuidPathParameter; + }; + query?: never; + url: '/api/client/servers/{server_uuid}/settings/docker-image'; +}; + +export type ClientSetServerDockerImageErrors = { + /** + * The server image was manually set by an administrator and cannot be changed through this endpoint. + */ + 400: ErrorEnvelope; + /** + * Authentication credentials were missing or invalid. + */ + 401: ErrorEnvelope; + /** + * The API key does not have permission to perform this action. + */ + 403: ErrorEnvelope; + /** + * The requested resource could not be found. + */ + 404: ErrorEnvelope; + /** + * The submitted data is invalid. + */ + 422: ValidationErrorEnvelope; +}; + +export type ClientSetServerDockerImageError = ClientSetServerDockerImageErrors[keyof ClientSetServerDockerImageErrors]; + +export type ClientSetServerDockerImageResponses = { + /** + * Docker image updated. + */ + 204: void; +}; + +export type ClientSetServerDockerImageResponse = ClientSetServerDockerImageResponses[keyof ClientSetServerDockerImageResponses]; + +export type AuthGetCsrfCookieData = { + body?: never; + path?: never; + query?: never; + url: '/sanctum/csrf-cookie'; +}; + +export type AuthGetCsrfCookieResponses = { + /** + * The CSRF cookie was queued on the response. + */ + 204: void; +}; + +export type AuthGetCsrfCookieResponse = AuthGetCsrfCookieResponses[keyof AuthGetCsrfCookieResponses]; diff --git a/resources/scripts/components/server/files/useFileUploader.ts b/resources/scripts/components/server/files/useFileUploader.ts new file mode 100644 index 0000000..2323f74 --- /dev/null +++ b/resources/scripts/components/server/files/useFileUploader.ts @@ -0,0 +1,73 @@ +import { useCallback, useEffect, useRef } from 'react'; +import { toast } from 'sonner'; +import { useCurrentServerUuid } from '@/api/server/queries'; +import { useUploadFiles } from '@/api/server/files/queries'; +import { useFileUploadActions, useServerDirectory } from '@/state/server'; + +const UPLOADED_DISPLAY_MS = 500; + +/** Uploads into the current directory; rejects when any file failed, after its error toast. */ +export default function useFileUploader(): (files: readonly File[]) => Promise { + const removals = useRef(new Map>()); + const { mutateAsync } = useUploadFiles(); + const uuid = useCurrentServerUuid()!; + const directory = useServerDirectory(); + const { removeFileUpload, pushFileUpload, setUploadProgress } = useFileUploadActions(); + + useEffect(() => { + const pending = removals.current; + + return () => { + for (const [id, timeout] of pending) { + clearTimeout(timeout); + removeFileUpload(id); + } + + pending.clear(); + }; + }, [removeFileUpload]); + + return useCallback( + async (files) => { + if (files.some((file) => !file.type && (!file.size || file.size === 4096))) { + toast.error('Folder uploads are not supported.'); + throw new Error('Folder uploads are not supported.'); + } + + const { failed } = await mutateAsync({ + uuid, + directory, + files: [...files], + callbacks: { + onFileQueued: (id, file, abort) => { + pushFileUpload({ id, data: { name: file.name, abort, loaded: 0, total: file.size } }); + }, + onFileProgress: (id, progress) => setUploadProgress({ id, loaded: progress.loaded }), + onFileSettled: (id, outcome) => { + if (outcome !== 'uploaded') { + removeFileUpload(id); + + return; + } + + const timeout = setTimeout(() => { + removals.current.delete(id); + removeFileUpload(id); + }, UPLOADED_DISPLAY_MS); + + removals.current.set(id, timeout); + }, + }, + }); + + if (failed.length > 0) { + throw new Error( + failed.length === 1 + ? `Unable to upload ${failed[0].name}.` + : `Unable to upload ${failed.length} files.` + ); + } + }, + [mutateAsync, uuid, directory, removeFileUpload, pushFileUpload, setUploadProgress] + ); +} diff --git a/resources/scripts/views/fixtures.ts b/resources/scripts/views/fixtures.ts new file mode 100644 index 0000000..2a816a3 --- /dev/null +++ b/resources/scripts/views/fixtures.ts @@ -0,0 +1,73 @@ +import type { Server } from '@/api/server/types'; +import type { ServerCardModel } from './dashboard'; +import { statMetric } from './server/state'; + +export interface TestServerOptions { + identifier?: string; + uuid?: string; + name?: string; + owner?: boolean; + permissions?: string[]; + status?: Server['attributes']['status']; + eggFeatures?: string[]; + eggTags?: string[]; +} + +/** A server payload for fixtures and tests. */ +export function createTestServer(options: TestServerOptions = {}): Server { + const identifier = options.identifier ?? 'test-server'; + const owner = options.owner ?? true; + + return { + object: 'server', + attributes: { + identifier, + uuid: options.uuid ?? '11111111-1111-4111-8111-111111111111', + __deprecated_uuid_short: identifier, + server_identifier: identifier, + internal_id: 1, + server_owner: owner, + name: options.name ?? 'Test server', + node: 'Test node', + is_node_under_maintenance: false, + sftp_details: { ip: '127.0.0.1', port: 2022 }, + description: null, + limits: { memory: 1024, swap: 0, disk: 1024, io: 500, cpu: 100, threads: null, oom_disabled: true }, + invocation: 'run', + docker_image: 'test/image', + egg_features: options.eggFeatures ?? [], + egg_tags: options.eggTags ?? [], + feature_limits: { databases: 1, allocations: 1, backups: 1 }, + status: options.status ?? null, + is_suspended: options.status === 'suspended', + is_installing: options.status === 'installing', + is_transferring: false, + skip_scripts: false, + }, + meta: { is_server_owner: owner, user_permissions: options.permissions ?? [] }, + }; +} + +const noop = () => {}; + +/** A running server's card, with every permission; `options` replace its fields. */ +export function createTestServerCard(options: Partial = {}): ServerCardModel { + return { + identifier: 'test-server', + uuid: '11111111-1111-4111-8111-111111111111', + name: 'Test server', + description: null, + address: '127.0.0.1:25565', + state: { + kind: 'ready', + power: 'running', + cpu: statMetric(12, 100), + memory: statMetric(256 * 1024 * 1024, 1024 * 1024 * 1024), + disk: statMetric(512 * 1024 * 1024, 2048 * 1024 * 1024), + }, + permissions: { start: true, stop: true, restart: true, console: true }, + actions: { start: noop, stop: noop, restart: noop }, + sending: false, + ...options, + }; +} diff --git a/tests/Fixtures/api/client/servers.as-admin.json b/tests/Fixtures/api/client/servers.as-admin.json new file mode 100644 index 0000000..9fd08b7 --- /dev/null +++ b/tests/Fixtures/api/client/servers.as-admin.json @@ -0,0 +1,653 @@ +[ + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001?include=egg,subusers", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + }, + "subusers": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + ] + } + } + }, + "meta": { + "is_server_owner": false, + "user_permissions": [ + "*", + "admin.websocket.errors", + "admin.websocket.install", + "admin.websocket.transfer" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/activity?include=actor", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "activity_log", + "attributes": { + "id": "356a192b7913b04c54574d18c28d46e6395428ab", + "batch": null, + "event": "admin:server.build", + "is_api": false, + "ip": "203.0.113.5", + "description": null, + "properties": { + "name": "Survival" + }, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:05:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000001", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae", + "username": "admin", + "email": "admin@example.test", + "image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4", + "batch": null, + "event": "server:power.start", + "is_api": false, + "ip": "198.51.100.8", + "description": null, + "properties": {}, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:09:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "c1dfd96eea8cc2b62785275bca38ac261256e278", + "batch": null, + "event": "server:file.delete", + "is_api": false, + "ip": "198.51.100.7", + "description": null, + "properties": { + "directory": "/plugins/old/", + "files": [ + "old.jar", + "older.jar" + ], + "count": 2 + }, + "has_additional_metadata": true, + "timestamp": "2026-01-02T03:10:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000002", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaai", + "username": "owner", + "email": "owner@example.test", + "image": "https://gravatar.com/avatar/f17712239715b86f1dfd9ba550b7f607", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "0ade7c2cf97f75d009975f4d720d1fa6c19f4897", + "batch": "ba7c0009-0000-4000-8000-000000000009", + "event": "server:backup.start", + "is_api": false, + "ip": "203.0.113.5", + "description": null, + "properties": { + "name": "Nightly", + "locked": true + }, + "has_additional_metadata": true, + "timestamp": "2026-01-02T03:13:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000001", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae", + "username": "admin", + "email": "admin@example.test", + "image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "b1d5781111d84f7b3fe45a0852e59758cd7a87e5", + "batch": null, + "event": "server:console.command", + "is_api": false, + "ip": "198.51.100.9", + "description": null, + "properties": { + "command": "say & \"bye\"" + }, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:14:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + } + ], + "meta": { + "pagination": { + "total": 5, + "count": 5, + "per_page": 25, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/databases?include=password", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server_database", + "attributes": { + "id": "eV8y0jg6", + "host": { + "address": "10.0.0.5", + "port": 3306 + }, + "name": "s1_main", + "username": "u1_mainuser", + "connections_from": "%", + "max_connections": 10, + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": "Main-Pa$$word/1" + } + } + } + } + }, + { + "object": "server_database", + "attributes": { + "id": "kEjgP8V2", + "host": { + "address": "10.0.0.5", + "port": 3306 + }, + "name": "s1_logs", + "username": "u1_logsuser", + "connections_from": "10.0.0.%", + "max_connections": 0, + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": "Logs-Pa$$word\\2" + } + } + } + } + } + ] + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0003", + "__deprecated_uuid_short": "5e7f0003", + "server_identifier": "serv_lz7qaayaabaabaaaaaaaaaaaam", + "internal_id": 3, + "uuid": "5e7f0003-0000-4000-8000-000000000003", + "name": "Admin Lab", + "node": "node-beta", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "beta.example.test", + "port": 2222 + }, + "description": "Testing ground", + "limits": { + "memory": 512, + "swap": -1, + "disk": 1024, + "io": 10, + "cpu": 50, + "threads": null, + "oom_disabled": true + }, + "invocation": "java -jar server.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 1, + "allocations": 1, + "backups": 1 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 8, + "ip": "198.51.100.20", + "ip_alias": null, + "port": 30001, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": null, + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + } + } + }, + "meta": { + "is_server_owner": true, + "user_permissions": [ + "*", + "admin.websocket.errors", + "admin.websocket.install", + "admin.websocket.transfer" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/backups", + "status": 200, + "body": { + "object": "list", + "data": [], + "meta": { + "backup_count": 0, + "pagination": { + "total": 0, + "count": 0, + "per_page": 20, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/schedules", + "status": 200, + "body": { + "object": "list", + "data": [] + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/users", + "status": 200, + "body": { + "object": "list", + "data": [] + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/network/allocations", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 8, + "ip": "198.51.100.20", + "ip_alias": null, + "port": 30001, + "notes": null, + "is_default": true + } + } + ] + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/startup", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": null, + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ], + "meta": { + "startup_command": "java -jar server.jar", + "docker_images": { + "Java 21": "ghcr.io/pterodactyl/yolks:java_21", + "Java 17": "ghcr.io/pterodactyl/yolks:java_17" + }, + "raw_startup_command": "java -jar {{SERVER_JARFILE}}" + } + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/databases", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server_database", + "attributes": { + "id": "exjN1nQN", + "host": { + "address": "10.0.0.5", + "port": 3306 + }, + "name": "s3_lab", + "username": "u3_labuser", + "connections_from": "%", + "max_connections": null + } + } + ] + } + }, + { + "request": "GET /api/client/servers/5e7f0003-0000-4000-8000-000000000003/activity", + "status": 200, + "body": { + "object": "list", + "data": [], + "meta": { + "pagination": { + "total": 0, + "count": 0, + "per_page": 25, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } +] diff --git a/tests/Fixtures/api/client/servers.as-full-subuser.json b/tests/Fixtures/api/client/servers.as-full-subuser.json new file mode 100644 index 0000000..5236ab3 --- /dev/null +++ b/tests/Fixtures/api/client/servers.as-full-subuser.json @@ -0,0 +1,751 @@ +[ + { + "request": "GET /api/client?include=egg,subusers", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + }, + "subusers": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 1, + "count": 1, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001?include=egg,subusers", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + }, + "subusers": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + ] + } + } + }, + "meta": { + "is_server_owner": false, + "user_permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/databases?include=password", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server_database", + "attributes": { + "id": "eV8y0jg6", + "host": { + "address": "10.0.0.5", + "port": 3306 + }, + "name": "s1_main", + "username": "u1_mainuser", + "connections_from": "%", + "max_connections": 10, + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": "Main-Pa$$word/1" + } + } + } + } + }, + { + "object": "server_database", + "attributes": { + "id": "kEjgP8V2", + "host": { + "address": "10.0.0.5", + "port": 3306 + }, + "name": "s1_logs", + "username": "u1_logsuser", + "connections_from": "10.0.0.%", + "max_connections": 0, + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": "Logs-Pa$$word\\2" + } + } + } + } + } + ] + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/activity?include=actor", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "activity_log", + "attributes": { + "id": "356a192b7913b04c54574d18c28d46e6395428ab", + "batch": null, + "event": "admin:server.build", + "is_api": false, + "ip": null, + "description": null, + "properties": { + "name": "Survival" + }, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:05:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000001", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae", + "username": "admin", + "email": "admin@example.test", + "image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4", + "batch": null, + "event": "server:power.start", + "is_api": false, + "ip": "198.51.100.8", + "description": null, + "properties": {}, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:09:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "c1dfd96eea8cc2b62785275bca38ac261256e278", + "batch": null, + "event": "server:file.delete", + "is_api": false, + "ip": null, + "description": null, + "properties": { + "directory": "/plugins/old/", + "files": [ + "old.jar", + "older.jar" + ], + "count": 2 + }, + "has_additional_metadata": true, + "timestamp": "2026-01-02T03:10:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000002", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaai", + "username": "owner", + "email": "owner@example.test", + "image": "https://gravatar.com/avatar/f17712239715b86f1dfd9ba550b7f607", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "0ade7c2cf97f75d009975f4d720d1fa6c19f4897", + "batch": "ba7c0009-0000-4000-8000-000000000009", + "event": "server:backup.start", + "is_api": false, + "ip": null, + "description": null, + "properties": { + "name": "Nightly", + "locked": true + }, + "has_additional_metadata": true, + "timestamp": "2026-01-02T03:13:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000001", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae", + "username": "admin", + "email": "admin@example.test", + "image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "b1d5781111d84f7b3fe45a0852e59758cd7a87e5", + "batch": null, + "event": "server:console.command", + "is_api": false, + "ip": null, + "description": null, + "properties": { + "command": "say & \"bye\"" + }, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:14:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + } + ], + "meta": { + "pagination": { + "total": 5, + "count": 5, + "per_page": 25, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/network/allocations", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/startup", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ], + "meta": { + "startup_command": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_images": { + "Java 21": "ghcr.io/pterodactyl/yolks:java_21", + "Java 17": "ghcr.io/pterodactyl/yolks:java_17" + }, + "raw_startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}" + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/users", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + ] + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/resources", + "status": 200, + "body": { + "object": "stats", + "attributes": { + "current_state": "running", + "is_suspended": false, + "resources": { + "memory_bytes": 1073741824, + "cpu_absolute": 12.5, + "disk_bytes": 2147483648, + "network_rx_bytes": 1024, + "network_tx_bytes": 2048, + "uptime": 3600000 + } + } + } + } +] diff --git a/tests/Fixtures/api/client/servers.as-limited-subuser.json b/tests/Fixtures/api/client/servers.as-limited-subuser.json new file mode 100644 index 0000000..c976e9c --- /dev/null +++ b/tests/Fixtures/api/client/servers.as-limited-subuser.json @@ -0,0 +1,759 @@ +[ + { + "request": "GET /api/client", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar [hidden]", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "null_resource", + "attributes": null + } + } + } + } + ], + "meta": { + "pagination": { + "total": 1, + "count": 1, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client?include=egg,subusers", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar [hidden]", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "null_resource", + "attributes": null + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + }, + "subusers": { + "object": "null_resource", + "attributes": null + } + } + } + } + ], + "meta": { + "pagination": { + "total": 1, + "count": 1, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar [hidden]", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "null_resource", + "attributes": null + } + } + }, + "meta": { + "is_server_owner": false, + "user_permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001?include=egg,subusers", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar [hidden]", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "null_resource", + "attributes": null + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + }, + "subusers": { + "object": "null_resource", + "attributes": null + } + } + }, + "meta": { + "is_server_owner": false, + "user_permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/databases?include=password", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server_database", + "attributes": { + "id": "eV8y0jg6", + "host": { + "address": "10.0.0.5", + "port": 3306 + }, + "name": "s1_main", + "username": "u1_mainuser", + "connections_from": "%", + "max_connections": 10, + "relationships": { + "password": { + "object": "null_resource", + "attributes": null + } + } + } + }, + { + "object": "server_database", + "attributes": { + "id": "kEjgP8V2", + "host": { + "address": "10.0.0.5", + "port": 3306 + }, + "name": "s1_logs", + "username": "u1_logsuser", + "connections_from": "10.0.0.%", + "max_connections": 0, + "relationships": { + "password": { + "object": "null_resource", + "attributes": null + } + } + } + } + ] + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/activity?include=actor", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "activity_log", + "attributes": { + "id": "356a192b7913b04c54574d18c28d46e6395428ab", + "batch": null, + "event": "admin:server.build", + "is_api": false, + "ip": null, + "description": null, + "properties": { + "name": "Survival" + }, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:05:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000001", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae", + "username": "admin", + "email": "admin@example.test", + "image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4", + "batch": null, + "event": "server:power.start", + "is_api": false, + "ip": null, + "description": null, + "properties": {}, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:09:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "c1dfd96eea8cc2b62785275bca38ac261256e278", + "batch": null, + "event": "server:file.delete", + "is_api": false, + "ip": null, + "description": null, + "properties": { + "directory": "/plugins/old/", + "files": [ + "old.jar", + "older.jar" + ], + "count": 2 + }, + "has_additional_metadata": true, + "timestamp": "2026-01-02T03:10:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000002", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaai", + "username": "owner", + "email": "owner@example.test", + "image": "https://gravatar.com/avatar/f17712239715b86f1dfd9ba550b7f607", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "0ade7c2cf97f75d009975f4d720d1fa6c19f4897", + "batch": "ba7c0009-0000-4000-8000-000000000009", + "event": "server:backup.start", + "is_api": false, + "ip": null, + "description": null, + "properties": { + "name": "Nightly", + "locked": true + }, + "has_additional_metadata": true, + "timestamp": "2026-01-02T03:13:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000001", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaae", + "username": "admin", + "email": "admin@example.test", + "image": "https://gravatar.com/avatar/51965088c5db83c3fd307f308d25198a", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + }, + { + "object": "activity_log", + "attributes": { + "id": "b1d5781111d84f7b3fe45a0852e59758cd7a87e5", + "batch": null, + "event": "server:console.command", + "is_api": false, + "ip": "198.51.100.9", + "description": null, + "properties": { + "command": "say & \"bye\"" + }, + "has_additional_metadata": false, + "timestamp": "2026-01-02T03:14:05+00:00", + "relationships": { + "actor": { + "object": "user", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00" + } + } + } + } + } + ], + "meta": { + "pagination": { + "total": 5, + "count": 5, + "per_page": 25, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/backups", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "backup", + "attributes": { + "uuid": "bacc0001-0000-4000-8000-000000000001", + "is_successful": true, + "is_locked": true, + "name": "Nightly", + "ignored_files": [ + "*.log", + "cache/" + ], + "checksum": "sha1:0123456789abcdef", + "bytes": 1048576, + "created_at": "2026-01-02T03:04:05+00:00", + "completed_at": "2026-01-02T04:04:05+00:00" + } + }, + { + "object": "backup", + "attributes": { + "uuid": "bacc0002-0000-4000-8000-000000000002", + "is_successful": false, + "is_locked": false, + "name": "Failed attempt", + "ignored_files": [], + "checksum": null, + "bytes": 0, + "created_at": "2026-01-02T03:04:05+00:00", + "completed_at": "2026-01-02T03:14:05+00:00" + } + }, + { + "object": "backup", + "attributes": { + "uuid": "bacc0003-0000-4000-8000-000000000003", + "is_successful": false, + "is_locked": false, + "name": "In progress", + "ignored_files": [ + "world/" + ], + "checksum": null, + "bytes": 0, + "created_at": "2026-01-02T03:04:05+00:00", + "completed_at": null + } + } + ], + "meta": { + "backup_count": 2, + "pagination": { + "total": 3, + "count": 3, + "per_page": 20, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001/schedules", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server_schedule", + "attributes": { + "id": 1, + "name": "Nightly restart", + "cron": { + "day_of_week": "*", + "day_of_month": "*", + "month": "*", + "hour": "3", + "minute": "0" + }, + "is_active": true, + "is_processing": false, + "only_when_online": true, + "last_run_at": "2026-01-02T03:04:05+00:00", + "next_run_at": "2026-03-05T03:00:00+00:00", + "created_at": "2026-01-02T03:04:05+00:00", + "updated_at": "2026-03-04T05:06:07+00:00", + "relationships": { + "tasks": { + "object": "list", + "data": [ + { + "object": "schedule_task", + "attributes": { + "id": 1, + "sequence_id": 1, + "action": "command", + "payload": "say \"Restarting\" in 60s", + "time_offset": 0, + "is_queued": false, + "continue_on_failure": true, + "created_at": "2026-01-02T03:04:05+00:00", + "updated_at": "2026-02-03T04:05:06+00:00" + } + }, + { + "object": "schedule_task", + "attributes": { + "id": 2, + "sequence_id": 2, + "action": "power", + "payload": "restart", + "time_offset": 60, + "is_queued": true, + "continue_on_failure": false, + "created_at": "2026-01-02T03:04:05+00:00", + "updated_at": "2026-02-03T04:05:06+00:00" + } + } + ] + } + } + } + }, + { + "object": "server_schedule", + "attributes": { + "id": 2, + "name": "Disabled cleanup", + "cron": { + "day_of_week": "1-5", + "day_of_month": "*", + "month": "*", + "hour": "*", + "minute": "*/15" + }, + "is_active": false, + "is_processing": false, + "only_when_online": false, + "last_run_at": null, + "next_run_at": null, + "created_at": "2026-01-02T03:04:05+00:00", + "updated_at": "2026-02-03T04:05:06+00:00", + "relationships": { + "tasks": { + "object": "list", + "data": [] + } + } + } + } + ] + } + } +] diff --git a/tests/Fixtures/api/client/servers.index.as-admin.json b/tests/Fixtures/api/client/servers.index.as-admin.json new file mode 100644 index 0000000..0a5d9d1 --- /dev/null +++ b/tests/Fixtures/api/client/servers.index.as-admin.json @@ -0,0 +1,662 @@ +[ + { + "request": "GET /api/client", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0003", + "__deprecated_uuid_short": "5e7f0003", + "server_identifier": "serv_lz7qaayaabaabaaaaaaaaaaaam", + "internal_id": 3, + "uuid": "5e7f0003-0000-4000-8000-000000000003", + "name": "Admin Lab", + "node": "node-beta", + "is_node_under_maintenance": true, + "sftp_details": { + "ip": "beta.example.test", + "port": 2222 + }, + "description": "Testing ground", + "limits": { + "memory": 512, + "swap": -1, + "disk": 1024, + "io": 10, + "cpu": 50, + "threads": null, + "oom_disabled": true + }, + "invocation": "java -jar server.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 1, + "allocations": 1, + "backups": 1 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 8, + "ip": "198.51.100.20", + "ip_alias": null, + "port": 30001, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": null, + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 1, + "count": 1, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client?type=admin", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + } + } + } + }, + { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0002", + "__deprecated_uuid_short": "5e7f0002", + "server_identifier": "serv_lz7qaaqaabaabaaaaaaaaaaaai", + "internal_id": 2, + "uuid": "5e7f0002-0000-4000-8000-000000000002", + "name": "Creative", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "", + "limits": { + "memory": 1024, + "swap": 0, + "disk": 5120, + "io": 500, + "cpu": 0, + "threads": null, + "oom_disabled": false + }, + "invocation": "java -jar child.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_17", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft" + ], + "feature_limits": { + "databases": 0, + "allocations": null, + "backups": 0 + }, + "status": "installing", + "is_suspended": false, + "is_installing": true, + "is_transferring": true, + "skip_scripts": true, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 3, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25567, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The jar the child egg runs.", + "env_variable": "SERVER_JARFILE", + "default_value": "child.jar", + "server_value": "child.jar", + "is_editable": true, + "rules": "required|string" + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 2, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client?type=admin-all&per_page=2&include=egg", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + } + } + } + }, + { + "object": "server", + "attributes": { + "server_owner": false, + "identifier": "5e7f0002", + "__deprecated_uuid_short": "5e7f0002", + "server_identifier": "serv_lz7qaaqaabaabaaaaaaaaaaaai", + "internal_id": 2, + "uuid": "5e7f0002-0000-4000-8000-000000000002", + "name": "Creative", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "", + "limits": { + "memory": 1024, + "swap": 0, + "disk": 5120, + "io": 500, + "cpu": 0, + "threads": null, + "oom_disabled": false + }, + "invocation": "java -jar child.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_17", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft" + ], + "feature_limits": { + "databases": 0, + "allocations": null, + "backups": 0 + }, + "status": "installing", + "is_suspended": false, + "is_installing": true, + "is_transferring": true, + "skip_scripts": true, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 3, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25567, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The jar the child egg runs.", + "env_variable": "SERVER_JARFILE", + "default_value": "child.jar", + "server_value": "child.jar", + "is_editable": true, + "rules": "required|string" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900002-0000-4000-8000-000000000002", + "name": "Paper Child" + } + } + } + } + } + ], + "meta": { + "pagination": { + "total": 3, + "count": 2, + "per_page": 2, + "current_page": 1, + "total_pages": 2, + "links": { + "next": "https://panel.example.test/api/client?type=admin-all&per_page=2&include=egg&page=2" + } + } + } + } + }, + { + "request": "GET /api/client?type=admin-all&per_page=2&page=2", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0003", + "__deprecated_uuid_short": "5e7f0003", + "server_identifier": "serv_lz7qaayaabaabaaaaaaaaaaaam", + "internal_id": 3, + "uuid": "5e7f0003-0000-4000-8000-000000000003", + "name": "Admin Lab", + "node": "node-beta", + "is_node_under_maintenance": true, + "sftp_details": { + "ip": "beta.example.test", + "port": 2222 + }, + "description": "Testing ground", + "limits": { + "memory": 512, + "swap": -1, + "disk": 1024, + "io": 10, + "cpu": 50, + "threads": null, + "oom_disabled": true + }, + "invocation": "java -jar server.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 1, + "allocations": 1, + "backups": 1 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 8, + "ip": "198.51.100.20", + "ip_alias": null, + "port": 30001, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": null, + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 3, + "count": 1, + "per_page": 2, + "current_page": 2, + "total_pages": 2, + "links": { + "previous": "https://panel.example.test/api/client?type=admin-all&per_page=2&page=1" + } + } + } + } + } +] diff --git a/tests/Fixtures/api/client/servers.index.json b/tests/Fixtures/api/client/servers.index.json new file mode 100644 index 0000000..680adf0 --- /dev/null +++ b/tests/Fixtures/api/client/servers.index.json @@ -0,0 +1,997 @@ +[ + { + "request": "GET /api/client", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + } + } + } + }, + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0002", + "__deprecated_uuid_short": "5e7f0002", + "server_identifier": "serv_lz7qaaqaabaabaaaaaaaaaaaai", + "internal_id": 2, + "uuid": "5e7f0002-0000-4000-8000-000000000002", + "name": "Creative", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "", + "limits": { + "memory": 1024, + "swap": 0, + "disk": 5120, + "io": 500, + "cpu": 0, + "threads": null, + "oom_disabled": false + }, + "invocation": "java -jar child.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_17", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft" + ], + "feature_limits": { + "databases": 0, + "allocations": null, + "backups": 0 + }, + "status": "installing", + "is_suspended": false, + "is_installing": true, + "is_transferring": true, + "skip_scripts": true, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 3, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25567, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The jar the child egg runs.", + "env_variable": "SERVER_JARFILE", + "default_value": "child.jar", + "server_value": "child.jar", + "is_editable": true, + "rules": "required|string" + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 2, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client?include=egg,subusers", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + }, + "subusers": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + ] + } + } + } + }, + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0002", + "__deprecated_uuid_short": "5e7f0002", + "server_identifier": "serv_lz7qaaqaabaabaaaaaaaaaaaai", + "internal_id": 2, + "uuid": "5e7f0002-0000-4000-8000-000000000002", + "name": "Creative", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "", + "limits": { + "memory": 1024, + "swap": 0, + "disk": 5120, + "io": 500, + "cpu": 0, + "threads": null, + "oom_disabled": false + }, + "invocation": "java -jar child.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_17", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft" + ], + "feature_limits": { + "databases": 0, + "allocations": null, + "backups": 0 + }, + "status": "installing", + "is_suspended": false, + "is_installing": true, + "is_transferring": true, + "skip_scripts": true, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 3, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25567, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The jar the child egg runs.", + "env_variable": "SERVER_JARFILE", + "default_value": "child.jar", + "server_value": "child.jar", + "is_editable": true, + "rules": "required|string" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900002-0000-4000-8000-000000000002", + "name": "Paper Child" + } + }, + "subusers": { + "object": "list", + "data": [] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 2, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client?filter[name]=none", + "status": 200, + "body": { + "object": "list", + "data": [], + "meta": { + "pagination": { + "total": 0, + "count": 0, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + }, + { + "request": "GET /api/client?per_page=1", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 1, + "per_page": 1, + "current_page": 1, + "total_pages": 2, + "links": { + "next": "https://panel.example.test/api/client?per_page=1&page=2" + } + } + } + } + }, + { + "request": "GET /api/client?per_page=1&page=2", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0002", + "__deprecated_uuid_short": "5e7f0002", + "server_identifier": "serv_lz7qaaqaabaabaaaaaaaaaaaai", + "internal_id": 2, + "uuid": "5e7f0002-0000-4000-8000-000000000002", + "name": "Creative", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "", + "limits": { + "memory": 1024, + "swap": 0, + "disk": 5120, + "io": 500, + "cpu": 0, + "threads": null, + "oom_disabled": false + }, + "invocation": "java -jar child.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_17", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft" + ], + "feature_limits": { + "databases": 0, + "allocations": null, + "backups": 0 + }, + "status": "installing", + "is_suspended": false, + "is_installing": true, + "is_transferring": true, + "skip_scripts": true, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 3, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25567, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The jar the child egg runs.", + "env_variable": "SERVER_JARFILE", + "default_value": "child.jar", + "server_value": "child.jar", + "is_editable": true, + "rules": "required|string" + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 1, + "per_page": 1, + "current_page": 2, + "total_pages": 2, + "links": { + "previous": "https://panel.example.test/api/client?per_page=1&page=1" + } + } + } + } + }, + { + "request": "GET /api/client?per_page=1&page=99", + "status": 200, + "body": { + "object": "list", + "data": [], + "meta": { + "pagination": { + "total": 2, + "count": 0, + "per_page": 1, + "current_page": 99, + "total_pages": 2, + "links": { + "previous": "https://panel.example.test/api/client?per_page=1&page=98" + } + } + } + } + }, + { + "request": "GET /api/client?per_page=1&page=1&filter[uuid]=5e7f&include=egg", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + } + } + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 1, + "per_page": 1, + "current_page": 1, + "total_pages": 2, + "links": { + "next": "https://panel.example.test/api/client?per_page=1&filter%5Buuid%5D=5e7f&include=egg&page=2" + } + } + } + } + }, + { + "request": "GET /api/client?type=owner&per_page=1&page=2&include=subusers", + "status": 200, + "body": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0002", + "__deprecated_uuid_short": "5e7f0002", + "server_identifier": "serv_lz7qaaqaabaabaaaaaaaaaaaai", + "internal_id": 2, + "uuid": "5e7f0002-0000-4000-8000-000000000002", + "name": "Creative", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "", + "limits": { + "memory": 1024, + "swap": 0, + "disk": 5120, + "io": 500, + "cpu": 0, + "threads": null, + "oom_disabled": false + }, + "invocation": "java -jar child.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_17", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft" + ], + "feature_limits": { + "databases": 0, + "allocations": null, + "backups": 0 + }, + "status": "installing", + "is_suspended": false, + "is_installing": true, + "is_transferring": true, + "skip_scripts": true, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 3, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25567, + "notes": null, + "is_default": true + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The jar the child egg runs.", + "env_variable": "SERVER_JARFILE", + "default_value": "child.jar", + "server_value": "child.jar", + "is_editable": true, + "rules": "required|string" + } + } + ] + }, + "subusers": { + "object": "list", + "data": [] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 1, + "per_page": 1, + "current_page": 2, + "total_pages": 2, + "links": { + "previous": "https://panel.example.test/api/client?type=owner&per_page=1&include=subusers&page=1" + } + } + } + } + } +] diff --git a/tests/Fixtures/api/client/servers.view.json b/tests/Fixtures/api/client/servers.view.json new file mode 100644 index 0000000..a633b54 --- /dev/null +++ b/tests/Fixtures/api/client/servers.view.json @@ -0,0 +1,588 @@ +[ + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + } + } + }, + "meta": { + "is_server_owner": true, + "user_permissions": [ + "*" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001?include=egg", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + } + } + }, + "meta": { + "is_server_owner": true, + "user_permissions": [ + "*" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001?include=subusers", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "subusers": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + ] + } + } + }, + "meta": { + "is_server_owner": true, + "user_permissions": [ + "*" + ] + } + } + }, + { + "request": "GET /api/client/servers/5e7f0001-0000-4000-8000-000000000001?include=egg,subusers", + "status": 200, + "body": { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "5e7f0001", + "__deprecated_uuid_short": "5e7f0001", + "server_identifier": "serv_lz7qaaiaabaabaaaaaaaaaaaae", + "internal_id": 1, + "uuid": "5e7f0001-0000-4000-8000-000000000001", + "name": "Survival", + "node": "node-alpha", + "is_node_under_maintenance": false, + "sftp_details": { + "ip": "alpha.example.test", + "port": 2022 + }, + "description": "Main survival world", + "limits": { + "memory": 2048, + "swap": 512, + "disk": 10240, + "io": 500, + "cpu": 200, + "threads": "0-3", + "oom_disabled": true + }, + "invocation": "java -Xms128M -Xmx2048M -jar paper.jar", + "docker_image": "ghcr.io/pterodactyl/yolks:java_21", + "egg_features": [ + "eula", + "java_version" + ], + "egg_tags": [ + "minecraft", + "premium" + ], + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 5 + }, + "status": null, + "is_suspended": false, + "is_installing": false, + "is_transferring": false, + "skip_scripts": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "192.0.2.10", + "ip_alias": "play.example.test", + "port": 25565, + "notes": "Primary port", + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "192.0.2.10", + "ip_alias": null, + "port": 25566, + "notes": "Query/RCON", + "is_default": false + } + } + ] + }, + "variables": { + "object": "list", + "data": [ + { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "paper.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + }, + { + "object": "egg_variable", + "attributes": { + "name": "Build Number", + "description": "The build to download, or \"latest\".", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "server_value": null, + "is_editable": false, + "rules": "required|string|max:20" + } + } + ] + }, + "egg": { + "object": "egg", + "attributes": { + "uuid": "e9900001-0000-4000-8000-000000000001", + "name": "Paper" + } + }, + "subusers": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000003", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaam", + "username": "helper", + "email": "helper@example.test", + "image": "https://gravatar.com/avatar/db133fd5a01229dc12009a42eaa2e3c3", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "control.start", + "allocation.read", + "startup.read", + "user.read", + "database.read", + "database.view_password", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "00000000-0000-4000-8000-000000000004", + "identifier": "user_aaaaaaaaabaabaaaaaaaaaaaaq", + "username": "limited", + "email": "limited@example.test", + "image": "https://gravatar.com/avatar/6a005a5825ef8aa17b476a64d40e7aab", + "2fa_enabled": false, + "created_at": "2026-01-02T03:04:05+00:00", + "permissions": [ + "websocket.connect", + "control.console", + "database.read", + "database.create", + "database.update", + "backup.read", + "schedule.read", + "activity.read", + "file.read" + ] + } + } + ] + } + } + }, + "meta": { + "is_server_owner": true, + "user_permissions": [ + "*" + ] + } + } + } +]