Documentation
¶
Index ¶
- Constants
- Variables
- type ExportRequest
- type ImportRequest
- type ImportResult
- type ProfileExport
- type ProfileExportRequest
- type ProfileFingerprint
- type ProfileIcon
- type ProfileImportRequest
- type ProfileImportResult
- type SettingsExport
- type SettingsImportRequest
- type SingleSettingExport
- type SingleSettingImportRequest
- type Sync
- type Type
Constants ¶
const ( TypeProfile = "profile" TypeSettings = "settings" TypeSingleSetting = "single-setting" )
Export Types.
const (
ExportTargetGlobal = "global"
)
Export IDs.
Variables ¶
var ( MsgNone = "" MsgValid = "Import is valid." MsgSuccess = "Import successful." MsgRequireRestart = "Import successful. Restart required for setting to take effect." )
Messages.
var ( ErrMismatch = api.ErrorWithStatus( errors.New("the supplied export cannot be imported here"), http.StatusPreconditionFailed, ) ErrSettingNotFound = api.ErrorWithStatus( errors.New("setting not found"), http.StatusPreconditionFailed, ) ErrTargetNotFound = api.ErrorWithStatus( errors.New("import/export target does not exist"), http.StatusGone, ) ErrUnchanged = api.ErrorWithStatus( errors.New("cannot export unchanged setting"), http.StatusGone, ) ErrNotSettablePerApp = api.ErrorWithStatus( errors.New("cannot be set per app"), http.StatusGone, ) ErrInvalidImportRequest = api.ErrorWithStatus( errors.New("invalid import request"), http.StatusUnprocessableEntity, ) ErrInvalidSettingValue = api.ErrorWithStatus( errors.New("invalid setting value"), http.StatusUnprocessableEntity, ) ErrInvalidProfileData = api.ErrorWithStatus( errors.New("invalid profile data"), http.StatusUnprocessableEntity, ) ErrImportFailed = api.ErrorWithStatus( errors.New("import failed"), http.StatusInternalServerError, ) ErrExportFailed = api.ErrorWithStatus( errors.New("export failed"), http.StatusInternalServerError, ) )
Errors.
Functions ¶
This section is empty.
Types ¶
type ExportRequest ¶
ExportRequest is a request for an export.
type ImportRequest ¶
type ImportRequest struct {
// Where the export should be import to.
Target string `json:"target"`
// Only validate, but do not actually change anything.
ValidateOnly bool `json:"validateOnly"`
RawExport string `json:"rawExport"`
RawMime string `json:"rawMime"`
}
ImportRequest is a request to import an export.
type ImportResult ¶
type ImportResult struct {
RestartRequired bool `json:"restartRequired"`
ReplacesExisting bool `json:"replacesExisting"`
ContainsUnknown bool `json:"containsUnknown"`
}
ImportResult is returned by successful import operations.
func ImportSettings ¶
func ImportSettings(r *SettingsImportRequest) (*ImportResult, error)
ImportSettings imports the global settings.
func ImportSingeSetting ¶
func ImportSingeSetting(r *SingleSettingImportRequest) (*ImportResult, error)
ImportSingeSetting imports a single setting.
type ProfileExport ¶
type ProfileExport struct {
Type Type `json:"type" yaml:"type"`
// Identification
ID string `json:"id,omitempty" yaml:"id,omitempty"`
Source profile.ProfileSource `json:"source,omitempty" yaml:"source,omitempty"`
// Human Metadata
Name string `json:"name" yaml:"name"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
Homepage string `json:"homepage,omitempty" yaml:"homepage,omitempty"`
PresentationPath string `json:"presPath,omitempty" yaml:"presPath,omitempty"`
UsePresentationPath bool `json:"usePresPath,omitempty" yaml:"usePresPath,omitempty"`
IconData string `json:"iconData,omitempty" yaml:"iconData,omitempty"` // DataURL
// Process matching
Fingerprints []ProfileFingerprint `json:"fingerprints" yaml:"fingerprints"`
// Settings
Config map[string]any `json:"config,omitempty" yaml:"config,omitempty"`
// Metadata
LastEdited *time.Time `json:"lastEdited,omitempty" yaml:"lastEdited,omitempty"`
Created *time.Time `json:"created,omitempty" yaml:"created,omitempty"`
Internal bool `json:"internal,omitempty" yaml:"internal,omitempty"`
}
ProfileExport holds an export of a profile.
func ExportProfile ¶
func ExportProfile(scopedID string) (*ProfileExport, error)
ExportProfile exports a profile.
type ProfileExportRequest ¶
type ProfileExportRequest struct {
ID string `json:"id"`
}
ProfileExportRequest is a request for a profile export.
type ProfileFingerprint ¶
type ProfileFingerprint struct {
Type string `json:"type" yaml:"type"`
Key string `json:"key,omitempty" yaml:"key,omitempty"`
Operation string `json:"operation" yaml:"operation"`
Value string `json:"value" yaml:"value"`
MergedFrom string `json:"mergedFrom,omitempty" yaml:"mergedFrom,omitempty"`
}
ProfileFingerprint represents a profile fingerprint.
type ProfileIcon ¶
type ProfileIcon struct {
IconData string `json:"iconData,omitempty" yaml:"iconData,omitempty"` // DataURL
}
ProfileIcon represents a profile icon only.
type ProfileImportRequest ¶
type ProfileImportRequest struct {
ImportRequest `json:",inline"`
// AllowUnknown allows the import of unknown settings.
// Otherwise, attempting to import an unknown setting will result in an error.
AllowUnknown bool `json:"allowUnknown"`
// AllowReplace allows the import to replace other existing profiles.
AllowReplace bool `json:"allowReplaceProfiles"`
Export *ProfileExport `json:"export"`
}
ProfileImportRequest is a request to import Profile.
type ProfileImportResult ¶
type ProfileImportResult struct {
ImportResult `json:",inline"`
ReplacesProfiles []string `json:"replacesProfiles"`
}
ProfileImportResult is returned by successful import operations.
func ImportProfile ¶
func ImportProfile(r *ProfileImportRequest, requiredProfileSource profile.ProfileSource) (*ProfileImportResult, error)
ImportProfile imports a profile.
type SettingsExport ¶
type SettingsExport struct {
Type Type `json:"type" yaml:"type"`
Config map[string]any `json:"config" yaml:"config"`
}
SettingsExport holds an export of settings.
func ExportSettings ¶
func ExportSettings(from string, keys []string) (*SettingsExport, error)
ExportSettings exports the global settings.
type SettingsImportRequest ¶
type SettingsImportRequest struct {
ImportRequest `json:",inline" yaml:",inline"`
// Reset all settings of target before import.
// The ImportResult also reacts to this flag and correctly reports whether
// any settings would be replaced or deleted.
Reset bool `json:"reset" yaml:"reset"`
// AllowUnknown allows the import of unknown settings.
// Otherwise, attempting to import an unknown setting will result in an error.
AllowUnknown bool `json:"allowUnknown" yaml:"allowUnknown"`
Export *SettingsExport `json:"export" yaml:"export"`
}
SettingsImportRequest is a request to import settings.
type SingleSettingExport ¶
type SingleSettingExport struct {
Type Type `json:"type" yaml:"type"` // Must be TypeSingleSetting
ID string `json:"id" yaml:"id"` // Settings Key
Value any `json:"value" yaml:"value"`
}
SingleSettingExport holds an export of a single setting.
func ExportSingleSetting ¶
func ExportSingleSetting(key, from string) (*SingleSettingExport, error)
ExportSingleSetting export a single setting.
type SingleSettingImportRequest ¶
type SingleSettingImportRequest struct {
ImportRequest `json:",inline"`
Export *SingleSettingExport `json:"export"`
}
SingleSettingImportRequest is a request to import a single setting.