tgstation-server 6.12.0
The /tg/station 13 server suite
Loading...
Searching...
No Matches
Namespaces | Classes | Enumerations
Tgstation.Server.Api.Models Namespace Reference

Namespaces

namespace  Internal
 
namespace  Request
 
namespace  Response
 

Classes

class  ChatChannel
 Indicates a chat channel. More...
 
class  DiscordConnectionStringBuilder
 ChatConnectionStringBuilder for ChatProvider.Discord. More...
 
class  EngineVersion
 Information about an engine installation. More...
 
class  EntityId
 Common base of entities with IDs. More...
 
class  ErrorCodeExtensions
 Extension methods for the ErrorCode enum. More...
 
interface  IConfigurationFile
 Represents a game configuration file. Create and delete actions uncerimonuously overwrite/delete files. More...
 
class  Instance
 Metadata about a server instance. More...
 
class  IrcConnectionStringBuilder
 ChatConnectionStringBuilder for ChatProvider.Irc. More...
 
class  Limits
 Sanity limits to prevent users from overloading. More...
 
class  NamedEntity
 Base class for named entities. More...
 
class  OAuthConnection
 Represents a valid OAuth connection. More...
 
class  OAuthProviderInfo
 Public information about a given OAuthProvider. More...
 
class  PermissionSet
 Represents a set of server permissions. More...
 
class  RepositorySettings
 Represents configurable settings for a git repository. More...
 
class  RequestOptionsAttribute
 Indicates the FieldPresence for fields in models. More...
 
class  ResponseOptionsAttribute
 Indicates the response FieldPresence of API fields. Changes it from FieldPresence.Required to FieldPresence.Optional by default. More...
 
class  RevisionInformation
 
class  TestMerge
 
class  TestMergeParameters
 Parameters for creating a TestMerge. More...
 
class  UserName
 Base class for user names. More...
 

Enumerations

enum  ChatProvider { Irc , Discord }
 Represents a chat service provider. More...
 
enum  ConfigurationType { Disallowed , HostWrite , SystemIdentityWrite }
 The type of configuration allowed on an Instance. More...
 
enum  DiscordDMOutputDisplayType { Always , OnError , Never }
 When the DM output section of Discord deployment embeds should be shown. More...
 
enum  DMApiValidationMode { Optional , Required , Skipped }
 The DMAPI validation setting for deployments. More...
 
enum  DreamDaemonSecurity { Trusted , Safe , Ultrasafe }
 DreamDaemon's security level. More...
 
enum  DreamDaemonVisibility { Public , Private , Invisible }
 The visibility setting for DreamDaemon. More...
 
enum  EngineType { Byond , OpenDream }
 The type of engine the codebase is using. More...
 
enum  ErrorCode : uint {
  InternalServerError , ApiMismatch , ModelValidationFailure , IOError ,
  BadHeaders , TokenWithToken , DatabaseIntegrityConflict , MissingHostWatchdog ,
  CannotChangeServerSuite , RemoteApiError , ServerUpdateInProgress , UserNameChange ,
  UserSidChange , UserMismatchNameSid , UserMismatchPasswordSid , UserPasswordLength ,
  UserColonInName , UserMissingName , InstanceRelocateOnline , InstanceAtExistingPath ,
  InstanceDetachOnline , InstanceAtConflictingPath , InstanceLimitReached , InstanceWhitespaceNameOrPath ,
  InstanceHeaderRequired , RequiresPosixSystemIdentity , ConfigurationFileUpdated , ConfigurationDirectoryNotEmpty ,
  SwarmIntegrityCheckFailed , RepoMismatchUserAndAccessToken , RepoCloning , RepoBusy ,
  RepoExists , RepoMissing , RepoMismatchShaAndReference , RepoMismatchShaAndUpdate ,
  EngineCannotDeleteActiveVersion , RepoDuplicateTestMerge , RepoWhitespaceCommitterName , RepoWhitespaceCommitterEmail ,
  ApiPageTooLarge , ApiInvalidPageOrPageSize , ChatBotWrongChannelType , ChatBotWhitespaceConnectionString ,
  ChatBotWhitespaceName , ChatBotProviderMissing , ConfigurationContendedAccess , ChatBotMax ,
  ChatBotMaxChannels , ByondDirectXInstallFail , EngineDownloadFail , EngineNoVersionsInstalled ,
  DeploymentNeverValidated , DeploymentInvalidValidation , CannotRemoveLastAuthenticationOption , DeploymentNoDme ,
  DeploymentMissingDme , DeploymentExitCode , DeploymentInProgress , InstanceMissingDreamDaemonSettings ,
  InstanceMissingDreamMakerSettings , InstanceMissingRepositorySettings , InstanceUpdateTestMergeConflict , RepoCredentialsRequired ,
  RepoCannotAuthenticate , RepoReferenceRequired , WatchdogRunning , WatchdogCompileJobCorrupted ,
  WatchdogStartupFailed , WatchdogStartupTimeout , RepoUnsupportedTestMergeRemote , RepoSwappedShaOrReference ,
  RepoMergeConflict , RepoReferenceNotTracking , RepoTestMergeConflict , InstanceNotAtWhitelistedPath ,
  GameServerDoubleSoft , DreamDaemonPagerRunning , GameServerPortInUse , PostDeployFailure ,
  WatchdogNotRunning , ResourceNotPresent , ResourceNeverPresent , GitHubApiRateLimit ,
  JobStopped , MissingGCore , GCoreFailure , RepoTestMergeInvalidRemote ,
  EngineNonExistentCustomVersion , GameServerOffline , InstanceOffline , ChatCannotConnectProvider ,
  EngineFirewallFail , NoPortsAvailable , PortNotAvailable , AdminUserCannotOAuth ,
  OAuthProviderDisabled , FileUploadExpired , UserGroupAndPermissionSet , UserGroupNotEmpty ,
  UserLimitReached , UserGroupLimitReached , DeploymentTimeout , BroadcastFailure ,
  OpenDreamCantFindDotnet , OpenDreamTooOld , DotnetDiagnosticsFailure , DeploymentWrongDme ,
  RepoTokenUsernameMismatch , RemoteGatewaysNotImplemented
}
 Types of Response.ErrorMessageResponses that the API may return. More...
 
enum  FieldPresence { Optional , Required , Ignored }
 Indicates whether a request field is Required or Ignored. More...
 
enum  IrcPasswordType { Server , Sasl , NickServ , Oper }
 Represents the type of a password for a ChatProvider.Irc. More...
 
enum  JobCode : byte {
  Unknown , Move , RepositoryClone , RepositoryUpdate ,
  RepositoryAutoUpdate , RepositoryDelete , EngineOfficialInstall , EngineCustomInstall ,
  EngineDelete , Deployment , AutomaticDeployment , WatchdogLaunch ,
  WatchdogRestart , WatchdogDump , StartupWatchdogLaunch , StartupWatchdogReattach ,
  ReconnectChatBot , RepositoryReclone
}
 The different types of Response.JobResponse. More...
 
enum  OAuthProvider {
  GitHub , Discord , TGForums , Keycloak ,
  InvisionCommunity
}
 List of OAuth providers supported by TGS. More...
 
enum  RemoteGitProvider { Unknown , GitHub , GitLab }
 Indicates the remote git host. More...
 
enum  WatchdogStatus { Offline , Restoring , Online , DelayedRestart }
 The current status of the watchdog. More...
 

Enumeration Type Documentation

◆ ChatProvider

Represents a chat service provider.

Enumerator
Irc 

Internet relay chat.

Discord 

Superior chat service.

Definition at line 6 of file ChatProvider.cs.

7 {
11 Irc,
12
16 Discord,
17 }

◆ ConfigurationType

The type of configuration allowed on an Instance.

Enumerator
Disallowed 

Configuration editing is not allowed.

HostWrite 

Configuration editing is allowed by all users on all files.

SystemIdentityWrite 

Configuration editing is allowed by only by system identity users and uses their filesystem ACLs.

Definition at line 6 of file ConfigurationType.cs.

7 {
12
17
22 }
@ HostWrite
Configuration editing is allowed by all users on all files.
@ SystemIdentityWrite
Configuration editing is allowed by only by system identity users and uses their filesystem ACLs.
@ Disallowed
Configuration editing is not allowed.

◆ DiscordDMOutputDisplayType

When the DM output section of Discord deployment embeds should be shown.

Enumerator
Always 

Always show.

OnError 

Only show if DM failed.

Never 

Never show.

Definition at line 6 of file DiscordDMOutputDisplayType.cs.

◆ DMApiValidationMode

The DMAPI validation setting for deployments.

Enumerator
Optional 

DMAPI validation is performed but not required for the deployment to succeed.

Required 

DMAPI validation must suceed for the deployment to succeed.

Skipped 

DMAPI validation will not be performed and no DMAPI features will be available in the deployment.

Definition at line 6 of file DMApiValidationMode.cs.

7 {
12
17
21 Skipped,
22 }
@ Required
DMAPI validation must suceed for the deployment to succeed.
@ Skipped
DMAPI validation will not be performed and no DMAPI features will be available in the deployment.
@ Optional
DMAPI validation is performed but not required for the deployment to succeed.

◆ DreamDaemonSecurity

DreamDaemon's security level.

Enumerator
Trusted 

Server is unrestricted in terms of file access and shell commands.

Safe 

Server will not be able to run shell commands or access files outside it's working directory.

Ultrasafe 

Server will not be able to run shell commands or access anything but temporary files.

Definition at line 6 of file DreamDaemonSecurity.cs.

7 {
11 Trusted,
12
16 Safe,
17
22 }
@ Ultrasafe
Server will not be able to run shell commands or access anything but temporary files.
@ Trusted
Server is unrestricted in terms of file access and shell commands.
@ Safe
Server will not be able to run shell commands or access files outside it's working directory.

◆ DreamDaemonVisibility

The visibility setting for DreamDaemon.

Enumerator
Public 

Public DreamDaemon visibility.

Private 

Private DreamDaemon visibility.

Invisible 

Invisible DreamDaemon visibility.

Definition at line 6 of file DreamDaemonVisibility.cs.

7 {
11 Public,
12
16 Private,
17
22 }
@ Public
Public DreamDaemon visibility.
@ Private
Private DreamDaemon visibility.
@ Invisible
Invisible DreamDaemon visibility.

◆ EngineType

The type of engine the codebase is using.

Enumerator
Byond 

Build your own net dream.

OpenDream 

The OpenDream BYOND reimplementation.

Definition at line 6 of file EngineType.cs.

7 {
11 Byond,
12
17 }
@ OpenDream
The OpenDream BYOND reimplementation.
@ Byond
Build your own net dream.

◆ ErrorCode

Types of Response.ErrorMessageResponses that the API may return.

Entries marked Obsolete are no longer in use but kept for placeholders until they can be recycled in the next major API version.

Enumerator
InternalServerError 

An implementation error occurred while processing the request.

ApiMismatch 

Indicates an API upgrade was required by the server.

ModelValidationFailure 

The request body was malformed.

IOError 

An IO error occurred while working with the configuration system.

BadHeaders 

The ApiHeaders failed to validate.

TokenWithToken 

Attempted to request a Response.TokenResponse with an existing Response.TokenResponse.

DatabaseIntegrityConflict 

Generic database integrity failure.

MissingHostWatchdog 

Attempted to perform a restart operation without the host watchdog component.

CannotChangeServerSuite 

Attempted to change to a major version less than 4.

RemoteApiError 

A required remote API request failed.

ServerUpdateInProgress 

A server update was requested while another was in progress.

UserNameChange 

Attempted to change something other than the capitalization of a UserName.Name for a user.

UserSidChange 

Attempted to change a Internal.UserModelBase.SystemIdentifier.

UserMismatchNameSid 

Attempted to create a user with a UserName.Name and Internal.UserModelBase.SystemIdentifier.

UserMismatchPasswordSid 

Attempted to create a user with a Request.UserUpdateRequest.Password and Internal.UserModelBase.SystemIdentifier.

UserPasswordLength 

The given Request.UserUpdateRequest.Password length was less than the server's configured minimum.

UserColonInName 

Attempted to create a user with a ':' character in the UserName.Name.

UserMissingName 

Attempted to create a user with a null or whitespace UserName.Name.

InstanceRelocateOnline 

Attempted to change a Instance.Path while it was Instance.Online.

InstanceAtExistingPath 

Attempted to change a Instance.Path to a non-empty location.

InstanceDetachOnline 

Attempted to detach an Instance while it was Instance.Online.

InstanceAtConflictingPath 

Attempted to change a Instance.Path to a location that conflicts with the server install or another instance.

InstanceLimitReached 

Attempted to create an Instance but the configured instance limit has been reached.

InstanceWhitespaceNameOrPath 

Attempted to create an Instance with a whitespace NamedEntity.Name or Instance.Path.

InstanceHeaderRequired 

The ApiHeaders.InstanceIdHeader header was required but not set.

RequiresPosixSystemIdentity 

The operation requires the unimplemented POSIX system identities feature.

ConfigurationFileUpdated 

A IConfigurationFile was updated.

ConfigurationDirectoryNotEmpty 

Attempted to delete an non-empty directory.

SwarmIntegrityCheckFailed 

The server swarm has less than the expected amount of nodes.

RepoMismatchUserAndAccessToken 

One of RepositorySettings.AccessUser and RepositorySettings.AccessToken is set while the other isn't.

RepoCloning 

The repository is busy being cloned.

RepoBusy 

The repository is busy with another operation.

RepoExists 

Attempted to clone the repository when it already exists.

RepoMissing 

Attempted to load a non-existant repo.

RepoMismatchShaAndReference 

Attempted to Request.RepositoryUpdateRequest.CheckoutSha and set Internal.RepositoryApiBase.Reference at the same time.

RepoMismatchShaAndUpdate 

Attempted to Request.RepositoryUpdateRequest.CheckoutSha and Request.RepositoryUpdateRequest.UpdateFromOrigin at the same time.

EngineCannotDeleteActiveVersion 

Could not delete a engine version due to it being set as the active version for the instance.

RepoDuplicateTestMerge 

Request.RepositoryUpdateRequest.NewTestMerges contained duplicate TestMergeParameters.Numbers.

RepoWhitespaceCommitterName 

Attempted to set a whitespace RepositorySettings.CommitterName.

RepoWhitespaceCommitterEmail 

Attempted to set a whitespace RepositorySettings.CommitterEmail.

ApiPageTooLarge 

A paginated request asked for too large a page.

ApiInvalidPageOrPageSize 

A paginated request asked for page 0.

ChatBotWrongChannelType 

A requested ChatChannel's data does not match with its Internal.ChatBotSettings.Provider.

ChatBotWhitespaceConnectionString 

Internal.ChatBotSettings.ConnectionString was whitespace.

ChatBotWhitespaceName 

Chat bot NamedEntity.Name was whitespace.

ChatBotProviderMissing 

Internal.ChatBotSettings.Provider was null during creation.

ConfigurationContendedAccess 

Currently unused.

ChatBotMax 

Attempted to add a chat bot when at or above the Instance.ChatBotLimit or it was set to something lower than the existing amount of chat bots.

ChatBotMaxChannels 

Attempted to configure a chat bot with more ChatChannels than the configured Internal.ChatBotSettings.ChannelLimit.

ByondDirectXInstallFail 

Failed to install DirectX with BYOND.

EngineDownloadFail 

Failed to download a given engine version.

EngineNoVersionsInstalled 

Failed to lock engine executables.

DeploymentNeverValidated 

The DMAPI never validated itself.

DeploymentInvalidValidation 

The DMAPI sent an invalid validation request.

CannotRemoveLastAuthenticationOption 

Tried to remove the last OAuthConnection for a passwordless user.

DeploymentNoDme 

No .dme could be found for deployment.

DeploymentMissingDme 

The configured .dme could not be found.

DeploymentExitCode 

Compiler failed to compile.

DeploymentInProgress 

Deployment already in progress.

InstanceMissingDreamDaemonSettings 

Missing Internal.DreamDaemonSettings in database.

InstanceMissingDreamMakerSettings 

Missing Internal.DreamMakerSettings in database.

InstanceMissingRepositorySettings 

Missing RepositorySettings in database.

InstanceUpdateTestMergeConflict 

Performing an automatic update with the RepositorySettings.AutoUpdatesKeepTestMerges flag resulted in merge conflicts.

RepoCredentialsRequired 

RepositorySettings.AccessUser and RepositorySettings.AccessToken are required for this operation.

RepoCannotAuthenticate 

The remote returned an invalid authentication request.

RepoReferenceRequired 

Cannot perform operation while not on a Internal.RepositoryApiBase.Reference.

WatchdogRunning 

Attempted to start the watchdog when it was already running.

WatchdogCompileJobCorrupted 

Attempted to start the watchdog with a corrupted Internal.CompileJob.

WatchdogStartupFailed 

Game server exited before it finished starting.

WatchdogStartupTimeout 

Game server timed-out before it finished starting.

RepoUnsupportedTestMergeRemote 

Attempted to test merge with an unsupported remote.

RepoSwappedShaOrReference 

Either Request.RepositoryUpdateRequest.CheckoutSha or Internal.RepositoryApiBase.Reference was in one when it should have been the other.

RepoMergeConflict 

A merge conflict occurred during a git operation.

RepoReferenceNotTracking 

The current Internal.RepositoryApiBase.Reference does not track a remote reference.

RepoTestMergeConflict 

Encounted merge conflicts while test merging.

InstanceNotAtWhitelistedPath 

Attempted to create an instance outside of the Internal.ServerInformationBase.ValidInstancePaths.

GameServerDoubleSoft 

Attempted to make a game server update with both Internal.DreamDaemonApiBase.SoftRestart and Internal.DreamDaemonApiBase.SoftShutdown set.

DreamDaemonPagerRunning 

Attempted to launch DreamDaemon on a user account that had the BYOND pager running.

GameServerPortInUse 

Could not bind to port we wanted to launch the game server on.

PostDeployFailure 

Failed to post GitHub comments, or send TGS event.

WatchdogNotRunning 

Attempted to restart a stopped watchdog.

ResourceNotPresent 

Attempted to access a resourse that is not (currently) present.

ResourceNeverPresent 

Attempted to access a resource that was never present.

GitHubApiRateLimit 

A required GitHub API call failed due to rate limiting.

JobStopped 

Attempted to cancel a stopped job.

MissingGCore 

Missing GCore executable.

GCoreFailure 

Non-zero gcore exit code.

RepoTestMergeInvalidRemote 

Attempted to test merge with an invalid remote repository.

EngineNonExistentCustomVersion 

Attempted to switch to a custom engine version that does not exist.

GameServerOffline 

Attempted to perform an operation that requires server (not the watchdog) to be running but it wasn't.

InstanceOffline 

Attempted to perform an instance operation with an offline instance.

ChatCannotConnectProvider 

An attempt to connect a chat bot failed.

EngineFirewallFail 

Attempt to add DreamDaemon to the list of firewall exempt processes failed.

NoPortsAvailable 

Attempted to create an instance but no free ports could be found.

PortNotAvailable 

Attempted to set a port which is either in use by another part of TGS or otherwise not available for binding.

AdminUserCannotOAuth 

Attempted to set Internal.UserApiBase.OAuthConnections for the admin user.

OAuthProviderDisabled 

Attempted to login with a disabled OAuth provider.

FileUploadExpired 

A job requiring a file upload did not receive it before timing out.

UserGroupAndPermissionSet 

Tried to update a user to have both a Internal.UserApiBase.Group and Internal.UserApiBase.PermissionSet.

UserGroupNotEmpty 

Tried to delete a non-empty user group.

UserLimitReached 

Attempted to create a user but the configured limit has been reached.

UserGroupLimitReached 

Attempted to create a user group but the configured limit has been reached.

DeploymentTimeout 

A deployment took longer than the configured timeout.

BroadcastFailure 

Sending a broadcast message failed.

OpenDreamCantFindDotnet 

Could not compile OpenDream due to a missing dotnet executable.

OpenDreamTooOld 

Could not install OpenDream due to it not meeting the minimum version requirements.

DotnetDiagnosticsFailure 

Failed dotnet diagnostics dump.

DeploymentWrongDme 

The configured .dme could not be found.

RepoTokenUsernameMismatch 

Entered wrong RepositorySettings.AccessUser for a RepositorySettings.AccessToken.

RemoteGatewaysNotImplemented 

Attempted to make a cross swarm server request using the GraphQL API.

Definition at line 11 of file ErrorCode.cs.

12 {
16 [Description("An internal server error occurred!")]
18
22 [Description("API version mismatch!")]
24
28 [Description("The request body was malformed!")]
30
34 [Description("An IO error occurred during the operation!")]
35 IOError,
36
40 [Description("A header validation error occurred!")]
42
46 [Description("Cannot generate a bearer token using a bearer token!")]
48
52 [Description("The operation could not be performed as it would violate database integrity. Please retry the request, making sure to not duplicate field names with existing entities!")]
54
58 [Description("Functionality is unavailable due to a missing host watchdog component! This should NOT be seen in a production environment!")]
60
64 [Description($"Cannot downgrade to {Constants.CanonicalPackageName} major version <4!")]
66
70 [Description("A required remote API request returned an error!")]
72
76 [Description("A server update was requested while another was in progress!")]
78
82 [Description("Can only change the capitalization of a user's name!")]
84
88 [Description("Cannot change a user's systemIdentifier!")]
90
94 [Description("A user cannot have both a name and systemIdentifier!")]
96
100 [Description("A user cannot have both a password and systemIdentifier!")]
102
106 [Description("The given password is less than the server's configured minimum password length!")]
108
112 [Description("User names cannot contain the ':' character!")]
114
118 [Description("User's name is missing or invalid whitespace!")]
120
124 [Description("Cannot relocate an instance while it is online!")]
126
130 [Description("The instance cannot be placed at the given path because it is not empty!")]
132
136 [Description("Cannot detach an instance while it is online!")]
138
142 [Description("The instance cannot be placed at the given path because it is a child of an existing instance or the server installation directory!")]
144
148 [Description("The instance cannot be created because the configured limit has been reached!")]
150
154 [Description("Instance names and paths cannot be whitespace!")]
156
160 [Description("The request path requires the 'Instance' header to be set!")]
162
166 [Description("This operation requires POSIX system identities to be implemented. See https://github.com/tgstation/tgstation-server/issues/709 for details.")]
168
172 [Description("This existing file hash does not match, the file has beeen updated!")]
174
178 [Description("The directory cannot be deleted because it is not empty!")]
180
184 [Description("The server swarm has less than the expected amount of nodes!")]
186
190 [Description("Either both accessUser and accessToken must be set or neither!")]
192
196 [Description("The repository is busy being cloned!")]
198
202 [Description("The repository is busy with another operation!")]
203 RepoBusy,
204
208 [Description("The repository already exists!")]
210
214 [Description("The repository does not exist and must be cloned!")]
216
220 [Description("Cannot checkoutSha and set reference at the same time!")]
222
226 [Description("Cannot checkoutSha and updateFromOrigin at the same time!")]
228
232 [Description("Could not delete engine version due to it being selected as the instance's active version.")]
234
238 [Description("The same test merge was present more than once or is already merged!")]
240
244 [Description("committerName cannot be whitespace!")]
246
250 [Description("committerEmail cannot be whitespace!")]
252
256 [Description("Requested pageSize is too large!")]
258
262 [Description("Cannot request page or pageSize <= 0.")]
264
268 [Description("One or more of the channels for one or more of the provided chat bots do not have the correct channel data for their provider!")]
270
274 [Description("A chat bot's connection string cannot be whitespace!")]
276
280 [Description("A chat bot's name cannot be whitespace!")]
282
286 [Description("Missing chat bot provider!")]
288
292 [Description("IO operation could not start contended access to the instance's configuration directory!")]
294
298 [Description("Performing this operation would violate the instance's configured chatBotLimit!")]
300
304 [Description("Set amount of chatChannels exceeds the configured channelLimit!")]
306
310 [Description("Unable to start DirectX installer process! Is the server running with admin privileges?")]
312
316 [Description("Error downloading specified engine version!")]
318
322 [Description("Could not acquire lock on engine installation as none exist!")]
324
328 [Description("DMAPI validation failed! See FAQ at https://github.com/tgstation/tgstation-server/discussions/1695")]
330
334 [Description("The DMAPI sent an invalid validation request!")]
336
340 [Description("This user is passwordless and removing their oAuthConnections would leave them with no authentication method!")]
342
346 [Description("No .dme configured and could not automatically detect one!")]
348
352 [Description("Could not load configured .dme!")]
354
358 [Description("Compiler exited with a non-zero exit code!")]
360
364 [Description("There is already a deployment operation in progress!")]
366
370 [Description("Could not retrieve DreamDaemon settings from the database!")]
372
376 [Description("Could not retrieve DreamMaker settings from the database!")]
378
382 [Description("Could not retrieve Repository settings from the database!")]
384
388 [Description("Performing this automatic update as a merge would result in conficts. Aborting!")]
390
394 [Description("Git credentials are required for this operation!")]
396
400 [Description("The remote is requesting authentication, but is not allowing credentials to be received!")]
402
406 [Description("This git operation requires the repository HEAD to currently be on a tracked reference!")]
408
412 [Description("The watchdog is already running!")]
414
418 [Description("Cannot launch active compile job as it is missing or corrupted!")]
420
424 [Description("Game server failed to start!")]
426
430 [Description("Game server failed to start within the configured timeout!")]
432
436 [Description("Test merging with the current remote is not supported!")]
438
442 [Description("The value set for checkoutSha or reference should be in the other field!")]
444
448 [Description("A merge conflict occurred while performing the operation!")]
450
454 [Description("The repository's current reference is unsuitable for this operation as it does not track a remote reference!")]
456
460 [Description("Encountered merge conflicts while test merging one or more sources!")]
462
466 [Description("The new instance's path is not under a white-listed path.")]
468
472 [Description("Cannot set both softShutdown and softReboot at once!")]
474
478 [Description("Cannot start DreamDaemon headless with the BYOND pager running!")]
480
484 [Description("Could not bind to requested game server port! Is there another service running on that port?")]
486
490 [Description("The deployment succeeded but one or more notification events failed!")]
492
496 [Description("Cannot restart the watchdog as it is not running!")]
498
502 [Description("The requested resource is not currently present, but may have been in the past.")]
504
508 [Description("The requested resource is not present and never has been.")]
510
514 [Description("A required GitHub API call failed due to rate limiting.")]
516
520 [Description("Cannot cancel the job as it is no longer running.")]
522
526 [Description("Attempted to create a process dump but /usr/bin/gcore could not be located!")]
528
532 [Description("Could not create dump as gcore exited with a non-zero exit code!")]
534
538 [Description("Test merging cannot be performed with this remote!")]
540
544 [Description("Cannot switch to requested custom engine version as it is not currently installed.")]
546
550 [Description("Cannot perform this operation as the game server is not currently running!")]
552
556 [Description("The instance associated with the operation is currently offline!")]
558
562 [Description("Failed to connect chat bot!")]
564
568 [Description("Failed to allow game server through the Windows firewall!")]
570
574 [Description("TGS was unable to find a free port to allocate for the operation!")]
576
580 [Description("The requested port is either already in use by TGS or could not be allocated!")]
582
586 [Description("The admin user cannot use OAuth connections!")]
588
592 [Description("The requested OAuth provider is disabled via configuration!")]
594
598 [Description("The job did not receive a required upload before timing out!")]
600
604 [Description("A user may not have both a permissionSet and group!")]
606
610 [Description("Cannot delete the user group as it is not empty!")]
612
616 [Description("The user cannot be created because the configured limit has been reached!")]
618
622 [Description("The user group cannot be created because the configured limit has been reached!")]
624
628 [Description("The deployment took longer than the configured timeout!")]
630
634 [Description("Could not send broadcast to the DMAPI. This can happen either due to there being an insufficient DMAPI version, a communication failure, or the server being offline.")]
636
640 [Description("OpenDream could not be compiled due to being unable to locate the dotnet executable!")]
642
646 [Description("The specified OpenDream version is too old!")]
648
652 [Description("Could not create dump as dotnet diagnostics threw an exception!")]
654
658 [Description("Could not load configured .dme due to it being outside the deployment directory! This should be a relative path.")]
660
664 [Description("Provided repository username doesn't match the user of the corresponding access token!")]
666
670 [Description("GraphQL swarm remote gateways not implemented!")]
672 }
@ OpenDreamTooOld
Could not install OpenDream due to it not meeting the minimum version requirements.
@ ApiMismatch
Indicates an API upgrade was required by the server.
@ ModelValidationFailure
The request body was malformed.
@ GameServerOffline
Attempted to perform an operation that requires server (not the watchdog) to be running but it wasn't...
@ JobStopped
Attempted to cancel a stopped job.
@ ConfigurationContendedAccess
Currently unused.
@ SwarmIntegrityCheckFailed
The server swarm has less than the expected amount of nodes.
@ RepoMissing
Attempted to load a non-existant repo.
@ DeploymentInProgress
Deployment already in progress.
@ RemoteGatewaysNotImplemented
Attempted to make a cross swarm server request using the GraphQL API.
@ DeploymentNoDme
No .dme could be found for deployment.
@ WatchdogNotRunning
Attempted to restart a stopped watchdog.
@ MissingHostWatchdog
Attempted to perform a restart operation without the host watchdog component.
@ CannotRemoveLastAuthenticationOption
Tried to remove the last OAuthConnection for a passwordless user.
@ ChatBotMax
Attempted to add a chat bot when at or above the Instance.ChatBotLimit or it was set to something low...
@ OpenDreamCantFindDotnet
Could not compile OpenDream due to a missing dotnet executable.
@ UserPasswordLength
The given Request.UserUpdateRequest.Password length was less than the server's configured minimum.
@ ApiPageTooLarge
A paginated request asked for too large a page.
@ DeploymentInvalidValidation
The DMAPI sent an invalid validation request.
@ InstanceAtExistingPath
Attempted to change a Instance.Path to a non-empty location.
@ InstanceHeaderRequired
The ApiHeaders.InstanceIdHeader header was required but not set.
@ RepoMismatchShaAndReference
Attempted to Request.RepositoryUpdateRequest.CheckoutSha and set Internal.RepositoryApiBase....
@ RepoTokenUsernameMismatch
Entered wrong RepositorySettings.AccessUser for a RepositorySettings.AccessToken.
@ IOError
An IO error occurred while working with the configuration system.
@ AdminUserCannotOAuth
Attempted to set Internal.UserApiBase.OAuthConnections for the admin user.
@ RemoteApiError
A required remote API request failed.
@ GCoreFailure
Non-zero gcore exit code.
@ RepoDuplicateTestMerge
Request.RepositoryUpdateRequest.NewTestMerges contained duplicate TestMergeParameters....
@ RepoBusy
The repository is busy with another operation.
@ RepoWhitespaceCommitterName
Attempted to set a whitespace RepositorySettings.CommitterName.
@ DreamDaemonPagerRunning
Attempted to launch DreamDaemon on a user account that had the BYOND pager running.
@ WatchdogCompileJobCorrupted
Attempted to start the watchdog with a corrupted Internal.CompileJob.
@ ConfigurationFileUpdated
A IConfigurationFile was updated.
@ RepoTestMergeConflict
Encounted merge conflicts while test merging.
@ ApiInvalidPageOrPageSize
A paginated request asked for page 0.
@ UserNameChange
Attempted to change something other than the capitalization of a UserName.Name for a user.
@ BadHeaders
The ApiHeaders failed to validate.
@ InstanceOffline
Attempted to perform an instance operation with an offline instance.
@ InstanceMissingDreamDaemonSettings
Missing Internal.DreamDaemonSettings in database.
@ BroadcastFailure
Sending a broadcast message failed.
@ EngineNoVersionsInstalled
Failed to lock engine executables.
@ RepoReferenceNotTracking
The current Internal.RepositoryApiBase.Reference does not track a remote reference.
@ WatchdogRunning
Attempted to start the watchdog when it was already running.
@ UserGroupAndPermissionSet
Tried to update a user to have both a Internal.UserApiBase.Group and Internal.UserApiBase....
@ ServerUpdateInProgress
A server update was requested while another was in progress.
@ ChatBotWhitespaceConnectionString
Internal.ChatBotSettings.ConnectionString was whitespace.
@ RepoMergeConflict
A merge conflict occurred during a git operation.
@ ChatBotProviderMissing
Internal.ChatBotSettings.Provider was null during creation.
@ RepoExists
Attempted to clone the repository when it already exists.
@ RepoWhitespaceCommitterEmail
Attempted to set a whitespace RepositorySettings.CommitterEmail.
@ InstanceAtConflictingPath
Attempted to change a Instance.Path to a location that conflicts with the server install or another i...
@ RepoUnsupportedTestMergeRemote
Attempted to test merge with an unsupported remote.
@ RepoCredentialsRequired
RepositorySettings.AccessUser and RepositorySettings.AccessToken are required for this operation.
@ InstanceRelocateOnline
Attempted to change a Instance.Path while it was Instance.Online.
@ RepoCloning
The repository is busy being cloned.
@ UserSidChange
Attempted to change a Internal.UserModelBase.SystemIdentifier.
@ ChatBotWhitespaceName
Chat bot NamedEntity.Name was whitespace.
@ TokenWithToken
Attempted to request a Response.TokenResponse with an existing Response.TokenResponse.
@ ByondDirectXInstallFail
Failed to install DirectX with BYOND.
@ EngineFirewallFail
Attempt to add DreamDaemon to the list of firewall exempt processes failed.
@ MissingGCore
Missing GCore executable.
@ FileUploadExpired
A job requiring a file upload did not receive it before timing out.
@ DeploymentExitCode
Compiler failed to compile.
@ UserMissingName
Attempted to create a user with a null or whitespace UserName.Name.
@ InstanceDetachOnline
Attempted to detach an Instance while it was Instance.Online.
@ InstanceMissingDreamMakerSettings
Missing Internal.DreamMakerSettings in database.
@ InstanceMissingRepositorySettings
Missing RepositorySettings in database.
@ DeploymentNeverValidated
The DMAPI never validated itself.
@ RequiresPosixSystemIdentity
The operation requires the unimplemented POSIX system identities feature.
@ GitHubApiRateLimit
A required GitHub API call failed due to rate limiting.
@ ChatCannotConnectProvider
An attempt to connect a chat bot failed.
@ RepoReferenceRequired
Cannot perform operation while not on a Internal.RepositoryApiBase.Reference.
@ RepoMismatchUserAndAccessToken
One of RepositorySettings.AccessUser and RepositorySettings.AccessToken is set while the other isn't.
@ UserMismatchNameSid
Attempted to create a user with a UserName.Name and Internal.UserModelBase.SystemIdentifier.
@ NoPortsAvailable
Attempted to create an instance but no free ports could be found.
@ ConfigurationDirectoryNotEmpty
Attempted to delete an non-empty directory.
@ RepoMismatchShaAndUpdate
Attempted to Request.RepositoryUpdateRequest.CheckoutSha and Request.RepositoryUpdateRequest....
@ ChatBotWrongChannelType
A requested ChatChannel's data does not match with its Internal.ChatBotSettings.Provider.
@ RepoSwappedShaOrReference
Either Request.RepositoryUpdateRequest.CheckoutSha or Internal.RepositoryApiBase.Reference was in one...
@ ResourceNeverPresent
Attempted to access a resource that was never present.
@ DeploymentTimeout
A deployment took longer than the configured timeout.
@ ResourceNotPresent
Attempted to access a resourse that is not (currently) present.
@ InstanceLimitReached
Attempted to create an Instance but the configured instance limit has been reached.
@ DeploymentWrongDme
The configured .dme could not be found.
@ RepoTestMergeInvalidRemote
Attempted to test merge with an invalid remote repository.
@ DatabaseIntegrityConflict
Generic database integrity failure.
@ UserColonInName
Attempted to create a user with a ':' character in the UserName.Name.
@ CannotChangeServerSuite
Attempted to change to a major version less than 4.
@ EngineDownloadFail
Failed to download a given engine version.
@ UserLimitReached
Attempted to create a user but the configured limit has been reached.
@ PortNotAvailable
Attempted to set a port which is either in use by another part of TGS or otherwise not available for ...
@ WatchdogStartupFailed
Game server exited before it finished starting.
@ UserMismatchPasswordSid
Attempted to create a user with a Request.UserUpdateRequest.Password and Internal....
@ EngineCannotDeleteActiveVersion
Could not delete a engine version due to it being set as the active version for the instance.
@ EngineNonExistentCustomVersion
Attempted to switch to a custom engine version that does not exist.
@ OAuthProviderDisabled
Attempted to login with a disabled OAuth provider.
@ WatchdogStartupTimeout
Game server timed-out before it finished starting.
@ InstanceNotAtWhitelistedPath
Attempted to create an instance outside of the Internal.ServerInformationBase.ValidInstancePaths.
@ RepoCannotAuthenticate
The remote returned an invalid authentication request.
@ InternalServerError
An implementation error occurred while processing the request.
@ PostDeployFailure
Failed to post GitHub comments, or send TGS event.
@ ChatBotMaxChannels
Attempted to configure a chat bot with more ChatChannels than the configured Internal....
@ InstanceUpdateTestMergeConflict
Performing an automatic update with the RepositorySettings.AutoUpdatesKeepTestMerges flag resulted in...
@ GameServerDoubleSoft
Attempted to make a game server update with both Internal.DreamDaemonApiBase.SoftRestart and Internal...
@ DotnetDiagnosticsFailure
Failed dotnet diagnostics dump.
@ UserGroupLimitReached
Attempted to create a user group but the configured limit has been reached.
@ UserGroupNotEmpty
Tried to delete a non-empty user group.
@ GameServerPortInUse
Could not bind to port we wanted to launch the game server on.
@ InstanceWhitespaceNameOrPath
Attempted to create an Instance with a whitespace NamedEntity.Name or Instance.Path.
@ DeploymentMissingDme
The configured .dme could not be found.

◆ FieldPresence

Indicates whether a request field is Required or Ignored.

Enumerator
Optional 

The field is optional.

Required 

The field is required.

Ignored 

The field is ignored or should not appear.

Definition at line 6 of file FieldPresence.cs.

7 {
12
17
21 Ignored,
22 }
@ Ignored
The field is ignored or should not appear.

◆ IrcPasswordType

Represents the type of a password for a ChatProvider.Irc.

Enumerator
Server 

Use server authentication.

Sasl 

Use PLAIN sasl authentication.

NickServ 

Use NickServ authentication.

Oper 

Use OPER authentication.

Definition at line 6 of file IrcPasswordType.cs.

7 {
11 Server,
12
16 Sasl,
17
22
26 Oper,
27 }
@ NickServ
Use NickServ authentication.
@ Sasl
Use PLAIN sasl authentication.
@ Server
Use server authentication.

◆ JobCode

The different types of Response.JobResponse.

Enumerator
Unknown 

This catch-all code is applied to jobs that were created on a tgstation-server before v5.17.0.

Move 

When the instance is being moved.

RepositoryClone 

When the repository is cloning.

RepositoryUpdate 

When the repository is being manually updated.

RepositoryAutoUpdate 

When the repository is being automatically updated.

RepositoryDelete 

When the repository is being deleted.

EngineOfficialInstall 

When a new official engine version is being installed.

EngineCustomInstall 

When a new custom engine version is being installed.

EngineDelete 

When an installed engine version is being deleted.

Deployment 

When a deployment is manually triggered.

AutomaticDeployment 

When a deployment is automatically triggered.

WatchdogLaunch 

When the watchdog is started manually.

WatchdogRestart 

When the watchdog is restarted manually.

WatchdogDump 

When a the watchdog is dumping the game server process.

StartupWatchdogLaunch 

When the watchdog starts due to an instance being onlined.

StartupWatchdogReattach 

When the watchdog reattaches due to an instance being onlined.

ReconnectChatBot 

When a chat bot connects/reconnects.

RepositoryReclone 

When a repository is recloned.

Definition at line 8 of file JobCode.cs.

9 {
13 [Description("Legacy job")]
14 Unknown,
15
19 [Description("Move instance")]
20 Move,
21
25 [Description("Clone repository")]
27
31 [Description("Update repository")]
33
37 [Description("Scheduled repository update")]
39
43 [Description("Delete repository")]
45
49 [Description("Install engine version")]
51
55 [Description("Install custom engine version")]
57
61 [Description("Delete installed engine version")]
63
67 [Description("Compile active repository code")]
69
73 [Description("Scheduled code deployment")]
75
79 [Description("Launch Watchdog")]
81
85 [Description("Restart Watchdog")]
87
91 [Description("Create DreamDaemon Process Dump")]
93
97 [Description("Instance startup watchdog launch")]
99
103 [Description("Instance startup watchdog reattach")]
105
109 [Description("Reconnect chat bot")]
111
115 [Description("Reclone repository")]
117 }
@ RepositoryUpdate
When the repository is being manually updated.
@ WatchdogDump
When a the watchdog is dumping the game server process.
@ RepositoryAutoUpdate
When the repository is being automatically updated.
@ WatchdogLaunch
When the watchdog is started manually.
@ StartupWatchdogLaunch
When the watchdog starts due to an instance being onlined.
@ StartupWatchdogReattach
When the watchdog reattaches due to an instance being onlined.
@ Move
When the instance is being moved.
@ EngineOfficialInstall
When a new official engine version is being installed.
@ EngineCustomInstall
When a new custom engine version is being installed.
@ EngineDelete
When an installed engine version is being deleted.
@ Unknown
This catch-all code is applied to jobs that were created on a tgstation-server before v5....
@ RepositoryClone
When the repository is cloning.
@ RepositoryReclone
When a repository is recloned.
@ RepositoryDelete
When the repository is being deleted.
@ AutomaticDeployment
When a deployment is automatically triggered.
@ ReconnectChatBot
When a chat bot connects/reconnects.
@ WatchdogRestart
When the watchdog is restarted manually.
@ Deployment
When a deployment is manually triggered.

◆ OAuthProvider

List of OAuth providers supported by TGS.

Enumerator
GitHub 

https://github.com.

Discord 

https://discord.com.

TGForums 

https://tgstation13.org.

Keycloak 

https://www.keycloak.org.

InvisionCommunity 

https://invisioncommunity.com.

Definition at line 10 of file OAuthProvider.cs.

11 {
15 GitHub,
16
20 Discord,
21
26
31
36 }
@ InvisionCommunity
https://invisioncommunity.com.
@ TGForums
https://tgstation13.org.
@ Keycloak
https://www.keycloak.org.

◆ RemoteGitProvider

Indicates the remote git host.

Enumerator
Unknown 

Unknown remote git provider.

GitHub 

Remote provider is GitHub.com.

GitLab 

Remote provider is GitLab.com.

Definition at line 6 of file RemoteGitProvider.cs.

7 {
11 Unknown,
12
16 GitHub,
17
21 GitLab,
22 }
@ GitLab
Remote provider is GitLab.com.

◆ WatchdogStatus

The current status of the watchdog.

Enumerator
Offline 

The watchdog is not running.

Restoring 

The watchdog is online and attempting to bring DreamDaemon back to operational status.

Online 

The watchdog is online and DreamDaemon is running.

DelayedRestart 

The watchdog is online and in a delayed sleep to bring DreamDaemon back.

Definition at line 6 of file WatchdogStatus.cs.

7 {
11 Offline,
12
17
21 Online,
22
27 }
@ DelayedRestart
The watchdog is online and in a delayed sleep to bring DreamDaemon back.
@ Online
The watchdog is online and DreamDaemon is running.
@ Offline
The watchdog is not running.
@ Restoring
The watchdog is online and attempting to bring DreamDaemon back to operational status.