Skip to main content

API Data Structures

AddBucketResponseMessage

class AddBucketResponseMessage extends CometAPIResponseMessage, NewBucketDetail {
}

AdminAccountPropertiesResponse

class AdminAccountPropertiesResponse {
    string               OrganizationID
    AdminUserPermissions Permissions
    AdminSecurityOptions Security // This field is available in Comet 18.9.9 and later.
}

AdminEmailOptions

class AdminEmailOptions {
    string FromEmail
    string FromName
}

AdminResourceResponse

class AdminResourceResponse extends CometAPIResponseMessage {
    string ResourceHash
}

AdminSecurityOptions

class AdminSecurityOptions {
    int                             PasswordFormat // One of the PASSWORD_FORMAT_ constants
    string                          Password
    bool                            AllowPasswordLogin
    bool                            AllowPasswordAndTOTPLogin
    bool                            AllowPasswordAndU2FLogin // AllowPasswordAndU2FLogin has been deprecated since Comet version 21.12.0
    bool                            AllowPasswordAndWebAuthnLogin

    // U2FRegistrations has been deprecated since Comet version 21.12.0
    // Omission from JSON document implies an empty array
    List<AdminU2FRegistration>      U2FRegistrations
    List<AdminWebAuthnRegistration> WebAuthnRegistrations // Omission from JSON document implies an empty array

    // One of the ENCRYPTIONMETHOD_ constants
    // Omission from JSON document implies 0
    int                             TOTPKeyEncryptionFormat
    string                          TOTPKey // Omission from JSON document implies empty string

    // A regular expression in Go regex syntax, for which IP addresses are allowed to authenticate as this admin account
    // Omission from JSON document implies empty string
    string                          IPWhitelist
}

AdminU2FRegistration

This type has been deprecated since Comet version 21.12.0

class AdminU2FRegistration {
    string     Description
    int        RegisterTime // Unix timestamp, in seconds.
    List<byte> Registration // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
}

AdminUserPermissions

class AdminUserPermissions {
    bool         PreventEditServerSettings // Omission from JSON document implies false
    bool         PreventServerShutdown // Omission from JSON document implies false
    bool         PreventChangePassword // Omission from JSON document implies false
    bool         AllowEditBranding // Omission from JSON document implies false
    bool         AllowEditEmailOptions // Omission from JSON document implies false
    bool         AllowEditRemoteStorage // Omission from JSON document implies false
    bool         AllowEditWebhooks // Omission from JSON document implies false
    bool         AllowEditExternalAuthSources // Omission from JSON document implies false
    bool         DenyConstellationRole // Omission from JSON document implies false

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies false
    bool         DenyViewServerHistory

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies false
    bool         DenyViewServerInfo

    // This field is available in Comet 24.3.2 and later.
    // Omission from JSON document implies false
    bool         PreventDeleteStorageVault

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies false
    bool         PreventRequestStorageVault

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies false
    bool         PreventAddCustomStorageVault

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies false
    bool         HideCloudStorageBranding

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies false
    bool         ShouldRestrictProviderList

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies an empty array
    List<int>    AllowedProvidersWhenRestricted

    // This field is available in Comet 23.9.11 and later.
    // Omission from JSON document implies an empty array
    List<string> AllowedUserPolicies

    // This field is available in Comet 24.6.1 and later.
    // Omission from JSON document implies false
    bool         DenySoftwareBuildRole
}

AdminWebAuthnRegistration

class AdminWebAuthnRegistration {
    string             Description
    int                RegisterTime // Unix timestamp, in seconds.
    int                Type
    bool               IsLegacyU2F // Omission from JSON document implies false

    // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
    // Omission from JSON document implies an empty array
    List<byte>         ID
    WebAuthnCredential Credential // Omission from JSON document implies zero-initialised WebAuthnCredential class instance
}

AllowedAdminUser

class AllowedAdminUser extends AdminSecurityOptions {
    string               Username
    string               OrganizationID
    string               ExternalAuthenticationSource // Omission from JSON document implies empty string
    AdminUserPermissions Permissions
}

AmazonAWSVirtualStorageRoleSettings

class AmazonAWSVirtualStorageRoleSettings extends ObjectLockStorageTemplateSettings {

    // If set, the Storage Template will generate Storage Vaults pointing to a subdirectory within this bucket. A single dynamic IAM policy will cover all created Storage Vaults.
    // This is preferable for platforms that have limits on the total number of IAM policies. However, it requires a high level of IAM compatibility.
    // If left blank, the Storage Template will generate Storage Vaults pointing to new, separate S3 buckets each time. An additional IAM policy is created for each new Storage Vault.
    // This is preferable for platforms that have a lower level of IAM compatibility.
    string MasterBucket
    string AccessKey
    string SecretKey
}

AuthenticationRoleOptions

class AuthenticationRoleOptions {
    bool                      RoleEnabled
    int                       DatabaseCheckLevel // One of the INTEGRITYCHECK_ constants
    bool                      GenerateMissedBackupEvents
    int                       NoMissedBackupEventsBefore // Unix timestamp in seconds, before which no Missed jobs are created
    bool                      GenerateScheduledEmails
    int                       PruneLogsAfterDays
    List<RemoteStorageOption> RemoteStorage
    List<ReplicaServer>       ReplicateTo
    GlobalOverrideOptions     GlobalOverrides // Omission from JSON document implies zero-initialised GlobalOverrideOptions class instance
}

AvailableDownload

class AvailableDownload {
    string Category
    string Description
    bool   Recommended
}

AzureDestinationLocation

AzureDestinationLocation allows configuring connection settings for storage locations using the Azure Blob Storage API (DESTINATIONTYPE_AZURE).

class AzureDestinationLocation {
    string AZBAccountName
    string AZBAccountKey
    string AZBContainer
    string AZBRealm // The base URL for the Azure Blob Storage service. Leave blank to use the global default URL.
    string AZBPrefix
}

B2DestinationLocation

B2DestinationLocation allows configuring connection settings for storage locations using the Backblaze B2 native API (DESTINATIONTYPE_B2).

class B2DestinationLocation {

    // Key ID
    // Omission from JSON document implies empty string
    string AccountID

    // Application Key
    // Omission from JSON document implies empty string
    string Key
    string Bucket // Omission from JSON document implies empty string
    string Prefix // Omission from JSON document implies empty string

    // MaxConnections has been deprecated since Comet version 21.9.7
    // Omission from JSON document implies 0
    int    MaxConnections

    // Hide files instead of deleting them. This can be used for ransomware protection if (A) the B2 credentials have the hideFile permission but not the deleteFile permission, and (B) you use the Backblaze B2 server-side lifecycle policies to clean up old hidden files.
    // Omission from JSON document implies false
    bool   HideDeletedFiles
}

B2StorageExtraInfo

class B2StorageExtraInfo {
    Dictionary<int, B2TransactionTotals> TotalTransactionsInTimeInterval
}

B2TransactionTotals

class B2TransactionTotals {
    int ClassA
    int ClassB
    int ClassC
}

B2VirtualStorageRoleSettings

class B2VirtualStorageRoleSettings {
    string MasterBucket
    string KeyID
    string AppKey
    bool   HideDeletedFiles
}

BackupJobAdvancedOptions

BackupJobAdvancedOptions control additional advanced options for running a backup job. They can be specified as part of a schedule in the BackupRuleConfig type, or supplied immediately when running a job.

class BackupJobAdvancedOptions {
    bool   SkipAlreadyRunning
    int    StopAfter // If Zero: disabled
    int    LimitVaultSpeedBps // If Zero: disabled
    bool   ReduceDiskConcurrency // Default disabled
    bool   UseOnDiskIndexes // Default disabled
    bool   AllowZeroFilesSuccess // Default disabled
    int    AutoRetentionLevel // If Zero: default Automatic (BACKUPJOBAUTORETENTION_AUTOMATIC)
    int    ConcurrencyCount // Desired concurrency count. If Zero, uses mode defaults
    string LogLevel // Log verbosity level. LOG_DEBUG has the greatest verbosity
}

BackupJobDetail

class BackupJobDetail {
    string            GUID
    string            Username
    int               Classification
    int               Status
    int               StartTime // Unix timestamp in seconds
    int               EndTime // Unix timestamp in seconds. Will be zero if the job is still running.
    int               RetryCount
    string            SourceGUID // The Protected Item that this job is for
    string            DestinationGUID // The Storage Vault that this job is for
    string            DeviceID
    string            SnapshotID // Omission from JSON document implies empty string

    // The ID of the backup rule that contains the schedule that triggered this job
    // This field is available in Comet 24.6.6 and later.
    // Omission from JSON document implies empty string
    string            BackupRuleGUID
    string            ClientVersion
    int               TotalDirectories
    int               TotalFiles
    int               TotalSize
    int               TotalChunks
    int               UploadSize
    int               DownloadSize

    // For Hyper-V and VMware backup jobs, the total number of virtual machines.
    // Omission from JSON document implies 0
    int               TotalVmCount

    // For Office 365 backup jobs, the total number of mailboxes.
    // Omission from JSON document implies 0
    int               TotalMailsCount

    // For Office 365 backup jobs, the total number of SharePoint sites.
    // Omission from JSON document implies 0
    int               TotalSitesCount

    // For Office 365 backup jobs, the calculated effective number of protected accounts.
    // Omission from JSON document implies 0
    int               TotalAccountsCount

    // For Office 365 backup jobs, the number of licensed mailboxes.
    // Omission from JSON document implies 0
    int               TotalLicensedMailsCount

    // For Office 365 backup jobs, the number of unlicensed mailboxes.
    // Omission from JSON document implies 0
    int               TotalUnlicensedMailsCount

    // If this field is present, this job did not perform some work because the Storage Vault is currently busy.
    // This field is available in Comet 24.9.2 and later.
    // Omission from JSON document implies empty string
    string            ConflictingJobID

    // If this field is present, it is possible to request cancellation of this job via the API.
    // Omission from JSON document implies empty string
    string            CancellationID

    // If this backup job is still running, additional partial-progress information may be present in this field.
    // Omission from JSON document implies zero-initialised BackupJobProgress class instance
    BackupJobProgress Progress

    // The size of the Storage Vault, as measured at the start of the job.
    // Omission from JSON document implies zero-initialised SizeMeasurement class instance
    SizeMeasurement   DestinationSizeStart

    // The size of the Storage Vault, as measured at the end of the job.
    // Omission from JSON document implies zero-initialised SizeMeasurement class instance
    SizeMeasurement   DestinationSizeEnd
}

BackupJobProgress

class BackupJobProgress {
    int Counter // This field will always increase monotonically, exactly once, for every change to the BackupJobProgress for a given backup job.
    int SentTime // Unix timestamp in seconds
    int RecievedTime // Unix timestamp in seconds. The typo is preserved for backwards-compatibility reasons.
    int BytesDone
    int ItemsDone
    int ItemsTotal
}

BackupRuleConfig

A backup rule connects one source Protected Item and one destination Storage Vault, with multiple time schedules or event triggers

class BackupRuleConfig extends BackupJobAdvancedOptions {
    string                  Description
    int                     CreateTime // Unix timestamp in seconds
    int                     ModifyTime // Unix timestamp in seconds. The caller is responsible for updating this themselves.
    List<string>            PreExec // Custom commands to run before the job
    List<string>            ThawExec // Custom commands to run after taking a disk snapshot
    List<string>            PostExec // Custom commands to run after the job
    string                  Source // The source Protected Item ID to back up from, during this schedule
    string                  Destination // The destination Storage Vault ID to back up to, during this schedule
    List<ScheduleConfig>    Schedules // Scheduled start times
    BackupRuleEventTriggers EventTriggers // Other events that will cause this scheduled job to start
}

BackupRuleEventTriggers

class BackupRuleEventTriggers {

    // The "When PC Starts" option
    // Omission from JSON document implies false
    bool OnPCBoot

    // The "If the last job was Missed" option. In Comet 23.12.3 and later, this condition is evaluated when the PC starts and/or when the live connection is resumed.
    // Omission from JSON document implies false
    bool OnPCBootIfLastJobMissed

    // The option to enable retrying when a backup job failed.
    // This field is available in Comet 24.6.6 and later.
    // Omission from JSON document implies false
    bool OnLastJobFailDoRetry

    // The number of retries when the backup job fails.
    // This field is available in Comet 24.6.6 and later.
    // Omission from JSON document implies 0
    int  LastJobFailDoRetryCount

    // The number of minutes before retrying when the backup job fails.
    // This field is available in Comet 24.6.6 and later.
    // Omission from JSON document implies 0
    int  LastJobFailDoRetryTime
}

BrandingOptions

class BrandingOptions extends WebInterfaceBrandingProperties, BrandingProperties {
}

BrandingProperties

class BrandingProperties extends PublicBrandingProperties, PrivateBrandingProperties {
}

BrowseDiskDrivesResponse

class BrowseDiskDrivesResponse extends CometAPIResponseMessage {
    List<DiskDrive> Disks
}

BrowseEDBResponse

class BrowseEDBResponse extends CometAPIResponseMessage {
    List<EDBFileInfo> Databases
}

BrowseHVResponse

class BrowseHVResponse extends CometAPIResponseMessage {
    List<HyperVMachineInfo> VirtualMachines
}

BrowseOffice365ListVirtualAccountsResponse

class BrowseOffice365ListVirtualAccountsResponse extends CometAPIResponseMessage {
    List<Office365MixedVirtualAccount> Objects
}

BrowseOffice365ObjectsResponse

class BrowseOffice365ObjectsResponse extends CometAPIResponseMessage {
    List<Office365ObjectInfo> Objects
}

BrowseSQLServerResponse

class BrowseSQLServerResponse extends CometAPIResponseMessage {
    Dictionary<string, string> Objects
}

BrowseVMwareResponse

class BrowseVMwareResponse extends CometAPIResponseMessage {
    List<VMwareMachineInfo> VirtualMachines
}

BrowseVSSResponse

class BrowseVSSResponse extends CometAPIResponseMessage {
    Dictionary<string, VSSWriterInfo> VSSWriters
}

BucketProperties

class BucketProperties {
    string          OrganizationID
    int             CreateTime // Unix timestamp, in seconds.
    int             ReadWriteKeyFormat // One of the PASSWORD_FORMAT_ constants
    string          ReadWriteKey
    SizeMeasurement Size
}

BucketUsageInfo

class BucketUsageInfo {
    string             AccessKey
    List<int>          ExistsOnServers // The servers where this bucket was found. The 0-based indexes here correspond to the entries inside ConstellationRoleOptions->Servers.
    List<UserOnServer> InUseBy
}

CometAPIResponseMessage

class CometAPIResponseMessage {
    int    Status // If the operation was successful, the status will be in the 200-299 range.
    string Message
}

CometDestinationLocation

class CometDestinationLocation {
    string CometServer // The URL for the target Comet Server Storage Role, including http/https and trailing slash
    string CometBucket
    string CometBucketKey
}

ConstellationCheckReport

class ConstellationCheckReport {
    int                                 CheckStarted // Unix timestamp in seconds
    int                                 CheckCompleted // Unix timestamp in seconds
    Dictionary<string, BucketUsageInfo> Usage
}

ConstellationRoleOptions

class ConstellationRoleOptions {
    bool                      RoleEnabled
    bool                      DeleteUnusedData
    List<RemoteServerAddress> Servers
}

ConstellationStats

class ConstellationStats {
    int LastCheckStart // Unix timestamp, in seconds.
    int TotalChecksStarted // The total number of Constellation bucket report scans that have been performed since this Comet Server was last restarted
    int TotalBucketsDeleted // The total number of buckets that Constellation has successfully deleted since this Comet Server was last restarted
    int ChecksCurrentlyActive
}

ConstellationStatusAPIResponse

class ConstellationStatusAPIResponse {
    bool               DeletionEnabled
    List<string>       Targets

    // This field is available in Comet 18.6.2 and later.
    // Omission from JSON document implies an empty array
    List<string>       TargetNames
    ConstellationStats Stats
}

ContentMeasurement

class ContentMeasurement {
    int                               MeasureStarted // Unix timestamp in seconds
    int                               MeasureCompleted // Unix timestamp in seconds
    List<ContentMeasurementComponent> Components
}

ContentMeasurementComponent

class ContentMeasurementComponent {
    int          Bytes

    // A list of strings describing which groups of snapshots rely on reaching this component of data.
    // The strings may take the following formats:
    // - source_id/CURRENT - this data is required by the most recent backup job snapshot for the listed Protected Item source.
    // - source_id/HISTORIC - this data is required by an older backup job snapshot for the listed Protected Item source.
    // - TRUNCATED/* - there are too many separate components to show, and this component represents data that is used by some other combination of components. If present, it will be the only entry in the UsedBy array.
    // - the empty string - this amount of data is not currently referenced by any backup job snapshots. If that remains the case by the next retention pass, this much data will be deleted to free up space. If present, it will be the only entry in the UsedBy array.
    List<string> UsedBy
}

CountJobsResponse

class CountJobsResponse {
    int Count
}

CreateGroupPolicyResponse

class CreateGroupPolicyResponse extends CometAPIResponseMessage {
    string PolicyHash
}

CustomRemoteBucketSettings

class CustomRemoteBucketSettings {
    string                     URL
    Dictionary<string, string> CustomHeaders // This field is available in Comet 23.12.5 and later.
    string                     CustomBody // This field is available in Comet 24.5.0 and later.
    string                     CustomBodyType
}

DaysOfWeekConfig

class DaysOfWeekConfig {
    bool Sunday
    bool Monday
    bool Tuesday
    bool Wednesday
    bool Thursday
    bool Friday
    bool Saturday
}

DefaultEmailReportPolicy

class DefaultEmailReportPolicy extends UserCustomEmailSettings {

    // If true, the email reports will use the custom configuration that is defined in UserCustomEmailSettings / Reports fields.
    // If false, the email reports will use configuration from the policy setting if present, or else from the built-in system default email report configuration.
    bool ShouldOverrideDefaultReports
}

DefaultSourceWithOSRestriction

class DefaultSourceWithOSRestriction {
    SourceConfig SourceConfig
    int          RestrictOS
}

DestinationConfig

class DestinationConfig extends DestinationLocation {
    string                Description
    int                   CreateTime // Unix timestamp in seconds
    int                   ModifyTime // Unix timestamp in seconds
    List<string>          PreExec // Custom commands to run before the job
    List<string>          ThawExec // Custom commands to run after taking a disk snapshot
    List<string>          PostExec // Custom commands to run after the job
    int                   EncryptionKeyEncryptionMethod // One of the ENCRYPTIONMETHOD_ constants
    string                EncryptedEncryptionKey
    int                   RepoInitTimestamp // Unix timestamp in seconds. If zero, the Storage Vault has not yet been initialized for the first time.
    bool                  StorageLimitEnabled // Storage Vault quota
    int                   StorageLimitBytes // Storage Vault quota
    DestinationStatistics Statistics // Omission from JSON document implies zero-initialised DestinationStatistics class instance
    RetentionPolicy       DefaultRetention // Configure the retention policy for this Storage Vault. The rules will be applied to any snapshot inside this Storage Vault, unless that snapshot belongs to a Protected Item source that has an overriding retention policy.
    bool                  RebrandStorage // The "Prevent users from viewing the actual storage type" option
    string                RetentionError // If not empty, an error occured during a retention pass. Describes the error.
}

DestinationLocation

This type is available in Comet 17.3.3 and later.

DestinationLocation describes the underlying storage location for a Storage Vault. Prior to Comet 17.3.3 this was an embedded part of the DestinationConfig type.

class DestinationLocation extends CometDestinationLocation, S3DestinationLocation, SFTPDestinationLocation, FTPDestinationLocation, AzureDestinationLocation, LocalDestinationLocation, SpannedDestinationLocation {
    int                       DestinationType // One of the DESTINATIONTYPE_ constants
    SwiftDestinationLocation  Swift
    B2DestinationLocation     B2
    WebDavDestinationLocation WebDav // This field is available in Comet 23.6.9 and later.
    StorjDestinationLocation  Storj
    SMBDestinationLocation    SMB
    string                    Tag
}

DestinationStatistics

class DestinationStatistics {
    SizeMeasurement    ClientProvidedSize
    ContentMeasurement ClientProvidedContent
    string             LastSuccessfulDeepVerify_GUID // Omission from JSON document implies empty string

    // Unix timestamp in seconds
    // Omission from JSON document implies 0
    int                LastSuccessfulDeepVerify_StartTime

    // Unix timestamp in seconds
    // Omission from JSON document implies 0
    int                LastSuccessfulDeepVerify_EndTime
}

DeviceConfig

class DeviceConfig {
    string                              FriendlyName

    // Unix timestamp in seconds
    // Omission from JSON document implies 0
    int                                 RegistrationTime

    // The operating system that the device uses.
    // Omission from JSON document implies zero-initialised OSInfo class instance
    OSInfo                              PlatformVersion

    // Minimal information about the device's private Protected Items, so that other devices can safely run retention passes on a shared Storage Vault.
    // Omission from JSON document implies an empty Dictionary
    Dictionary<string, SourceBasicInfo> Sources

    // The device's reported timezone in IANA format.
    // Omission from JSON document implies empty string
    string                              DeviceTimezone

    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies empty string
    string                              ClientVersion

    // This field is available in Comet 23.9.8 and later.
    // Omission from JSON document implies empty string
    string                              SyncroUUID
}

DiskDrive

class DiskDrive {
    string          ID
    string          DeviceName
    string          Caption
    string          Model
    string          SerialNumber
    int             Size // Bytes
    List<Partition> Partitions

    // For physical disks, this array will be empty. For virtual disks, RAID devices or Linux DM devices, this array may contain the DeviceName of the parent device.
    // This field is available in Comet 24.6.x and later.
    List<string>    DeviceParents
    int             Flags // See WINDISKFLAG_ constants
    int             Cylinders // Cylinders has been deprecated since Comet version 24.6.x This value is reported from the disk driver if available. Otherwise emulates a value based on modern LBA addressing. The field value is not used.
    int             Heads // Heads has been deprecated since Comet version 24.6.x This value is reported from the disk driver if available. Otherwise emulates a value based on modern LBA addressing. The field value is not used.
    int             Sectors // Sectors has been deprecated since Comet version 24.6.x This value is reported from the disk driver if available. Otherwise emulates a value based on modern LBA addressing. The field value is not used.
    int             SectorSize
}

DispatcherAdminSourcesResponse

class DispatcherAdminSourcesResponse extends CometAPIResponseMessage {
    Dictionary<string, string> ImportSources
}

DispatcherStoredObjectsResponse

class DispatcherStoredObjectsResponse extends CometAPIResponseMessage {
    List<StoredObject> StoredObjects
}

DispatcherVaultSnapshotsResponse

class DispatcherVaultSnapshotsResponse extends CometAPIResponseMessage {
    List<VaultSnapshot> Snapshots
}

DispatcherWindiskSnapshotResponse

class DispatcherWindiskSnapshotResponse extends CometAPIResponseMessage {
    List<DiskDrive> WindiskSnapshot
}

EDBFileInfo

class EDBFileInfo {
    string Name
    string Guid
    string ServerName
    bool   CircularLoggingEnabled
}

EmailOptions

class EmailOptions extends AdminEmailOptions {
    string                     Mode // One of the EMAIL_DELIVERY_ constants
    List<EmailReportingOption> EmailReportingOptions // Omission from JSON document implies an empty array
    string                     SMTPHost // Omission from JSON document implies empty string
    int                        SMTPPort // Omission from JSON document implies 0
    string                     SMTPUsername // Omission from JSON document implies empty string
    string                     SMTPPassword // Omission from JSON document implies empty string
    bool                       SMTPAllowInvalidCertificate // Omission from JSON document implies false
    bool                       SMTPAllowUnencrypted // Omission from JSON document implies false

    // Override the HELO/EHLO hostname for SMTP or MX Direct modes. If blank, uses system default HELO/EHLO hostname.
    // Omission from JSON document implies empty string
    string                     SMTPCustomEhlo
}

EmailReportConfig

class EmailReportConfig {
    int                  ReportType // One of the EMAILREPORTTYPE_ constants
    List<ScheduleConfig> SummaryFrequency // Used as a list of scheduled times to send

    // Used to the determine the time bounds of a report
    // Omission from JSON document implies zero-initialised TimeSpan class instance
    TimeSpan             TimeSpan
    SearchClause         Filter
}

EmailReportGeneratedPreview

class EmailReportGeneratedPreview extends CometAPIResponseMessage {
    string       From
    List<string> To
    string       EmailSubject
    string       EmailBodyHTML
    string       EmailBodyPlaintext
}

EmailReportingOption

class EmailReportingOption {
    EmailReportConfig EmailReportConfig
    string            LanguageCode // A supported language code (e.g. "en_US" or the DEFAULT_LANGUAGE constant)
    string            LocalTimezone // The timezone in IANA format (e.g. "Pacific/Auckland" or the DEFAULT_TIMEZONE constant)
    List<string>      Recipients
}

ExternalAuthenticationSource

class ExternalAuthenticationSource extends RemoteServerAddress {
    AdminUserPermissions NewUserPermissions
}

ExternalAuthenticationSourceDisplay

class ExternalAuthenticationSourceDisplay {
    string DisplayName
    string LoginStartURL
}

ExternalAuthenticationSourceResponse

class ExternalAuthenticationSourceResponse {
    int                          Status
    string                       Message
    string                       ID
    ExternalAuthenticationSource Source
}

ExternalLDAPAuthenticationSourceServer

class ExternalLDAPAuthenticationSourceServer {
    string Hostname
    int    Port
    string SecurityMethod // One of the LDAPSECURITYMETHOD_ constants (e.g. "plain" / "ldaps" / "starttls")
    bool   AcceptInvalidSSL
}

ExternalLDAPAuthenticationSourceSettings

class ExternalLDAPAuthenticationSourceSettings extends ExternalLDAPAuthenticationSourceServer {
    List<ExternalLDAPAuthenticationSourceServer> FallbackServers
    string                                       BindUser
    string                                       BindPassword
    string                                       SearchDN
    string                                       SearchFilter
}

ExtraFileExclusion

class ExtraFileExclusion {
    string Exclude // The glob or regular expression to exclude from backup jobs
    bool   Regex // Choose whether the 'Exclude' parameter will be treated as a regular expression (true) or a glob (false)
    int    RestrictOS // Either OS_ANY or one of the OS_ONLY constants
}

FTPDestinationLocation

class FTPDestinationLocation {
    string FTPServer
    string FTPUsername
    string FTPPassword
    bool   FTPBaseUseHomeDirectory // If true, store data in the default home directory given by the FTP server. If false, store data in the FTPCustomBaseDirectory path.
    string FTPCustomBaseDirectory // If FTPBaseUseHomeDirectory is false, this field controls the path where data is stored.
    int    FTPSMode // Control whether this is plaintext FTP or secure FTPS by using one of the FTPS_MODE_ constants.
    int    FTPPort
    int    FTPMaxConnections // If set to zero, uses a system default value that is not unlimited.
    bool   FTPAcceptInvalidSSL
}

FileOption

This type is available in Comet 23.3.7 and later.

FileOption defines the configuration for Comet Server to log live events to a file. See the SEVT_ constants for more information.

class FileOption {
    string    Filename // The prefix for the log filename. It will be stored in the same file location as the Comet Server log files

    // Configure a subset of allowed event types (see SEVT_ constants). If the array is empty, all events will be sent
    // Omission from JSON document implies an empty array
    List<int> AllowEventTypes

    // One of the STREAM_LEVEL_ constants. This controls how much data is logged into the file
    // Omission from JSON document implies empty string
    string    Level

    // Enables pruning of log files
    // Omission from JSON document implies false
    bool      PruningEnabled

    // Limit in days to keep log files when PruningEnabled is set to true. If not set or 0, uses server's PruneLogsAfterDays
    // Omission from JSON document implies 0
    int       PruningLimit
}

GetGroupPolicyResponse

class GetGroupPolicyResponse extends CometAPIResponseMessage {
    GroupPolicy Policy
    string      PolicyHash
}

GetProfileAndHashResponseMessage

class GetProfileAndHashResponseMessage extends CometAPIResponseMessage {
    string            ProfileHash // A hash identifier for the current state of the user's profile. If you supply this in the AdminSetUserProfileHash API, the server can safely reject your change if another change has happened concurrently. This allows you to retry the request.
    UserProfileConfig Profile
}

GetProfileHashResponseMessage

class GetProfileHashResponseMessage extends CometAPIResponseMessage {
    string ProfileHash
}

GlobalOverrideOptions

class GlobalOverrideOptions {
    int RandomDelaySecs // Omission from JSON document implies 0
}

GroupPolicy

class GroupPolicy {
    string     Description
    string     OrganizationID
    UserPolicy Policy
    bool       DefaultUserPolicy // DefaultUserPolicy marks that this UserPolicy should be applied to all new users. The Comet Server will ensure that only one policy can be set as default.
    int        CreatedDate // Unix timestamp in seconds. May be zero for Policies created prior to Comet 23.3.3.
    int        ModifiedDate // Unix timestamp in seconds. May be zero for Policies created prior to Comet 23.3.3.
}

HTTPConnectorOptions

class HTTPConnectorOptions {
    string ListenAddress
    string SSLCertPath // Omission from JSON document implies empty string
    string SSLIntermediate // Omission from JSON document implies empty string
    string SSLCertKey // Omission from JSON document implies empty string
    string AutoSSLDomains // Omission from JSON document implies empty string
    string SSLPfxPath // Omission from JSON document implies empty string
    string SSLPfxPassword // Omission from JSON document implies empty string
}

HourSchedConfig

class HourSchedConfig {
    int Hour
    int Minutes
}

HyperVMachineInfo

class HyperVMachineInfo {
    string ID
    string Name
}

ImpossibleCloudIAMTemplateSettings

This type is available in Comet 24.3.1 and later.

class ImpossibleCloudIAMTemplateSettings extends ObjectLockStorageTemplateSettings {
    string AccessKey
    string SecretKey
    string Region // Optional. The region for both IAM communication and for provisioning new buckets. If blank, uses the default region for Impossible Cloud (eu-central-2).
}

ImpossibleCloudPartnerTemplateSettings

This type is available in Comet 24.3.1 and later.

class ImpossibleCloudPartnerTemplateSettings extends ObjectLockStorageTemplateSettings {
    string Region // Optional. The region for your Partner console and for provisioning new buckets. If blank, uses the default region for Impossible Cloud (eu-central-2).
    string AccessKey
}

InstallCreds

class InstallCreds {
    string Username
    string Password
    string TOTPCode
    string Server
    bool   AutoLogin
}

InstallToken

class InstallToken {
    string Username
    string Server // The URL of the Comet Server (Auth Role) for the target user to log in to.
    string Token // The token for use with the "/TOKEN=" silent install flag.
    int    CreateTime // Unix timestamp, in seconds.
    bool   Used // If the token has been used, it cannot be used again.
    int    ExpireTime // Unix timestamp, in seconds.
}

InstallTokenResponse

class InstallTokenResponse extends CometAPIResponseMessage {
    InstallToken InstallToken
}

JobEntry

JobEntry is a single entry within a job report.

class JobEntry {
    int    Time // Unix timestamp in seconds
    string Severity // One of the SEVERITY_ constants.
    string Message
}

LicenseLimits

class LicenseLimits {
    int                     deviceCount // Omission from JSON document implies 0
    Dictionary<string, int> boosterCount // Omission from JSON document implies an empty Dictionary
}

LicenseOptions

class LicenseOptions {
    string Email // Omission from JSON document implies empty string
    string SerialNumber
}

LiveUserConnection

class LiveUserConnection {
    string Username
    string DeviceID
    string ReportedVersion // The Comet Backup software version that this live-connected device reports that it is running. It takes the format "MAJOR.MINOR.PATCH", such as "23.2.0". See the APPLICATION_VERSION constant for more information.
    string ReportedPlatform // The operating system of the device. It is one of the PLATFORM_ constants; then a forwardslash (/); then the device's GOARCH.

    // The operating system of the device, in extended detail.
    // Omission from JSON document implies zero-initialised OSInfo class instance
    OSInfo ReportedPlatformVersion

    // The reported timezone of the device, in IANA format.
    // Omission from JSON document implies empty string
    string DeviceTimeZone

    // The live-connected device's remote IP address, as seen from the Comet Server.
    // Omission from JSON document implies empty string
    string IPAddress
    int    ConnectionTime // Unix timestamp, in seconds.
    bool   AllowsFilenames // The current state of the "Allow administrator to view my files" client-side option. If this option is refused, some live-connected actions will be refused by the device.
}

LocalDestinationLocation

class LocalDestinationLocation {
    string LocalcopyPath
    string LocalcopyWinSMBUsername // If logging in to a Windows network share (SMB/CIFS) is required, enter the username here.
    string LocalcopyWinSMBPassword // If logging in to a Windows network share (SMB/CIFS) is required, enter the password here. The password may be hashed as per the LocalcopyWinSMBPasswordFormat field.
    int    LocalcopyWinSMBPasswordFormat // One of the PASSWORD_FORMAT_ constants. It controls the hash format of the LocalcopyWinSMBPassword field.
}

LocalStorageDirectory

class LocalStorageDirectory {
    string Path
}

MSSQLConnection

class MSSQLConnection {
    string Type // One of the MSSQL_AUTH_ constants (e.g. "windows" or "native")
    string Username
    string Password
    string Hostname // Hostname has been deprecated since Comet version Unused
    string InstanceName
    string Method // One of the MSSQL_METHOD_ constants, to control using x86_32 or x86_64 OLEDB drivers
}

MSSQLLoginArgs

class MSSQLLoginArgs {
    string Instance
    string AuthMode
    string Username
    string Password
    bool   MethodIsOledb32Bit
    bool   RestoreNoRecovery // If this MSSQLLoginArgs structure is used for a restore job (RestoreJobAdvancedOptions) using RESTORETYPE_MSSQL, then, this field controls the RECOVERY / NO RECOVERY option state.
}

MacOSCodeSignProperties

class MacOSCodeSignProperties {
    int           Level // One of the MACOSCODESIGN_LEVEL_ constants
    bool          SignLocally
    SSHConnection SSHServer
    string        CertificateName // "Developer ID Installer" certificate, either a local filepath or a resource:// URI. Used for signing the final flat *.pkg.
    string        AppCertificateName // "Developer ID Application" certificate, either a local filepath or a resource:// URI. Used for signing internal binaries if Notary is enabled
    string        AppleID
    string        AppleIDPass
    int           AppleIDPassFormat // One of the ENCRYPTIONMETHOD_ constants
    string        CertificateFile
    string        AppCertificateFile
    string        PfxFilePassword
    int           PfxFilePasswordFormat // One of the ENCRYPTIONMETHOD_ constants
    string        NotaryAPIIssuerID
    string        NotaryAPIKeyID
    string        NotaryAPIKeyFile
}

MongoDBConnection

class MongoDBConnection {
    string        Server
    int           Port
    string        Username
    string        Password
    string        AuthenticationDB

    // Prior to Comet 22.12.3, must be a filesystem path to `mongo` (n.b. not `mongosh`). In Comet >= 22.12.3, not used.
    // MongoShellPath has been deprecated since Comet version 22.12.3
    string        MongoShellPath
    string        MongodumpPath
    string        ReadPreference
    bool          UseReplica
    string        ReplicaName
    List<string>  ReplicaMembers
    bool          UseSSL
    string        ClientSSLPEMPath
    string        ServerSSLPEMPath
    string        SSLClientKeyPassword
    bool          AllowInvalidCertificate
    bool          AllowInvalidHostname
    bool          UseSSH
    SSHConnection SSHConnection // Omission from JSON document implies zero-initialised SSHConnection class instance
}

MySQLConnection

class MySQLConnection {
    string Host
    string Port
    string Username // Optional
    string Password // Optional
    bool   UseTLS
    bool   TLSSkipVerify
    string TLSCustomServerCAPath
    string TLSCustomClientCrtPath
    string TLSCustomClientKeyPath
}

NewBucketDetail

class NewBucketDetail {
    string NewBucketID
    string NewBucketKey
}

NewsEntry

class NewsEntry {
    string OrganizationID
    int    DateTime // Unix timestamp, in seconds.
    string TextContent
}

OSInfo

OSInfo represents the common set of version information between all operating systems

class OSInfo {

    // The primary version number (e.g. on Windows: 1703 / 2009, on Linux: 20.04 / 22.04)
    // Omission from JSON document implies empty string
    string version

    // The primary presentation name (e.g. "Windows 10 Pro", "debian", "Synology DSM")
    // Omission from JSON document implies empty string
    string distribution

    // The detailed build number (e.g. 19043)
    // Omission from JSON document implies empty string
    string build

    // The GOOS value
    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies empty string
    string os

    // The GOARCH value
    // This field is available in Comet 23.6.0 and later.
    // Omission from JSON document implies empty string
    string arch
}

ObjectLockStorageTemplateSettings

class ObjectLockStorageTemplateSettings {
    bool UseObjectLock // UseObjectLock has been deprecated since Comet version 23.x.x
    int  ObjectLockMode // Control whether the resulting Storage Vaults are configured for Object Lock. One of the OBJECT_LOCK_ constants
    int  ObjectLockDays

    // Control whether the "Allow removal of deleted files" checkbox is enabled for Storage Vaults generated from this Storage Template.
    // When configuring a Storage Template from the Comet Server web interface, this field is set automatically for Storage Templates using Object Lock.
    bool RemoveDeleted
}

Office365Connection

class Office365Connection {
    int                      Concurrency
    Office365Credential      Credential
    Office365CustomSetting   CustomSetting
    Office365CustomSettingV2 CustomSettingV2
    string                   FeatureFlag
    string                   LogLevel
    List<string>             MailboxUniqueMembers
    List<string>             SiteUniqueMembers
}

Office365Credential

class Office365Credential {
    string AppID
    string TenantID
    string Secret
    string AppCert
    string Region
}

Office365CustomSetting

This type has been deprecated since Comet version 21.9.xx

Office365CustomSetting is used in the EngineProps for an Office 365 Protected Item (see ENGINE_BUILTIN_MSOFFICE). If present, it will be automatically converted to the replacement Office365CustomSettingV2 type.

class Office365CustomSetting {
    string       MailboxStrategy
    string       SiteStrategy
    List<string> MailboxUserIDs
    List<string> MailboxGroupIDs
    List<string> SiteIDs
}

Office365CustomSettingV2

This type is available in Comet 21.9.xx and later.

Office365CustomSettingV2 is used in the EngineProps for an Office 365 Protected Item (see ENGINE_BUILTIN_MSOFFICE).

class Office365CustomSettingV2 {
    bool                    Organization // If true, then backup the entire Office 365 Tenant except the selected members. If false, backup the selected members only.

    // Key can be the ID of user, group or SharePoint
    // Value is a bitset of the SERVICE_ constants, to select which services to back up for this member.
    // Omission from JSON document implies an empty Dictionary
    Dictionary<string, int> BackupOptions

    // Key must be a group ID
    // Value is a bitset of the SERVICE_ constants, to select which services to back up for this member.
    // Omission from JSON document implies an empty Dictionary
    Dictionary<string, int> MemberBackupOptions
}

Office365MixedVirtualAccount

class Office365MixedVirtualAccount {
    string       DefaultDriveID // Omission from JSON document implies empty string
    bool         Disabled // Omission from JSON document implies false
    string       DisplayName // Omission from JSON document implies empty string
    int          EnabledServiceOption // Omission from JSON document implies 0
    string       id
    string       JobTitle // Omission from JSON document implies empty string
    string       Mail // Omission from JSON document implies empty string
    string       SiteID // Omission from JSON document implies empty string
    int          Type // Omission from JSON document implies 0
    string       UserPrincipalName // Omission from JSON document implies empty string
    string       WebID // Omission from JSON document implies empty string
    string       WebURL // Omission from JSON document implies empty string
    List<string> Members // Omission from JSON document implies an empty array
    int          ServiceOptions // Omission from JSON document implies 0
    int          MemberServiceOptions // Omission from JSON document implies 0
    bool         hasLicense // Omission from JSON document implies false
}

Office365ObjectInfo

class Office365ObjectInfo {
    string       GUID
    string       Name
    string       Type
    string       Value // May be an email address or a SharePoint site URL
    List<string> Members
}

OidcClaim

class OidcClaim {
    string Name
    string Value // Omission from JSON document implies empty string
}

OidcConfig

class OidcConfig {
    string          DisplayName
    List<string>    Hosts // Omission from JSON document implies an empty array
    string          OrganizationID // Omission from JSON document implies empty string
    string          Provider
    string          ClientID
    string          ClientSecret
    bool            SkipMFA
    List<string>    Scopes // Omission from JSON document implies an empty array
    List<OidcClaim> RequiredClaims // Omission from JSON document implies an empty array
    string          DiscoveryDocumentURL // Omission from JSON document implies empty string
    string          AzureTenantID // Omission from JSON document implies empty string
    string          GoogleHostedDomain // Omission from JSON document implies empty string
}

Organization

class Organization {
    Dictionary<string, FileOption>    AuditFileOptions
    BrandingOptions                   Branding
    ConstellationRoleOptions          ConstellationRole
    EmailOptions                      Email
    List<string>                      ExperimentalOptions // Omission from JSON document implies an empty array
    List<string>                      Hosts
    string                            Name
    bool                              IsSuspended
    List<PSAConfig>                   PSAConfigs
    List<RemoteStorageOption>         RemoteStorage
    SoftwareBuildRoleOptions          SoftwareBuildRole
    Dictionary<string, WebhookOption> WebhookOptions
}

OrganizationLoginURLResponse

class OrganizationLoginURLResponse {
    string LoginURL
}

OrganizationResponse

class OrganizationResponse {
    int          Status
    string       Message
    string       ID
    Organization Organization
}

PSAConfig

class PSAConfig {
    bool                       AlertsDisabled // For PSA_TYPE_GRADIENT. Defaults to enabled

    // Custom headers to send with each PSA request
    // Omission from JSON document implies an empty Dictionary
    Dictionary<string, string> CustomHeaders

    // Specified API key for the target PSA
    // Omission from JSON document implies empty string
    string                     PartnerKey
    int                        Type // One of the PSA_TYPE_ constants
    string                     URL // The URL or subdomain for outbound PSA requests
    PSAGroupedBy               GroupedBy
}

PSAGroupedBy

class PSAGroupedBy {
    bool Users
    bool Tenants
    bool AccountName
}

Partition

class Partition {
    string       DeviceName
    string       Filesystem // The name of the filesystem used on this partition (e.g. "NTFS")
    string       VolumeName
    string       VolumeGuid
    string       VolumeSerial
    List<string> MountPoints
    int          ReadOffset // Bytes. The partition's offset within the DeviceName. It will be zero if this partition has a direct DeviceName handle.
    int          Size // Bytes
    int          UsedSize // Bytes. Only present for supported filesystems that are currently mounted by the OS
    int          Flags
    int          BytesPerFilesystemCluster
}

PrivateBrandingProperties

class PrivateBrandingProperties extends WindowsCodeSignProperties {
    int                     BuildMode // One of the CLIENTBRANDINGBUILD_ constants
    string                  PathIcoFile
    string                  PathIcnsFile
    string                  PathMenuBarIcnsFile
    string                  PathEulaRtf
    string                  PathTilePng
    string                  PathHeaderImage
    string                  PathAppIconImage
    string                  PackageIdentifier
    MacOSCodeSignProperties MacOSCodeSign
}

ProtectedItemEngineTypePolicy

class ProtectedItemEngineTypePolicy {
    bool         ShouldRestrictEngineTypeList
    List<string> AllowedEngineTypeWhenRestricted
}

PublicBrandingProperties

class PublicBrandingProperties {
    string ProductName
    string CompanyName
    string HelpURL
    bool   HelpIsPopup
    string DefaultLoginServerURL
    string TileBackgroundColor
    string AccountRegisterURL
    bool   HideBackgroundLogo
}

RatelimitOptions

class RatelimitOptions {
    List<RatelimitRule> Rules // Omission from JSON document implies an empty array
}

RatelimitRule

class RatelimitRule {
    string MatchRegex
    int    BytesPerSecond
}

RegisterOfficeApplicationBeginResponse

class RegisterOfficeApplicationBeginResponse {
    string Continuation
    string VerificationURL
    string UserCode
}

RegisterOfficeApplicationCheckResponse

class RegisterOfficeApplicationCheckResponse {
    string              Continuation
    bool                Completed
    string              Error
    Office365Credential Result // Omission from JSON document implies zero-initialised Office365Credential class instance
}

RegistrationLobbyConnection

class RegistrationLobbyConnection {
    string DeviceID
    string OrganizationID
    string FriendlyName
    string ReportedVersion
    string ReportedPlatform
    OSInfo ReportedPlatformVersion // Omission from JSON document implies zero-initialised OSInfo class instance
    string DeviceTimeZone // Omission from JSON document implies empty string
    string IPAddress // Omission from JSON document implies empty string
    int    ConnectionTime
}

RemoteServerAddress

class RemoteServerAddress {
    string                                   Type
    string                                   Description

    // For use with Comet Server (Storage Role / Auth Role)
    // Omission from JSON document implies empty string
    string                                   RemoteAddress

    // For use with Comet Server (Storage Role / Auth Role)
    // Omission from JSON document implies empty string
    string                                   Username

    // For use with Comet Server (Storage Role / Auth Role)
    // Omission from JSON document implies empty string
    string                                   Password
    ExternalLDAPAuthenticationSourceSettings LDAP // Omission from JSON document implies zero-initialised ExternalLDAPAuthenticationSourceSettings class instance
    OidcConfig                               OIDC // Omission from JSON document implies zero-initialised OidcConfig class instance

    // Backblaze B2 (Storage Template / Constellation)
    // Omission from JSON document implies zero-initialised B2VirtualStorageRoleSettings class instance
    B2VirtualStorageRoleSettings             B2

    // Wasabi, or Comet Storage powered by Wasabi (Storage Template / Constellation)
    // Omission from JSON document implies zero-initialised WasabiVirtualStorageRoleSettings class instance
    WasabiVirtualStorageRoleSettings         Wasabi

    // Custom Remote Bucket HTTP protocol (Storage Template)
    // Omission from JSON document implies zero-initialised CustomRemoteBucketSettings class instance
    CustomRemoteBucketSettings               Custom

    // IDrive e2, or Custom IAM-compatible (Storage Template / Constellation)
    // Omission from JSON document implies zero-initialised S3GenericVirtualStorageRole class instance
    S3GenericVirtualStorageRole              S3

    // Amazon AWS (Storage Template / Constellation)
    // Omission from JSON document implies zero-initialised AmazonAWSVirtualStorageRoleSettings class instance
    AmazonAWSVirtualStorageRoleSettings      AWS

    // Storj (Storage Template / Constellation)
    // Omission from JSON document implies zero-initialised StorjVirtualStorageRoleSetting class instance
    StorjVirtualStorageRoleSetting           Storj

    // Impossible Cloud Partner API (Storage Template / Constellation)
    // Omission from JSON document implies zero-initialised ImpossibleCloudPartnerTemplateSettings class instance
    ImpossibleCloudPartnerTemplateSettings   ImpPartner

    // Impossible Cloud IAM API (Storage Template / Constellation)
    // Omission from JSON document implies zero-initialised ImpossibleCloudIAMTemplateSettings class instance
    ImpossibleCloudIAMTemplateSettings       ImpUser
}

RemoteStorageOption

class RemoteStorageOption extends RemoteServerAddress {
    bool StorageLimitEnabled
    int  StorageLimitBytes
    bool RebrandStorage
}

ReplicaServer

class ReplicaServer extends RemoteServerAddress {
    string ReplicaDeletionStrategy // Omission from JSON document implies empty string
}

ReplicatorStateAPIResponse

class ReplicatorStateAPIResponse {
    string Description
    string RemoteServerID
    int    DisplayClass
    int    ActiveWorkers
    int    TotalWorkers
    int    State
    int    ItemsQueued
    int    BytesQueued
    int    LastWorkerSubmitTime
    int    CurrentTime
    int    ItemsReplicated
    int    BytesReplicated
}

RequestStorageVaultResponseMessage

class RequestStorageVaultResponseMessage extends CometAPIResponseMessage {
    string DestinationID
}

RestoreJobAdvancedOptions

class RestoreJobAdvancedOptions {
    int                 Type // One of the RESTORETYPE_ constants
    bool                OverwriteExistingFiles // For RESTORETYPE_FILE
    bool                OverwriteIfNewer // For RESTORETYPE_FILE. If set, OverwriteExistingFiles must be true
    bool                OverwriteIfDifferentContent // For RESTORETYPE_FILE. If set, OverwriteExistingFiles must be true
    bool                OverwriteForcePermissions // For RESTORETYPE_FILE. If set, OverwriteExistingFiles must be true. This can be set in combination with other OverwriteIf options.
    bool                DestIsOriginalLocation // For RESTORETYPE_FILE. If set, DestPath must be blank
    string              DestPath // For RESTORETYPE_FILE or RESTORETYPE_PROCESS_xxx
    List<string>        ExactDestPaths // For RESTORETYPE_WINDISK only. Must have one entry for each selected restore path
    int                 ArchiveFormat // For RESTORETYPE_FILE_ARCHIVE or RESTORETYPE_PROCESS_ARCHIVE. Default 0 is *.tar, for backward compatibility

    // Default disabled. For RESTORETYPE_FILE and RESTORETYPE_WINDISK. Used to continue the restore job when unreadable data chunks are found.
    // Corresponds to the "Allow partial file restores (zero-out unrecoverable data)" option
    // This field is available in Comet 23.6.4 and later.
    bool                SkipUnreadableChunks

    // Default disabled. Used to store the index files on disk instead of in memory.
    // Corresponds to the "Prefer temporary files instead of RAM (slower)" option
    // This field is available in Comet 23.6.4 and later.
    bool                OnDiskIndexesKey

    // For RESTORETYPE_OFFICE365_CLOUD.
    // Omission from JSON document implies zero-initialised Office365Credential class instance
    Office365Credential Office365Credential
    string              Username // For RESTORETYPE_MYSQL
    string              Password // For RESTORETYPE_MYSQL
    string              Host // For RESTORETYPE_MYSQL
    string              Port // For RESTORETYPE_MYSQL
    bool                UseSsl // For RESTORETYPE_MYSQL
    bool                SslAllowInvalid // For RESTORETYPE_MYSQL i.e.: Self signed certs
    string              SslCaFile // For RESTORETYPE_MYSQL
    string              SslCrtFile // For RESTORETYPE_MYSQL
    string              SslKeyFile // For RESTORETYPE_MYSQL

    // For RESTORETYPE_MSSQL.
    // Omission from JSON document implies zero-initialised MSSQLLoginArgs class instance
    MSSQLLoginArgs      MsSqlConnection
}

RetentionPolicy

class RetentionPolicy {
    int                  Mode // One of the RETENTIONMODE_ constants
    List<RetentionRange> Ranges
}

RetentionRange

The Type field controls which fields of this data type are used. For additional information, see the notes on the RETENTIONRANGE_ constants.

class RetentionRange {
    int Type // One of the RETENTIONRANGE_ constants
    int Timestamp // Unix timestamp, in seconds. Used by RETENTIONRANGE_NEWER_THAN_X.
    int Jobs
    int Days
    int Weeks
    int Months
    int WeekOffset // 0: Sunday, 6: Saturday

    // 1: 1st, 31: 31st
    // Prior to Comet version 23.6.2, 31 was treated as 30.
    // For months that do not have a day equal to the specified offset, no backup will be retained.
    // For example, if the offset is set to 30, no backup will be kept for February.
    int MonthOffset
}

S3DestinationLocation

class S3DestinationLocation {
    string S3Server
    bool   S3UsesTLS
    string S3AccessKey
    string S3SecretKey
    string S3BucketName
    string S3Subdir
    string S3CustomRegion
    bool   S3UsesV2Signing // If true, use legacy v2 signing. If false (default), use modern v4 signing
    bool   S3RemoveDeleted
    int    S3ObjectLockMode
    int    S3ObjectLockDays
}

S3GenericVirtualStorageRole

class S3GenericVirtualStorageRole extends AmazonAWSVirtualStorageRoleSettings {
    string S3Endpoint // The URL for S3 API calls (e.g. "s3.amazonaws.com")
    string IAMEndpoint // The URL for IAM API calls (e.g. "iam.amazonaws.com")

    // Optional. The region to be used for new buckets. If blank, uses the default region for the S3-compatible provider (e.g. us-east-1).
    // This field is available in Comet 24.3.1 and later.
    string Region

    // Optional. Prefix to use for bucket paths.
    // This field is available in Comet 24.6.3 and later.
    string Prefix
}

SFTPDestinationLocation

class SFTPDestinationLocation {
    string SFTPServer
    string SFTPUsername
    string SFTPRemotePath // The directory on the SFTP server in which data is stored.
    int    SFTPAuthMode // One of the DESTINATION_SFTP_AUTHMODE_ constants
    string SFTPPassword // For use with DESTINATION_SFTP_AUTHMODE_PASSWORD only: the SSH password to connect with
    string SFTPPrivateKey // For use with DESTINATION_SFTP_AUTHMODE_PRIVATEKEY only: the SSH private key to connect with, in OpenSSH format.
    bool   SFTPCustomAuth_UseKnownHostsFile // If true, then the SFTPCustomAuth_KnownHostsFile will be used to verify the remote SSH server's host key, using Trust On First Use (TOFU).
    string SFTPCustomAuth_KnownHostsFile // If SFTPCustomAuth_UseKnownHostFile is true, the path to the SSH known_hosts file.
}

SMBDestinationLocation

class SMBDestinationLocation {
    string SMBServer
    string SMBShare
    string SMBDirectory
    string SMBUsername
    string SMBPassword
}

SSHConnection

class SSHConnection {
    string SSHServer
    string SSHUsername
    int    SSHAuthMode // One of the SSHCONNECTION_AUTHMODE_ constants
    string SSHPassword // For use with SSHCONNECTION_AUTHMODE_PASSWORD only: the SSH password to connect with
    string SSHPrivateKey // For use with SSHCONNECTION_AUTHMODE_PRIVATEKEY only: the SSH private key to connect with, in OpenSSH format.
    bool   SSHCustomAuth_UseKnownHostsFile // If true, then the SSHCustomAuth_KnownHostsFile will be used to verify the remote SSH server's host key, using Trust On First Use (TOFU).
    string SSHCustomAuth_KnownHostsFile // If SSHCustomAuth_UseKnownHostsFile is true, the path to the SSH known_hosts file.
}

ScheduleConfig

class ScheduleConfig {
    int              FrequencyType
    int              SecondsPast
    int              Offset // Omission from JSON document implies 0
    bool             RestrictRuntime
    HourSchedConfig  FromTime
    HourSchedConfig  ToTime
    bool             RestrictDays
    DaysOfWeekConfig DaysSelect
    int              RandomDelaySecs // Omission from JSON document implies 0
}

SearchClause

class SearchClause {
    string             ClauseType // One of the SEARCHCLAUSE_ constants (e.g. empty-string if this is a rule, or "and"/"or" if there are ClauseChildren)
    string             RuleField // The field name to search. Check the specific API for more information about which fields are available for searching. For use with ClauseType = SEARCHCLAUSE_RULE.
    string             RuleOperator // One of the SEARCHOPERATOR_ constants. The operator must match the type of the particular field. For use with ClauseType = SEARCHCLAUSE_RULE.

    // The value to compare the field against.
    // - If the field is a string, any string is permissable.
    // - If the field is an integer, the integer should be cast to a base-10 string. There is currently no support for fractional or floating-point numbers.
    // - If the field is a boolean, the following values can be used for true ("1", "t", "T", "true", "TRUE", "True") and the following values can be used for false ("0", "f", "F", "false", "FALSE", "False").
    // For use with ClauseType = SEARCHCLAUSE_RULE.
    string             RuleValue

    // If ClauseType is not SEARCHCLAUSE_RULE, the child rules will be applied according to the ClauseType (e.g. "and"/"or")
    // Omission from JSON document implies an empty array
    List<SearchClause> ClauseChildren
}

SearchResultFileInfo

SearchResultFileInfo describes a single result entry when searching for files within a Storage Vault snapshot.

class SearchResultFileInfo {
    string path // Path to the file within the selected snapshot, using forwardslash (/) separators
    string name // Filename
    string type // One of the STOREDOBJECTTYPE_ constants
    string mode // Omission from JSON document implies empty string

    // Timestamp in RFC3339 format with subsecond precision and time zone offset. See the Golang time.RFC3339Nano for more information.
    // Omission from JSON document implies empty string
    string mtime

    // Timestamp in RFC3339 format with subsecond precision and time zone offset. See the Golang time.RFC3339Nano for more information.
    // Omission from JSON document implies empty string
    string atime

    // Timestamp in RFC3339 format with subsecond precision and time zone offset. See the Golang time.RFC3339Nano for more information.
    // Omission from JSON document implies empty string
    string ctime

    // Bytes
    // Omission from JSON document implies 0
    int    size
}

SearchSnapshotsResponse

class SearchSnapshotsResponse extends CometAPIResponseMessage {
    Dictionary<string, List<SearchResultFileInfo>> SnapshotFiles
}

SelfBackupExportOptions

class SelfBackupExportOptions {
    DestinationLocation Location
    string              EncryptionKey
    int                 EncryptionKeyFormat // One of the ENCRYPTIONMETHOD_ constants
    int                 Compression // One of the COMPRESS_LVL_ constants
    bool                ExcludeJobsDB // The jobs database is often the largest component of the Server Self-Backup archive. By excluding it, you could run the Server Self-Backup more often.
    bool                IncludeServerLogs
    string              RestrictToSingleOrgID // Omission from JSON document implies empty string
    int                 Index
}

SelfBackupOptions

class SelfBackupOptions {
    List<SelfBackupTarget> Targets
}

SelfBackupStatistics

class SelfBackupStatistics {
    int  CurrentRunStart
    int  LastRunStart
    int  LastRunEnd
    bool LastRunSuccess
    int  LastRunSize
}

SelfBackupTarget

class SelfBackupTarget extends SelfBackupExportOptions {
    List<ScheduleConfig> Schedule
    string               ScheduleTimezone // Timezone in IANA format
    RetentionPolicy      RetentionPolicy
}

ServerConfigOptions

class ServerConfigOptions {
    List<AllowedAdminUser>                           AdminUsers
    AuthenticationRoleOptions                        AuthenticationRole
    BrandingOptions                                  Branding
    ConstellationRoleOptions                         ConstellationRole

    // This field is defined for compatibility with 17.x.x versions of Comet Server. Do not rely on this field. In Comet 23.2.x, if this field is defined, it is imported into the replacement 'ConstellationRole' field under the assumption that you are upgrading this Comet Server from a 17.x.x version. In Comet 23.3.x and later, this field is ignored and will not be respected during the import process.
    // Omission from JSON document implies zero-initialised ConstellationRoleOptions class instance
    ConstellationRoleOptions                         OverseerRole
    EmailOptions                                     Email

    // An array of GUIDs that can enable additional early-access functionality
    // Omission from JSON document implies an empty array
    List<string>                                     ExperimentalOptions
    Dictionary<string, ExternalAuthenticationSource> ExternalAdminUserSources
    RatelimitOptions                                 IPRateLimit // The Comet Server can enforce a bandwidth limit based on the target IP address
    LicenseOptions                                   License
    List<HTTPConnectorOptions>                       ListenAddresses // Configure ip, port, and SSL settings for this self-hosted Comet Server.
    Dictionary<string, Organization>                 Organizations // Tenants
    List<PSAConfig>                                  PSAConfigs
    SelfBackupOptions                                SelfBackup // Automatically create backup zip files of this Comet Server's configuration
    SessionOptions                                   SessionSettings // Control how long admin accounts can remain logged in to the Comet Server web interface
    SoftwareBuildRoleOptions                         SoftwareBuildRole
    StorageRoleOptions                               StorageRole
    bool                                             TrustXForwardedFor // If true, the X-Forwarded-For header will be trusted for the purposes of IP allowlisting. This should only be enabled when you explicitly configure Comet Server behind a reverse proxy, otherwise it could allow malicious users to bypass the IP allowlist.
    Dictionary<string, WebhookOption>                WebhookOptions
    Dictionary<string, FileOption>                   AuditFileOptions
}

ServerConfigOptionsBrandingFragment

class ServerConfigOptionsBrandingFragment {
    BrandingOptions Branding
}

ServerConfigOptionsSoftwareBuildRoleFragment

class ServerConfigOptionsSoftwareBuildRoleFragment {
    SoftwareBuildRoleOptions SoftwareBuildRole
}

ServerMetaBrandingProperties

class ServerMetaBrandingProperties {
    string                                    BrandName
    string                                    ProductName
    bool                                      HasImage // If true, this Comet Server has an image configured for its main logo. You can access it from the /gen/logo.img endpoint. If false, this Comet Server has text configured for its main logo.
    string                                    ImageEtag // A value that will change if the branding image (/gen/logo.img) changes. You can use this as a cache key.
    string                                    TopColor // Colour in RGB hex format (e.g. "#FFFFFF")
    string                                    AccentColor // Colour in RGB hex format (e.g. "#FFFFFF")
    bool                                      HideNewsArea
    bool                                      AllowUnauthenticatedDownloads
    bool                                      AllowAuthenticatedDownloads
    int                                       PruneLogsAfterDays
    int                                       ExpiredInSeconds
    List<ExternalAuthenticationSourceDisplay> ExternalAuthenticationSources // Omission from JSON document implies an empty array
}

ServerMetaVersionInfo

class ServerMetaVersionInfo {
    string                     Version
    string                     VersionCodename
    bool                       StorageRole
    bool                       AuthenticationRole
    bool                       SoftwareBuildRole
    bool                       OverseerRole // OverseerRole has been deprecated since Comet version 18.2.0 "Overseer Role" was the old name for the Constellation Role. This field is a duplicate of ConstellationRole for backward compatibility with earlier API consumers.
    bool                       ConstellationRole
    List<string>               ExperimentalOptions // Omission from JSON document implies an empty array
    int                        ServerStartTime // Unix timestamp, in seconds.
    string                     ServerStartHash // A GUID that was randomly generated when this Comet Server started up. You can check this value to see if the Comet Server has restarted.
    int                        CurrentTime // The current time on the Comet Server host machine. Unix timestamp, in seconds. You can check this value to see if clock drift is occuring.
    string                     ServerLicenseHash // A hash derived from the Comet Server's serial number. You can check this value to see if two Comet Server endpoints point to an identical server.
    bool                       ServerLicenseFeaturesAll
    int                        ServerLicenseFeatureSet

    // If non-zero, the maximum numbers of devices and Protected Item types that this server is allowed.
    // This field is available in Comet 24.6.3 and later.
    LicenseLimits              ServerLicenseLimit

    // A count of the devices registered on the server that have a configured Protected Item.
    // This field is available in Comet 24.6.3 and later.
    int                        ConfiguredDevices

    // The current number of Protected Item types configured on the server.
    // This field is available in Comet 24.6.3 and later.
    Dictionary<string, int>    BoosterLimit
    int                        LicenseValidUntil // Unix timestamp, in seconds.
    int                        EmailsSentSuccessfully
    int                        EmailsSentErrors
    int                        EmailsWaitingInQueue
    int                        ScheduledEmailThreadCurrentState
    int                        ScheduledEmailThreadLastCalculateDurationNanos
    int                        ScheduledEmailThreadWaitingUntil
    int                        ScheduledEmailThreadLastWakeTime
    bool                       ScheduledEmailThreadLastWakeSentEmails
    List<SelfBackupStatistics> SelfBackup // This field is available in Comet 21.3.2 and later.
}

SessionKeyRegeneratedResponse

class SessionKeyRegeneratedResponse extends CometAPIResponseMessage {
    string SessionKey

    // e.g. "admin" or "user"
    // This field is available in Comet 18.12.3 and later.
    string SessionType
}

SessionOptions

class SessionOptions {
    int ExpiredInSeconds // The number of seconds, after which an administrator should be automatically logged out of the Comet Server web interface. If zero, will be replaced with DEFAULT_SESSIONTIMEOUT.
}

SingleFieldSource

class SingleFieldSource {
    string FieldName
    string FieldType // One of "bool" / "int" / "string"
    bool   BoolVal
    int    IntVal
    string StrVal
}

SizeMeasurement

class SizeMeasurement {
    int Size // Bytes
    int MeasureStarted // Unix timestamp in seconds
    int MeasureCompleted // Unix timestamp in seconds
}

SoftwareBuildRoleOptions

class SoftwareBuildRoleOptions {
    bool RoleEnabled
    bool AllowUnauthenticatedDownloads

    // 0 will default to CPU core count - 2
    // This field is available in Comet 24.3.8 and later.
    int  MaxBuilders
}

SoftwareUpdateNewsResponse

class SoftwareUpdateNewsResponse {
    string       latest_stable // The latest "Quarterly" release version of Comet known to the account.cometbackup.com system.
    string       latest_prerelease // The latest "Voyager" release version of Comet known to the account.cometbackup.com system.
    string       downloads_url // A URL linking to the Comet Server downloads page.
    List<string> updates_info // An array of recent news items written by Comet Backup staff. Entries are english plaintext.
}

SourceBasicInfo

SourceBasicInfo is the minimal amount of information one device knows about another device's Protected Items, in order to safely perform retention passes on their behalf.

class SourceBasicInfo {
    string                              Engine
    string                              Description
    int                                 O365AccountCount
    int                                 TotalVmCount
    int                                 Size // Bytes
    Dictionary<string, RetentionPolicy> OverrideDestinationRetention // Omission from JSON document implies an empty Dictionary
}

SourceConfig

class SourceConfig {
    string                              Engine // One of the ENGINE_BUILTIN_ constants
    string                              Description
    string                              OwnerDevice
    int                                 CreateTime // Unix timestamp in seconds
    int                                 ModifyTime // Unix timestamp in seconds
    List<string>                        PreExec // Custom commands to run before the job
    List<string>                        ThawExec // Custom commands to run after taking a disk snapshot
    List<string>                        PostExec // Custom commands to run after the job

    // Configuration for the selected Protected Item type. Each "Engine" supports
    // different configuration options for the EngineProps values.
    // 
    // For engine1/file, Comet understands the following EngineProp keys:
    // 
    // - Any key starting with INCLUDE: A path that is included
    // - Any key starting with EXCLUDE: An exclusion (glob format)
    // - Any key starting with REXCLUDE: An exclusion (regular expression format)
    // - Any key starting with PINCLUDE: A SourceIncludePattern type encoded in JSON format, describing an advanced inclusion in glob format
    // - Any key starting with RINCLUDE: A SourceIncludePattern type encoded in JSON format, describing an advanced inclusion in regular expression format
    // - Any key starting with SMBAUTH: A set of Windows network share credentials in WinSMBAuth JSON format
    // - USE_WIN_VSS: If present, the 'Take filesystem snapshot' checkbox is checked
    // - CONFIRM_EFS: If present, the 'Dismiss EFS warning' checkbox is checked
    // - RESCAN_UNCHANGED: If present, the 'Rescan unchanged files' checkbox is checked
    // - EXTRA_ATTRIBUTES: If present, the 'Back up extra system permissions and attributes' checkbox is checked
    // 
    // For engine1/mssql, Comet understands the following EngineProp keys:
    // 
    // - ALL_DATABASES: If present, include all databases with specified exclusions. If not present, only back up the specified inclusions
    // - Any key starting with DATABASE- : A database that is included. Only valid if ALL_DATABASES is not present.
    // - Any key starting with EXCEPT-DATABASE- : A database that is excluded. Only valid if ALL_DATABASES is present.
    // - INSTANCE: The Microsoft SQL Server instance name
    // - USERNAME: The username to connect to Microsoft SQL Server
    // - PASSWORD: The password to connect to Microsoft SQL Server
    // - AUTHMODE: Either "windows" or "native" (corresponding to the declared MSSQL_AUTH_WINDOWS and MSSQL_AUTH_NATIVE constant values). If not present, use native authentication if the USERNAME and/or PASSWORD fields are filled in, use windows authentication if they are blank
    // - METHOD: Either "OLEDB_NATIVE" or "OLEDB_32" (corresponding to the declared MSSQL_METHOD_OLEDB_NATIVE and MSSQL_METHOD_OLEDB_32 constant values). If not present, defaults to Native
    // - DIFFBASE: If present, take a "Full (base image)" backup job. Otherwise, take a "Full (copy only)" backup job.
    // - DIFFERENTIAL: If present, take a "Differential increment" backup job. Otherwise, take a "Full (copy only)" backup job.
    // - LOGTRUNC: If present, take a "Log (truncating)" backup job. Otherwise, take a "Full (copy only)" backup job.
    // - LOGNOTRUNC: If present, take a "Log (no truncation)" backup job. Otherwise, take a "Full (copy only)" backup job.
    // 
    Dictionary<string, string>          EngineProps

    // If set, this SourceConfig was added from a Policy with the specified ID.
    // This field is available in Comet 23.6.0 and later.
    string                              PolicySourceID

    // For a Policy-defined SourceConfig, this field controls whether the Protected Item will stay linked with the policy.
    // This field is available in Comet 23.6.0 and later.
    bool                                ExistingUserUpdate

    // By default, backup jobs from this Protected Item will be subject
    // to the overall retention policy for the Storage Vault. You can override the policy
    // for specific Storage Vaults by putting their destination ID as a key here.
    // Omission from JSON document implies an empty Dictionary
    Dictionary<string, RetentionPolicy> OverrideDestinationRetention
    SourceStatistics                    Statistics // Omission from JSON document implies zero-initialised SourceStatistics class instance
}

SourceIncludePattern

SourceIncludePattern is used for pattern inclusions for File and Folder Protected Items (ENGINE_BUILTIN_FILE). It should be marshalled as JSON and then stored in the PINCLUDE / RINCLUDE EngineProp keys.

class SourceIncludePattern {
    string TopDirectory // The filesystem path to search within, for matches
    string Value // The pattern (glob or regex format) to match
}

SourceStatistics

class SourceStatistics {
    int             LastStartTime
    BackupJobDetail LastBackupJob
    BackupJobDetail LastSuccessfulBackupJob
}

SpannedDestinationLocation

class SpannedDestinationLocation {
    List<DestinationLocation> SpanTargets // A list of underlying destinations, that will be combined and presented as one.

    // If true, this Spanned destination will use a consistent hashing scheme
    // to immediately find specific files on exactly one of the target destinations.
    // In the Static Slots mode, the span targets cannot be moved or merged, and
    // the files must always remain in their original location.
    // 
    // If false, the Spanned destination system will search all targets to find
    // the requested file. This is slightly slower, but allows you to freely merge,
    // split, and reorder the underlying destination locations.
    // 
    // The default option is false.
    bool                      SpanUseStaticSlots
}

SpannedStorageExtraInfo

class SpannedStorageExtraInfo {
    List<StorageFreeSpaceInfo> Targets
}

StatResult

class StatResult {
    int Buckets
    int Users
    int Devices
    int Boosters
    int NetworkDevices
}

StorageFreeSpaceInfo

class StorageFreeSpaceInfo {
    bool                    Unlimited
    float32                 UsedPercent
    int                     AvailableBytes
    SpannedStorageExtraInfo Spanned // Omission from JSON document implies zero-initialised SpannedStorageExtraInfo class instance
    B2StorageExtraInfo      B2 // Omission from JSON document implies zero-initialised B2StorageExtraInfo class instance
}

StorageRoleOptions

class StorageRoleOptions {
    bool                        RoleEnabled
    DestinationLocation         Storage

    // LocalStorage has been deprecated since Comet version 17.3.5
    // Omission from JSON document implies an empty array
    List<LocalStorageDirectory> LocalStorage
    List<ReplicaServer>         ReplicateTo
}

StorageVaultProviderPolicy

class StorageVaultProviderPolicy {
    bool      ShouldRestrictProviderList
    List<int> AllowedProvidersWhenRestricted
}

StoredObject

class StoredObject {
    string name // The name of the stored object. It is unique within this directory tree.
    int    mtime // Unix timestamp in seconds
    string type // One of the STOREDOBJECTTYPE_... constant values
    string subtree // If this StoredObject represents a directory, this value can be used to recursively select the directory contents.
    int    size // Bytes
    string dname // Omission from JSON document implies empty string
    string itemClass // Omission from JSON document implies empty string
    string from // Omission from JSON document implies empty string
    string to // Omission from JSON document implies empty string
    int    rtime // Omission from JSON document implies 0
    bool   has_attachments // Omission from JSON document implies false

    // Unix timestamp in seconds
    // Omission from JSON document implies 0
    int    stime

    // Unix timestamp in seconds
    // Omission from JSON document implies 0
    int    etime
    bool   r // Omission from JSON document implies false
    int    f // Omission from JSON document implies 0
    int    b // Omission from JSON document implies 0
    int    d // Omission from JSON document implies 0
}

StorjDestinationLocation

class StorjDestinationLocation {
    string SatelliteAddress
    string APIKey
    string Passphrase
    string StorjBucket
    string StorjBucketPrefix // Omission from JSON document implies empty string
}

StorjVirtualStorageRoleSetting

class StorjVirtualStorageRoleSetting {
    string SatelliteAddress
    string APIKey
    string Passphrase
    string Bucket
}

StreamableEvent

class StreamableEvent {
    string      Actor
    string      OwnerOrganizationID
    string      ResourceID // Omission from JSON document implies empty string
    int         Type
    int         Timestamp // Omission from JSON document implies 0
    string      TypeString // Omission from JSON document implies empty string
    any Data // Omission from JSON document implies any value
}

SwiftDestinationLocation

class SwiftDestinationLocation {

    // Username or UserID or Application Credential name or Application Credential ID, or blank for token authentication
    // Omission from JSON document implies empty string
    string Username

    // User Password, or Application Credential Key, or token if the Username field is blank
    // Omission from JSON document implies empty string
    string APIKey
    string Region // Omission from JSON document implies empty string

    // Mandatory
    // Omission from JSON document implies empty string
    string AuthURL
    string Domain // Omission from JSON document implies empty string

    // Tenant name (v2) or Project name (v3)
    // Omission from JSON document implies empty string
    string Tenant

    // Project domain name (v3)
    // Omission from JSON document implies empty string
    string TenantDomain
    string TenantID // Omission from JSON document implies empty string
    string TrustID // Omission from JSON document implies empty string

    // AuthToken has been deprecated since Comet version 17.8.0
    // Omission from JSON document implies empty string
    string AuthToken
    string Prefix // Omission from JSON document implies empty string
    string Container // Omission from JSON document implies empty string
    string DefaultContainerPolicy // Omission from JSON document implies empty string
}

TestResponse

class TestResponse extends CometAPIResponseMessage {
    bool Exists
}

TimeSpan

class TimeSpan {
    int FrequencyType // SCHEDULE_FREQUENCY_
    int Seconds // Used for Periodic and Once Only
}

TotpRegeneratedResponse

class TotpRegeneratedResponse extends CometAPIResponseMessage {
    string Image // A data URI of an image of a TOTP code (e.g. "data:image/png;base64,AAA...")
    string URL // This field is available in Comet 18.9.9 and later.
    string ProfileHash // This field is available in Comet 20.3.2 and later.
}

U2FRegisterRequest

This type has been deprecated since Comet version 21.12.0

class U2FRegisterRequest {
    string Challenge
    string Version
}

U2FRegisteredKey

This type has been deprecated since Comet version 21.12.0

class U2FRegisteredKey {
    string AppID
    string KeyHandle
    string Version
}

U2FRegistrationChallengeResponse

This type has been deprecated since Comet version 21.12.0

class U2FRegistrationChallengeResponse extends CometAPIResponseMessage {
    string                   ChallengeID
    string                   AppID
    List<U2FRegisteredKey>   RegisteredKeys
    List<U2FRegisterRequest> RegisterRequests
}

U2FSignRequest

This type has been deprecated since Comet version 21.12.0

class U2FSignRequest {
    string                 ChallengeID
    string                 ChallengeData
    string                 AppID
    List<U2FRegisteredKey> RegisteredKeys
}

U2FSignResponse

This type has been deprecated since Comet version 21.12.0

class U2FSignResponse {
    string ChallengeID
    string KeyHandle
    string Signature
    string ClientData
}

UninstallConfig

UninstallConfig allows configuring whether the target device will be uninstalled or not.

class UninstallConfig {
    bool UninstallFlag // If this option is true, the target device will receive a message asking it to uninstall the Comet Backup app.
    bool RemoveConfigFile // This controls the "Remove all user settings from this device" option.
}

UpdateCampaignDeviceStatus

class UpdateCampaignDeviceStatus {
    int Status // One of the UPDATESTATUS_ constants
}

UpdateCampaignOptions

This data structure describes which devices should receive a remote software upgrade. Both the target version criteria (UpgradeOlder/ReinstallCurrentVer/DowngradeNewer) and the target device criteria (ApplyDeviceFilter/DeviceFilter) must be met in order for the remote upgrade to be applied.

class UpdateCampaignOptions {
    bool         Active
    bool         UpgradeOlder
    bool         ReinstallCurrentVer
    bool         DowngradeNewer
    bool         ForceUpgradeRunning // Choose whether this bulk upgrade campaign is allowed to interrupt a running backup job.
    bool         ApplyDeviceFilter // If true, then the UserFilter will be used to restrict which accounts and devices will be eligible for the software update. If false, all users and devices will be eligible for the software update.
    SearchClause DeviceFilter
}

UpdateCampaignProperties

class UpdateCampaignProperties extends UpdateCampaignOptions {
    int    StartTime // Unix timestamp, in seconds
    string TargetVersion
}

UpdateCampaignStatus

class UpdateCampaignStatus extends UpdateCampaignProperties {
    List<UpdateCampaignStatusDeviceEntry> Devices
}

UpdateCampaignStatusDeviceEntry

class UpdateCampaignStatusDeviceEntry extends UpdateCampaignDeviceStatus {
    string Username
    string DeviceID
}

UserCustomEmailSettings

class UserCustomEmailSettings {
    List<EmailReportConfig> Reports
}

UserOnServer

class UserOnServer {
    int    ServerID // The server where this user was found. The 0-based indexes here correspond to the entries inside ConstellationRoleOptions->Servers.
    string Username
}

UserPolicy

class UserPolicy {
    bool                                               PreventRequestStorageVault
    bool                                               PreventAddCustomStorageVault
    bool                                               PreventEditStorageVault
    bool                                               HideCloudStorageBranding
    bool                                               PreventDeleteStorageVault
    StorageVaultProviderPolicy                         StorageVaultProviders
    bool                                               PreventNewProtectedItem
    bool                                               PreventEditProtectedItem
    bool                                               PreventDeleteProtectedItem
    ProtectedItemEngineTypePolicy                      ProtectedItemEngineTypes
    List<ExtraFileExclusion>                           FileAndFolderMandatoryExclusions // Omission from JSON document implies an empty array
    int                                                ModeScheduleSkipAlreadyRunning // Omission from JSON document implies 0
    int                                                ModeScheduleLastJobFailDoRetry // Omission from JSON document implies 0
    int                                                ModeLastJobFailDoRetryTime // Omission from JSON document implies 0
    int                                                ModeLastJobFailDoRetryCount // Omission from JSON document implies 0
    int                                                ModeAdminResetPassword // Omission from JSON document implies 0
    int                                                ModeAdminViewFilenames // Omission from JSON document implies 0
    int                                                ModeRequireUserResetPassword // Omission from JSON document implies 0
    bool                                               PreventDeleteSingleSnapshots
    bool                                               PreventChangeAccountPassword
    bool                                               PreventChangeEmailSettings
    bool                                               PreventChangeAccountName
    bool                                               PreventOpenAppUI
    bool                                               RequirePasswordOpenAppUI
    bool                                               HideAppImport
    bool                                               HideAppVersion
    bool                                               PreventOpenWebUI
    bool                                               PreventViewDeviceNames
    DefaultEmailReportPolicy                           DefaultEmailReports
    RetentionPolicy                                    DefaultStorageVaultRetention
    bool                                               EnforceStorageVaultRetention
    bool                                               PreventProtectedItemRetention
    bool                                               AllowEditObjectLockRetention
    Dictionary<string, SourceConfig>                   DefaultSources
    Dictionary<string, BackupRuleConfig>               DefaultSourcesBackupRules
    Dictionary<string, DefaultSourceWithOSRestriction> DefaultSourcesWithOSRestriction
    Dictionary<string, BackupRuleConfig>               DefaultBackupRules
    int                                                RandomDelaySecs // Omission from JSON document implies 0
}

UserProfileConfig

This is the main data structure for a user's profile.

class UserProfileConfig {
    string                                      Username // The name for this account. It uniquely identifies this UserProfileConfig across the entire Comet Server. It cannot be changed directly.
    string                                      AccountName // A longer descriptive name for this account. It is not necessarily unique to the Comet Server. The end-user might be able to change it inside the Comet Backup desktop app.
    string                                      LocalTimezone // Timezone in IANA format. Individual devices may declare a more specific timezone in the Devices field.
    string                                      LanguageCode // One of the supported languages, such as en_US (DEFAULT_LANGUAGE).

    // Tenant
    // Omission from JSON document implies empty string
    string                                      OrganizationID
    List<string>                                Emails // A list of email addresses to send reports to.
    Dictionary<string, UserCustomEmailSettings> OverrideEmailSettings // By default, all the email addresses in the Emails field will receieve the policy-default or server-wide-default style of email report. Add an override for a specific email address in here to allow customizing the email report that will be received.
    bool                                        SendEmailReports // This option can be used to control whether any email reports are sent.

    // Storage Vaults
    // The string keys can be any unique key. Using a GUID is recommended, but optional.
    Dictionary<string, DestinationConfig>       Destinations

    // Protected Items
    // The string keys can be any unique key. Using a GUID is recommended, but optional.
    Dictionary<string, SourceConfig>            Sources

    // Schedules
    // The string keys can be any unique key. Using a GUID is recommended, but optional.
    Dictionary<string, BackupRuleConfig>        BackupRules

    // Devices
    // The string keys are the device's ID. The device ID is generated automatically based on a mix of hardware and software identifiers on the installed PC.
    // To revoke a device, use the AdminRevokeDevice API instead of accessing these fields directly. This API can also remove associated Protected Items, uninstall the remote device, and disconnect its live connection.
    Dictionary<string, DeviceConfig>            Devices
    bool                                        IsSuspended

    // Unix timestamp in seconds. Zero if the device is not suspended.
    // Omission from JSON document implies 0
    int                                         LastSuspended
    bool                                        AllProtectedItemsQuotaEnabled // A limit on the total Size of all Protected Items in this account. The number of bytes should be configured in AllProtectedItemsQuotaBytes.
    int                                         AllProtectedItemsQuotaBytes // A limit on the total Size of all Protected Items in this account. It is enforced if AllProtectedItemsQuotaEnabled is true.
    int                                         MaximumDevices // A limit on the total number of devices registered in this account. Set to zero to allow unlimited devices.
    int                                         QuotaOffice365ProtectedAccounts // A limit on the total number of Office 365 Protected Accounts across all Office 365 Protected Items in this account. Set to zero to allow unlimited Office 365 Protected Accounts.
    int                                         QuotaHyperVGuests // A limit on the total number of Hyper-V guests across all Hyper-V Protected Items in this account. Set to zero to allow unlimited Office 365 Protected Accounts.
    int                                         QuotaVMwareGuests // A limit on the total number of VMware guests across all VMware Protected Items in this account. Set to zero to allow unlimited Office 365 Protected Accounts.
    string                                      PolicyID // If the PolicyID field is set to a non-empty string, the Comet Server will enforce the contents of the Policy field based on the matching server's policy. Otherwise if the PolicyID field is set to an empty string, the administrator may configure any custom values in the Policy field.
    UserPolicy                                  Policy // The Policy field contains a read-only copy of the effective Policy that is applied to this user account.

    // One of the PASSWORD_FORMAT_ constants
    // To change the user's password, use the AdminResetUserPassword API instead of accessing these fields directly. Otherwise, other encrypted fields in the user profile may become corrupted.
    int                                         PasswordFormat
    string                                      PasswordHash

    // If this field is empty, the "Allow administrator to reset my password" feature is turned off. If this field is filled, it contains a cryptographic root of trust that can decrypt and re-encrypt other secrets in this profile.
    // Omission from JSON document implies empty string
    string                                      PasswordRecovery
    bool                                        AllowPasswordLogin
    bool                                        AllowPasswordAndTOTPLogin // If true, then TOTP is required to open the desktop app or the Comet Server web interface with this user's credentials.
    int                                         TOTPKeyEncryptionFormat // One of the ENCRYPTIONMETHOD_ constants
    string                                      TOTPKey
    bool                                        RequirePasswordChange // This field is available in Comet 20.3.4 and later.
    int                                         CreateTime // Unix timestamp in seconds
    string                                      CreationGUID // A random GUID that is allocated when the user profile is created for the first time. You can use this to help disambiguate users with the same username across multiple Comet Servers.

    // Additional server-wide settings that are enforced for this user profile
    // Omission from JSON document implies zero-initialised UserServerConfig class instance
    UserServerConfig                            ServerConfig
}

UserProfileFragment

This type has been deprecated since Comet version 23.3.5

class UserProfileFragment {
    string Username
}

UserServerConfig

class UserServerConfig {
    int RandomDelaySecs // Omission from JSON document implies 0
}

VMDKSnapshotViewOptions

class VMDKSnapshotViewOptions {
    bool   Enabled // Request a list of stored objects in vmdk file. It should be always true for restoring single files from vmdk file
    string PartitionGUID // The vmdk filename inside subdirectory of disk image, should be end with .vmdk
    string ListPath // Browse objects' paths inside vmdk file
    string PartitionName
}

VMwareConnection

class VMwareConnection {
    string            ConnectionType // One of the VMWARE_CONNECTION_ constants
    SSHConnection     SSH // SSH has been deprecated since Comet version 23.9.11
    VSphereConnection VSphere
}

VMwareMachineInfo

class VMwareMachineInfo {
    string Name
}

VSSComponent

class VSSComponent {
    string Path
    string Name
    string CType // "VSS_CT_DATABASE" or "VSS_CT_FILEGROUP"
    bool   Selectable
}

VSSWriterInfo

class VSSWriterInfo {
    string             DisplayName
    List<VSSComponent> Components
}

VSphereConnection

class VSphereConnection {
    string Hostname
    bool   Https
    bool   AllowInvalidCertificate
    string Username
    string Password
    string ThumbPrint
}

VaultSnapshot

class VaultSnapshot {
    string Snapshot
    string EngineType // This field is available in Comet 24.3.x and later.
    string Source
    int    CreateTime
    bool   HasOriginalPathInfo // This field is available in Comet 20.12.4 and later.
}

WasabiVirtualStorageRoleSettings

This is an alias type for AmazonAWSVirtualStorageRoleSettings.

class WasabiVirtualStorageRoleSettings extends AmazonAWSVirtualStorageRoleSettings {
}

WebAuthnAuthenticatorSelection

class WebAuthnAuthenticatorSelection {
    string authenticatorAttachment // Omission from JSON document implies empty string
    bool   requireResidentKey // Omission from JSON document implies false
    string residentKey // Omission from JSON document implies empty string
    string userVerification // Omission from JSON document implies empty string
}

WebAuthnCredential

class WebAuthnCredential {
    List<byte> PublicKey // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
    string     AttestationType
    List<byte> AAGUID // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
    int        SignCount
    bool       CloneWarning
}

WebAuthnCredentialAssertion

class WebAuthnCredentialAssertion {
    WebAuthnPublicKeyCredentialRequestOptions publicKey
}

WebAuthnCredentialDescriptor

class WebAuthnCredentialDescriptor {
    string       type
    List<byte>   id // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
    List<string> transports // Omission from JSON document implies an empty array
}

WebAuthnCredentialEntity

class WebAuthnCredentialEntity {
    string name
    string icon // Omission from JSON document implies empty string
}

WebAuthnCredentialParameter

class WebAuthnCredentialParameter {
    string type
    int    alg
}

WebAuthnPublicKeyCredentialCreationOptions

class WebAuthnPublicKeyCredentialCreationOptions {
    List<byte>                         challenge // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
    WebAuthnRelyingPartyEntity         rp
    WebAuthnUserEntity                 user
    List<WebAuthnCredentialParameter>  pubKeyCredParams // Omission from JSON document implies an empty array
    WebAuthnAuthenticatorSelection     authenticatorSelection // Omission from JSON document implies zero-initialised WebAuthnAuthenticatorSelection class instance
    int                                timeout // Omission from JSON document implies 0
    List<WebAuthnCredentialDescriptor> excludeCredentials // Omission from JSON document implies an empty array
    Dictionary<string, any>    extensions // Omission from JSON document implies an empty Dictionary
    string                             attestation // Omission from JSON document implies empty string
}

WebAuthnPublicKeyCredentialRequestOptions

class WebAuthnPublicKeyCredentialRequestOptions {
    List<byte>                         challenge // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
    int                                timeout // Omission from JSON document implies 0
    string                             rpId // Omission from JSON document implies empty string
    List<WebAuthnCredentialDescriptor> allowCredentials // Omission from JSON document implies an empty array
    string                             userVerification // Omission from JSON document implies empty string
    Dictionary<string, any>    extensions // Omission from JSON document implies an empty Dictionary
}

WebAuthnRegistrationChallengeResponse

class WebAuthnRegistrationChallengeResponse extends CometAPIResponseMessage {
    string                                     ChallengeID
    WebAuthnPublicKeyCredentialCreationOptions CredentialCreationOptions
}

WebAuthnRelyingPartyEntity

class WebAuthnRelyingPartyEntity extends WebAuthnCredentialEntity {
    string id
}

WebAuthnSignRequest

class WebAuthnSignRequest {
    string                      ChallengeID
    WebAuthnCredentialAssertion Assertion
}

WebAuthnSignResponse

class WebAuthnSignResponse {
    string ChallengeID
    string CredentialJSON
}

WebAuthnUserEntity

class WebAuthnUserEntity extends WebAuthnCredentialEntity {
    string     displayName // Omission from JSON document implies empty string
    List<byte> id // This field is intended to contain raw binary data. When this field is marshalled as JSON format for the API, the field is expressed as base64. If you are using one of the public SDKs, this may take place automatically.
}

WebDavDestinationLocation

This type is available in Comet 23.6.9 and later.

class WebDavDestinationLocation {

    // The URL of the WebDAV server, including http/https and any custom port
    // Omission from JSON document implies empty string
    string DavServer

    // The username for logging in to the WebDAV server
    // Omission from JSON document implies empty string
    string UserName

    // The password for logging in to the WebDAV server
    // Omission from JSON document implies empty string
    string AccessKey

    // The target directory path within the WebDAV server
    // Omission from JSON document implies empty string
    string Path
}

WebInterfaceBrandingProperties

class WebInterfaceBrandingProperties {

    // One of the BRANDINGSTYLETYPE_ constants
    // This field is available in Comet 23.3.3 and later.
    int    BrandingStyleType
    string BrandName
    string LogoImage
    string TopColor
    string AccentColor
    string Favicon
    bool   HideNewsArea
}

WebhookOption

WebhookOption defines the configuration of a webhook target. The Comet Server will send a live HTTP POST event to the webhook URL when certain events happen.

class WebhookOption {
    string                     URL // The target URL to POST the event data to

    // CustomHeaders allows specifying custom headers which are added to the outgoing POST request
    // from Comet Server. Custom headers are specified as (header name, header value) pairs. If a
    // custom header conflicts with a header required by HTTP or the Comet tracing ID header
    // (`x-Comet-Tracing-Id`), it will be ignored.
    Dictionary<string, string> CustomHeaders
    string                     Level // One of the STREAM_LEVEL_ constants. This controls how much data is sent in the webhook event.
    List<int>                  WhiteListedEventTypes // Configure a subset of allowed event types (see SEVT_ constants). If the array is empty, all events will be sent
}

WinSMBAuth

class WinSMBAuth {
    string SharePath // The UNC path for the Windows network share (SMB).
    string Username // The username to log in to the Windows network share (SMB).
    string Password // The password might be hashed. To set this in cleartext, set PasswordFormat to 0 (PASSWORD_FORMAT_PLAINTEXT).
    int    PasswordFormat // The hash algorithm that is used for the Password field. It is one of the PASSWORD_FORMAT_ constants.
}

WindowsCodeSignProperties

class WindowsCodeSignProperties {
    int    WindowsCodeSignMethod // One of the WINDOWSCODESIGN_METHOD_ constants
    string WindowsCodeSignPKCS12FilePath
    int    WindowsCodeSignPKCS12PasswordFormat // One of the ENCRYPTIONMETHOD_ constants
    string WindowsCodeSignPKCS12Password
    string WindowsCodeSignPKCS11Engine
    string WindowsCodeSignPKCS11Module
    string WindowsCodeSignPKCS11Certfile // This field was deprecated between 23.3.0 and 23.6.x, but is now used again.
    string WindowsCodeSignPKCS11KeyID
    int    WindowsCodeSignPKCS11PasswordFormat // One of the ENCRYPTIONMETHOD_ constants
    string WindowsCodeSignPKCS11Password
    string WindowsCodeSignAzureVaultName
    string WindowsCodeSignAzureCertName
    string WindowsCodeSignAzureAppID
    int    WindowsCodeSignAzureAppSecretFormat // One of the ENCRYPTIONMETHOD_ constants
    string WindowsCodeSignAzureAppSecret
    string WindowsCodeSignAzureTenantID
}