import { DefaultAclType } from 'app/enums/acl-type.enum'; import { AlertPolicy } from 'app/enums/alert-policy.enum'; import { DatasetType } from 'app/enums/dataset-type.enum'; import { DeviceType } from 'app/enums/device-type.enum'; import { EnclosureSlotStatus } from 'app/enums/enclosure-slot-status.enum'; import { FailoverDisabledReason } from 'app/enums/failover-disabled-reason.enum'; import { FailoverStatus } from 'app/enums/failover-status.enum'; import { LACPDURate, XmitHashPolicy } from 'app/enums/network-interface.enum'; import { ProductType } from 'app/enums/product-type.enum'; import { ServiceName } from 'app/enums/service-name.enum'; import { TransportMode } from 'app/enums/transport-mode.enum'; import { Acl, AclQueryParams, NfsAclItem, PosixAclItem, SetAcl, } from 'app/interfaces/acl.interface'; import { ActiveDirectoryConfig, LeaveActiveDirectory } from 'app/interfaces/active-directory-config.interface'; import { ActiveDirectoryUpdate } from 'app/interfaces/active-directory.interface'; import { AdvancedConfig, AdvancedConfigUpdate } from 'app/interfaces/advanced-config.interface'; import { AlertService, AlertServiceCreate } from 'app/interfaces/alert-service.interface'; import { Alert, AlertCategory, AlertClasses, AlertClassesUpdate, } from 'app/interfaces/alert.interface'; import { ApiTimestamp } from 'app/interfaces/api-date.interface'; import { ApiKey, CreateApiKeyRequest, UpdateApiKeyRequest } from 'app/interfaces/api-key.interface'; import { UpgradeSummary } from 'app/interfaces/application.interface'; import { CheckUserQuery, LoginParams } from 'app/interfaces/auth.interface'; import { BootPoolState } from 'app/interfaces/boot-pool-state.interface'; import { Bootenv, CreateBootenvParams, SetBootenvAttributeParams, UpdateBootenvParams, } from 'app/interfaces/bootenv.interface'; import { Catalog, CatalogApp, CatalogCreate, CatalogItems, CatalogItemsQueryParams, CatalogQueryParams, CatalogUpdate, GetItemDetailsParams, } from 'app/interfaces/catalog.interface'; import { CertificateAuthority, CertificateAuthoritySignRequest, CertificateAuthorityUpdate, } from 'app/interfaces/certificate-authority.interface'; import { Certificate, CertificateCreate, CertificateProfiles, CertificateUpdate, ExtendedKeyUsageChoices, } from 'app/interfaces/certificate.interface'; import { ChartReleaseEvent, ChartRollbackParams, ChartScaleResult } from 'app/interfaces/chart-release-event.interface'; import { ChartRelease, ChartReleaseCreate, ChartReleaseQueryParams, } from 'app/interfaces/chart-release.interface'; import { Choices } from 'app/interfaces/choices.interface'; import { CloudSyncDirectoryListing, CloudSyncListDirectoryParams, CloudSyncTask, CloudSyncTaskUpdate, } from 'app/interfaces/cloud-sync-task.interface'; import { CloudsyncBucket, CloudsyncCredential, CloudsyncCredentialUpdate, CloudsyncCredentialVerify, CloudsyncOneDriveDrive, CloudsyncOneDriveParams, } from 'app/interfaces/cloudsync-credential.interface'; import { CloudsyncProvider, CloudsyncRestoreParams } from 'app/interfaces/cloudsync-provider.interface'; import { ConfigResetParams } from 'app/interfaces/config-reset-params.interface'; import { ContainerConfig, ContainerConfigUpdate } from 'app/interfaces/container-config.interface'; import { ContainerImage, PullContainerImageParams } from 'app/interfaces/container-image.interface'; import { CoreBulkQuery, CoreBulkResponse } from 'app/interfaces/core-bulk.interface'; import { CoreDownloadQuery, CoreDownloadResponse } from 'app/interfaces/core-download.interface'; import { CountManualSnapshotsParams, EligibleManualSnapshotsCount, TargetUnmatchedSnapshotsParams, } from 'app/interfaces/count-manual-snapshots.interface'; import { Cronjob, CronjobUpdate } from 'app/interfaces/cronjob.interface'; import { DatasetChangeKeyParams } from 'app/interfaces/dataset-change-key.interface'; import { DatasetEncryptedRootKeys, DatasetEncryptionSummary, DatasetEncryptionSummaryQueryParams, } from 'app/interfaces/dataset-encryption-summary.interface'; import { DatasetHasVmsQueryParams } from 'app/interfaces/dataset-has-vms-query-params.interface'; import { DatasetLockParams, DatasetUnlockParams, DatasetUnlockResult } from 'app/interfaces/dataset-lock.interface'; import { DatasetPermissionsUpdate } from 'app/interfaces/dataset-permissions.interface'; import { DatasetQuota, DatasetQuotaQueryParams, SetDatasetQuota } from 'app/interfaces/dataset-quota.interface'; import { Dataset, ExtraDatasetQueryOptions } from 'app/interfaces/dataset.interface'; import { Device } from 'app/interfaces/device.interface'; import { DirectoryServicesState } from 'app/interfaces/directory-services-state.interface'; import { AuthenticatorSchema, CreateDnsAuthenticator, DnsAuthenticator, UpdateDnsAuthenticator, } from 'app/interfaces/dns-authenticator.interface'; import { DsUncachedGroup, DsUncachedUser } from 'app/interfaces/ds-cache.interface'; import { DynamicDnsConfig, DynamicDnsUpdate } from 'app/interfaces/dynamic-dns.interface'; import { Enclosure } from 'app/interfaces/enclosure.interface'; import { FailoverConfig, FailoverRemoteCall, FailoverUpdate } from 'app/interfaces/failover.interface'; import { FibreChannelPort } from 'app/interfaces/fibre-channel-port.interface'; import { FileRecord, ListdirQueryParams } from 'app/interfaces/file-record.interface'; import { FileSystemStat, Statfs } from 'app/interfaces/filesystem-stat.interface'; import { FtpConfig, FtpConfigUpdate } from 'app/interfaces/ftp-config.interface'; import { CreateGroup, DeleteGroupParams, Group, UpdateGroup, } from 'app/interfaces/group.interface'; import { IdmapBackendOptions } from 'app/interfaces/idmap-backend-options.interface'; import { Idmap, IdmapUpdate } from 'app/interfaces/idmap.interface'; import { CreateInitShutdownScript, InitShutdownScript, UpdateInitShutdownScriptParams, } from 'app/interfaces/init-shutdown-script.interface'; import { Ipmi, IpmiIdentify, IpmiUpdate } from 'app/interfaces/ipmi.interface'; import { IscsiGlobalConfig, IscsiGlobalConfigUpdate, IscsiGlobalSession, } from 'app/interfaces/iscsi-global-config.interface'; import { IscsiAuthAccess, IscsiAuthAccessUpdate, IscsiExtent, IscsiExtentUpdate, IscsiInitiatorGroup, IscsiInitiatorGroupUpdate, IscsiPortal, IscsiPortalUpdate, IscsiTarget, IscsiTargetExtent, IscsiTargetExtentUpdate, IscsiTargetUpdate, } from 'app/interfaces/iscsi.interface'; import { Job } from 'app/interfaces/job.interface'; import { KerberosConfig, KerberosConfigUpdate, KerberosKeytab, KerberosKeytabUpdate, } from 'app/interfaces/kerberos-config.interface'; import { KerberosRealm, KerberosRealmUpdate } from 'app/interfaces/kerberos-realm.interface'; import { KeychainCredential, KeychainCredentialCreate, KeychainCredentialUpdate, KeychainSshCredentials, SshKeyPair, } from 'app/interfaces/keychain-credential.interface'; import { KmipConfig, KmipConfigUpdate } from 'app/interfaces/kmip-config.interface'; import { KubernetesConfig, KubernetesConfigUpdate } from 'app/interfaces/kubernetes-config.interface'; import { LdapConfig, LdapConfigUpdate, LdapConfigUpdateResult } from 'app/interfaces/ldap-config.interface'; import { LldpConfig, LldpConfigUpdate } from 'app/interfaces/lldp-config.interface'; import { MailConfig, MailConfigUpdate, SendMailParams } from 'app/interfaces/mail-config.interface'; import { NetworkActivityChoice, NetworkConfiguration, NetworkConfigurationUpdate, } from 'app/interfaces/network-configuration.interface'; import { NetworkInterface, ServiceRestartedOnNetworkSync } from 'app/interfaces/network-interface.interface'; import { NetworkSummary } from 'app/interfaces/network-summary.interface'; import { AddNfsPrincipal, NfsConfig, NfsConfigUpdate } from 'app/interfaces/nfs-config.interface'; import { NfsShare, NfsShareUpdate } from 'app/interfaces/nfs-share.interface'; import { CreateNtpServer, NtpServer } from 'app/interfaces/ntp-server.interface'; import { OpenvpnClientConfig, OpenvpnClientConfigUpdate } from 'app/interfaces/openvpn-client-config.interface'; import { OpenvpnServerConfig, OpenvpnServerConfigUpdate } from 'app/interfaces/openvpn-server-config.interface'; import { PeriodicSnapshotTask, PeriodSnapshotTaskUpdate } from 'app/interfaces/periodic-snapshot-task.interface'; import { PoolAttachment } from 'app/interfaces/pool-attachment.interface'; import { PoolExportParams } from 'app/interfaces/pool-export.interface'; import { ImportDiskParams, PoolFindResult, PoolImportParams } from 'app/interfaces/pool-import.interface'; import { PoolProcess } from 'app/interfaces/pool-process.interface'; import { CreatePoolScrub, PoolScrub, PoolScrubParams } from 'app/interfaces/pool-scrub.interface'; import { PoolUnlockQuery, PoolUnlockResult } from 'app/interfaces/pool-unlock-query.interface'; import { CreatePool, Pool, PoolAttachParams, PoolExpandParams, PoolReplaceParams, UpdatePool, } from 'app/interfaces/pool.interface'; import { QueryParams } from 'app/interfaces/query-api.interface'; import { ReplicationTask, } from 'app/interfaces/replication-task.interface'; import { ReportingGraph } from 'app/interfaces/reporting-graph.interface'; import { ReportingConfig, ReportingConfigUpdate, ReportingData, ReportingQueryParams, } from 'app/interfaces/reporting.interface'; import { ResilverConfig, ResilverConfigUpdate } from 'app/interfaces/resilver-config.interface'; import { RsyncConfig, RsyncConfigUpdate } from 'app/interfaces/rsync-config.interface'; import { RsyncModule, RsyncModuleCreate } from 'app/interfaces/rsync-module.interface'; import { RsyncTask, RsyncTaskUpdate } from 'app/interfaces/rsync-task.interface'; import { S3Config, S3ConfigUpdate } from 'app/interfaces/s3-config.interface'; import { Sensor } from 'app/interfaces/sensor.interface'; import { Service } from 'app/interfaces/service.interface'; import { ResizeShellRequest } from 'app/interfaces/shell.interface'; import { SmartManualTestParams, SmartConfig, SmartConfigUpdate, SmartTest, SmartTestResults, ManualSmartTest, SmartTestUpdate, } from 'app/interfaces/smart-test.interface'; import { SmbConfig, SmbConfigUpdate } from 'app/interfaces/smb-config.interface'; import { SmbPresets, SmbShare, SmbSharesec, SmbSharesecAce, SmbShareUpdate, } from 'app/interfaces/smb-share.interface'; import { SnmpConfig, SnmpConfigUpdate } from 'app/interfaces/snmp-config.interface'; import { SshConfig, SshConfigUpdate } from 'app/interfaces/ssh-config.interface'; import { RemoteSshScanParams, SshConnectionSetup, SshSemiAutomaticSetup, } from 'app/interfaces/ssh-connection-setup.interface'; import { StaticRoute, UpdateStaticRoute } from 'app/interfaces/static-route.interface'; import { Disk, DiskQueryOptions, DiskTemperatures, DiskUpdate, DiskWipeParams, UnusedDisk, } from 'app/interfaces/storage.interface'; import { FetchSupportParams, CreateNewTicket, NewTicketResponse, SupportConfig, SupportConfigUpdate, } from 'app/interfaces/support.interface'; import { SystemGeneralConfig, SystemGeneralConfigUpdate } from 'app/interfaces/system-config.interface'; import { SystemDatasetConfig } from 'app/interfaces/system-dataset-config.interface'; import { SystemInfo } from 'app/interfaces/system-info.interface'; import { SystemUpdate, SystemUpdateChange, SystemUpdateTrains, UpdateParams, } from 'app/interfaces/system-update.interface'; import { TftpConfig, TftpConfigUpdate } from 'app/interfaces/tftp-config.interface'; import { TrueCommandConfig, TrueCommandConnectionState, TrueCommandUpdateResponse, UpdateTrueCommand, } from 'app/interfaces/true-command-config.interface'; import { Tunable, TunableUpdate } from 'app/interfaces/tunable.interface'; import { TwoFactorConfig, TwoFactorConfigUpdate } from 'app/interfaces/two-factor-config.interface'; import { UpsConfig, UpsConfigUpdate } from 'app/interfaces/ups-config.interface'; import { DeleteUserParams, User, UserUpdate } from 'app/interfaces/user.interface'; import { VirtualizationDetails, VirtualMachine, VirtualMachineUpdate, VmCloneParams, VmDeleteParams, VmDisplayWebUri, VmDisplayWebUriParams, VmPortWizardResult, VmStopParams, } from 'app/interfaces/virtual-machine.interface'; import { VmDevice, VmDeviceUpdate, VmDisplayDevice } from 'app/interfaces/vm-device.interface'; import { MatchDatastoresWithDatasets, MatchDatastoresWithDatasetsParams, VmwareSnapshot, VmwareSnapshotUpdate, } from 'app/interfaces/vmware.interface'; import { WebDavShare, WebDavShareUpdate } from 'app/interfaces/web-dav-share.interface'; import { WebdavConfig, WebdavConfigUpdate } from 'app/interfaces/webdav-config.interface'; import { CloneZfsSnapshot, CreateZfsSnapshot, ZfsRollbackParams, ZfsSnapshot, } from 'app/interfaces/zfs-snapshot.interface'; import { PoolRemoveParams } from './pool-remove.interface'; /** * API definitions for `call` and `job` methods. * For events from `subscribed` see ApiEventDirectory. */ export type ApiDirectory = { // Active Directory 'activedirectory.config': { params: void; response: ActiveDirectoryConfig }; 'activedirectory.update': { params: [ActiveDirectoryUpdate]; response: ActiveDirectoryConfig }; 'activedirectory.nss_info_choices': { params: void; response: string[] }; 'activedirectory.leave': { params: [LeaveActiveDirectory]; response: void }; // Acme 'acme.dns.authenticator.query': { params: void; response: DnsAuthenticator[] }; 'acme.dns.authenticator.create': { params: CreateDnsAuthenticator; response: DnsAuthenticator }; 'acme.dns.authenticator.update': { params: [number, UpdateDnsAuthenticator]; response: DnsAuthenticator }; 'acme.dns.authenticator.delete': { params: [id: number]; response: boolean }; 'acme.dns.authenticator.authenticator_schemas': { params: void; response: AuthenticatorSchema[] }; // Alert 'alert.list': { params: void; response: Alert[] }; 'alert.dismiss': { params: string[]; response: void }; 'alert.restore': { params: string[]; response: void }; 'alert.list_policies': { params: void; response: AlertPolicy[] }; 'alert.list_categories': { params: void; response: AlertCategory[] }; // Alert Classes 'alertclasses.config': { params: void; response: AlertClasses }; 'alertclasses.update': { params: [AlertClassesUpdate]; response: AlertClasses }; // Alert Service 'alertservice.update': { params: [id: number, update: AlertServiceCreate]; response: AlertService }; 'alertservice.create': { params: [AlertServiceCreate]; response: AlertService }; 'alertservice.query': { params: QueryParams; response: AlertService[] }; 'alertservice.test': { params: [AlertServiceCreate]; response: boolean }; 'alertservice.delete': { params: number; response: boolean }; // Api Key 'api_key.create': { params: [CreateApiKeyRequest]; response: ApiKey }; 'api_key.update': { params: UpdateApiKeyRequest; response: ApiKey }; 'api_key.delete': { params: [id: string]; response: boolean }; 'api_key.query': { params: QueryParams; response: ApiKey[] }; // Auth 'auth.generate_token': { params: [number]; response: string }; 'auth.check_user': { params: CheckUserQuery; response: boolean }; 'auth.login': { params: LoginParams; response: boolean; }; 'auth.token': { params: [token: string]; response: boolean }; 'auth.logout': { params: void; response: void }; 'auth.twofactor.update': { params: [TwoFactorConfigUpdate]; response: TwoFactorConfig }; 'auth.twofactor.provisioning_uri': { params: void; response: string }; 'auth.two_factor_auth': { params: void; response: boolean }; 'auth.twofactor.renew_secret': { params: void; response: boolean }; 'auth.twofactor.config': { params: void; response: TwoFactorConfig }; // Boot 'boot.set_scrub_interval': { params: [number]; response: number }; 'boot.replace': { params: [oldDisk: string, newDisk: string]; response: void }; 'boot.get_state': { params: void; response: BootPoolState }; 'boot.detach': { params: [disk: string]; response: void }; 'boot.attach': { params: [disk: string, params: { expand?: boolean }]; response: void }; 'boot.scrub': { params: void; response: void }; // Bootenv 'bootenv.create': { params: CreateBootenvParams; response: string }; 'bootenv.update': { params: UpdateBootenvParams; response: string }; 'bootenv.set_attribute': { params: SetBootenvAttributeParams; response: boolean }; 'bootenv.activate': { params: [string]; response: boolean }; 'bootenv.delete': { params: [string]; response: boolean }; 'bootenv.query': { params: QueryParams; response: Bootenv[] }; // Catalog 'catalog.query': { params: CatalogQueryParams; response: Catalog[] }; 'catalog.update': { params: [id: string, update: CatalogUpdate]; response: Catalog }; 'catalog.create': { params: CatalogCreate; response: Catalog }; 'catalog.delete': { params: [name: string]; response: boolean }; 'catalog.items': { params: [label: string, params: CatalogItemsQueryParams]; response: CatalogItems }; 'catalog.sync': { params: [label: string]; response: void }; 'catalog.sync_all': { params: void; response: void }; 'catalog.get_item_details': { params: [name: string, params: GetItemDetailsParams]; response: CatalogApp }; // Certificate 'certificate.create': { params: [CertificateCreate]; response: Certificate }; 'certificate.query': { params: QueryParams; response: Certificate[] }; 'certificate.update': { params: [id: number, update: CertificateUpdate]; response: Certificate }; 'certificate.delete': { params: [id: number, force?: boolean]; response: boolean }; 'certificate.ec_curve_choices': { params: void; response: Choices }; 'certificate.country_choices': { params: void; response: Choices }; 'certificate.extended_key_usage_choices': { params: void; response: ExtendedKeyUsageChoices }; 'certificate.profiles': { params: void; response: CertificateProfiles }; 'certificate.acme_server_choices': { params: void; response: Choices }; 'certificate.get_domain_names': { params: [number]; response: string[] }; // Certificate Authority 'certificateauthority.create': { params: [CertificateAuthorityUpdate]; response: CertificateAuthority }; 'certificateauthority.query': { params: QueryParams; response: CertificateAuthority[] }; 'certificateauthority.update': { params: [number, Partial]; response: CertificateAuthority }; 'certificateauthority.delete': { params: [id: number]; response: boolean }; 'certificateauthority.profiles': { params: void; response: CertificateProfiles }; 'certificateauthority.ca_sign_csr': { params: [CertificateAuthoritySignRequest]; response: CertificateAuthority }; // Chart 'chart.release.pod_logs_choices': { params: [string]; response: Record }; 'chart.release.query': { params: ChartReleaseQueryParams; response: ChartRelease[] }; 'chart.release.create': { params: [ChartReleaseCreate]; response: ChartRelease }; 'chart.release.update': { params: any; response: any }; 'chart.release.upgrade': { params: any; response: any }; 'chart.release.delete': { params: [name: string]; response: boolean }; 'chart.release.scale': { params: [name: string, params: { replica_count: number }]; response: ChartScaleResult }; 'chart.release.pod_console_choices': { params: [string]; response: Record }; 'chart.release.nic_choices': { params: void; response: Choices }; 'chart.release.events': { params: [name: string]; response: ChartReleaseEvent[] }; 'chart.release.rollback': { params: [name: string, params: ChartRollbackParams]; response: ChartRelease }; 'chart.release.upgrade_summary': { params: [name: string, params?: { item_version: string }]; response: UpgradeSummary }; // CRON 'cronjob.run': { params: [id: number]; response: void }; 'cronjob.query': { params: QueryParams; response: Cronjob[] }; 'cronjob.delete': { params: [id: number]; response: boolean }; 'cronjob.create': { params: [CronjobUpdate]; response: Cronjob }; 'cronjob.update': { params: [id: number, update: CronjobUpdate]; response: Cronjob }; // Core 'core.download': { params: CoreDownloadQuery; response: CoreDownloadResponse }; 'core.get_jobs': { params: QueryParams; response: Job[] }; 'core.job_abort': { params: [jobId: number]; response: void }; 'core.bulk': { params: CoreBulkQuery; response: CoreBulkResponse[] }; 'core.resize_shell': { params: ResizeShellRequest; response: void }; // Config 'config.upload': { params: void; response: void }; 'config.reset': { params: [ConfigResetParams]; response: void }; // Cloudsync 'cloudsync.providers': { params: void; response: CloudsyncProvider[] }; 'cloudsync.credentials.query': { params: QueryParams; response: CloudsyncCredential[] }; 'cloudsync.credentials.create': { params: [CloudsyncCredentialUpdate]; response: CloudsyncCredential }; 'cloudsync.credentials.update': { params: [id: number, update: CloudsyncCredentialUpdate]; response: CloudsyncCredential; }; 'cloudsync.credentials.delete': { params: [id: number]; response: boolean }; 'cloudsync.credentials.verify': { params: [CloudsyncCredentialVerify]; response: any }; 'cloudsync.onedrive_list_drives': { params: [CloudsyncOneDriveParams]; response: CloudsyncOneDriveDrive[] }; 'cloudsync.list_buckets': { params: [id: number]; response: CloudsyncBucket[] }; 'cloudsync.list_directory': { params: [CloudSyncListDirectoryParams]; response: CloudSyncDirectoryListing[] }; 'cloudsync.update': { params: [id: number, task: CloudSyncTaskUpdate]; response: CloudSyncTask }; 'cloudsync.create': { params: [CloudSyncTaskUpdate]; response: CloudSyncTask }; 'cloudsync.sync': { params: [id: number, params?: { dry_run: boolean }]; response: number }; 'cloudsync.abort': { params: [id: number]; response: boolean }; 'cloudsync.restore': { params: CloudsyncRestoreParams; response: void }; 'cloudsync.query': { params: QueryParams; response: CloudSyncTask[] }; 'cloudsync.delete': { params: [id: number]; response: boolean }; 'cloudsync.sync_onetime': { params: [task: Partial, params: { dry_run?: boolean }]; response: void }; // Container 'container.config': { params: void; response: ContainerConfig }; 'container.update': { params: [ContainerConfigUpdate]; response: ContainerConfig }; 'container.image.query': { params: void; response: ContainerImage[] }; 'container.image.pull': { params: [PullContainerImageParams]; response: { status: string } }; 'container.image.delete': { params: [id: string, params?: { force: boolean }]; response: void }; // DynDNS 'dyndns.provider_choices': { params: void; response: Choices }; 'dyndns.update': { params: [DynamicDnsUpdate]; response: DynamicDnsConfig }; 'dyndns.config': { params: void; response: DynamicDnsConfig }; // Device 'device.get_info': { params: [DeviceType]; response: Device[] }; // Disk 'disk.query': { params: QueryParams; response: Disk[] }; 'disk.update': { params: [string, DiskUpdate]; response: Disk }; 'disk.get_unused': { params: [joinPartitions?: boolean]; response: UnusedDisk[] }; 'disk.get_encrypted': { params: any; response: any }; 'disk.temperatures': { params: [disks: string[]]; response: DiskTemperatures }; 'disk.wipe': { params: DiskWipeParams; response: void }; // Directory Services 'directoryservices.cache_refresh': { params: void; response: void }; 'directoryservices.get_state': { params: void; response: DirectoryServicesState }; // Enclosure 'enclosure.query': { params: void; response: Enclosure[] }; 'enclosure.update': { params: [enclosureId: string, update: { label: string }]; response: Enclosure }; 'enclosure.set_slot_status': { params: [id: string, slot: number, status: EnclosureSlotStatus ]; response: any }; // Filesystem 'filesystem.acl_is_trivial': { params: [string]; /** * Returns True if the ACL can be fully expressed as a file mode without losing any access rules, * or if the path does not support NFSv4 ACLs (for example a path on a tmpfs filesystem). */ response: boolean; }; 'filesystem.listdir': { params: ListdirQueryParams; response: FileRecord[] }; 'filesystem.stat': { params: [path: string]; response: FileSystemStat }; 'filesystem.default_acl_choices': { params: [path: string]; response: DefaultAclType[] }; 'filesystem.get_default_acl': { params: [DefaultAclType]; response: NfsAclItem[] | PosixAclItem[] }; 'filesystem.statfs': { params: [path: string]; response: Statfs }; 'filesystem.getacl': { params: AclQueryParams; response: Acl }; 'filesystem.setacl': { params: [SetAcl]; response: any }; // Failover 'failover.licensed': { params: void; response: boolean }; 'failover.upgrade_pending': { params: void; response: boolean }; 'failover.sync_from_peer': { params: void; response: void }; 'failover.status': { params: void; response: FailoverStatus }; 'failover.update': { params: [FailoverUpdate]; response: FailoverConfig }; 'failover.force_master': { params: void; response: boolean }; 'failover.call_remote': { params: FailoverRemoteCall; response: unknown }; 'failover.get_ips': { params: void; response: string[] }; 'failover.node': { params: void; response: string }; 'failover.disabled_reasons': { params: void; response: FailoverDisabledReason[] }; 'failover.config': { params: void; response: FailoverConfig }; 'failover.sync_to_peer': { params: { reboot?: boolean }; response: void }; 'failover.upgrade_finish': { params: void; response: boolean }; 'failover.upgrade': { params: void; response: boolean }; // FCPort 'fcport.query': { params: QueryParams; response: FibreChannelPort[] }; 'fcport.update': { params: any; response: any }; // DS Cache 'dscache.get_uncached_group': { params: [groupname: string]; response: DsUncachedGroup }; 'dscache.get_uncached_user': { params: [username: string]; response: DsUncachedUser }; // Keychain Credential 'keychaincredential.create': { params: [KeychainCredentialCreate]; response: KeychainCredential }; 'keychaincredential.query': { params: QueryParams; response: KeychainCredential[] }; 'keychaincredential.update': { params: [id: number, credential: KeychainCredentialUpdate]; response: KeychainCredential; }; 'keychaincredential.generate_ssh_key_pair': { params: void; response: SshKeyPair }; 'keychaincredential.remote_ssh_host_key_scan': { params: [RemoteSshScanParams]; response: string }; 'keychaincredential.delete': { params: [id: number]; response: void }; 'keychaincredential.remote_ssh_semiautomatic_setup': { params: [SshSemiAutomaticSetup]; response: KeychainSshCredentials; }; 'keychaincredential.setup_ssh_connection': { params: [SshConnectionSetup]; response: KeychainSshCredentials }; // Kubernetes 'kubernetes.config': { params: void; response: KubernetesConfig }; 'kubernetes.update': { params: [Partial]; response: KubernetesConfig }; 'kubernetes.bindip_choices': { params: void; response: Choices }; // Mail 'mail.config': { params: void; response: MailConfig }; 'mail.update': { params: [MailConfigUpdate]; response: MailConfig }; 'mail.send': { params: [SendMailParams, MailConfigUpdate]; response: boolean }; // idmap 'idmap.backend_options': { params: void; response: IdmapBackendOptions }; 'idmap.query': { params: QueryParams; response: Idmap[] }; 'idmap.create': { params: [IdmapUpdate]; response: Idmap }; 'idmap.update': { params: [id: number, update: IdmapUpdate]; response: Idmap }; 'idmap.delete': { params: [id: number]; response: boolean }; 'idmap.clear_idmap_cache': { params: void; response: void }; // Interface 'interface.websocket_local_ip': { params: void; response: string }; 'interface.commit': { params: [{ checkin_timeout: number }]; response: void }; 'interface.services_restarted_on_sync': { params: void; response: ServiceRestartedOnNetworkSync[] }; 'interface.rollback': { params: void; response: void }; 'interface.bridge_members_choices': { params: [id: string]; response: Choices }; 'interface.lag_supported_protocols': { params: void; response: string[] }; 'interface.lag_ports_choices': { params: [id: string]; response: Choices }; 'interface.vlan_parent_interface_choices': { params: void; response: Choices }; 'interface.query': { params: QueryParams; response: NetworkInterface[] }; 'interface.create': { params: any; response: NetworkInterface }; 'interface.update': { params: any; response: NetworkInterface }; 'interface.delete': { params: [id: string]; response: string }; 'interface.has_pending_changes': { params: void; response: boolean }; 'interface.checkin_waiting': { params: void; response: number | null }; 'interface.checkin': { params: void; response: void }; 'interface.xmit_hash_policy_choices': { params: void; response: { [key: string]: keyof XmitHashPolicy } }; 'interface.lacpdu_rate_choices': { params: void; response: { [key: string]: keyof LACPDURate } }; // iSCSI 'iscsi.initiator.query': { params: QueryParams; response: IscsiInitiatorGroup[] }; 'iscsi.initiator.delete': { params: [id: number]; response: boolean }; 'iscsi.target.query': { params: QueryParams; response: IscsiTarget[] }; 'iscsi.extent.disk_choices': { params: void; response: Choices }; 'iscsi.extent.query': { params: QueryParams; response: IscsiExtent[] }; 'iscsi.extent.create': { params: [IscsiExtentUpdate]; response: IscsiExtent }; 'iscsi.extent.update': { params: [id: number, update: IscsiExtentUpdate]; response: IscsiExtentUpdate }; 'iscsi.extent.delete': { params: [id: number, remove: number, force: boolean]; response: boolean }; 'iscsi.auth.query': { params: QueryParams; response: IscsiAuthAccess[] }; 'iscsi.auth.delete': { params: [id: number]; response: boolean }; 'iscsi.global.sessions': { params: QueryParams; response: IscsiGlobalSession[] }; 'iscsi.global.config': { params: void; response: IscsiGlobalConfig }; 'iscsi.global.update': { params: [IscsiGlobalConfigUpdate]; response: IscsiGlobalConfig }; 'iscsi.targetextent.create': { params: [IscsiTargetExtentUpdate]; response: IscsiTargetExtent }; 'iscsi.targetextent.query': { params: QueryParams; response: IscsiTargetExtent[] }; 'iscsi.targetextent.update': { params: [id: number, extent: IscsiTargetExtentUpdate]; response: IscsiTargetExtent }; 'iscsi.targetextent.delete': { params: [id: number, force?: boolean]; response: boolean }; 'iscsi.auth.update': { params: [id: number, auth: IscsiAuthAccessUpdate]; response: IscsiAuthAccess }; 'iscsi.auth.create': { params: [IscsiAuthAccessUpdate]; response: IscsiAuthAccess }; 'iscsi.initiator.create': { params: [IscsiInitiatorGroupUpdate]; response: IscsiInitiatorGroup }; 'iscsi.initiator.update': { params: [id: number, initiator: IscsiInitiatorGroupUpdate]; response: IscsiInitiatorGroup; }; 'iscsi.portal.create': { params: [IscsiPortalUpdate]; response: IscsiPortal }; 'iscsi.portal.update': { params: [id: number, target: IscsiPortalUpdate]; response: IscsiPortal }; 'iscsi.portal.listen_ip_choices': { params: void; response: Choices }; 'iscsi.portal.query': { params: QueryParams; response: IscsiPortal[] }; 'iscsi.portal.delete': { params: [number]; response: boolean }; 'iscsi.target.update': { params: [id: number, target: IscsiTargetUpdate]; response: IscsiTarget }; 'iscsi.target.create': { params: [IscsiTargetUpdate]; response: IscsiTarget }; 'iscsi.target.delete': { params: [id: number, force?: boolean]; response: boolean }; // IPMI 'ipmi.is_loaded': { params: void; response: boolean }; 'ipmi.identify': { params: [IpmiIdentify]; response: void }; 'ipmi.update': { params: [id: number, update: IpmiUpdate]; response: Ipmi }; 'ipmi.query': { params: QueryParams; response: Ipmi[] }; // Group 'group.query': { params: QueryParams; response: Group[] }; 'group.create': { params: [CreateGroup]; response: number }; 'group.update': { params: [number, UpdateGroup]; response: void }; 'group.delete': { params: DeleteGroupParams; response: number }; 'group.get_group_obj': { params: [{ groupname?: string; gid?: number }]; response: DsUncachedGroup }; 'group.get_next_gid': { params: void; response: number }; // Network 'network.general.summary': { params: void; response: NetworkSummary }; 'network.configuration.activity_choices': { params: void; response: NetworkActivityChoice[] }; 'network.configuration.update': { params: [NetworkConfigurationUpdate]; response: NetworkConfiguration }; 'network.configuration.config': { params: void; response: NetworkConfiguration }; // Kerberos 'kerberos.realm.query': { params: QueryParams; response: KerberosRealm[] }; 'kerberos.realm.create': { params: [KerberosRealmUpdate]; response: KerberosRealm }; 'kerberos.realm.update': { params: [id: number, update: KerberosRealmUpdate]; response: KerberosRealm }; 'kerberos.realm.delete': { params: [id: number]; response: boolean }; 'kerberos.keytab.has_nfs_principal': { params: void; response: boolean }; 'kerberos.config': { params: void; response: KerberosConfig }; 'kerberos.update': { params: [KerberosConfigUpdate]; response: KerberosConfig }; 'kerberos.keytab.kerberos_principal_choices': { params: void; response: string[] }; 'kerberos.keytab.create': { params: [KerberosKeytabUpdate]; response: KerberosKeytab }; 'kerberos.keytab.update': { params: [id: number, update: KerberosKeytabUpdate]; response: KerberosKeytab }; 'kerberos.keytab.query': { params: QueryParams; response: KerberosKeytab[] }; 'kerberos.keytab.delete': { params: [id: number]; response: boolean }; // KMIP 'kmip.update': { params: [KmipConfigUpdate]; response: KmipConfig }; 'kmip.config': { params: void; response: KmipConfig }; 'kmip.kmip_sync_pending': { params: void; response: boolean }; 'kmip.sync_keys': { params: void; response: void }; 'kmip.clear_sync_pending_keys': { params: void; response: void }; // Ldap 'ldap.ssl_choices': { params: void; response: string[] }; 'ldap.update': { params: [LdapConfigUpdate]; response: LdapConfigUpdateResult }; 'ldap.schema_choices': { params: void; response: string[] }; 'ldap.config': { params: void; response: LdapConfig }; // LLDP 'lldp.country_choices': { params: void; response: Choices }; 'lldp.update': { params: [LldpConfigUpdate]; response: LldpConfig }; 'lldp.config': { params: void; response: LldpConfig }; // NFS 'nfs.bindip_choices': { params: void; response: Choices }; 'nfs.add_principal': { params: [AddNfsPrincipal]; response: boolean }; 'nfs.config': { params: void; response: NfsConfig }; 'nfs.update': { params: [NfsConfigUpdate]; response: NfsConfig }; // OpenVPN 'openvpn.client.update': { params: [OpenvpnClientConfigUpdate]; response: OpenvpnClientConfig }; 'openvpn.client.authentication_algorithm_choices': { params: void; response: Choices }; 'openvpn.client.cipher_choices': { params: void; response: Choices }; 'openvpn.server.renew_static_key': { params: void; response: OpenvpnServerConfig }; 'openvpn.client.config': { params: void; response: OpenvpnClientConfig }; 'openvpn.server.cipher_choices': { params: void; response: Choices }; 'openvpn.server.authentication_algorithm_choices': { params: void; response: Choices }; 'openvpn.server.client_configuration_generation': { params: [certificateId: number, serverAddress: string]; response: string; }; 'openvpn.server.update': { params: [OpenvpnServerConfigUpdate]; response: OpenvpnServerConfig }; 'openvpn.server.config': { params: void; response: OpenvpnServerConfig }; // Pool 'pool.attach': { params: [id: number, params: PoolAttachParams]; response: any }; 'pool.attachments': { params: [id: number]; response: PoolAttachment[] }; 'pool.create': { params: [CreatePool]; response: Pool }; 'pool.dataset.attachments': { params: [datasetId: string]; response: PoolAttachment[] }; 'pool.dataset.change_key': { params: [id: number, params: DatasetChangeKeyParams]; response: any }; 'pool.dataset.compression_choices': { params: void; response: Choices }; 'pool.dataset.create': { params: any; response: Dataset }; 'pool.dataset.delete': { params: [path: string, params: { recursive: boolean; force?: boolean }]; response: boolean }; 'pool.dataset.encryption_algorithm_choices': { params: void; response: Choices }; 'pool.dataset.encryption_summary': { params: [path: string, params?: DatasetEncryptionSummaryQueryParams]; response: DatasetEncryptionSummary[]; }; 'pool.dataset.export_key': { params: [id: string, download?: boolean]; response: string }; 'pool.dataset.get_quota': { params: DatasetQuotaQueryParams; response: DatasetQuota[] }; 'pool.dataset.inherit_parent_encryption_properties': { params: [id: string]; response: void }; 'pool.dataset.lock': { params: DatasetLockParams; response: boolean }; 'pool.dataset.path_in_locked_datasets': { params: [path: string]; response: boolean }; 'pool.dataset.permission': { params: DatasetPermissionsUpdate; response: number }; 'pool.dataset.processes': { params: [datasetId: string]; response: PoolProcess[] }; 'pool.dataset.promote': { params: [id: string]; response: void }; 'pool.dataset.query': { params: QueryParams; response: Dataset[] }; 'pool.dataset.query_encrypted_roots_keys': { params: void; response: DatasetEncryptedRootKeys }; 'pool.dataset.recommended_zvol_blocksize': { params: [name: string]; response: string }; 'pool.dataset.set_quota': { params: [dataset: string, quotas: SetDatasetQuota[]]; response: void }; 'pool.dataset.unlock': { params: [path: string, params: DatasetUnlockParams]; response: DatasetUnlockResult }; 'pool.dataset.unlock_services_restart_choices': { params: [id: string]; response: Choices }; 'pool.dataset.update': { params: any; response: Dataset }; 'pool.detach': { params: [id: number, params: { label: string }]; response: boolean }; 'pool.download_encryption_key': { params: any; response: any }; 'pool.expand': { params: PoolExpandParams; response: null }; 'pool.export': { params: PoolExportParams; response: void }; 'pool.filesystem_choices': { params: [DatasetType[]?]; response: string[] }; 'pool.get_disks': { params: [ids: string[]]; response: string[] }; 'pool.import_disk': { params: ImportDiskParams; response: any }; 'pool.import_disk_autodetect_fs_type': { params: [path: string]; response: string }; 'pool.import_disk_msdosfs_locales': { params: void; response: string[] }; 'pool.import_find': { params: void; response: PoolFindResult[] }; 'pool.import_pool': { params: [PoolImportParams]; response: boolean }; 'pool.is_upgraded': { params: [poolId: number]; response: boolean }; 'pool.lock': { params: any; response: any }; 'pool.offline': { params: [id: number, params: { label: string }]; response: boolean }; 'pool.online': { params: [id: number, params: { label: string }]; response: boolean }; 'pool.passphrase': { params: any; response: any }; 'pool.processes': { params: [id: number]; response: PoolProcess[] }; 'pool.query': { params: QueryParams; response: Pool[] }; 'pool.recoverykey_rm': { params: any; response: any }; 'pool.rekey': { params: any; response: any }; 'pool.remove': { params: PoolRemoveParams; response: any }; 'pool.replace': { params: [id: number, params: PoolReplaceParams]; response: boolean }; 'pool.resilver.config': { params: void; response: ResilverConfig }; 'pool.resilver.update': { params: [ResilverConfigUpdate]; response: ResilverConfig }; 'pool.scrub': { params: PoolScrubParams; response: void }; 'pool.scrub.create': { params: [CreatePoolScrub]; response: PoolScrub }; 'pool.scrub.delete': { params: [id: number]; response: boolean }; 'pool.scrub.query': { params: QueryParams; response: PoolScrub[] }; 'pool.scrub.update': { params: [id: number, params: CreatePoolScrub]; response: PoolScrub }; 'pool.snapshottask.create': { params: [PeriodSnapshotTaskUpdate]; response: PeriodicSnapshotTask }; 'pool.snapshottask.delete': { params: [id: number]; response: boolean }; 'pool.snapshottask.query': { params: QueryParams; response: PeriodicSnapshotTask[] }; 'pool.snapshottask.update': { params: [id: number, update: PeriodSnapshotTaskUpdate]; response: PeriodicSnapshotTask }; 'pool.unlock': { params: PoolUnlockQuery; response: PoolUnlockResult }; 'pool.unlock_services_restart_choices': { params: [id: number]; response: Choices }; 'pool.update': { params: [id: number, update: UpdatePool]; response: Pool }; 'pool.upgrade': { params: [id: number]; response: boolean }; // Replication 'replication.list_datasets': { params: [transport: TransportMode, credentials?: number]; response: string[] }; 'replication.create': { params: any; response: any }; 'replication.query': { params: QueryParams; response: ReplicationTask[] }; 'replication.restore': { params: [id: number, params: { name: string; target_dataset: string }]; response: void }; 'replication.run': { params: [id: number]; response: any }; 'replication.delete': { params: [id: number]; response: boolean }; 'replication.count_eligible_manual_snapshots': { params: [CountManualSnapshotsParams]; response: EligibleManualSnapshotsCount }; 'replication.list_naming_schemas': { params: void; response: string[] }; 'replication.target_unmatched_snapshots': { params: TargetUnmatchedSnapshotsParams; response: { [dataset: string]: string[] }; }; 'replication.update': { params: any; response: any }; // Rsync 'rsynctask.run': { params: [id: number]; response: any }; 'rsynctask.query': { params: QueryParams; response: RsyncTask[] }; 'rsynctask.create': { params: [RsyncTaskUpdate]; response: RsyncTask }; 'rsynctask.update': { params: [id: number, params: RsyncTaskUpdate]; response: RsyncTask }; 'rsynctask.delete': { params: [id: number]; response: boolean }; // Rsyncd 'rsyncd.update': { params: [RsyncConfigUpdate]; response: RsyncConfig }; 'rsyncd.config': { params: void; response: RsyncConfig }; // Rsyncmod 'rsyncmod.query': { params: QueryParams; response: RsyncModule[] }; 'rsyncmod.update': { params: [id: number, params: RsyncModuleCreate]; response: RsyncModule }; 'rsyncmod.create': { params: [RsyncModuleCreate]; response: RsyncModule }; 'rsyncmod.delete': { params: [id: number]; response: boolean }; // Reporting 'reporting.get_data': { params: ReportingQueryParams; response: ReportingData[] }; 'reporting.update': { params: [ReportingConfigUpdate]; response: ReportingConfig }; 'reporting.config': { params: void; response: ReportingConfig }; 'reporting.graphs': { params: QueryParams; response: ReportingGraph[] }; 'reporting.clear': { params: void; response: void }; // S3 's3.bindip_choices': { params: void; response: Choices }; 's3.config': { params: void; response: S3Config }; 's3.update': { params: [S3ConfigUpdate]; response: S3Config }; // SMB 'smb.bindip_choices': { params: void; response: Choices }; 'smb.unixcharset_choices': { params: void; response: Choices }; 'smb.get_smb_ha_mode': { params: void; response: string }; 'smb.update': { params: [SmbConfigUpdate]; response: SmbConfig }; 'smb.config': { params: void; response: SmbConfig }; 'smb.sharesec.query': { params: QueryParams; response: SmbSharesec[] }; 'smb.sharesec.update': { params: [id: number, update: { share_acl: SmbSharesecAce[] }]; response: any }; // SSH 'ssh.update': { params: [SshConfigUpdate]; response: SshConfig }; 'ssh.config': { params: void; response: SshConfig }; 'ssh.bindiface_choices': { params: void; response: Choices }; // System 'system.feature_enabled': { params: [feature: string]; response: boolean }; 'system.advanced.update': { params: [Partial]; response: AdvancedConfig }; 'system.reboot': { params: { delay?: number }; response: void }; 'system.shutdown': { params: { delay?: number }; response: void }; 'system.advanced.serial_port_choices': { params: void; response: Choices }; 'system.info': { params: void; response: SystemInfo }; 'system.advanced.config': { params: void; response: AdvancedConfig }; 'system.general.update': { params: [SystemGeneralConfigUpdate]; response: SystemGeneralConfig }; 'system.ntpserver.delete': { params: [id: number]; response: boolean }; 'system.ntpserver.query': { params: QueryParams; response: NtpServer[] }; 'system.ntpserver.create': { params: [CreateNtpServer]; response: NtpServer }; 'system.ntpserver.update': { params: [id: number, params: CreateNtpServer]; response: NtpServer }; 'system.general.config': { params: void; response: SystemGeneralConfig }; 'system.general.kbdmap_choices': { params: void; response: Choices }; 'system.general.language_choices': { params: void; response: Choices }; 'system.general.timezone_choices': { params: void; response: Choices }; 'system.general.ui_address_choices': { params: void; response: Choices }; 'system.license_update': { params: [license: string]; response: void }; 'system.general.ui_v6address_choices': { params: void; response: Choices }; 'system.general.ui_certificate_choices': { params: void; response: Record }; 'system.general.ui_httpsprotocols_choices': { params: void; response: Choices }; 'system.build_time': { params: void; response: ApiTimestamp }; 'system.product_type': { params: void; response: ProductType }; // Support 'support.is_available': { params: void; response: boolean }; 'support.is_available_and_enabled': { params: void; response: boolean }; 'support.config': { params: void; response: SupportConfig }; 'support.update': { params: [SupportConfigUpdate]; response: SupportConfig }; 'support.new_ticket': { params: [CreateNewTicket]; response: NewTicketResponse }; 'support.fetch_categories': { params: FetchSupportParams; response: Choices }; // SMART 'smart.test.disk_choices': { params: void; response: Choices }; 'smart.update': { params: [SmartConfigUpdate]; response: SmartConfig }; 'smart.config': { params: void; response: SmartConfig }; 'smart.test.manual_test': { params: [SmartManualTestParams[]]; response: ManualSmartTest[] }; 'smart.test.query': { params: QueryParams; response: SmartTest[] }; 'smart.test.create': { params: [SmartTestUpdate]; response: SmartTest }; 'smart.test.results': { params: QueryParams; response: SmartTestResults[] }; 'smart.test.update': { params: [id: number, update: SmartTestUpdate]; response: SmartTest }; 'smart.test.delete': { params: [id: number]; response: boolean }; // SystemDataset 'systemdataset.pool_choices': { params: void; response: Choices }; 'systemdataset.config': { params: void; response: SystemDatasetConfig }; 'systemdataset.update': { params: [{ [poolName: string]: string }]; response: SystemDatasetConfig }; // Service 'service.started': { params: [ServiceName]; response: boolean }; 'service.query': { params: QueryParams; response: Service[] }; 'service.update': { params: [number, Partial]; response: number }; 'service.start': { params: [ServiceName]; response: boolean }; 'service.stop': { params: [ServiceName]; response: boolean; // False indicates that service has been stopped. }; 'service.restart': { params: [ServiceName]; response: void }; // Sensor 'sensor.query': { params: void; response: Sensor[] }; // Sharing 'sharing.smb.query': { params: QueryParams; response: SmbShare[] }; 'sharing.smb.create': { params: [SmbShareUpdate]; response: SmbShare }; 'sharing.smb.update': { params: [id: number, update: SmbShareUpdate]; response: SmbShare }; 'sharing.smb.delete': { params: [id: number]; response: boolean }; 'sharing.smb.presets': { params: void; response: SmbPresets }; 'sharing.nfs.query': { params: QueryParams; response: NfsShare[] }; 'sharing.nfs.update': { params: [id: number, update: NfsShareUpdate]; response: NfsShare }; 'sharing.nfs.create': { params: [NfsShareUpdate]; response: NfsShare }; 'sharing.nfs.delete': { params: [id: number]; response: boolean }; 'sharing.webdav.query': { params: QueryParams; response: WebDavShare[] }; 'sharing.webdav.update': { params: [id: number, update: WebDavShareUpdate]; response: WebDavShare }; 'sharing.webdav.create': { params: [WebDavShareUpdate]; response: WebDavShare }; 'sharing.webdav.delete': { params: [id: number]; response: boolean }; // Tunable 'tunable.tunable_type_choices': { params: void; response: Choices }; 'tunable.query': { params: QueryParams; response: Tunable }; 'tunable.update': { params: [id: number, update: TunableUpdate]; response: Tunable }; 'tunable.create': { params: [TunableUpdate]; response: Tunable }; 'tunable.delete': { params: [id: number]; response: true }; // TFTP 'tftp.update': { params: [TftpConfigUpdate]; response: TftpConfig }; 'tftp.config': { params: void; response: TftpConfig }; // FTP 'ftp.update': { params: [FtpConfigUpdate]; response: FtpConfig }; 'ftp.config': { params: void; response: FtpConfig }; // Truecommand 'truecommand.config': { params: void; response: TrueCommandConfig }; 'truecommand.update': { params: [UpdateTrueCommand]; response: TrueCommandUpdateResponse }; 'truecommand.connected': { params: void; response: TrueCommandConnectionState }; // TrueNAS 'truenas.is_eula_accepted': { params: void; response: boolean }; 'truenas.get_eula': { params: void; response: string }; 'truenas.accept_eula': { params: void; response: void }; 'truenas.is_production': { params: void; response: boolean }; 'truenas.set_production': { params: [production: boolean, attach_debug: boolean]; response: { ticket: number; url: string }; }; // Vm 'vm.query': { params: QueryParams; response: VirtualMachine[] }; 'vm.cpu_model_choices': { params: void; response: Choices }; 'vm.bootloader_options': { params: void; response: Choices }; 'vm.device.nic_attach_choices': { params: void; response: Choices }; 'vm.device.bind_choices': { params: void; response: Choices }; 'vm.create': { params: [VirtualMachineUpdate]; response: VirtualMachine }; 'vm.delete': { params: VmDeleteParams; response: boolean }; 'vm.resolution_choices': { params: void; response: Choices }; 'vm.get_display_web_uri': { params: VmDisplayWebUriParams; response: { [id: number]: VmDisplayWebUri } }; 'vm.device.passthrough_device_choices': { params: void; response: Choices }; 'vm.device.create': { params: [VmDeviceUpdate]; response: VmDevice }; 'vm.device.delete': { params: [id: number]; response: boolean }; 'vm.random_mac': { params: void; response: string }; 'vm.device.query': { params: QueryParams; response: VmDevice[] }; 'vm.stop': { params: VmStopParams; response: any }; 'vm.maximum_supported_vcpus': { params: void; response: number }; 'vm.device.update': { params: [id: number, update: VmDeviceUpdate]; response: VmDevice }; 'vm.port_wizard': { params: void; response: VmPortWizardResult }; 'vm.get_available_memory': { params: void; response: number }; 'vm.clone': { params: VmCloneParams; response: boolean }; 'vm.update': { params: [id: number, update: VirtualMachineUpdate]; response: VirtualMachine }; 'vm.poweroff': { params: [id: number]; response: void }; 'vm.restart': { params: [id: number]; response: void }; 'vm.get_display_devices': { params: [id: number]; response: VmDisplayDevice[] }; 'vm.start': { params: [id: number]; response: void }; 'vm.virtualization_details': { params: void; response: VirtualizationDetails }; // Vmware 'vmware.dataset_has_vms': { params: DatasetHasVmsQueryParams; response: boolean }; 'vmware.query': { params: QueryParams; response: VmwareSnapshot[] }; 'vmware.create': { params: [VmwareSnapshotUpdate]; response: VmwareSnapshot }; 'vmware.update': { params: [id: number, update: VmwareSnapshotUpdate]; response: VmwareSnapshot }; 'vmware.delete': { params: [id: number]; response: boolean }; 'vmware.match_datastores_with_datasets': { params: [MatchDatastoresWithDatasetsParams]; response: MatchDatastoresWithDatasets; }; // User 'user.update': { params: [id: number, update: UserUpdate]; response: number }; 'user.create': { params: any; response: any }; 'user.query': { params: QueryParams; response: User[] }; 'user.set_root_password': { params: [password: string]; response: void }; 'user.delete': { params: DeleteUserParams; response: number }; 'user.get_user_obj': { params: [{ username?: string; uid?: number }]; response: DsUncachedUser }; 'user.shell_choices': { params: [userId?: number]; response: Choices }; 'user.set_attribute': { params: [id: number, key: string, value: unknown]; response: boolean }; 'user.get_next_uid': { params: void; response: number }; 'user.has_root_password': { params: void; response: boolean }; // UPS 'ups.update': { params: [UpsConfigUpdate]; response: UpsConfig }; 'ups.config': { params: void; response: UpsConfig }; 'ups.driver_choices': { params: void; response: Choices }; 'ups.port_choices': { params: void; response: string[] }; // Update 'update.get_auto_download': { params: void; response: boolean }; 'update.get_trains': { params: void; response: SystemUpdateTrains }; 'update.set_auto_download': { params: [boolean]; response: void }; 'update.get_pending': { params: void; response: SystemUpdateChange[] }; 'update.check_available': { params: void; response: SystemUpdate }; 'update.set_train': { params: [train: string]; response: void }; 'update.download': { params: any; response: any }; 'update.update': { params: [UpdateParams]; response: void }; // ZFS 'zfs.snapshot.create': { params: [CreateZfsSnapshot]; response: ZfsSnapshot }; 'zfs.snapshot.query': { params: QueryParams; response: ZfsSnapshot[] }; 'zfs.snapshot.delete': { params: [id: string, params?: { defer?: boolean; recursive?: boolean }]; response: boolean }; 'zfs.snapshot.clone': { params: [CloneZfsSnapshot]; response: boolean }; 'zfs.snapshot.rollback': { params: ZfsRollbackParams; response: void }; // staticroute 'staticroute.query': { params: QueryParams; response: StaticRoute[] }; 'staticroute.create': { params: [UpdateStaticRoute]; response: StaticRoute }; 'staticroute.update': { params: [id: number, update: UpdateStaticRoute]; response: StaticRoute }; 'staticroute.delete': { params: [id: number]; response: boolean }; // SNMP 'snmp.config': { params: void; response: SnmpConfig }; 'snmp.update': { params: [SnmpConfigUpdate]; response: SnmpConfig }; // WEBDAV 'webdav.config': { params: void; response: WebdavConfig }; 'webdav.update': { params: [WebdavConfigUpdate]; response: WebdavConfig }; // InitShutdownScript 'initshutdownscript.query': { params: QueryParams; response: InitShutdownScript[] }; 'initshutdownscript.create': { params: CreateInitShutdownScript; response: InitShutdownScript }; 'initshutdownscript.update': { params: UpdateInitShutdownScriptParams; response: InitShutdownScript }; 'initshutdownscript.delete': { params: [id: number]; response: boolean }; }; /** * Prefer typing like this: * ``` * queryCall: 'user.query' as const * ``` * instead of using ApiMethod. */ export type ApiMethod = keyof ApiDirectory;