types

package module
v3.0.0-...-5512cc3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2026 License: BSD-3-Clause Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ActivityTypeJobRun            ActivityType         = "job_run"
	ActivityStatusQueued          ActivityStatus       = "queued"
	ActivityStatusRunning         ActivityStatus       = "running"
	ActivityStatusSuccess         ActivityStatus       = "success"
	ActivityStatusFailed          ActivityStatus       = "failed"
	ActivityStatusCancelled       ActivityStatus       = "cancelled"
	ActivityTypeImagePull         ActivityType         = "image_pull"
	ActivityTypeImageBuild        ActivityType         = "image_build"
	ActivityTypeImageUpdateCheck  ActivityType         = "image_update_check"
	ActivityTypeProjectPull       ActivityType         = "project_pull"
	ActivityTypeProjectBuild      ActivityType         = "project_build"
	ActivityTypeProjectDeploy     ActivityType         = "project_deploy"
	ActivityTypeProjectRedeploy   ActivityType         = "project_redeploy"
	ActivityTypeProjectDown       ActivityType         = "project_down"
	ActivityTypeProjectRestart    ActivityType         = "project_restart"
	ActivityTypeProjectDestroy    ActivityType         = "project_destroy"
	ActivityTypeContainerStart    ActivityType         = "container_start"
	ActivityTypeContainerStop     ActivityType         = "container_stop"
	ActivityTypeContainerRestart  ActivityType         = "container_restart"
	ActivityTypeContainerRedeploy ActivityType         = "container_redeploy"
	ActivityTypeContainerEdit     ActivityType         = "container_edit"
	ActivityTypeContainerDelete   ActivityType         = "container_delete"
	ActivityTypeContainerKill     ActivityType         = "container_kill"
	ActivityTypeContainerPause    ActivityType         = "container_pause"
	ActivityTypeContainerUnpause  ActivityType         = "container_unpause"
	ActivityTypeVulnerabilityScan ActivityType         = "vulnerability_scan"
	ActivityTypeImagePatch        ActivityType         = "image_patch"
	ActivityTypeAutoUpdate        ActivityType         = "auto_update"
	ActivityTypeSystemPrune       ActivityType         = "system_prune"
	ActivityTypeResourceAction    ActivityType         = "resource_action"
	ActivityMessageLevelInfo      ActivityMessageLevel = "info"
	ActivityMessageLevelWarning   ActivityMessageLevel = "warning"
	ActivityMessageLevelError     ActivityMessageLevel = "error"
	ActivityMessageLevelSuccess   ActivityMessageLevel = "success"
)
View Source
const (
	SystemBackupDestinationLocal   SystemBackupDestination = "local"
	SystemBackupDestinationS3      SystemBackupDestination = "s3"
	SystemBackupDestinationLocalS3 SystemBackupDestination = "local_s3"

	SystemBackupStatusRunning    = "running"
	SystemBackupStatusSucceeded  = "succeeded"
	SystemBackupStatusFailed     = "failed"
	SystemBackupTriggerManual    = "manual"
	SystemBackupTriggerScheduled = "scheduled"
	SystemBackupTriggerSafety    = "safety"
	SystemBackupTriggerManager   = "manager"

	BackupManagementTypeSystem     BackupManagementType      = "system"
	BackupManagementTypeVolume     BackupManagementType      = "volume"
	SystemVolumePolicyPrefix                                 = "system-volume:"
	SystemVolumeManualSeriesOwner                            = "manual"
	SystemVolumeSelectionAll       SystemVolumeSelectionMode = "all"
	SystemVolumeSelectionAllowlist SystemVolumeSelectionMode = "allowlist"
	SystemVolumeSelectionBlocklist SystemVolumeSelectionMode = "blocklist"

	VolumeBackupStatusRunning    = "running"
	VolumeBackupStatusSucceeded  = "succeeded"
	VolumeBackupStatusFailed     = "failed"
	VolumeBackupTriggerManual    = "manual"
	VolumeBackupTriggerScheduled = "scheduled"
	VolumeBackupTriggerSafety    = "safety"
)
View Source
const (
	ContainerSortCPUUsage    = "cpuUsage"
	ContainerSortMemoryUsage = "memoryUsage"
)

Resource sort keys accepted by the container list endpoint. They are part of the shared API contract: the manager's environment proxy inspects the sort query parameter to enforce the additional containers:read permission before forwarding resource-sorted requests to an agent.

View Source
const (
	FeatureVulnerabilityManagement FeatureID = "vulnerabilityManagement"

	FeatureVulnerabilityManagementSettingKey = "featureVulnerabilityManagementEnabled"

	FeatureSwarm FeatureID = "swarm"

	FeatureSwarmSettingKey = "featureSwarmEnabled"
)
View Source
const (
	TokenExchangeGrantType      = "urn:ietf:params:oauth:grant-type:token-exchange" // #nosec G101: RFC 8693 grant type identifier, not a credential.
	SubjectTokenTypeJWT         = "urn:ietf:params:oauth:token-type:jwt"            // #nosec G101: RFC 8693 token type identifier, not a credential.
	SubjectTokenTypeIDToken     = "urn:ietf:params:oauth:token-type:id_token"       // #nosec G101: RFC 8693 token type identifier, not a credential.
	IssuedTokenTypeAccessToken  = "urn:ietf:params:oauth:token-type:access_token"   // #nosec G101: RFC 8693 token type identifier, not a credential.
	RequestedTokenTypeAccessJWT = "urn:ietf:params:oauth:token-type:access_token"   // #nosec G101: RFC 8693 token type identifier, not a credential.
	FederatedMatchTypeExact     = "exact"
	FederatedMatchTypeGlob      = "glob"
)
View Source
const (
	GitOpsSyncModeDeploy                                    = "deploy"
	GitOpsSyncModeBackup                                    = "backup"
	GitOpsBackupStateNever                                  = "never"
	GitOpsBackupStatePending                                = "pending"
	GitOpsBackupStateBackingUp                              = "backing_up"
	GitOpsBackupStateBackedUp                               = "backed_up"
	GitOpsBackupStatePaused                                 = "paused"
	GitOpsBackupStateFailed                                 = "failed"
	GitOpsBackupStateNeedsAttention                         = "needs_attention"
	GitOpsBackupFailureRepository                           = "repository"
	GitOpsBackupFailureAuth                                 = "auth"
	GitOpsBackupFailureProjectMissing                       = "project_missing"
	GitOpsBackupFailureSnapshot                             = "snapshot"
	GitOpsBackupFailureUnreadableFiles                      = "unreadable_files"
	GitOpsBackupFailureLimits                               = "limits"
	GitOpsBackupFailureConflict                             = "conflict"
	GitOpsBackupFailureDestinationOccupied                  = "destination_occupied"
	GitOpsBackupFailurePushRejected                         = "push_rejected"
	GitOpsBackupConflictUseArcane                           = "use_arcane"
	FileTreeNodeTypeFile                   FileTreeNodeType = "file"
	FileTreeNodeTypeDirectory              FileTreeNodeType = "directory"
)
View Source
const (
	PatchModeUpdateAll   PatchMode   = "update-all"
	PatchModeReport      PatchMode   = "report"
	PatchStatusPatching  PatchStatus = "patching"
	PatchStatusCompleted PatchStatus = "completed"
	PatchStatusFailed    PatchStatus = "failed"
)
View Source
const (
	LifecycleDefaultTimeoutSec = 60

	LifecycleDefaultMaxTimeoutSec = 300
)
View Source
const (
	NotificationProviderDiscord                  NotificationProvider     = "discord"
	NotificationProviderEmail                    NotificationProvider     = "email"
	NotificationProviderTelegram                 NotificationProvider     = "telegram"
	NotificationProviderSignal                   NotificationProvider     = "signal"
	NotificationProviderSlack                    NotificationProvider     = "slack"
	NotificationProviderNtfy                     NotificationProvider     = "ntfy"
	NotificationProviderPushover                 NotificationProvider     = "pushover"
	NotificationProviderGotify                   NotificationProvider     = "gotify"
	NotificationProviderMatrix                   NotificationProvider     = "matrix"
	NotificationProviderGoogleChat               NotificationProvider     = "googlechat"
	NotificationProviderGeneric                  NotificationProvider     = "generic"
	NotificationDispatchKindImageUpdate          NotificationDispatchKind = "image_update"
	NotificationDispatchKindBatchImageUpdate     NotificationDispatchKind = "batch_image_update"
	NotificationDispatchKindContainerUpdate      NotificationDispatchKind = "container_update"
	NotificationDispatchKindBatchContainerUpdate NotificationDispatchKind = "batch_container_update"
	NotificationDispatchKindVulnerabilityFound   NotificationDispatchKind = "vulnerability_found"
	NotificationDispatchKindPruneReport          NotificationDispatchKind = "prune_report"
	NotificationDispatchKindAutoHeal             NotificationDispatchKind = "auto_heal"
)
View Source
const (
	PodmanAutoUpdateModeREST        PodmanAutoUpdateMode = "rest"
	PodmanAutoUpdateModeSystemd     PodmanAutoUpdateMode = "systemd"
	PodmanAutoUpdateModeUnavailable PodmanAutoUpdateMode = "unavailable"

	KubeGenerateTypePod        KubeGenerateType = "pod"
	KubeGenerateTypeService    KubeGenerateType = "service"
	KubeGenerateTypeDeployment KubeGenerateType = "deployment"
	KubeGenerateTypeDaemonSet  KubeGenerateType = "daemonset"
	KubeGenerateTypeJob        KubeGenerateType = "job"

	PodmanSystemdUnitLabel = "PODMAN_SYSTEMD_UNIT"

	QuadletTypeContainer QuadletType = "container"
	QuadletTypePod       QuadletType = "pod"
	QuadletTypeKube      QuadletType = "kube"
	QuadletTypeNetwork   QuadletType = "network"
	QuadletTypeVolume    QuadletType = "volume"
	QuadletTypeImage     QuadletType = "image"
	QuadletTypeBuild     QuadletType = "build"
	QuadletTypeArtifact  QuadletType = "artifact"

	PodmanSystemdScopeSystem PodmanSystemdScope = "system"
	PodmanSystemdScopeUser   PodmanSystemdScope = "user"
)
View Source
const (
	ProjectTagSourceUI      ProjectTagSource = "ui"
	ProjectTagSourceCompose ProjectTagSource = "compose"
	ProjectTagColorGray     ProjectTagColor  = "gray"
	ProjectTagColorPurple   ProjectTagColor  = "purple"
	ProjectTagColorBlue     ProjectTagColor  = "blue"
	ProjectTagColorGreen    ProjectTagColor  = "green"
	ProjectTagColorYellow   ProjectTagColor  = "yellow"
	ProjectTagColorOrange   ProjectTagColor  = "orange"
	ProjectTagColorRed      ProjectTagColor  = "red"
	ProjectTagColorPink     ProjectTagColor  = "pink"

	ProjectStatusRunning          = "running"
	ProjectStatusStopped          = "stopped"
	ProjectStatusPartiallyRunning = "partially running"
	ProjectStatusUnknown          = "unknown"
	ProjectStatusDeploying        = "deploying"
	ProjectStatusStopping         = "stopping"
	ProjectStatusRestarting       = "restarting"

	ProjectRenameJournalKeyPrefix                   = "project_rename_journal:"
	ProjectRenameRollbackCleanupKeyPrefix           = "project_rename_rollback_cleanup:"
	ProjectRenameJournalPhaseStarted                = "started"
	ProjectRenameJournalPhaseTargetsCopied          = "targets_copied"
	ProjectRenameJournalPhaseOldVolumesRemoved      = "old_volumes_removed"
	ProjectRenameJournalPhaseProjectStateCommitted  = "project_state_committed"
	ProjectRenameJournalPhaseSourceCleanupPending   = "source_cleanup_pending"
	ProjectRenameJournalPhaseProjectStateRolledBack = "project_state_rolled_back"
)
View Source
const (
	StreamChannelEnvironments = "environments"
	StreamChannelActivities   = "activities"
	StreamChannelEvents       = "events"
	StreamChannelVersion      = "version"
	StreamChannelUpgrade      = "arcane-upgrade"
)
View Source
const (
	SwarmJoinEnvironmentRoleWorker             SwarmJoinEnvironmentRole        = "worker"
	SwarmJoinEnvironmentRoleManager            SwarmJoinEnvironmentRole        = "manager"
	SwarmJoinEnvironmentResultJoined           SwarmJoinEnvironmentResultState = "joined"
	SwarmJoinEnvironmentResultAlreadyMember    SwarmJoinEnvironmentResultState = "already_member"
	SwarmJoinEnvironmentResultJoinedUnverified SwarmJoinEnvironmentResultState = "joined_unverified"
	SwarmJoinEnvironmentResultFailed           SwarmJoinEnvironmentResultState = "failed"

	NodeAgentStateNone              NodeAgentState       = "none"
	NodeAgentStatePending           NodeAgentState       = "pending"
	NodeAgentStateOffline           NodeAgentState       = "offline"
	NodeAgentStateConnected         NodeAgentState       = "connected"
	NodeAgentStateMismatched        NodeAgentState       = "mismatched"
	NodeAgentStateAmbiguous         NodeAgentState       = "ambiguous"
	NodeAgentBindingKindLocal       NodeAgentBindingKind = "local"
	NodeAgentBindingKindEnvironment NodeAgentBindingKind = "environment"
	NodeAgentBindingKindDedicated   NodeAgentBindingKind = "dedicated"

	SwarmStackNamespaceLabel = "com.docker.stack.namespace"
)
View Source
const (
	PruneContainerModeNone       PruneContainerMode  = "none"
	PruneContainerModeStopped    PruneContainerMode  = "stopped"
	PruneContainerModeOlderThan  PruneContainerMode  = "olderThan"
	PruneImageModeNone           PruneImageMode      = "none"
	PruneImageModeDangling       PruneImageMode      = "dangling"
	PruneImageModeAll            PruneImageMode      = "all"
	PruneImageModeOlderThan      PruneImageMode      = "olderThan"
	PruneVolumeModeNone          PruneVolumeMode     = "none"
	PruneVolumeModeAnonymous     PruneVolumeMode     = "anonymous"
	PruneVolumeModeAll           PruneVolumeMode     = "all"
	PruneNetworkModeNone         PruneNetworkMode    = "none"
	PruneNetworkModeUnused       PruneNetworkMode    = "unused"
	PruneNetworkModeOlderThan    PruneNetworkMode    = "olderThan"
	PruneBuildCacheModeNone      PruneBuildCacheMode = "none"
	PruneBuildCacheModeUnused    PruneBuildCacheMode = "unused"
	PruneBuildCacheModeAll       PruneBuildCacheMode = "all"
	PruneBuildCacheModeOlderThan PruneBuildCacheMode = "olderThan"

	UpgradeProgressEventStage    = "stage"
	UpgradeProgressEventProgress = "progress"
	UpgradeProgressEventLog      = "log"
	UpgradeProgressEventDone     = "done"

	WSKindProjectLogs    = "project_logs"
	WSKindContainerLogs  = "container_logs"
	WSKindContainerStats = "container_stats"
	WSKindContainerExec  = "container_exec"
	WSKindSystemStats    = "system_stats"
	WSKindServiceLogs    = "service_logs"
	WSKindDiagnostics    = "diagnostics"
)
View Source
const (
	UpdaterStatusChecked         = "checked"
	UpdaterStatusUpdated         = "updated"
	UpdaterStatusRestarted       = "restarted"
	UpdaterStatusSkipped         = "skipped"
	UpdaterStatusFailed          = "failed"
	UpdaterStatusUpToDate        = "up_to_date"
	UpdaterStatusUpdateAvailable = "update_available"
)
View Source
const (
	UploadKindImage          = "image"
	UploadKindVolumeBackup   = "volume-backup"
	UploadKindBuildWorkspace = "build-workspace"

	UploadDefaultChunkSize int64 = 10 * 1024 * 1024
	UploadMinChunkSize     int64 = 1 * 1024 * 1024
	UploadMaxChunkSize     int64 = 50 * 1024 * 1024
)
View Source
const (
	VolumeBackupDestinationLocal   VolumeBackupDestination = "local"
	VolumeBackupDestinationS3      VolumeBackupDestination = "s3"
	VolumeBackupDestinationLocalS3 VolumeBackupDestination = "local_s3"
	VolumeBackupFormatArchive      VolumeBackupFormat      = "archive"
	VolumeBackupFormatRustic       VolumeBackupFormat      = "rustic"

	FileOpRestoreFile = "restore_file"
)
View Source
const (
	VulnerabilitySeverityUnknown            VulnerabilitySeverity    = "UNKNOWN"
	VulnerabilitySeverityLow                VulnerabilitySeverity    = "LOW"
	VulnerabilitySeverityMedium             VulnerabilitySeverity    = "MEDIUM"
	VulnerabilitySeverityHigh               VulnerabilitySeverity    = "HIGH"
	VulnerabilitySeverityCritical           VulnerabilitySeverity    = "CRITICAL"
	TrivyClassOSPackages                                             = "os-pkgs"
	TrivyClassLangPackages                                           = "lang-pkgs"
	RiskBandNone                            RiskBand                 = "none"
	RiskBandLow                             RiskBand                 = "low"
	RiskBandMedium                          RiskBand                 = "medium"
	RiskBandHigh                            RiskBand                 = "high"
	RiskBandCritical                        RiskBand                 = "critical"
	VulnerabilityScoreStatusComplete        VulnerabilityScoreStatus = "complete"
	VulnerabilityScoreStatusUnavailable     VulnerabilityScoreStatus = "unavailable"
	ImageExposureRunning                    ImageExposure            = "running"
	ImageExposureStopped                    ImageExposure            = "stopped"
	ImageExposureUnused                     ImageExposure            = "unused"
	ImageExposureUnknown                    ImageExposure            = "unknown"
	VulnerabilityScanStatusPending          VulnerabilityScanStatus  = "pending"
	VulnerabilityScanStatusScanning         VulnerabilityScanStatus  = "scanning"
	VulnerabilityScanStatusCompleted        VulnerabilityScanStatus  = "completed"
	VulnerabilityScanStatusFailed           VulnerabilityScanStatus  = "failed"
	VulnerabilityScanPhaseCreatingContainer VulnerabilityScanPhase   = "creating_container"
	VulnerabilityScanPhaseScanningImage     VulnerabilityScanPhase   = "scanning_image"
	VulnerabilityScanPhaseStoringResults    VulnerabilityScanPhase   = "storing_results"
)
View Source
const (
	FileOpCreateFile          = "create_file"
	FileOpCreateFolder        = "create_folder"
	FileOpUpdateFile          = "update_file"
	FileOpRename              = "rename"
	FileOpMove                = "move"
	FileOpDelete              = "delete"
	FileReadOnlyBinary        = "binary"
	FileReadOnlyTooLarge      = "too_large"
	FileReadOnlySymlink       = "symlink"
	FileReadOnlySpecial       = "special"
	FileReadOnlyGitOpsManaged = "gitops_managed"
)
View Source
const (
	DefaultAccentColor = "oklch(0.606 0.25 292.717)"
)
View Source
const (
	EnrollmentTokenPrefix = "arc_etkn_"
)
View Source
const (
	LocalDockerEnvironmentID = "0"
)
View Source
const (
	RecoveryManifestFormatVersion = 3
)

Variables

View Source
var (
	SafeThemeColor = regexp.MustCompile(`^(?:#[0-9a-fA-F]{3,8}|(?:rgb|rgba|hsl|hsla|oklch|oklab)\([0-9a-zA-Z%. ,/-]{1,64}\))$`)

	SafeAccentColor = regexp.MustCompile(
		`^(?:#[0-9a-fA-F]{3,8}|(?i:aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|` +
			`chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|` +
			`darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|` +
			`deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|` +
			`honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|` +
			`lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|` +
			`limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|` +
			`mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|` +
			`paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|` +
			`seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|transparent|turquoise|violet|` +
			`wheat|white|whitesmoke|yellow|yellowgreen)|(?:rgb|rgba|hsl|hsla|oklch|oklab)\([0-9a-zA-Z%. ,/-]{1,64}\))$`,
	)
)
View Source
var SystemUser = Actor{Username: "System"}

Functions

func GetAllJobMetadata

func GetAllJobMetadata() map[string]JobMetadata

func IsContainerResourceSort

func IsContainerResourceSort(sort string) bool

func QuadletUnit

func QuadletUnit(labels map[string]string) string

Types

type AccessSurface

type AccessSurface struct {
	ID            string   `json:"id" doc:"Stable surface identifier" example:"settings.category.webhooks"`
	Kind          string   `json:"kind" enum:"route,settings-category,landing" doc:"Surface type"`
	URL           string   `json:"url,omitempty" doc:"Route URL or prefix represented by this surface" example:"/system/webhooks"`
	Label         string   `json:"label" doc:"Human-readable surface label" example:"Webhooks"`
	AccessMode    string   `json:"accessMode" enum:"permissions,any-child" doc:"How reachability is evaluated"`
	MatchMode     string   `json:"matchMode" enum:"any-of,all-of" doc:"How permissions are combined when accessMode is permissions"`
	ScopeMode     string   `json:"scopeMode" enum:"global-only,env-plus-global,any-effective-scope" doc:"Which effective permission scope is considered"`
	Permissions   []string `json:"permissions,omitempty" doc:"Permissions used by permission-based surfaces"`
	Children      []string `json:"children,omitempty" doc:"Child surface IDs used by aggregate landing surfaces"`
	FallbackOrder int      `json:"fallbackOrder,omitempty" doc:"Positive ordering hint for route fallback selection"`
}

type Activity

type Activity struct {
	StartedAt    time.Time          `json:"startedAt"`
	CreatedAt    time.Time          `json:"createdAt"`
	BatchID      *string            `json:"batchId,omitempty"`
	ResourceType *string            `json:"resourceType,omitempty"`
	ResourceID   *string            `json:"resourceId,omitempty"`
	ResourceName *string            `json:"resourceName,omitempty"`
	Progress     *int               `json:"progress,omitempty"`
	StartedBy    *ActivityStartedBy `json:"startedBy,omitempty"`
	EndedAt      *time.Time         `json:"endedAt,omitempty"`
	DurationMs   *int64             `json:"durationMs,omitempty"`
	Error        *string            `json:"error,omitempty"`
	Metadata     map[string]any     `json:"metadata,omitempty"`
	UpdatedAt    *time.Time         `json:"updatedAt,omitempty"`
	EnvironmentTag
	ID                    string         `json:"id"`
	SourceEnvironmentID   string         `json:"sourceEnvironmentId,omitempty"`
	SourceEnvironmentName string         `json:"sourceEnvironmentName,omitempty"`
	Type                  ActivityType   `json:"type"`
	Status                ActivityStatus `json:"status"`
	Step                  string         `json:"step,omitempty"`
	LatestMessage         string         `json:"latestMessage,omitempty"`
}

type ActivityClearHistoryResult

type ActivityClearHistoryResult struct {
	Deleted int64 `json:"deleted"`
}

type ActivityDetail

type ActivityDetail struct {
	Activity Activity          `json:"activity"`
	Messages []ActivityMessage `json:"messages"`
}

type ActivityMessage

type ActivityMessage struct {
	CreatedAt  time.Time            `json:"createdAt"`
	Payload    map[string]any       `json:"payload,omitempty"`
	ID         string               `json:"id"`
	ActivityID string               `json:"activityId"`
	Level      ActivityMessageLevel `json:"level"`
	Message    string               `json:"message"`
}

type ActivityMessageLevel

type ActivityMessageLevel string

type ActivityStartedBy

type ActivityStartedBy struct {
	UserID      string `json:"userId,omitempty"`
	Username    string `json:"username"`
	DisplayName string `json:"displayName,omitempty"`
}

type ActivityStatus

type ActivityStatus string

type ActivityStreamEvent

type ActivityStreamEvent struct {
	Timestamp     time.Time        `json:"timestamp"`
	Activity      *Activity        `json:"activity,omitempty"`
	Message       *ActivityMessage `json:"message,omitempty"`
	Type          string           `json:"type"`
	EnvironmentID string           `json:"environmentId,omitempty"`
	ActivityID    string           `json:"activityId,omitempty"`
	Error         string           `json:"error,omitempty"`
	ActivityType  ActivityType     `json:"-"`
	Activities    []Activity       `json:"activities,omitempty"`
}

type ActivityType

type ActivityType string

type Actor

type Actor struct {
	Preferences UserPreferences `json:"preferences"`
	DisplayName *string         `json:"displayName,omitempty"`
	ID          string          `json:"id"`
	Username    string          `json:"username"`
}

type ActorDiagnostics

type ActorDiagnostics struct {
	CheckedAt       time.Time       `json:"checkedAt"`
	Runs            map[string]int  `json:"runs"`
	EnvironmentID   string          `json:"environmentId"`
	EnvironmentName string          `json:"environmentName"`
	Error           string          `json:"error,omitempty"`
	Hosts           []ActorHostInfo `json:"hosts"`
	ActorTypes      []ActorTypeInfo `json:"actorTypes"`
	Ready           bool            `json:"ready"`
}

type ActorHostInfo

type ActorHostInfo struct {
	LastHealthCheck time.Time `json:"lastHealthCheck"`
	HostID          string    `json:"hostId"`
	Address         string    `json:"address"`
}

type ActorInstance

type ActorInstance struct {
	ActivatedAt time.Time `json:"activatedAt"`
	ActorID     string    `json:"actorId"`
	Name        string    `json:"name,omitempty"`
	HostID      string    `json:"hostId"`
}

type ActorJobFailure

type ActorJobFailure struct {
	FailedAt  time.Time `json:"failedAt"`
	JobID     string    `json:"jobId"`
	ActorID   string    `json:"actorId"`
	Name      string    `json:"name,omitempty"`
	Method    string    `json:"method"`
	LastError string    `json:"lastError,omitempty"`
	Attempts  int       `json:"attempts"`
}

type ActorProvider

type ActorProvider interface{ Actor() *Actor }

type ActorTypeInfo

type ActorTypeInfo struct {
	NextAlarmAt      time.Time         `json:"nextAlarmAt,omitzero"`
	ActorType        string            `json:"actorType"`
	Instances        []ActorInstance   `json:"instances"`
	RecentFailures   []ActorJobFailure `json:"recentFailures"`
	ConcurrencyLimit int               `json:"concurrencyLimit"`
	ActiveActors     int               `json:"activeActors"`
	StoredStates     int               `json:"storedStates"`
	PendingAlarms    int               `json:"pendingAlarms"`
	PendingJobs      int               `json:"pendingJobs"`
	LeasedAlarms     int               `json:"leasedAlarms"`
	CompletedJobs    int               `json:"completedJobs"`
	DeadJobs         int               `json:"deadJobs"`
}

type AgentEnrollRequest

type AgentEnrollRequest struct {
	Hostname       string `json:"hostname" maxLength:"253" doc:"Hostname of the enrolling agent" trim:"true"`
	SwarmNodeID    string `json:"swarmNodeId,omitempty" required:"false" maxLength:"64" doc:"Swarm node ID when the agent runs on an active swarm node"`
	SwarmClusterID string `` /* 130-byte string literal not displayed */
	RequestID      string `` /* 158-byte string literal not displayed */
}

type AgentEnrollResponse

type AgentEnrollResponse struct {
	EnvironmentID string `json:"environmentId" doc:"Environment ID of the enrolled agent"`
	Token         string `json:"token" doc:"Agent token"`
}

type AgentHostInfo

type AgentHostInfo struct {
	Hostname      string `json:"hostname,omitempty"`
	OS            string `json:"os,omitempty"`
	KernelVersion string `json:"kernelVersion,omitempty"`
	Architecture  string `json:"architecture,omitempty"`
	DockerVersion string `json:"dockerVersion,omitempty"`
	AgentVersion  string `json:"agentVersion,omitempty"`
	PublicIP      string `json:"publicIp,omitempty"`
	MemoryBytes   int64  `json:"memoryBytes,omitempty"`
	CPUs          int32  `json:"cpus,omitempty"`
}

type AgentMTLSCertificate

type AgentMTLSCertificate struct {
	CommonName    *string    `json:"commonName,omitempty"`
	ExpiresAt     *time.Time `json:"expiresAt,omitempty"`
	DaysRemaining *int       `json:"daysRemaining,omitempty"`
	Expired       bool       `json:"expired"`
	ExpiringSoon  bool       `json:"expiringSoon"`
}

type AgentTunnelStats

type AgentTunnelStats struct {
	RoundTripMinMs       *float64   `json:"roundTripMinMs,omitempty"`
	RoundTripAvgMs       *float64   `json:"roundTripAvgMs,omitempty"`
	RoundTripMaxMs       *float64   `json:"roundTripMaxMs,omitempty"`
	LastDisconnectAt     *time.Time `json:"lastDisconnectAt,omitempty"`
	LastDisconnectReason string     `json:"lastDisconnectReason,omitempty"`
	BytesIn              int64      `json:"bytesIn"`
	BytesOut             int64      `json:"bytesOut"`
	StreamsOpened        int64      `json:"streamsOpened"`
	Sessions             int        `json:"sessions"`
}

type ApiKey

type ApiKey struct {
	CreatedAt   time.Time               `json:"createdAt" readOnly:"true" doc:"Creation timestamp"`
	Description *string                 `json:"description,omitempty" maxLength:"1000" doc:"Description of the API key" unorm:"nfc" trim:"true"`
	UserID      *string                 `json:"userId,omitempty" readOnly:"true" doc:"ID of the user who owns the API key"`
	ExpiresAt   *time.Time              `json:"expiresAt,omitempty" doc:"Expiration date of the API key"`
	LastUsedAt  *time.Time              `json:"lastUsedAt,omitempty" readOnly:"true" doc:"Last time the API key was used"`
	UpdatedAt   *time.Time              `json:"updatedAt,omitempty" readOnly:"true" doc:"Last update timestamp"`
	ID          string                  `json:"id" readOnly:"true" doc:"Unique identifier of the API key"`
	Name        string                  `` /* 129-byte string literal not displayed */
	KeyPrefix   string                  `json:"keyPrefix" readOnly:"true" doc:"Prefix of the API key for identification"`
	Kind        string                  `` /* 143-byte string literal not displayed */
	Permissions []ApiKeyPermissionGrant `` /* 159-byte string literal not displayed */
	IsStatic    bool                    `json:"isStatic" readOnly:"true" doc:"Whether the API key is environment-managed and protected from deletion"`
	IsBootstrap bool                    `` /* 156-byte string literal not displayed */
}

type ApiKeyCreatedDto

type ApiKeyCreatedDto struct {
	Key string `json:"key" readOnly:"true" doc:"The full API key secret (only shown once)"`
	ApiKey
}

type ApiKeyPermissionGrant

type ApiKeyPermissionGrant struct {
	EnvironmentID *string `json:"environmentId,omitempty" doc:"Environment ID to scope the grant to; omit for a global grant"`
	Permission    string  `json:"permission" minLength:"1" doc:"Permission string" example:"containers:list"`
}

type ApiResponse

type ApiResponse[T any] struct {
	Data               T                    `json:"data" doc:"Response data"`
	Environments       []EnvironmentData[T] `json:"environments,omitempty" doc:"Per-environment data behind a multi-environment response"`
	FailedEnvironments []EnvironmentFailure `json:"failedEnvironments,omitempty" doc:"Environments whose results are missing from a multi-environment response"`
	Success            bool                 `json:"success" doc:"Whether the request was successful"`
}

type ApnsDevice

type ApnsDevice struct {
	CreatedAt      time.Time       `json:"createdAt" readOnly:"true"`
	Events         map[string]bool `json:"events" required:"false"`
	LastSeenAt     *time.Time      `json:"lastSeenAt,omitempty" readOnly:"true"`
	ID             string          `json:"id" readOnly:"true"`
	Label          string          `json:"label" required:"false" maxLength:"100" unorm:"nfc" trim:"true"`
	EnvironmentIDs []string        `json:"environmentIds" required:"false"`
}

type ApnsEnvelope

type ApnsEnvelope struct {
	OccurredAt      time.Time     `json:"occurredAt"`
	Resource        *ApnsResource `json:"resource,omitempty"`
	Route           ApnsRoute     `json:"route"`
	EventID         string        `json:"eventId"`
	Type            string        `json:"type"`
	Severity        string        `json:"severity"`
	EnvironmentID   string        `json:"environmentId"`
	EnvironmentName string        `json:"environmentName"`
	Title           string        `json:"title"`
	Body            string        `json:"body"`
	ChannelID       string        `json:"channelId"`
	RecipientIDs    []string      `json:"recipientIds"`
	Version         int           `json:"v"`
}

type ApnsPairingToken

type ApnsPairingToken struct {
	ExpiresAt time.Time `json:"expiresAt"`
	Token     string    `json:"token"`
	ChannelID string    `json:"channelId"`
}

type ApnsRegisterDeviceRequest

type ApnsRegisterDeviceRequest struct {
	RecipientID    string          `json:"recipientId" minLength:"1" maxLength:"128"`
	Label          string          `json:"label" maxLength:"100" unorm:"nfc" trim:"true"`
	Events         map[string]bool `json:"events,omitzero"`
	EnvironmentIDs []string        `json:"environmentIds,omitzero"`
}

type ApnsResource

type ApnsResource struct {
	Kind string `json:"kind"`
	ID   string `json:"id"`
	Name string `json:"name,omitempty"`
}

type ApnsRoute

type ApnsRoute struct {
	Kind          string `json:"kind"`
	Tab           string `json:"tab,omitempty"`
	EnvironmentID string `json:"environmentId,omitempty"`
	ID            string `json:"id,omitempty"`
}

type ApnsStatus

type ApnsStatus struct {
	ChannelID string       `json:"channelId,omitempty"`
	RelayURL  string       `json:"relayUrl"`
	Devices   []ApnsDevice `json:"devices"`
	Enabled   bool         `json:"enabled"`
}

type AuthLogin

type AuthLogin struct {
	Username string `json:"username" minLength:"1" maxLength:"255" doc:"Username of the user" example:"admin"`
	Password string `json:"password" writeOnly:"true" minLength:"1" doc:"Password of the user"`
}

type AuthLogout

type AuthLogout struct {
	RefreshToken string `` /* 130-byte string literal not displayed */
}

type AuthRefresh

type AuthRefresh struct {
	RefreshToken string `` /* 138-byte string literal not displayed */
}

type AuthenticationResponse

type AuthenticationResponse struct {
	ExpiresAt    *time.Time           `json:"expiresAt,omitempty" doc:"Expiration time of the access token"`
	User         *User                `json:"user,omitempty" doc:"Authenticated user information"`
	MFA          *MFAChallenge        `json:"mfa,omitempty" doc:"Pending MFA challenge"`
	Status       AuthenticationStatus `json:"status" doc:"Authentication state"`
	Token        string               `json:"token,omitempty" doc:"JWT access token"`
	RefreshToken string               `json:"refreshToken,omitempty" doc:"Refresh token for obtaining new access tokens"`
	Success      bool                 `json:"success" doc:"Whether the authentication request was accepted"`
}

type AuthenticationStatus

type AuthenticationStatus string
const (
	AuthenticationStatusAuthenticated AuthenticationStatus = "authenticated"
	AuthenticationStatusMFARequired   AuthenticationStatus = "mfa_required"
)

type AutoLoginConfig

type AutoLoginConfig struct {
	Username string `json:"username" doc:"Username for auto-login (only returned if enabled)"`
	Enabled  bool   `json:"enabled" doc:"Whether auto-login is enabled"`
}

Password is intentionally excluded from this response.

type AutoUpdateRecord

type AutoUpdateRecord struct {
	CreatedAt        time.Time      `json:"createdAt" sortable:"true"`
	StartTime        time.Time      `json:"startTime"`
	UpdatedAt        *time.Time     `json:"updatedAt,omitempty"`
	EndTime          *time.Time     `json:"endTime,omitempty"`
	OldImageVersions map[string]any `json:"oldImageVersions,omitempty"`
	NewImageVersions map[string]any `json:"newImageVersions,omitempty"`
	Error            *string        `json:"error,omitempty"`
	Details          map[string]any `json:"details,omitempty"`
	EnvironmentTag

	ID              string `json:"id"`
	ResourceID      string `json:"resourceId"`
	ResourceType    string `json:"resourceType"`
	ResourceName    string `json:"resourceName"`
	Status          string `json:"status"`
	UpdateAvailable bool   `json:"updateAvailable"`
	UpdateApplied   bool   `json:"updateApplied"`
}

type BackupFileEntry

type BackupFileEntry struct {
	Path        string `json:"path"`
	Name        string `json:"name"`
	IsDirectory bool   `json:"isDirectory"`
}

type BackupManagementType

type BackupManagementType string

func BackupManagementTypeForPolicy

func BackupManagementTypeForPolicy(policyID string) BackupManagementType

type BackupRepositoryObservation

type BackupRepositoryObservation struct {
	Reason            string
	Available         bool
	SnapshotAvailable bool
}

type BackupRequester

type BackupRequester struct {
	UserID        string `json:"userId"`
	APIKeyID      string `json:"apiKeyId,omitempty"`
	EnvironmentID string `json:"environmentId"`
	Permission    string `json:"permission"`
}

type BackupRestoreSelection

type BackupRestoreSelection struct {
	Search    string   `json:"search,omitempty"`
	Paths     []string `json:"paths,omitempty"`
	SelectAll bool     `json:"selectAll,omitempty"`
}

type BackupRunAccepted

type BackupRunAccepted struct {
	ActivityID string `json:"activityId"`
	Status     string `json:"status"`
}

type BackupSeriesRetention

type BackupSeriesRetention struct {
	SeriesIDs     []string
	Keep          int
	IncludeRemote bool
}

type BaseTemplate

type BaseTemplate struct {
	ID          string `json:"id" readOnly:"true"`
	Name        string `json:"name" required:"false" unorm:"nfc" trim:"true" minLength:"1"`
	Description string `json:"description" required:"false" unorm:"nfc" trim:"true"`
}

type BatchImageUpdateRequest

type BatchImageUpdateRequest struct {
	ImageRefs   []string                      `json:"imageRefs,omitempty"`
	Credentials []ContainerRegistryCredential `json:"credentials,omitempty"`
}

type BulkVulnerabilityFilters

type BulkVulnerabilityFilters struct {
	Search string `json:"search,omitempty"`

	Severity string `json:"severity,omitempty" example:"CRITICAL,HIGH"`

	ImageName    string `json:"imageName,omitempty" example:"nginx"`
	FixAvailable bool   `json:"fixAvailable,omitempty"`
}

type BusWatcher

type BusWatcher interface {
	Name() string
	Start(ctx context.Context) error
	RunNow(ctx context.Context) error
}

type CVSSInfo

type CVSSInfo struct {
	V2Vector string  `json:"v2Vector,omitempty"`
	V3Vector string  `json:"v3Vector,omitempty"`
	V2Score  float64 `json:"v2Score,omitempty"`
	V3Score  float64 `json:"v3Score,omitempty"`
}

type Category

type Category struct {
	ID               string            `json:"id"`
	Title            string            `json:"title"`
	Description      string            `json:"description"`
	Icon             string            `json:"icon"`
	URL              string            `json:"url"`
	Keywords         []string          `json:"keywords"`
	Settings         []SettingMetadata `json:"settings"`
	MatchingSettings []SettingMetadata `json:"matchingSettings,omitempty"`
	RelevanceScore   int               `json:"relevanceScore,omitempty"`
}

type ComposeCache

type ComposeCache[T any] interface {
	Get(ctx context.Context, projectID, fingerprint string) (T, bool)
	Set(ctx context.Context, projectID, fingerprint, projectPath, projectsDirectory, composePath string, composeFiles, envFiles []string, loadedAt time.Time, value T) error
	Invalidate(projectID string)
}

type ComposeCommands

type ComposeCommands struct {
	Stop   func(context.Context, ComposeTarget) error
	Up     func(context.Context, ComposeUpOptions) error
	Create func(context.Context, ComposeCreateOptions) error
}

type ComposeContentOptions

type ComposeContentOptions struct {
	PathMapper      VolumeSourcePathMapper
	ProjectName     string
	ComposeContent  string
	OverrideContent string
	EnvContent      string
	WorkingDir      string
}

type ComposeCoordinator

type ComposeCoordinator interface {
	Deploy(ctx context.Context, request ComposeDeployment) (*composetypes.Project, error)
	UpdateServices(ctx context.Context, request ComposeServiceUpdate) error
	PullServices(ctx context.Context, model *composetypes.Project, services []string, operations ComposeImageOperations, progress io.Writer) error
	EnsureImagesPresent(ctx context.Context, model *composetypes.Project, progress io.Writer, operations ComposeImageOperations) error
	BuildServices(ctx context.Context, projectID string, model *composetypes.Project, options ProjectBuildOptions, progress io.Writer, operations ComposeImageOperations) error
}

type ComposeCreateOptions

type ComposeCreateOptions struct {
	AuthConfigs map[string]registry.AuthConfig
	ComposeTarget
}

type ComposeDependencies

type ComposeDependencies struct {
	EnvFiles []string
}

type ComposeDeployment

type ComposeDeployment struct {
	Progress          io.Writer
	Options           *ProjectDeployOptions
	AuthConfigs       map[string]registry.AuthConfig
	PreDeploy         func(context.Context) error
	Load              func(context.Context) (*composetypes.Project, error)
	ResolveImages     func(context.Context) (ComposeImageOperations, error)
	Recover           func(context.Context)
	ProjectID         string
	ProjectPath       string
	DockerHost        string
	DefaultPullPolicy string
	WaitTimeout       time.Duration
	GitOpsManaged     bool
}

type ComposeDownOptions

type ComposeDownOptions struct {
	ComposeTarget
	RemoveVolumes bool
}

type ComposeIdentity

type ComposeIdentity struct {
	ComposeProjectName  *string
	ResolvedProjectName string
	ServiceCount        int
	ExplicitProjectName bool
}

type ComposeImageOperations

type ComposeImageOperations struct {
	Exists        func(context.Context, string) (bool, error)
	LastTagged    func(context.Context, string) (time.Time, error)
	Pull          func(context.Context, string, io.Writer) error
	Build         func(context.Context, buildtypes.BuildRequest, io.Writer, string) error
	BuildProvider string
}

type ComposePsOptions

type ComposePsOptions struct {
	ComposeTarget
	All bool
}

type ComposeServiceUpdate

type ComposeServiceUpdate struct {
	Progress              io.Writer
	Project               *composetypes.Project
	AuthConfigs           map[string]registry.AuthConfig
	RestoreBeforeMutation func(context.Context)
	Recover               func(context.Context)
	Images                ComposeImageOperations
	DockerHost            string
	Services              []string
	// Dependents share a member's namespace or volumes and are never pulled; StoppedDependents stay stopped.
	Dependents        []string
	StoppedDependents []string
	WaitTimeout       time.Duration
}

type ComposeTarget

type ComposeTarget struct {
	Project    *composetypes.Project
	DockerHost string
	Services   []string
}

type ComposeUpOptions

type ComposeUpOptions struct {
	AuthConfigs map[string]registry.AuthConfig
	ComposeTarget
	WaitTimeout     time.Duration
	RemoveOrphans   bool
	ForceRecreate   bool
	RecreateVolumes bool
}

type ConditionalJob

type ConditionalJob interface {
	ShouldSchedule(ctx context.Context) bool
}

type Container

type Container struct {
	Labels       map[string]string   `json:"labels,omitempty"`
	ExposedPorts map[string]struct{} `json:"exposedPorts,omitempty"`

	Healthcheck      *ContainerHealthcheckCreate      `json:"healthcheck,omitempty"`
	HostConfig       *ContainerHostConfigCreate       `json:"hostConfig,omitempty"`
	NetworkingConfig *ContainerNetworkingConfigCreate `json:"networkingConfig,omitempty"`
	Ports            map[string]string                `json:"ports,omitempty"`
	Name             string                           `json:"name" required:"false"`
	Image            string                           `json:"image" required:"false"`
	WorkingDir       string                           `json:"workingDir,omitempty"`
	User             string                           `json:"user,omitempty"`
	Hostname         string                           `json:"hostname,omitempty"`
	Domainname       string                           `json:"domainname,omitempty"`
	RestartPolicy    string                           `json:"restartPolicy,omitempty"`
	Command          []string                         `json:"command,omitempty"`
	Cmd              []string                         `json:"cmd,omitempty"`
	Entrypoint       []string                         `json:"entrypoint,omitempty"`
	Environment      []string                         `json:"environment,omitempty"`
	Env              []string                         `json:"env,omitempty"`
	Volumes          []string                         `json:"volumes,omitempty"`
	Networks         []string                         `json:"networks,omitempty"`
	Credentials      []ContainerRegistryCredential    `json:"credentials,omitempty" writeOnly:"true"`

	Memory          int64   `json:"memory,omitempty"`
	CPUs            float64 `json:"cpus,omitempty"`
	AttachStdout    bool    `json:"attachStdout,omitempty"`
	AttachStderr    bool    `json:"attachStderr,omitempty"`
	AttachStdin     bool    `json:"attachStdin,omitempty"`
	Tty             bool    `json:"tty,omitempty"`
	OpenStdin       bool    `json:"openStdin,omitempty"`
	StdinOnce       bool    `json:"stdinOnce,omitempty"`
	NetworkDisabled bool    `json:"networkDisabled,omitempty"`
	Privileged      bool    `json:"privileged,omitempty"`
	AutoRemove      bool    `json:"autoRemove,omitempty"`
}

type ContainerActionResult

type ContainerActionResult struct {
	ActivityID *string  `json:"activityId,omitempty"`
	Started    []string `json:"started,omitempty"`
	Stopped    []string `json:"stopped,omitempty"`
	Failed     []string `json:"failed,omitempty"`
	Errors     []string `json:"errors,omitempty"`
	Success    bool     `json:"success"`
}

type ContainerCommitRequest

type ContainerCommitRequest struct {
	Repository string   `json:"repository,omitempty" doc:"Target image repository"`
	Tag        string   `json:"tag,omitempty" doc:"Target image tag"`
	Comment    string   `json:"comment,omitempty" doc:"Commit comment"`
	Author     string   `json:"author,omitempty" doc:"Commit author"`
	Changes    []string `json:"changes,omitempty" doc:"Dockerfile changes to apply"`
	NoPause    bool     `json:"noPause,omitempty" doc:"Do not pause the container during commit"`
}

type ContainerCommitResult

type ContainerCommitResult struct {
	ID string `json:"id"`
}

type ContainerComposeInfo

type ContainerComposeInfo struct {
	ProjectName string `json:"projectName"`
	ServiceName string `json:"serviceName"`
	WorkingDir  string `json:"workingDir,omitempty"`
	ConfigFiles string `json:"configFiles,omitempty"`
}

type ContainerConfig

type ContainerConfig struct {
	Healthcheck *ContainerHealthcheck `json:"healthcheck,omitempty"`
	WorkingDir  string                `json:"workingDir,omitempty"`
	User        string                `json:"user,omitempty"`
	Hostname    string                `json:"hostname,omitempty"`
	Env         []string              `json:"env,omitempty"`
	Cmd         []string              `json:"cmd,omitempty"`
	Entrypoint  []string              `json:"entrypoint,omitempty"`
}

type ContainerCreated

type ContainerCreated struct {
	ID      string `json:"id"`
	Name    string `json:"name"`
	Image   string `json:"image"`
	Status  string `json:"status"`
	Created string `json:"created"`
}

type ContainerDetails

type ContainerDetails struct {
	Config          ContainerConfig          `json:"config"`
	State           ContainerState           `json:"state"`
	NetworkSettings ContainerNetworkSettings `json:"networkSettings"`
	Labels          map[string]string        `json:"labels,omitempty"`

	ComposeInfo      *ContainerComposeInfo `json:"composeInfo,omitempty"`
	UpdateInfo       *ImageUpdateInfo      `json:"updateInfo,omitempty"`
	Hardened         *HardenedImageInfo    `json:"hardened,omitempty"`
	ActivityID       *string               `json:"activityId,omitempty"`
	ID               string                `json:"id"`
	Name             string                `json:"name"`
	Image            string                `json:"image"`
	ImageID          string                `json:"imageId"`
	Created          string                `json:"created"`
	IconLightURL     string                `json:"iconLightUrl,omitempty"`
	IconDarkURL      string                `json:"iconDarkUrl,omitempty"`
	Ports            []ContainerPort       `json:"ports"`
	Mounts           []ContainerMount      `json:"mounts"`
	HostConfig       ContainerHostConfig   `json:"hostConfig"`
	RedeployDisabled bool                  `json:"redeployDisabled,omitempty"`

	AutoUpdateEnabled bool `json:"autoUpdateEnabled"`
}

type ContainerEdit

type ContainerEdit struct {
	Name       *string `json:"name,omitempty"`
	Image      *string `json:"image,omitempty"`
	WorkingDir *string `json:"workingDir,omitempty"`
	User       *string `json:"user,omitempty"`

	Hostname    *string                     `json:"hostname,omitempty"`
	Command     *[]string                   `json:"command,omitempty"`
	Entrypoint  *[]string                   `json:"entrypoint,omitempty"`
	Environment *[]string                   `json:"environment,omitempty"`
	Labels      *map[string]string          `json:"labels,omitempty"`
	Healthcheck *ContainerHealthcheckCreate `json:"healthcheck,omitempty"`
	HostConfig  *ContainerHostConfigEdit    `json:"hostConfig,omitempty"`

	NetworkingConfig *ContainerNetworkingConfigCreate `json:"networkingConfig,omitempty"`
	Credentials      []ContainerRegistryCredential    `json:"credentials,omitempty"`
	ClearHealthcheck bool                             `json:"clearHealthcheck,omitempty"`
}

type ContainerEditConfig

type ContainerEditConfig struct {
	Labels map[string]string `json:"labels,omitempty"`

	Healthcheck *ContainerHealthcheckCreate           `json:"healthcheck,omitempty"`
	Networks    map[string]ContainerEditConfigNetwork `json:"networks,omitempty"`
	ID          string                                `json:"id"`
	Name        string                                `json:"name"`
	Image       string                                `json:"image"`
	WorkingDir  string                                `json:"workingDir,omitempty"`
	User        string                                `json:"user,omitempty"`

	Hostname       string                        `json:"hostname,omitempty"`
	ComposeProject string                        `json:"composeProject,omitempty"`
	Command        []string                      `json:"command,omitempty"`
	Entrypoint     []string                      `json:"entrypoint,omitempty"`
	Environment    []string                      `json:"environment,omitempty"`
	HostConfig     ContainerEditConfigHostConfig `json:"hostConfig"`
	IsCompose      bool                          `json:"isCompose,omitempty"`
	EditDisabled   bool                          `json:"editDisabled,omitempty"`
	Running        bool                          `json:"running"`
}

func NewContainerEditConfigFromInspect

func NewContainerEditConfigFromInspect(c *container.InspectResponse, isCompose, editDisabled bool) ContainerEditConfig

type ContainerEditConfigHostConfig

type ContainerEditConfigHostConfig struct {
	PortBindings  map[string][]ContainerPortBindingCreate `json:"portBindings,omitempty"`
	NetworkMode   string                                  `json:"networkMode,omitempty"`
	Binds         []string                                `json:"binds,omitempty"`
	Mounts        []ContainerMountCreate                  `json:"mounts,omitempty"`
	RestartPolicy ContainerRestartPolicyCreate            `json:"restartPolicy"`
	CapAdd        []string                                `json:"capAdd,omitempty"`
	CapDrop       []string                                `json:"capDrop,omitempty"`

	Memory int64 `json:"memory,omitempty"`

	MemorySwap     int64 `json:"memorySwap,omitempty"`
	NanoCPUs       int64 `json:"nanoCpus,omitempty"`
	CPUShares      int64 `json:"cpuShares,omitempty"`
	Privileged     bool  `json:"privileged,omitempty"`
	AutoRemove     bool  `json:"autoRemove,omitempty"`
	ReadonlyRootfs bool  `json:"readonlyRootfs,omitempty"`
}

type ContainerEditConfigNetwork

type ContainerEditConfigNetwork struct {
	IPv4Address string   `json:"ipv4Address,omitempty"`
	IPv6Address string   `json:"ipv6Address,omitempty"`
	Aliases     []string `json:"aliases,omitempty"`
}

type ContainerEndpointSettingsCreate

type ContainerEndpointSettingsCreate struct {
	IPv4Address string   `json:"ipv4Address,omitempty"`
	IPv6Address string   `json:"ipv6Address,omitempty"`
	Aliases     []string `json:"aliases,omitempty"`
}

type ContainerGenerateComposeRequest

type ContainerGenerateComposeRequest struct {
	ContainerIDs []string `json:"containerIds" minItems:"1" doc:"IDs of the containers to convert"`
}

type ContainerGenerateComposeResponse

type ContainerGenerateComposeResponse struct {
	ComposeContent string `json:"composeContent"`
}

type ContainerHealth

type ContainerHealth struct {
	Status        string                    `json:"status"`
	Log           []ContainerHealthLogEntry `json:"log,omitempty"`
	FailingStreak int                       `json:"failingStreak"`
}

type ContainerHealthLogEntry

type ContainerHealthLogEntry struct {
	Start    string `json:"start,omitempty"`
	End      string `json:"end,omitempty"`
	Output   string `json:"output,omitempty"`
	ExitCode int    `json:"exitCode"`
}

type ContainerHealthcheck

type ContainerHealthcheck struct {
	Test []string `json:"test,omitempty"`

	Interval int64 `json:"interval,omitempty"`

	Timeout int64 `json:"timeout,omitempty"`

	StartPeriod int64 `json:"startPeriod,omitempty"`

	StartInterval int64 `json:"startInterval,omitempty"`
	Retries       int   `json:"retries,omitempty"`
}

type ContainerHealthcheckCreate

type ContainerHealthcheckCreate struct {
	Test []string `json:"test,omitempty"`

	Interval int64 `json:"interval,omitempty"`

	Timeout int64 `json:"timeout,omitempty"`

	StartPeriod int64 `json:"startPeriod,omitempty"`

	StartInterval int64 `json:"startInterval,omitempty"`
	Retries       int   `json:"retries,omitempty"`
}

type ContainerHostConfig

type ContainerHostConfig struct {
	NetworkMode   string `json:"networkMode,omitempty"`
	RestartPolicy string `json:"restartPolicy,omitempty"`
	Privileged    bool   `json:"privileged,omitempty"`
	AutoRemove    bool   `json:"autoRemove,omitempty"`
	NanoCPUs      int64  `json:"nanoCpus,omitempty"`

	Memory int64 `json:"memory,omitempty"`
}

type ContainerHostConfigCreate

type ContainerHostConfigCreate struct {
	PortBindings    map[string][]ContainerPortBindingCreate `json:"portBindings,omitempty"`
	RestartPolicy   *ContainerRestartPolicyCreate           `json:"restartPolicy,omitempty"`
	Privileged      *bool                                   `json:"privileged,omitempty"`
	AutoRemove      *bool                                   `json:"autoRemove,omitempty"`
	ReadonlyRootfs  *bool                                   `json:"readonlyRootfs,omitempty"`
	PublishAllPorts *bool                                   `json:"publishAllPorts,omitempty"`
	NetworkMode     string                                  `json:"networkMode,omitempty"`
	Binds           []string                                `json:"binds,omitempty"`
	CapAdd          []string                                `json:"capAdd,omitempty"`
	CapDrop         []string                                `json:"capDrop,omitempty"`
	Mounts          []ContainerMountCreate                  `json:"mounts,omitempty"`

	Memory int64 `json:"memory,omitempty"`

	MemorySwap int64 `json:"memorySwap,omitempty"`
	NanoCPUs   int64 `json:"nanoCpus,omitempty"`
	CPUShares  int64 `json:"cpuShares,omitempty"`
}

type ContainerHostConfigEdit

type ContainerHostConfigEdit struct {
	Binds          *[]string                                `json:"binds,omitempty"`
	Mounts         *[]ContainerMountCreate                  `json:"mounts,omitempty"`
	PortBindings   *map[string][]ContainerPortBindingCreate `json:"portBindings,omitempty"`
	RestartPolicy  *ContainerRestartPolicyCreate            `json:"restartPolicy,omitempty"`
	Privileged     *bool                                    `json:"privileged,omitempty"`
	CapAdd         *[]string                                `json:"capAdd,omitempty"`
	CapDrop        *[]string                                `json:"capDrop,omitempty"`
	AutoRemove     *bool                                    `json:"autoRemove,omitempty"`
	ReadonlyRootfs *bool                                    `json:"readonlyRootfs,omitempty"`

	Memory *int64 `json:"memory,omitempty"`

	MemorySwap *int64 `json:"memorySwap,omitempty"`
	NanoCPUs   *int64 `json:"nanoCpus,omitempty"`
	CPUShares  *int64 `json:"cpuShares,omitempty"`
}

type ContainerMount

type ContainerMount struct {
	Type        string `json:"type"`
	Name        string `json:"name,omitempty"`
	Source      string `json:"source,omitempty"`
	Destination string `json:"destination"`
	Driver      string `json:"driver,omitempty"`
	Mode        string `json:"mode,omitempty"`
	Propagation string `json:"propagation,omitempty"`
	RW          bool   `json:"rw,omitempty"`
}

type ContainerMountCreate

type ContainerMountCreate struct {
	Type     string `json:"type"`
	Source   string `json:"source"`
	Target   string `json:"target"`
	ReadOnly bool   `json:"readOnly,omitempty"`
}

type ContainerNetworkEndpoint

type ContainerNetworkEndpoint struct {
	IPAMConfig          any               `json:"ipamConfig,omitempty"`
	DriverOpts          map[string]string `json:"driverOpts,omitempty"`
	MacAddress          string            `json:"macAddress,omitempty"`
	NetworkID           string            `json:"networkId,omitempty"`
	EndpointID          string            `json:"endpointId,omitempty"`
	Gateway             string            `json:"gateway,omitempty"`
	IPAddress           string            `json:"ipAddress,omitempty"`
	IPv6Gateway         string            `json:"ipv6Gateway,omitempty"`
	GlobalIPv6Address   string            `json:"globalIPv6Address,omitempty"`
	Links               []string          `json:"links,omitempty"`
	Aliases             []string          `json:"aliases,omitempty"`
	DNSNames            []string          `json:"dnsNames,omitempty"`
	GwPriority          int               `json:"gwPriority,omitempty"`
	IPPrefixLen         int               `json:"ipPrefixLen,omitempty"`
	GlobalIPv6PrefixLen int               `json:"globalIPv6PrefixLen,omitempty"`
}

type ContainerNetworkSettings

type ContainerNetworkSettings struct {
	Networks map[string]ContainerNetworkEndpoint `json:"networks"`
}

type ContainerNetworkingConfigCreate

type ContainerNetworkingConfigCreate struct {
	EndpointsConfig map[string]ContainerEndpointSettingsCreate `json:"endpointsConfig,omitempty"`
}

type ContainerPort

type ContainerPort struct {
	IP          string `json:"ip,omitempty"`
	Type        string `json:"type"`
	PrivatePort int    `json:"privatePort"`
	PublicPort  int    `json:"publicPort,omitempty"`
}

type ContainerPortBindingCreate

type ContainerPortBindingCreate struct {
	HostIP   string `json:"hostIp,omitempty"`
	HostPort string `json:"hostPort,omitempty"`
}

type ContainerProcesses

type ContainerProcesses struct {
	Titles    []string   `json:"titles"`
	Processes [][]string `json:"processes"`
}

type ContainerRegistry

type ContainerRegistry struct {
	CreatedAt    time.Time `json:"createdAt" readOnly:"true"`
	UpdatedAt    time.Time `json:"updatedAt" readOnly:"true"`
	Description  *string   `json:"description,omitempty" unorm:"nfc" trim:"true"`
	ID           string    `json:"id" readOnly:"true"`
	URL          string    `json:"url" required:"false"`
	Host         string    `json:"host" readOnly:"true"`
	Namespace    string    `json:"namespace" readOnly:"true"`
	Username     string    `json:"username" required:"false"`
	RegistryType string    `json:"registryType" required:"false"`

	AWSAccessKeyID string `json:"awsAccessKeyId,omitempty"`
	AWSRegion      string `json:"awsRegion,omitempty"`

	Token              string   `json:"token,omitempty" writeOnly:"true" copier:"-"`
	AWSSecretAccessKey string   `json:"awsSecretAccessKey,omitempty" writeOnly:"true" copier:"-"`
	RepositoryNames    []string `json:"repositoryNames" required:"false"`
	Insecure           bool     `json:"insecure" required:"false"`
	Enabled            bool     `json:"enabled" required:"false"`
}

type ContainerRegistryCredential

type ContainerRegistryCredential struct {
	URL      string `json:"url" binding:"required"`
	Username string `json:"username" binding:"required"`
	Token    string `json:"token" binding:"required"`
	Enabled  bool   `json:"enabled"`
}

type ContainerRegistryDeleteTagResponse

type ContainerRegistryDeleteTagResponse struct {
	Digest string `json:"digest"`
}

type ContainerRegistryDigestResult

type ContainerRegistryDigestResult struct {
	Digest         string
	AuthMethod     string
	AuthUsername   string
	AuthRegistry   string
	UsedCredential bool
}

type ContainerRegistryPullUsage

type ContainerRegistryPullUsage struct {
	CheckedAt time.Time `json:"checkedAt"`
	Limit     *int      `json:"limit,omitempty"`
	Remaining *int      `json:"remaining,omitempty"`
	Used      *int      `json:"used,omitempty"`

	WindowSeconds *int   `json:"windowSeconds,omitempty"`
	RegistryID    string `json:"registryId"`
	Provider      string `json:"provider"`
	Registry      string `json:"registry"`
	DisplayName   string `json:"displayName"`
	Repository    string `json:"repository,omitempty"`
	AuthMethod    string `json:"authMethod"`
	AuthUsername  string `json:"authUsername,omitempty"`
	Source        string `json:"source,omitempty"`
	Error         string `json:"error,omitempty"`
	ObservedPulls int64  `json:"observedPulls"`
}

type ContainerRegistryPullUsageResponse

type ContainerRegistryPullUsageResponse struct {
	Registries []ContainerRegistryPullUsage `json:"registries"`
}

type ContainerRegistryRepository

type ContainerRegistryRepository struct {
	Name string `json:"name"`
}

type ContainerRegistryRepositoryTag

type ContainerRegistryRepositoryTag struct {
	Created   *time.Time                     `json:"created,omitempty"`
	Name      string                         `json:"name"`
	Digest    string                         `json:"digest,omitempty"`
	MediaType string                         `json:"mediaType,omitempty"`
	Error     string                         `json:"error,omitempty"`
	Platforms []ContainerRegistryTagPlatform `json:"platforms"`

	Size int64 `json:"size"`
}

type ContainerRegistrySync

type ContainerRegistrySync struct {
	CreatedAt    time.Time `json:"createdAt"`
	UpdatedAt    time.Time `json:"updatedAt"`
	Description  *string   `json:"description,omitzero" unorm:"nfc" trim:"true"`
	ID           string    `json:"id" binding:"required"`
	URL          string    `json:"url" binding:"required"`
	Username     string    `json:"username"`
	Token        string    `json:"token"`
	RegistryType string    `json:"registryType"`

	AWSAccessKeyID string `json:"awsAccessKeyId,omitempty"`

	AWSSecretAccessKey string   `json:"awsSecretAccessKey,omitempty"`
	AWSRegion          string   `json:"awsRegion,omitempty"`
	RepositoryNames    []string `json:"repositoryNames"`
	Insecure           bool     `json:"insecure"`
	Enabled            bool     `json:"enabled"`
}

type ContainerRegistrySyncRequest

type ContainerRegistrySyncRequest struct {
	Registries []ContainerRegistrySync `json:"registries" binding:"required"`
}

type ContainerRegistryTagPlatform

type ContainerRegistryTagPlatform struct {
	OS           string `json:"os"`
	Architecture string `json:"architecture"`
	Variant      string `json:"variant,omitempty"`
	Digest       string `json:"digest"`

	Size int64 `json:"size"`
}

type ContainerResourceSample

type ContainerResourceSample struct {
	SampleTime       time.Time `json:"sampleTime"`
	CPUPercent       float64   `json:"cpuPercent"`
	MemoryUsageBytes uint64    `json:"memoryUsageBytes"`
	MemoryLimitBytes uint64    `json:"memoryLimitBytes"`

	BlockReadBytes  uint64 `json:"blockReadBytes"`
	BlockWriteBytes uint64 `json:"blockWriteBytes"`
	NetworkRxBytes  uint64 `json:"networkRxBytes"`
	NetworkTxBytes  uint64 `json:"networkTxBytes"`
	PIDs            uint64 `json:"pids"`
}

type ContainerResourceSampleBatch

type ContainerResourceSampleBatch struct {
	Timestamp time.Time                           `json:"timestamp"`
	Samples   map[string]*ContainerResourceSample `json:"samples"`
	Error     string                              `json:"error,omitempty"`
}

type ContainerResourceSampleSubscription

type ContainerResourceSampleSubscription struct {
	ContainerIDs []string `json:"containerIds"`
}

type ContainerRestartPolicyCreate

type ContainerRestartPolicyCreate struct {
	Name              string `json:"name,omitempty"`
	MaximumRetryCount int    `json:"maximumRetryCount,omitempty"`
}

type ContainerSetAutoUpdateRequest

type ContainerSetAutoUpdateRequest struct {
	Enabled bool `json:"enabled" doc:"Whether auto-update is enabled for this container"`
}

type ContainerState

type ContainerState struct {
	Health     *ContainerHealth `json:"health,omitempty"`
	Status     string           `json:"status"`
	StartedAt  string           `json:"startedAt,omitempty"`
	FinishedAt string           `json:"finishedAt,omitempty"`
	ExitCode   int              `json:"exitCode,omitempty"`
	Running    bool             `json:"running"`
}

type ContainerStatusCounts

type ContainerStatusCounts struct {
	RunningContainers int `json:"runningContainers"`
	StoppedContainers int `json:"stoppedContainers"`
	TotalContainers   int `json:"totalContainers"`

	UnhealthyContainers int `json:"unhealthyContainers" doc:"Containers whose healthcheck reports unhealthy"`

	UpdatesAvailable int `json:"updatesAvailable" doc:"Standalone containers with a pending image update"`
}

type ContainerSummary

type ContainerSummary struct {
	Labels          map[string]string        `json:"labels"`
	NetworkSettings ContainerNetworkSettings `json:"networkSettings"`
	UpdateInfo      *ImageUpdateInfo         `json:"updateInfo,omitempty"`

	ResourceSample *ContainerResourceSample `json:"resourceSample,omitempty"`
	EnvironmentTag
	ID             string              `json:"id"`
	Image          string              `json:"image"`
	ImageID        string              `json:"imageId"`
	Command        string              `json:"command"`
	State          string              `json:"state"`
	Status         string              `json:"status"`
	IconLightURL   string              `json:"iconLightUrl,omitempty"`
	IconDarkURL    string              `json:"iconDarkUrl,omitempty"`
	UpdateStrategy string              `json:"updateStrategy,omitempty"`
	Names          []string            `json:"names"`
	Ports          []ContainerPort     `json:"ports"`
	Mounts         []ContainerMount    `json:"mounts"`
	HostConfig     ContainerHostConfig `json:"hostConfig"`

	Created          int64 `json:"created"`
	RedeployDisabled bool  `json:"redeployDisabled,omitempty"`

	AutoUpdateEnabled bool `json:"autoUpdateEnabled"`
	Hidden            bool `json:"hidden,omitempty"`
}

func NewContainerSummary

func NewContainerSummary(c container.Summary) ContainerSummary

type ContainerSummaryGroup

type ContainerSummaryGroup struct {
	GroupName string             `json:"groupName"`
	Items     []ContainerSummary `json:"items"`
}

type ConvertDockerRunRequest

type ConvertDockerRunRequest struct {
	DockerRunCommand string `json:"dockerRunCommand" binding:"required"`
}

type ConvertDockerRunResponse

type ConvertDockerRunResponse struct {
	DockerCompose string `json:"dockerCompose"`
	EnvVars       string `json:"envVars"`
	ServiceName   string `json:"serviceName"`
	Success       bool   `json:"success"`
}

type Create

type Create[T any] struct {
	Body T
	SubmittedBody
}

type CreateEnrollmentTokenRequest

type CreateEnrollmentTokenRequest struct {
	MaxUses *int   `` /* 137-byte string literal not displayed */
	Name    string `json:"name" minLength:"1" maxLength:"100" doc:"Enrollment token name" unorm:"nfc" trim:"true"`
}

type CreateProject

type CreateProject struct {
	EnvContent     *string                    `json:"envContent,omitempty"`
	TagColors      map[string]ProjectTagColor `json:"tagColors,omitempty"`
	Name           string                     `json:"name" binding:"required"`
	ComposeContent string                     `json:"composeContent" binding:"required"`
	Directory      string                     `json:"directory,omitempty"`
	Tags           []string                   `json:"tags,omitempty"`
}

type CreateProjectResponse

type CreateProjectResponse struct {
	StatusReason    *string      `json:"statusReason,omitempty"`
	GitOpsManagedBy *string      `json:"gitOpsManagedBy,omitempty"`
	ArchivedAt      *time.Time   `json:"archivedAt,omitempty"`
	ActivityID      *string      `json:"activityId,omitempty"`
	ID              string       `json:"id"`
	Name            string       `json:"name"`
	DirName         string       `json:"dirName,omitempty"`
	RelativePath    string       `json:"relativePath,omitempty"`
	Path            string       `json:"path"`
	Status          string       `json:"status"`
	CreatedAt       string       `json:"createdAt"`
	UpdatedAt       string       `json:"updatedAt"`
	Tags            []ProjectTag `json:"tags"`
	ServiceCount    int          `json:"serviceCount"`
	RunningCount    int          `json:"runningCount"`
	IsArchived      bool         `json:"isArchived"`
}

type CreateProjectWorkspaceManifest

type CreateProjectWorkspaceManifest struct {
	FileChanges []WorkspaceFileChange `json:"fileChanges" binding:"required" maxItems:"500"`
}

type CreateSystemBackupRequest

type CreateSystemBackupRequest struct {
	ID              string                  `json:"id,omitempty"`
	Destination     SystemBackupDestination `json:"destination,omitempty"`
	S3DestinationID string                  `json:"s3DestinationId,omitempty"`
	RecoveryKey     string                  `json:"recoveryKey,omitempty"`
	PolicyID        string                  `json:"policyId,omitempty"`
}

type CreateUploadSessionRequest

type CreateUploadSessionRequest struct {
	Filename  string `json:"filename" required:"true" doc:"Original filename; validated per kind"`
	Size      int64  `json:"size" required:"true" minimum:"1" doc:"Total file size in bytes"`
	ChunkSize int64  `json:"chunkSize,omitempty" doc:"Chunk size in bytes; server default and bounds apply"`
}

type CreateVolumeBackupRequest

type CreateVolumeBackupRequest struct {
	Destination     VolumeBackupDestination `json:"destination,omitempty" doc:"Optional destination override for this manual backup"`
	PolicyID        string                  `json:"policyId,omitempty" doc:"Optional backup policy whose settings should be used"`
	S3DestinationID string                  `json:"s3DestinationId,omitempty" doc:"Saved S3 destination for a manual remote backup"`
}

type CurrentUserContextKey

type CurrentUserContextKey struct{}

type CustomTheme

type CustomTheme struct {
	ID          string       `json:"id" doc:"Custom theme identifier, prefixed with custom-" example:"custom-solarized"`
	Name        string       `json:"name" doc:"Display name of the custom theme" example:"Solarized"`
	Description string       `json:"description,omitempty" doc:"Optional description of the custom theme"`
	Light       ThemePalette `json:"light" doc:"Color tokens used in light mode"`
	Dark        ThemePalette `json:"dark" doc:"Color tokens used in dark mode"`
}

type DashboardDockerSnapshot

type DashboardDockerSnapshot struct {
	Volumes    *client.VolumeListResult  `json:"volumes"`
	Containers []dockercontainer.Summary `json:"containers"`
	Images     []dockerimage.Summary     `json:"images"`
	Networks   []dockernetwork.Summary   `json:"networks"`
}

type DashboardWidgetConfig

type DashboardWidgetConfig struct {
	Filters        map[string]string `json:"filters,omitempty" doc:"Filters applied to the resource query, keyed by filter name"`
	ResourceKind   string            `json:"resourceKind,omitempty" enum:"containers,projects,images,volumes,networks" doc:"Kind of resource the widget shows"`
	ResourceID     string            `json:"resourceId,omitempty" doc:"Identifier of a single resource shown by the widget"`
	Search         string            `json:"search,omitempty" doc:"Search text applied to the resource query"`
	Display        string            `json:"display,omitempty" enum:"count,list" doc:"How the widget presents query results"`
	EnvironmentIDs []string          `json:"environmentIds,omitempty" doc:"Environments the widget reads from; empty means all environments the user can access"`
	Limit          int               `json:"limit,omitempty" doc:"Maximum number of resources listed by the widget"`
}

type DashboardWidgetLayout

type DashboardWidgetLayout struct {
	Config *DashboardWidgetConfig `json:"config,omitempty" doc:"Configuration for custom widget types"`
	ID     string                 `json:"id" required:"false" doc:"Unique dashboard widget instance identifier; assigned by the server for new custom widgets"`
	Type   string                 `json:"type,omitempty" doc:"Dashboard widget type; defaults to the identifier for built-in widgets"`
	Title  string                 `json:"title,omitempty" doc:"Optional custom widget title"`
	X      int                    `json:"x" doc:"Column where the widget starts in the 12-column dashboard grid"`
	Y      int                    `json:"y" doc:"Row where the widget starts in the dashboard grid"`
	W      int                    `json:"w" doc:"Widget width in columns"`
	H      int                    `json:"h" doc:"Widget height in rows"`
	Hidden bool                   `json:"hidden,omitempty" doc:"Whether the widget is hidden"`
}

type DefaultTemplatesResponse

type DefaultTemplatesResponse struct {
	ComposeTemplate       string `json:"composeTemplate"`
	SwarmStackTemplate    string `json:"swarmStackTemplate"`
	SwarmStackEnvTemplate string `json:"swarmStackEnvTemplate"`
	EnvTemplate           string `json:"envTemplate"`
}

type DeleteSystemBackupRequest

type DeleteSystemBackupRequest struct {
	RecoveryKey string `json:"recoveryKey,omitempty"`
}

type DeploymentSnippet

type DeploymentSnippet struct {
	MTLS            *DeploymentSnippetMTLS `json:"mtls,omitempty" doc:"Optional Arcane-generated mTLS deployment assets for agents"`
	DockerRun       string                 `json:"dockerRun" doc:"Docker run command snippet"`
	DockerCompose   string                 `json:"dockerCompose" doc:"Docker compose YAML snippet"`
	EnrollmentToken string                 `json:"enrollmentToken" doc:"Single-use enrollment token the agent uses to join this environment, shown only once"`
}

type DeploymentSnippetFile

type DeploymentSnippetFile struct {
	Name          string `json:"name" doc:"Suggested filename"`
	Content       string `json:"content,omitempty" doc:"PEM file contents"`
	DownloadURL   string `json:"downloadUrl,omitempty" doc:"Pairing-permission endpoint to download this file"`
	ContainerPath string `json:"containerPath" doc:"Container mount path expected by the mTLS snippet"`
	Permissions   string `json:"permissions" doc:"Suggested file mode"`
}

type DeploymentSnippetMTLS

type DeploymentSnippetMTLS struct {
	DockerRun     string                  `json:"dockerRun" doc:"Docker run snippet using Arcane-generated mTLS assets"`
	DockerCompose string                  `json:"dockerCompose" doc:"Docker compose snippet using Arcane-generated mTLS assets"`
	HostDirHint   string                  `json:"hostDirHint" doc:"Suggested host directory containing the generated PEM files"`
	Files         []DeploymentSnippetFile `json:"files" doc:"Generated PEM files to place on the agent host"`
}

type Diagnostics

type Diagnostics struct {
	Timestamp time.Time            `json:"timestamp"`
	GC        GCInfo               `json:"gc"`
	Runtime   RuntimeInfo          `json:"runtime"`
	WebSocket WebSocketDiagnostics `json:"websocket"`
	Memory    MemoryInfo           `json:"memory"`
}

type DiagnosticsCommand

type DiagnosticsCommand struct {
	ID      string `json:"id"`
	Type    string `json:"type"`
	Name    string `json:"name,omitempty"`
	Seconds int    `json:"seconds,omitempty"`
}

type DiagnosticsMessage

type DiagnosticsMessage struct {
	Snapshot   *Diagnostics         `json:"snapshot,omitempty"`
	LeakReport *GoroutineLeakReport `json:"leakReport,omitempty"`
	Type       string               `json:"type"`
	ID         string               `json:"id,omitempty"`
	Text       string               `json:"text,omitempty"`
	Error      string               `json:"error,omitempty"`
	Data       []byte               `json:"data,omitempty"`
}

type DiscoverSystemBackupsRequest

type DiscoverSystemBackupsRequest struct {
	S3DestinationID string `json:"s3DestinationId"`
	RecoveryKey     string `json:"recoveryKey"`
}

type DiscoverVolumeBackupsRequest

type DiscoverVolumeBackupsRequest struct {
	S3DestinationID string `json:"s3DestinationId" doc:"S3 destination to scan for existing volume backups"`
}

type DiscoverVolumeBackupsResponse

type DiscoverVolumeBackupsResponse struct {
	Errors []string `json:"errors,omitempty" doc:"Per-repository failures encountered during discovery"`
	Count  int      `json:"count" doc:"Number of newly discovered volume backups"`
}

type DockerInfo

type DockerInfo struct {
	APIVersion string `json:"apiVersion"`
	GitCommit  string `json:"gitCommit"`
	GoVersion  string `json:"goVersion"`
	Os         string `json:"os"`
	Arch       string `json:"arch"`
	BuildTime  string `json:"buildTime"`
	system.Info
	Success bool `json:"success"`
}

type DockerRunCommand

type DockerRunCommand struct {
	Image       string   `json:"image"`
	Name        string   `json:"name,omitempty"`
	Restart     string   `json:"restart,omitempty"`
	Workdir     string   `json:"workdir,omitempty"`
	User        string   `json:"user,omitempty"`
	Entrypoint  string   `json:"entrypoint,omitempty"`
	Command     string   `json:"command,omitempty"`
	HealthCheck string   `json:"healthCheck,omitempty"`
	MemoryLimit string   `json:"memoryLimit,omitempty"`
	CPULimit    string   `json:"cpuLimit,omitempty"`
	Ports       []string `json:"ports,omitempty"`
	Volumes     []string `json:"volumes,omitempty"`
	Environment []string `json:"environment,omitempty"`
	Networks    []string `json:"networks,omitempty"`
	Labels      []string `json:"labels,omitempty"`
	Detached    bool     `json:"detached,omitempty"`
	Interactive bool     `json:"interactive,omitempty"`
	TTY         bool     `json:"tty,omitempty"`
	Remove      bool     `json:"remove,omitempty"`
	Privileged  bool     `json:"privileged,omitempty"`
}

type DynamicScheduler

type DynamicScheduler interface {
	Submit(ctx context.Context, request SchedulerRequest) (SchedulerRun, error)
	AddJob(ctx context.Context, job SchedulerJob) error
	RemoveJob(ctx context.Context, name string)
	HasJob(name string) bool
}

type EnrollmentToken

type EnrollmentToken struct {
	CreatedAt       time.Time  `json:"createdAt" doc:"Creation timestamp"`
	LastUsedAt      *time.Time `json:"lastUsedAt,omitempty" doc:"When an agent last enrolled with this token"`
	EnvironmentID   *string    `json:"environmentId,omitempty" doc:"Environment the token enrolls into, when bound"`
	EnvironmentName *string    `json:"environmentName,omitempty" doc:"Name of the bound environment"`
	MaxUses         *int       `json:"maxUses,omitempty" doc:"Maximum number of enrollments; absent means unlimited"`
	ID              string     `json:"id" doc:"Enrollment token ID"`
	Name            string     `json:"name" doc:"Enrollment token name"`
	UseCount        int        `json:"useCount" doc:"Number of enrollments made with this token"`
}

type EnrollmentTokenCreated

type EnrollmentTokenCreated struct {
	CreatedAt time.Time `json:"createdAt" doc:"Creation timestamp"`
	MaxUses   *int      `json:"maxUses,omitempty" doc:"Maximum number of enrollments; absent means unlimited"`
	ID        string    `json:"id" doc:"Enrollment token ID"`
	Name      string    `json:"name" doc:"Enrollment token name"`
	Token     string    `json:"token" doc:"Enrollment token"`
}

type EnrollmentTokenSecret

type EnrollmentTokenSecret struct {
	Token string `json:"token" doc:"Enrollment token"`
}

type EnvSummary

type EnvSummary struct {
	Variables []EnvVariable `json:"variables"`
}

type EnvVariable

type EnvVariable struct {
	Key      string `json:"key"`
	Value    string `json:"value"`
	NoInject bool   `json:"noInject,omitzero"`
}

type Environment

type Environment struct {
	LastSeen *time.Time `json:"lastSeen,omitempty" readOnly:"true"`

	AgentTransport *string `json:"agentTransport,omitempty" readOnly:"true"`

	LastAgentTransport *string `json:"lastAgentTransport,omitempty" readOnly:"true"`

	// Values include "token" and "mtls".
	AgentSecurityMode *string `json:"agentSecurityMode,omitempty" readOnly:"true"`
	AgentSessionID    *string `json:"agentSessionId,omitempty" readOnly:"true"`
	AgentInstance     *string `json:"agentInstance,omitempty" readOnly:"true"`

	AgentRoundTripMs     *float64              `json:"agentRoundTripMs,omitempty" readOnly:"true"`
	AgentOpenStreams     *int                  `json:"agentOpenStreams,omitempty" readOnly:"true"`
	Connected            *bool                 `json:"connected,omitempty" readOnly:"true"`
	ConnectedAt          *time.Time            `json:"connectedAt,omitempty" readOnly:"true"`
	LastHeartbeat        *time.Time            `json:"lastHeartbeat,omitempty" readOnly:"true"`
	AgentMTLSCertificate *AgentMTLSCertificate `json:"agentMTLSCertificate,omitempty" readOnly:"true"`

	AgentHost *AgentHostInfo `json:"agentHost,omitempty" readOnly:"true"`

	AgentTunnelStats  *AgentTunnelStats `json:"agentTunnelStats,omitempty" readOnly:"true"`
	ID                string            `json:"id" readOnly:"true"`
	Name              string            `json:"name,omitempty" unorm:"nfc" trim:"true"`
	ApiUrl            string            `json:"apiUrl" readOnly:"true"`
	Status            string            `json:"status" readOnly:"true"`
	AgentCapabilities []string          `json:"agentCapabilities,omitempty" readOnly:"true"`
	Enabled           bool              `json:"enabled" required:"false"`
}

type EnvironmentChanges

type EnvironmentChanges struct {
	Kinds         map[string]uint64 `json:"kinds"`
	EnvironmentID string            `json:"environmentId"`
	Epoch         string            `json:"epoch"`
}

type EnvironmentData

type EnvironmentData[T any] struct {
	Data        T              `json:"data" doc:"Data reported by the environment"`
	Environment EnvironmentRef `json:"environment" doc:"Environment the data came from"`
}

type EnvironmentFailure

type EnvironmentFailure struct {
	Environment EnvironmentRef `json:"environment" doc:"Environment that failed"`
	Message     string         `json:"message" doc:"Why the environment's results are missing"`
}

type EnvironmentInput

type EnvironmentInput struct {
	EnvironmentID string `path:"id" doc:"Environment ID"`
}

type EnvironmentRef

type EnvironmentRef struct {
	ID   string `json:"id" doc:"Environment ID"`
	Name string `json:"name" doc:"Environment display name"`
}

type EnvironmentStreamEvent

type EnvironmentStreamEvent struct {
	Timestamp    time.Time     `json:"timestamp"`
	Type         string        `json:"type"`
	Environments []Environment `json:"environments,omitempty"`
}

type EnvironmentSyncStatus

type EnvironmentSyncStatus struct {
	LastSyncedAt    *time.Time `json:"lastSyncedAt,omitempty"`
	EnvironmentID   string     `json:"environmentId"`
	EnvironmentName string     `json:"environmentName,omitempty"`
	Status          string     `json:"status"` // "synced" | "pending" | "error"
	Error           string     `json:"error,omitempty"`
}

type EnvironmentTag

type EnvironmentTag struct {
	EnvironmentID   string `json:"environmentId,omitempty" doc:"Environment the row came from in a multi-environment list"`
	EnvironmentName string `json:"environmentName,omitempty" doc:"Display name of the environment the row came from"`
}

func (EnvironmentTag) Environment

func (t EnvironmentTag) Environment() EnvironmentRef

func (*EnvironmentTag) SetEnvironment

func (t *EnvironmentTag) SetEnvironment(ref EnvironmentRef)

type EnvironmentTest

type EnvironmentTest struct {
	Message *string `json:"message,omitempty"`
	Status  string  `json:"status"`
}

type EnvironmentTunnelRestart

type EnvironmentTunnelRestart struct {
	SessionID   string `json:"sessionId,omitzero"`
	Reconnected bool   `json:"reconnected"`
}

type EnvironmentVulnerabilitySummary

type EnvironmentVulnerabilitySummary struct {
	Summary       *VulnerabilitySeveritySummary `json:"summary,omitempty"`
	TotalImages   int                           `json:"totalImages"`
	ScannedImages int                           `json:"scannedImages"`

	ActionableCount int `json:"actionableCount" doc:"Critical and high findings that are not ignored"`
}

type ErrorResponse

type ErrorResponse struct {
	Error string `json:"error" doc:"Error message describing what went wrong"`
}

type Event

type Event struct {
	Timestamp     time.Time      `json:"timestamp"`
	CreatedAt     time.Time      `json:"createdAt"`
	ResourceType  *string        `json:"resourceType,omitempty"`
	ResourceID    *string        `json:"resourceId,omitempty"`
	ResourceName  *string        `json:"resourceName,omitempty"`
	UserID        *string        `json:"userId,omitempty"`
	Username      *string        `json:"username,omitempty"`
	EnvironmentID *string        `json:"environmentId,omitempty"`
	Metadata      map[string]any `json:"metadata,omitempty"`
	UpdatedAt     *time.Time     `json:"updatedAt,omitempty"`
	ID            string         `json:"id"`
	Type          string         `json:"type"`
	Severity      string         `json:"severity"`
	Title         string         `json:"title"`
	Description   string         `json:"description,omitempty"`
}

type EventSeverityCounts

type EventSeverityCounts struct {
	Total   int64 `json:"total"`
	Info    int64 `json:"info"`
	Success int64 `json:"success"`
	Warning int64 `json:"warning"`
	Error   int64 `json:"error"`
}

type EventStreamEvent

type EventStreamEvent struct {
	Type      string               `json:"type"`
	Timestamp time.Time            `json:"timestamp"`
	Changes   []EnvironmentChanges `json:"changes"`
}

type FeatureDefinition

type FeatureDefinition struct {
	ID             FeatureID
	SettingKey     string
	DefaultEnabled bool
}

func AllFeatures

func AllFeatures() []FeatureDefinition

func LookupFeature

func LookupFeature(id FeatureID) (FeatureDefinition, bool)

type FeatureDisabledError

type FeatureDisabledError struct {
	Title   string    `json:"title"`
	Detail  string    `json:"detail"`
	Code    string    `json:"code"`
	Feature FeatureID `json:"feature"`
	Status  int       `json:"status"`
}

func (*FeatureDisabledError) ContentType

func (e *FeatureDisabledError) ContentType(contentType string) string

func (*FeatureDisabledError) Error

func (e *FeatureDisabledError) Error() string

func (*FeatureDisabledError) GetStatus

func (e *FeatureDisabledError) GetStatus() int

type FeatureID

type FeatureID string

type FederatedCredential

type FederatedCredential struct {
	CreatedAt       time.Time  `json:"createdAt" readOnly:"true" doc:"Creation timestamp"`
	Description     *string    `json:"description,omitempty" maxLength:"1000" doc:"Optional description" unorm:"nfc" trim:"true"`
	EnvironmentID   *string    `json:"environmentId,omitempty" doc:"Optional environment scope for the role assignment"`
	LastUsedAt      *time.Time `json:"lastUsedAt,omitempty" readOnly:"true" doc:"Last successful token exchange"`
	ExpiresAt       *time.Time `json:"expiresAt,omitempty" doc:"Optional credential expiration"`
	UpdatedAt       *time.Time `json:"updatedAt,omitempty" readOnly:"true" doc:"Last update timestamp"`
	ID              string     `json:"id" readOnly:"true" doc:"Unique identifier of the federated credential"`
	Name            string     `json:"name" required:"false" minLength:"1" maxLength:"255" doc:"Display name" unorm:"nfc" trim:"true"`
	IssuerURL       string     `json:"issuerUrl" required:"false" doc:"Trusted external OIDC issuer URL"`
	SubjectClaim    string     `json:"subjectClaim" required:"false" doc:"Claim path to match against; defaults to sub"`
	SubjectMatch    string     `json:"subjectMatch" required:"false" doc:"Exact subject or anchored glob pattern"`
	MatchType       string     `json:"matchType" required:"false" doc:"Subject match strategy" enum:"exact,glob"`
	RoleID          string     `json:"roleId" required:"false" doc:"Mapped role ID"`
	IdentityUserID  string     `json:"identityUserId" readOnly:"true" doc:"Dedicated service user ID backing issued tokens"`
	ServiceUsername string     `json:"serviceUsername,omitempty" readOnly:"true" doc:"Dedicated service account username"`
	RoleName        string     `json:"roleName,omitempty" readOnly:"true" doc:"Mapped role name"`
	EnvironmentName string     `json:"environmentName,omitempty" readOnly:"true" doc:"Mapped environment name when scoped"`
	Audiences       []string   `json:"audiences" required:"false" doc:"Allowed external token audiences"`
	TokenTTLSeconds int        `json:"tokenTtlSeconds" required:"false" minimum:"60" maximum:"3600" doc:"Issued token lifetime in seconds"`
	Enabled         bool       `json:"enabled" required:"false" doc:"Whether exchanges are allowed"`
}

type FederatedTokenResponse

type FederatedTokenResponse struct {
	AccessToken     string `json:"access_token"`      //nolint:tagliatelle // RFC 8693 wire shape is snake_case.
	TokenType       string `json:"token_type"`        //nolint:tagliatelle // RFC 8693 wire shape is snake_case.
	IssuedTokenType string `json:"issued_token_type"` //nolint:tagliatelle // RFC 8693 wire shape is snake_case.
	ExpiresIn       int    `json:"expires_in"`        //nolint:tagliatelle // RFC 8693 wire shape is snake_case.
}

type FieldError

type FieldError struct {
	Err   error
	Field string
}

func (*FieldError) Error

func (e *FieldError) Error() string

func (*FieldError) Unwrap

func (e *FieldError) Unwrap() error

type FileTreeNode

type FileTreeNode struct {
	Name     string           `json:"name"`
	Path     string           `json:"path"`
	Type     FileTreeNodeType `json:"type"`
	Children []FileTreeNode   `json:"children,omitempty"`

	Size int64 `json:"size,omitempty"`
}

type FileTreeNodeType

type FileTreeNodeType string

type FrozenUpdateTarget

type FrozenUpdateTarget struct {
	ContainerID          string
	ContainerName        string
	ComposeProject       string
	ComposeService       string
	ComposeNumber        string
	BaselineImageID      string
	BaselineStartedAt    string
	DesiredImageRef      string
	DesiredDigest        string
	BaselineRestartCount int
	BaselineRunning      bool
}

type GCInfo

type GCInfo struct {
	LastGC         time.Time `json:"lastGc"`
	RecentPausesNs []int64   `json:"recentPausesNs"`
	NumGC          int64     `json:"numGc"`
	PauseTotalNs   int64     `json:"pauseTotalNs"`
}

type GPUStats

type GPUStats struct {
	Name        string  `json:"name"`
	Index       int     `json:"index"`
	MemoryUsed  float64 `json:"memoryUsed"`
	MemoryTotal float64 `json:"memoryTotal"`
}

type GenericJob

type GenericJob struct {
	ScheduleFn  func(ctx context.Context) string
	RunFn       func(ctx context.Context) (SchedulerOutcome, error)
	ReconcileFn func(ctx context.Context, previous SchedulerRun) (SchedulerOutcome, error)
	ShouldRunFn func(ctx context.Context) bool
	JobName     string
}

func (*GenericJob) Name

func (g *GenericJob) Name() string

func (*GenericJob) Reconcile

func (g *GenericJob) Reconcile(ctx context.Context, previous SchedulerRun) (SchedulerOutcome, error)

func (*GenericJob) Run

func (*GenericJob) Schedule

func (g *GenericJob) Schedule(ctx context.Context) string

func (*GenericJob) ShouldSchedule

func (g *GenericJob) ShouldSchedule(ctx context.Context) bool

type GitBranchInfo

type GitBranchInfo struct {
	Name      string `json:"name"`
	IsDefault bool   `json:"isDefault"`
}

type GitBranchesResponse

type GitBranchesResponse struct {
	Branches []GitBranchInfo `json:"branches"`
}

type GitOpsBackupFileChange

type GitOpsBackupFileChange struct {
	Path   string `json:"path"`
	Change string `json:"change"`
}

type GitOpsBackupFileDiff

type GitOpsBackupFileDiff struct {
	Path  string `json:"path"`
	Patch string `json:"patch"`
}

type GitOpsBackupHistoryEntry

type GitOpsBackupHistoryEntry struct {
	Commit  string    `json:"commit"`
	Author  string    `json:"author"`
	Message string    `json:"message"`
	Date    time.Time `json:"date"`
	Files   []string  `json:"files"`
}

type GitOpsBackupHistoryResponse

type GitOpsBackupHistoryResponse struct {
	Entries []GitOpsBackupHistoryEntry `json:"entries"`
}

type GitOpsBackupPreview

type GitOpsBackupPreview struct {
	State        string                   `json:"state"`
	RemoteCommit string                   `json:"remoteCommit,omitempty"`
	Changes      []GitOpsBackupFileChange `json:"changes"`
	Conflicts    []GitOpsBackupFileChange `json:"conflicts"`
	Files        []string                 `json:"files"`
}

type GitOpsBackupRevision

type GitOpsBackupRevision struct {
	Entry GitOpsBackupHistoryEntry `json:"entry"`
	Diffs []GitOpsBackupFileDiff   `json:"diffs"`
}

type GitOpsBrowseResponse

type GitOpsBrowseResponse struct {
	Path  string         `json:"path"`
	Files []FileTreeNode `json:"files"`
}

type GitOpsPreDeployConfigRequest

type GitOpsPreDeployConfigRequest struct {
	PreDeployScriptPath *string `json:"preDeployScriptPath,omitempty"`

	// When omitted, the lifecycleDefaultRunnerImage setting is used.
	PreDeployRunnerImage *string `json:"preDeployRunnerImage,omitempty"`

	PreDeployEnv         *string `json:"preDeployEnv,omitempty"`
	PreDeployExtraMounts *string `json:"preDeployExtraMounts,omitempty"`

	PreDeployTimeoutSec *int `json:"preDeployTimeoutSec,omitempty"`

	PreDeployNetworkMode *string `json:"preDeployNetworkMode,omitempty"`
}

func (GitOpsPreDeployConfigRequest) HasPreDeployConfig

func (r GitOpsPreDeployConfigRequest) HasPreDeployConfig() bool

Configuring the hook is gated behind the gitops:lifecycle permission.

type GitOpsResolveBackupConflictRequest

type GitOpsResolveBackupConflictRequest struct {
	Strategy string `json:"strategy" binding:"required,oneof=use_arcane"`
}

type GitOpsSync

type GitOpsSync struct {
	CreatedAt time.Time `json:"createdAt" readOnly:"true"`
	UpdatedAt time.Time `json:"updatedAt" readOnly:"true"`

	PreDeployEnv           *string        `json:"preDeployEnv,omitempty"`
	EnvContent             *string        `json:"envContent,omitempty" doc:"KEY=VALUE lines merged over the repository .env on every deploy sync"`
	PreDeployLastRunOutput *string        `json:"preDeployLastRunOutput,omitempty" readOnly:"true"`
	Repository             *GitRepository `json:"repository,omitempty" readOnly:"true"`
	PreDeployLastRunStatus *string        `json:"preDeployLastRunStatus,omitempty" readOnly:"true"`
	PreDeployLastRunAt     *time.Time     `json:"preDeployLastRunAt,omitempty" readOnly:"true"`
	PreDeployExtraMounts   *string        `json:"preDeployExtraMounts,omitempty"`
	LastSyncAt             *time.Time     `json:"lastSyncAt,omitempty" readOnly:"true"`
	ProjectID              *string        `json:"projectId,omitempty"`

	// Required whenever PreDeployScriptPath is set.
	PreDeployRunnerImage *string `json:"preDeployRunnerImage,omitempty"`

	PreDeployScriptPath *string `json:"preDeployScriptPath,omitempty"`
	LastSyncCommit      *string `json:"lastSyncCommit,omitempty" readOnly:"true"`

	SyncedFiles         *string    `json:"syncedFiles,omitempty" readOnly:"true"`
	LastSyncError       *string    `json:"lastSyncError,omitempty" readOnly:"true"`
	LastSyncStatus      *string    `json:"lastSyncStatus,omitempty" readOnly:"true"`
	BackupFailureReason *string    `json:"backupFailureReason,omitempty" readOnly:"true"`
	LastBackupAt        *time.Time `json:"lastBackupAt,omitempty" readOnly:"true"`
	ProjectName         string     `json:"projectName" required:"false"`

	PreDeployNetworkMode string `json:"preDeployNetworkMode" required:"false"`
	Name                 string `json:"name" required:"false"`
	EnvironmentID        string `json:"environmentId" readOnly:"true"`

	ComposeOverridePath string `` /* 150-byte string literal not displayed */

	EnvironmentName string   `json:"environmentName,omitempty" readOnly:"true" doc:"Display name of the environment the sync belongs to"`
	RepositoryID    string   `json:"repositoryId" required:"false"`
	Branch          string   `json:"branch" required:"false"`
	ComposePath     string   `json:"composePath" required:"false"`
	ID              string   `json:"id" readOnly:"true"`
	TargetType      string   `json:"targetType" required:"false"`
	Mode            string   `json:"mode" required:"false"`
	BackupDirectory string   `json:"backupDirectory,omitempty"`
	BackupState     string   `json:"backupState,omitempty" readOnly:"true"`
	BackupPaths     []string `json:"backupPaths,omitempty"`

	PreDeployTimeoutSec int `json:"preDeployTimeoutSec" required:"false"`

	MaxSyncBinarySize int64 `json:"maxSyncBinarySize" required:"false"`

	SyncInterval int `json:"syncInterval" required:"false"`

	// 0 means unlimited; env var overrides take precedence.
	MaxSyncFiles int `json:"maxSyncFiles" required:"false"`

	MaxSyncTotalSize int64 `json:"maxSyncTotalSize" required:"false"`
	AutoSync         bool  `json:"autoSync" required:"false"`
	SyncDirectory    bool  `json:"syncDirectory" required:"false"`

	PullImageAfterSync bool `json:"pullImageAfterSync" required:"false"`

	RedeployAfterSync bool `json:"redeployAfterSync" required:"false"`
	BackupOnSave      bool `json:"backupOnSave" required:"false"`
	BackupPending     bool `json:"backupPending" readOnly:"true"`
}

func (GitOpsSync) Environment

func (s GitOpsSync) Environment() EnvironmentRef

func (*GitOpsSync) SetEnvironment

func (s *GitOpsSync) SetEnvironment(ref EnvironmentRef)

type GitOpsSyncCounts

type GitOpsSyncCounts struct {
	TotalSyncs      int `json:"totalSyncs"`
	ActiveSyncs     int `json:"activeSyncs"`
	SuccessfulSyncs int `json:"successfulSyncs"`
	DeploySyncs     int `json:"deploySyncs"`
	BackupSyncs     int `json:"backupSyncs"`
}

type GitOpsSyncResult

type GitOpsSyncResult struct {
	SyncedAt time.Time `json:"syncedAt"`
	Error    *string   `json:"error,omitempty"`
	Message  string    `json:"message"`
	Success  bool      `json:"success"`
}

type GitOpsSyncStatus

type GitOpsSyncStatus struct {
	NextSyncAt          *time.Time `json:"nextSyncAt,omitempty"`
	LastSyncAt          *time.Time `json:"lastSyncAt,omitempty"`
	LastSyncStatus      *string    `json:"lastSyncStatus,omitempty"`
	LastSyncError       *string    `json:"lastSyncError,omitempty"`
	LastSyncCommit      *string    `json:"lastSyncCommit,omitempty"`
	BackupFailureReason *string    `json:"backupFailureReason,omitempty"`
	LastBackupAt        *time.Time `json:"lastBackupAt,omitempty"`
	ID                  string     `json:"id"`
	Mode                string     `json:"mode"`
	BackupState         string     `json:"backupState,omitempty"`
	AutoSync            bool       `json:"autoSync"`
	BackupPending       bool       `json:"backupPending"`
}

type GitRepository

type GitRepository struct {
	CreatedAt              time.Time `json:"createdAt" readOnly:"true"`
	UpdatedAt              time.Time `json:"updatedAt" readOnly:"true"`
	Description            *string   `json:"description,omitempty" unorm:"nfc" trim:"true"`
	ID                     string    `json:"id" readOnly:"true"`
	Name                   string    `json:"name" required:"false" unorm:"nfc" trim:"true"`
	URL                    string    `json:"url" required:"false"`
	Provider               string    `` /* 135-byte string literal not displayed */
	AuthType               string    `json:"authType" required:"false"`
	Username               string    `json:"username,omitempty"`
	SSHHostKeyVerification string    `json:"sshHostKeyVerification,omitempty"`
	CommitAuthorName       string    `json:"commitAuthorName,omitempty" unorm:"nfc" trim:"true"`
	CommitAuthorEmail      string    `json:"commitAuthorEmail,omitempty" trim:"true"`

	Token                string `json:"token,omitempty" writeOnly:"true" copier:"-"`
	SSHKey               string `json:"sshKey,omitempty" writeOnly:"true" copier:"-"`
	SigningKey           string `json:"signingKey,omitempty" writeOnly:"true" copier:"-"`
	SigningKeyPassphrase string `json:"signingKeyPassphrase,omitempty" writeOnly:"true" copier:"-"`
	HasToken             bool   `json:"hasToken" readOnly:"true"`
	HasSshKey            bool   `json:"hasSshKey" readOnly:"true"`
	HasSigningKey        bool   `json:"hasSigningKey" readOnly:"true"`
	Enabled              bool   `json:"enabled" required:"false"`
}

type GitRepositorySync

type GitRepositorySync struct {
	CreatedAt              time.Time `json:"createdAt"`
	UpdatedAt              time.Time `json:"updatedAt"`
	Description            *string   `json:"description,omitempty" unorm:"nfc" trim:"true"`
	ID                     string    `json:"id" binding:"required"`
	Name                   string    `json:"name" binding:"required" unorm:"nfc" trim:"true"`
	URL                    string    `json:"url" binding:"required"`
	Provider               string    `json:"provider,omitempty"`
	AuthType               string    `json:"authType" binding:"required"`
	Username               string    `json:"username,omitempty"`
	Token                  string    `json:"token,omitempty"`
	SSHKey                 string    `json:"sshKey,omitempty"`
	SSHHostKeyVerification string    `json:"sshHostKeyVerification,omitempty"`
	CommitAuthorName       string    `json:"commitAuthorName,omitempty"`
	CommitAuthorEmail      string    `json:"commitAuthorEmail,omitempty"`
	SigningKey             string    `json:"signingKey,omitempty"`
	SigningKeyPassphrase   string    `json:"signingKeyPassphrase,omitempty"`
	Enabled                bool      `json:"enabled"`
}

type GitRepositorySyncRequest

type GitRepositorySyncRequest struct {
	Repositories []GitRepositorySync `json:"repositories" binding:"required"`
}

type GlobalVariable

type GlobalVariable struct {
	CreatedAt            time.Time  `json:"createdAt" readOnly:"true"`
	UpdatedAt            *time.Time `json:"updatedAt,omitempty" readOnly:"true"`
	ID                   string     `json:"id" readOnly:"true"`
	Key                  string     `json:"key" required:"false"`
	Value                string     `json:"value" required:"false"`
	EnvironmentIDs       []string   `json:"environmentIds" required:"false"`
	IsSecret             bool       `json:"isSecret" required:"false"`
	AllEnvironments      bool       `json:"allEnvironments" required:"false"`
	InjectIntoContainers bool       `json:"injectIntoContainers" required:"false"`
}

type GlobalVariableMutationResponse

type GlobalVariableMutationResponse struct {
	Variable    *GlobalVariable         `json:"variable,omitempty"`
	SyncResults []EnvironmentSyncStatus `json:"syncResults,omitempty"`
}

type GoroutineFrame

type GoroutineFrame struct {
	Function string `json:"function"`
	File     string `json:"file"`
	Line     int    `json:"line"`
}

type GoroutineGroup

type GoroutineGroup struct {
	Label  string           `json:"label"`
	Frames []GoroutineFrame `json:"frames"`
	Count  int              `json:"count"`
}

type GoroutineLeakReport

type GoroutineLeakReport struct {
	ScannedAt time.Time `json:"scannedAt"`
	Profile   string    `json:"profile"`
	Count     int       `json:"count"`
}

type GoroutineProfile

type GoroutineProfile struct {
	CapturedAt time.Time        `json:"capturedAt"`
	Groups     []GoroutineGroup `json:"groups"`
	Total      int              `json:"total"`
}

type HardenedImageInfo

type HardenedImageInfo struct {
	// Shell and PackageManager are empty when the label says the image has none, and nil when the label is missing.
	Shell          *string                    `json:"shell,omitzero" doc:"Shell in the image; empty when it has none"`
	PackageManager *string                    `json:"packageManager,omitzero" doc:"Package manager in the image; empty when it has none"`
	Name           string                     `json:"name" doc:"Hardened image name, such as dhi/aspnetcore"`
	Title          string                     `json:"title,omitempty" doc:"Display title"`
	Version        string                     `json:"version,omitempty" doc:"Image version"`
	Definition     string                     `json:"definition,omitempty" doc:"Catalog definition path"`
	Distro         string                     `json:"distro,omitempty" doc:"Base distribution"`
	Variant        string                     `json:"variant,omitempty" doc:"Image variant, such as runtime or dev"`
	Flavor         string                     `json:"flavor,omitempty" doc:"Image flavor"`
	Entitlement    string                     `json:"entitlement,omitempty" doc:"Catalog entitlement"`
	URL            string                     `json:"url,omitempty" doc:"Catalog page URL"`
	ChainID        string                     `json:"chainId,omitempty" doc:"Build chain ID"`
	Created        string                     `json:"created,omitempty" doc:"Build time (RFC 3339)"`
	ReleaseDate    string                     `json:"releaseDate,omitempty" doc:"Release date (YYYY-MM-DD)"`
	EndOfLifeDate  string                     `json:"endOfLifeDate,omitempty" doc:"End-of-life date (YYYY-MM-DD)"`
	SupportStatus  HardenedImageSupportStatus `json:"supportStatus" enum:"supported,ending_soon,end_of_life,unknown" doc:"Support status from the end-of-life date"`
	Compliance     []string                   `json:"compliance,omitempty" doc:"Compliance frameworks, such as cis"`
}

HardenedImageInfo describes a Docker Hardened Image from its com.docker.dhi.* labels.

type HardenedImageSupportStatus

type HardenedImageSupportStatus string
const (
	HardenedImageSupported      HardenedImageSupportStatus = "supported"
	HardenedImageEndingSoon     HardenedImageSupportStatus = "ending_soon"
	HardenedImageEndOfLife      HardenedImageSupportStatus = "end_of_life"
	HardenedImageSupportUnknown HardenedImageSupportStatus = "unknown"
)

type HealthResponse

type HealthResponse struct {
	Status string `json:"status"`
}

type IgnoredVulnerability

type IgnoredVulnerability struct {
	CreatedAt time.Time `json:"createdAt" readOnly:"true"`
	Reason    *string   `json:"reason,omitempty" example:"False positive - not exploitable"`

	EnvironmentTag
	ID               string `json:"id" readOnly:"true"`
	ImageID          string `json:"imageId" example:"sha256:abc123"`
	VulnerabilityID  string `json:"vulnerabilityId" example:"CVE-2023-1234"`
	PkgName          string `json:"pkgName" example:"openssl"`
	InstalledVersion string `json:"installedVersion" required:"false" example:"1.1.1l"`
	CreatedBy        string `json:"createdBy" readOnly:"true"`
}

type ImageAttestation

type ImageAttestation struct {
	Digest        string                    `json:"digest"`
	MediaType     string                    `json:"mediaType"`
	ArtifactType  string                    `json:"artifactType,omitempty"`
	PredicateType string                    `json:"predicateType"`
	StatementType string                    `json:"statementType,omitempty"`
	Platform      string                    `json:"platform,omitempty"`
	Subject       []ImageAttestationSubject `json:"subject"`
	Statement     jsontext.Value            `json:"statement,omitempty"`
	Size          int64                     `json:"size"`
}

type ImageAttestationList

type ImageAttestationList struct {
	ImageRef      string             `json:"imageRef"`
	SubjectDigest string             `json:"subjectDigest"`
	Platform      string             `json:"platform,omitempty"`
	Attestations  []ImageAttestation `json:"attestations"`
}

type ImageAttestationSubject

type ImageAttestationSubject struct {
	Digest map[string]string `json:"digest"`
	Name   string            `json:"name"`
}

type ImageBuildRecord

type ImageBuildRecord struct {
	CreatedAt       time.Time         `json:"createdAt" sortable:"true"`
	BuildArgs       map[string]string `json:"buildArgs,omitempty"`
	UserID          *string           `json:"userId,omitempty"`
	Username        *string           `json:"username,omitempty"`
	Digest          *string           `json:"digest,omitempty"`
	ErrorMessage    *string           `json:"errorMessage,omitempty"`
	Output          *string           `json:"output,omitempty"`
	CompletedAt     *time.Time        `json:"completedAt,omitempty" sortable:"true"`
	DurationMs      *int64            `json:"durationMs,omitempty"`
	Labels          map[string]string `json:"labels,omitempty"`
	Ulimits         map[string]string `json:"ulimits,omitempty"`
	ID              string            `json:"id" sortable:"true"`
	EnvironmentID   string            `json:"environmentId"`
	EnvironmentName string            `json:"environmentName,omitempty"`
	Status          string            `json:"status" sortable:"true"`
	Provider        string            `json:"provider,omitempty"`
	ContextDir      string            `json:"contextDir"`
	Dockerfile      string            `json:"dockerfile,omitempty"`
	Target          string            `json:"target,omitempty"`
	Network         string            `json:"network,omitempty"`
	Isolation       string            `json:"isolation,omitempty"`
	Tags            []string          `json:"tags,omitempty"`
	Platforms       []string          `json:"platforms,omitempty"`
	CacheFrom       []string          `json:"cacheFrom,omitempty"`
	CacheTo         []string          `json:"cacheTo,omitempty"`
	Entitlements    []string          `json:"entitlements,omitempty"`
	ExtraHosts      []string          `json:"extraHosts,omitempty"`
	ShmSize         int64             `json:"shmSize,omitempty"`
	NoCache         bool              `json:"noCache"`
	Pull            bool              `json:"pull"`
	Privileged      bool              `json:"privileged"`
	Push            bool              `json:"push"`
	Load            bool              `json:"load"`
	OutputTruncated bool              `json:"outputTruncated"`
}

func (ImageBuildRecord) Environment

func (r ImageBuildRecord) Environment() EnvironmentRef

func (*ImageBuildRecord) SetEnvironment

func (r *ImageBuildRecord) SetEnvironment(ref EnvironmentRef)

type ImageDetailSummary

type ImageDetailSummary struct {
	GraphDriver struct {
		Data any    `json:"data"`
		Name string `json:"name"`
	} `json:"graphDriver"`
	Os           string `json:"os"`
	Created      string `json:"created"`
	Author       string `json:"author"`
	Architecture string `json:"architecture"`
	ID           string `json:"id"`
	Metadata     struct {
		LastTagTime string `json:"lastTagTime"`
	} `json:"metadata"`
	Comment    string `json:"comment"`
	Descriptor struct {
		MediaType string `json:"mediaType"`
		Digest    string `json:"digest"`
		Size      int64  `json:"size"`
	} `json:"descriptor"`
	RootFs struct {
		Type   string   `json:"type"`
		Layers []string `json:"layers"`
	} `json:"rootFs"`
	RepoTags         []string           `json:"repoTags"`
	RepoDigests      []string           `json:"repoDigests"`
	PinnedReferences []string           `json:"pinnedReferences,omitempty"`
	Hardened         *HardenedImageInfo `json:"hardened,omitempty"`
	UpdateInfo       *ImageUpdateInfo   `json:"updateInfo,omitempty"`
	Config           struct {
		ExposedPorts map[string]struct{} `json:"exposedPorts,omitempty"`
		Volumes      map[string]struct{} `json:"volumes,omitempty"`
		WorkingDir   string              `json:"workingDir,omitempty"`
		Env          []string            `json:"env,omitempty"`
		Cmd          []string            `json:"cmd,omitempty"`
		ArgsEscaped  bool                `json:"argsEscaped,omitempty"`
	} `json:"config"`
	Size int64 `json:"size"`
}

func NewImageDetailSummary

func NewImageDetailSummary(src *image.InspectResponse) ImageDetailSummary

type ImageExposure

type ImageExposure string

type ImageHistoryItem

type ImageHistoryItem struct {
	ID        string   `json:"id"`
	CreatedBy string   `json:"createdBy"`
	Comment   string   `json:"comment"`
	Tags      []string `json:"tags"`
	Created   int64    `json:"created"`
	Size      int64    `json:"size"`
}

type ImageListResponse

type ImageListResponse struct {
	Data []ImageSummary `json:"data" doc:"Array of items for the current page"`

	FailedEnvironments []EnvironmentFailure `json:"failedEnvironments,omitempty" doc:"Environments whose results are missing from a multi-environment response"`
	Pagination         PaginationResponse   `json:"pagination" doc:"Pagination metadata"`

	MaxImageUploadSize int `json:"maxImageUploadSize" doc:"Maximum image archive upload size in MB"`

	Success bool `json:"success" doc:"Whether the request was successful"`
}

type ImageLoadResult

type ImageLoadResult struct {
	Stream string `json:"stream"`
}

type ImagePruneReport

type ImagePruneReport struct {
	ImagesDeleted []string `json:"imagesDeleted"`

	SpaceReclaimed int64 `json:"spaceReclaimed"`
}

func NewImagePruneReport

func NewImagePruneReport(src image.PruneReport) ImagePruneReport

type ImagePullOptions

type ImagePullOptions struct {
	ImageName string `json:"imageName" minLength:"1" doc:"Name of the image to pull (e.g., nginx)"`

	Tag         string                        `json:"tag,omitempty" doc:"Tag of the image to pull (e.g., latest)"`
	Auth        *ContainerRegistryCredential  `json:"auth,omitempty"`
	Credentials []ContainerRegistryCredential `json:"credentials,omitempty"`
}

func (ImagePullOptions) GetCredentials

func (p ImagePullOptions) GetCredentials() []ContainerRegistryCredential

func (ImagePullOptions) GetFullImageName

func (p ImagePullOptions) GetFullImageName() string

type ImageReleaseNotes

type ImageReleaseNotes struct {
	ImageRef    string `json:"imageRef"`
	Version     string `json:"version,omitempty"`
	Status      string `json:"status"`
	SourceURL   string `json:"sourceUrl,omitempty"`
	ReleaseURL  string `json:"releaseUrl,omitempty"`
	ReleaseName string `json:"releaseName,omitempty"`
	Notes       string `json:"notes,omitempty"`
	PublishedAt string `json:"publishedAt,omitempty"`
}

type ImageSearchResult

type ImageSearchResult struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	StarCount   int    `json:"starCount"`
	Official    bool   `json:"official"`
	Automated   bool   `json:"automated"`
}

type ImageSummary

type ImageSummary struct {
	Labels            map[string]any            `json:"labels"`
	UpdateInfo        *ImageUpdateInfo          `json:"updateInfo,omitempty"`
	VulnerabilityScan *VulnerabilityScanSummary `json:"vulnerabilityScan,omitempty"`
	Hardened          *HardenedImageInfo        `json:"hardened,omitempty"`

	EnvironmentTag
	ID               string        `json:"id" sortable:"true"`
	Repo             string        `json:"repo" sortable:"true"`
	Tag              string        `json:"tag" sortable:"true"`
	RepoTags         []string      `json:"repoTags"`
	RepoDigests      []string      `json:"repoDigests"`
	UsedBy           []ImageUsedBy `json:"usedBy,omitempty"`
	PinnedReferences []string      `json:"pinnedReferences,omitempty"`

	Created     int64 `json:"created" sortable:"true"`
	Size        int64 `json:"size" sortable:"true"`
	VirtualSize int64 `json:"virtualSize"`
	InUse       bool  `json:"inUse" sortable:"true"`
}

type ImageTagRequest

type ImageTagRequest struct {
	Repository string `json:"repository" doc:"Target repository name"`

	Tag string `json:"tag,omitempty" doc:"Target tag"`
}

type ImageUpdateBatchResponse

type ImageUpdateBatchResponse map[string]*ImageUpdateResponse

type ImageUpdateCheckRequest

type ImageUpdateCheckRequest struct {
	ImageRefs []string `json:"imageRefs,omitempty"`
	All       bool     `json:"all,omitempty"`
}

type ImageUpdateInfo

type ImageUpdateInfo struct {
	CheckTime      time.Time `json:"checkTime"`
	UpdateType     string    `json:"updateType"`
	CurrentVersion string    `json:"currentVersion"`
	LatestVersion  string    `json:"latestVersion"`
	CurrentDigest  string    `json:"currentDigest"`
	LatestDigest   string    `json:"latestDigest"`

	CurrentCreated *time.Time `json:"currentCreated,omitempty"`

	LatestCreated *time.Time `json:"latestCreated,omitempty"`
	Error         string     `json:"error"`
	AuthMethod    string     `json:"authMethod,omitempty"`
	AuthUsername  string     `json:"authUsername,omitempty"`
	AuthRegistry  string     `json:"authRegistry,omitempty"`

	ResponseTimeMs int  `json:"responseTimeMs"`
	HasUpdate      bool `json:"hasUpdate"`
	UsedCredential bool `json:"usedCredential,omitempty"`
}

type ImageUpdateResponse

type ImageUpdateResponse struct {
	CheckTime        time.Time                       `json:"checkTime"`
	ImageUpdate      *ImageUpdateResponse            `json:"imageUpdate,omitempty"`
	ContainerUpdates map[string]*ImageUpdateResponse `json:"containerUpdates,omitempty"`
	ActivityID       *string                         `json:"activityId,omitempty"`
	ImageRef         string                          `json:"imageRef,omitempty"`
	UpdateType       string                          `json:"updateType"`
	CurrentVersion   string                          `json:"currentVersion"`
	LatestVersion    string                          `json:"latestVersion,omitempty"`
	CurrentDigest    string                          `json:"currentDigest,omitempty"`
	LatestDigest     string                          `json:"latestDigest,omitempty"`

	CurrentCreated *time.Time `json:"currentCreated,omitempty"`

	LatestCreated *time.Time `json:"latestCreated,omitempty"`
	Error         string     `json:"error,omitempty"`
	AuthMethod    string     `json:"authMethod,omitempty"`
	AuthUsername  string     `json:"authUsername,omitempty"`
	AuthRegistry  string     `json:"authRegistry,omitempty"`
	ReleaseURL    string     `json:"releaseUrl,omitempty"`

	ResponseTimeMs int  `json:"responseTimeMs"`
	HasUpdate      bool `json:"hasUpdate"`
	UsedCredential bool `json:"usedCredential,omitempty"`
}

type ImageUpdateSummary

type ImageUpdateSummary struct {
	TotalImages       int `json:"totalImages"`
	ImagesWithUpdates int `json:"imagesWithUpdates"`
	DigestUpdates     int `json:"digestUpdates"`
	ErrorsCount       int `json:"errorsCount"`
}

type ImageUsageCounts

type ImageUsageCounts struct {
	Inuse  int `json:"imagesInuse"`
	Unused int `json:"imagesUnused"`
	Total  int `json:"totalImages"`

	HardenedEndingSoon int `json:"hardenedEndingSoon" doc:"Hardened images whose end of life is near"`
	HardenedEndOfLife  int `json:"hardenedEndOfLife" doc:"Hardened images past their end of life"`

	TotalSize int64 `json:"totalImageSize"`
}

type ImageUsedBy

type ImageUsedBy struct {
	Type string `json:"type"`
	Name string `json:"name"`
	ID   string `json:"id,omitempty"`
}

type ImportGitOpsSyncRequest

type ImportGitOpsSyncRequest struct {
	GitOpsPreDeployConfigRequest

	SyncDirectory *bool `json:"syncDirectory,omitempty"`

	// 0 means unlimited; env var overrides take precedence.
	MaxSyncFiles *int `json:"maxSyncFiles,omitempty"`

	MaxSyncTotalSize *int64 `json:"maxSyncTotalSize,omitempty"`

	MaxSyncBinarySize  *int64 `json:"maxSyncBinarySize,omitempty"`
	PullImageAfterSync *bool  `json:"pullImageAfterSync,omitempty"`
	RedeployAfterSync  *bool  `json:"redeployAfterSync,omitempty"`
	SyncName           string `json:"syncName"`
	GitRepo            string `json:"gitRepo"`
	Branch             string `json:"branch"`
	DockerComposePath  string `json:"dockerComposePath"`

	ProjectName string `json:"projectName,omitempty"`

	SyncInterval int  `json:"syncInterval"`
	AutoSync     bool `json:"autoSync"`
}

type ImportGitOpsSyncResponse

type ImportGitOpsSyncResponse struct {
	Errors       []string `json:"errors"`
	SuccessCount int      `json:"successCount"`
	FailedCount  int      `json:"failedCount"`
}

type JobController

type JobController interface {
	GetJob(jobID string) (SchedulerJob, bool)
	GetJobRuntimeState(jobID string) (JobRuntimeState, bool)
	AddJob(ctx context.Context, job SchedulerJob) error
	RunBusWatcherNow(ctx context.Context, watcherID string) error
}

type JobListResponse

type JobListResponse struct {
	ObservedAt  time.Time   `json:"observedAt"`
	Timezone    string      `json:"timezone,omitempty"`
	Jobs        []JobStatus `json:"jobs"`
	DurableRuns bool        `json:"durableRuns"`
	Offline     bool        `json:"offline,omitempty"`
	IsAgent     bool        `json:"isAgent"`
}

type JobListRunsInput

type JobListRunsInput struct {
	ID    string `path:"id"`
	JobID string `path:"jobId" minLength:"1"`
	Page  int    `query:"page" default:"1" minimum:"1"`
	Limit int    `query:"limit" default:"20" minimum:"1" maximum:"100"`
}

type JobListRunsOutput

type JobListRunsOutput struct{ Body SchedulerRunList }

type JobMetadata

type JobMetadata struct {
	ID             string
	Name           string
	Description    string
	Category       string
	SettingsKey    string
	EnabledKey     string
	Prerequisites  []JobPrerequisiteMetadata
	ManagerOnly    bool
	IsContinuous   bool
	CanRunManually bool
}

func GetJobMetadata

func GetJobMetadata(jobID string) (JobMetadata, bool)

func (JobMetadata) ToJobStatus

func (meta JobMetadata) ToJobStatus(schedule string, nextRun *time.Time, enabled bool, prerequisites []JobPrerequisite) JobStatus

type JobPrerequisite

type JobPrerequisite struct {
	SettingKey string `json:"settingKey"`
	Label      string `json:"label"`
	IsMet      bool   `json:"isMet"`
}

type JobPrerequisiteMetadata

type JobPrerequisiteMetadata struct {
	SettingKey string
	Label      string
}

type JobRunInput

type JobRunInput struct {
	ID    string `path:"id"`
	JobID string `path:"jobId" minLength:"1"`
	RunID string `path:"runId" format:"uuid"`
}

type JobRunOutput

type JobRunOutput struct{ Body SchedulerRun }

type JobRunResponse

type JobRunResponse struct {
	RunID   string    `json:"runId,omitempty"`
	Status  RunStatus `json:"status,omitempty"`
	Message string    `json:"message"`
	Success bool      `json:"success"`
}

type JobRuntimeState

type JobRuntimeState struct {
	NextRun   *time.Time
	Schedule  string
	Scheduled bool
}

type JobScheduleConfig

type JobScheduleConfig struct {
	EnvironmentHealthInterval      string `json:"environmentHealthInterval" required:"false"`
	EventCleanupInterval           string `json:"eventCleanupInterval" required:"false"`
	ExpiredSessionsCleanupInterval string `json:"expiredSessionsCleanupInterval" required:"false"`
	AutoUpdateInterval             string `json:"autoUpdateInterval" required:"false"`
	DockerClientRefreshInterval    string `json:"dockerClientRefreshInterval" required:"false"`
	PollingInterval                string `json:"pollingInterval" required:"false"`
	ScheduledPruneInterval         string `json:"scheduledPruneInterval" required:"false"`
	VulnerabilityScanInterval      string `json:"vulnerabilityScanInterval" required:"false"`
	ImageAutoPatchInterval         string `json:"imageAutoPatchInterval" required:"false"`
	AutoHealInterval               string `json:"autoHealInterval" required:"false"`
}

type JobScheduler

type JobScheduler interface {
	ListRegisteredJobs() []SchedulerJob
	WorkerController
	DynamicScheduler
	JobController

	RegisterJob(job SchedulerJob) error
	RegisterBusWatcher(watcher BusWatcher, canRunManually bool) error
	StartScheduler(ctx context.Context) error
	GetLocation() *time.Location
	Stop(ctx context.Context) error
}

type JobStatus

type JobStatus struct {
	CurrentRun     *SchedulerRun          `json:"currentRun,omitempty"`
	LastRun        *SchedulerRun          `json:"lastRun,omitempty"`
	LastSuccess    *time.Time             `json:"lastSuccess,omitempty"`
	WorkerHealth   *SchedulerWorkerHealth `json:"workerHealth,omitempty"`
	NextRun        *time.Time             `json:"nextRun,omitempty"`
	LastError      string                 `json:"lastError,omitempty"`
	ID             string                 `json:"id"`
	Name           string                 `json:"name"`
	Description    string                 `json:"description"`
	Category       string                 `json:"category"`
	Schedule       string                 `json:"schedule"`
	SettingsKey    string                 `json:"settingsKey,omitempty"`
	Children       []JobStatus            `json:"children,omitempty"`
	Prerequisites  []JobPrerequisite      `json:"prerequisites"`
	Enabled        bool                   `json:"enabled"`
	ManagerOnly    bool                   `json:"managerOnly"`
	IsContinuous   bool                   `json:"isContinuous"`
	CanRunManually bool                   `json:"canRunManually"`
}

type JobSubmitRunInput

type JobSubmitRunInput struct {
	RunID string `json:"runId"`
}

type JsonObject

type JsonObject map[string]any

func (*JsonObject) Scan

func (j *JsonObject) Scan(value any) error

func (JsonObject) Value

func (j JsonObject) Value() (driver.Value, error)

type KubeDownPod

type KubeDownPod struct {
	ID string `json:"id"`
}

type KubeDownReport

type KubeDownReport struct {
	StopReport []KubeDownPod `json:"stopReport"`
	RmReport   []KubeDownPod `json:"rmReport"`
}

type KubeDownRequest

type KubeDownRequest struct {
	YAML  string `json:"yaml" minLength:"1" doc:"Kubernetes YAML to tear down"`
	Force bool   `json:"force,omitempty" doc:"Also remove volumes created by the YAML"`
}

type KubeGenerateRequest

type KubeGenerateRequest struct {
	Type    KubeGenerateType `json:"type,omitempty" enum:"pod,service,deployment,daemonset,job" doc:"Kubernetes kind to generate"`
	Names   []string         `json:"names" minItems:"1" doc:"Pods, containers, or volumes to include"`
	Service bool             `json:"service,omitempty" doc:"Also generate a Kubernetes service"`
}

type KubeGenerateResponse

type KubeGenerateResponse struct {
	YAML string `json:"yaml"`
}

type KubeGenerateType

type KubeGenerateType string

type KubePlayPod

type KubePlayPod struct {
	ID              string   `json:"id"`
	Containers      []string `json:"containers"`
	InitContainers  []string `json:"initContainers"`
	Logs            []string `json:"logs"`
	ContainerErrors []string `json:"containerErrors"`
}

type KubePlayReport

type KubePlayReport struct {
	ExitCode           *int32           `json:"exitCode,omitempty"`
	ServiceContainerID string           `json:"serviceContainerId,omitempty"`
	Pods               []KubePlayPod    `json:"pods"`
	Volumes            []KubePlayVolume `json:"volumes"`
}

type KubePlayRequest

type KubePlayRequest struct {
	Start    *bool    `json:"start,omitempty" doc:"Start the pods after creating them"`
	YAML     string   `json:"yaml" minLength:"1" doc:"Kubernetes YAML to play"`
	Networks []string `json:"networks,omitempty" doc:"Networks to attach the pods to"`
	Replace  bool     `json:"replace,omitempty" doc:"Replace existing pods and containers"`
}

type KubePlayVolume

type KubePlayVolume struct {
	Name string `json:"name"`
}

type LifecycleExtraMount

type LifecycleExtraMount struct {
	Source   string
	Target   string
	Readonly bool
}

type LogStreamOptions

type LogStreamOptions struct {
	Tail       string
	Since      string
	Follow     bool
	Timestamps bool
}

type MFAChallenge

type MFAChallenge struct {
	ExpiresAt     time.Time `json:"expiresAt" doc:"MFA transaction expiration time"`
	Options       any       `json:"options" doc:"WebAuthn assertion options"`
	TransactionID string    `json:"transactionId" doc:"Opaque MFA transaction identifier"`
	Method        string    `json:"method" doc:"MFA method"`
}

type MemoryInfo

type MemoryInfo struct {
	Alloc         uint64  `json:"alloc"`
	TotalAlloc    uint64  `json:"totalAlloc"`
	Sys           uint64  `json:"sys"`
	HeapAlloc     uint64  `json:"heapAlloc"`
	HeapSys       uint64  `json:"heapSys"`
	HeapInuse     uint64  `json:"heapInuse"`
	HeapIdle      uint64  `json:"heapIdle"`
	HeapReleased  uint64  `json:"heapReleased"`
	HeapObjects   uint64  `json:"heapObjects"`
	StackInuse    uint64  `json:"stackInuse"`
	StackSys      uint64  `json:"stackSys"`
	MSpanInuse    uint64  `json:"mspanInuse"`
	MCacheInuse   uint64  `json:"mcacheInuse"`
	NextGC        uint64  `json:"nextGc"`
	NumGC         uint32  `json:"numGc"`
	NumForcedGC   uint32  `json:"numForcedGc"`
	GCCPUFraction float64 `json:"gcCpuFraction"`
}

type MessageResponse

type MessageResponse struct {
	ActivityID *string `json:"activityId,omitempty" doc:"Background activity ID tracking this action"`
	Message    string  `json:"message" doc:"Response message"`
}

type MobilePasskeyCompletion

type MobilePasskeyCompletion struct {
	ExpiresAt     time.Time `json:"expiresAt" doc:"Mobile passkey transaction expiration time"`
	TransactionID string    `json:"transactionId" doc:"Opaque mobile passkey transaction identifier"`
}

type Network

type Network struct {
	Name    string               `json:"name" required:"false" doc:"Name of the network"`
	Options NetworkCreateOptions `json:"options" required:"false" doc:"Network creation options"`
}

type NetworkContainerEndpoint

type NetworkContainerEndpoint struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	EndpointID  string `json:"endpointId"`
	IPv4Address string `json:"ipv4Address"`
	IPv6Address string `json:"ipv6Address"`
	MacAddress  string `json:"macAddress"`
}

type NetworkContainerRequest

type NetworkContainerRequest struct {
	ContainerID string   `json:"containerId" minLength:"1" doc:"Container ID or name"`
	IPv4Address string   `json:"ipv4Address,omitempty" doc:"Static IPv4 address (connect only)"`
	IPv6Address string   `json:"ipv6Address,omitempty" doc:"Static IPv6 address (connect only)"`
	Aliases     []string `json:"aliases,omitempty" doc:"Network-scoped aliases (connect only)"`
	Force       bool     `json:"force,omitempty" doc:"Force the disconnect (disconnect only)"`
}

type NetworkCreateOptions

type NetworkCreateOptions struct {
	IPAM           *NetworkIPAM      `json:"ipam,omitempty" doc:"IP Address Management configuration"`
	Options        map[string]string `json:"options,omitempty" doc:"Driver-specific options"`
	Labels         map[string]string `json:"labels,omitempty" doc:"User-defined labels"`
	Driver         string            `json:"driver,omitempty" doc:"Network driver (e.g., bridge, overlay)"`
	CheckDuplicate bool              `json:"checkDuplicate,omitempty" doc:"Check for duplicate network names"`
	Internal       bool              `json:"internal,omitempty" doc:"Restrict external access to the network"`
	Attachable     bool              `json:"attachable,omitempty" doc:"Allow manual container attachment"`
	Ingress        bool              `json:"ingress,omitempty" doc:"Enable routing-mesh for swarm cluster"`
	EnableIPv6     bool              `json:"enableIPv6,omitempty" doc:"Enable IPv6 networking"`
}

type NetworkCreateResponse

type NetworkCreateResponse struct {
	ActivityID *string `json:"activityId,omitempty"`
	ID         string  `json:"id"`
	Warning    string  `json:"warning,omitempty"`
}

type NetworkIPAM

type NetworkIPAM struct {
	Driver  string              `json:"driver,omitempty"`
	Options map[string]string   `json:"options,omitempty"`
	Config  []NetworkIPAMConfig `json:"config,omitempty"`
}

type NetworkIPAMConfig

type NetworkIPAMConfig struct {
	AuxAddress map[string]string `json:"auxAddress,omitempty"`
	Subnet     string            `json:"subnet,omitempty"`
	Gateway    string            `json:"gateway,omitempty"`
	IPRange    string            `json:"ipRange,omitempty"`
}

type NetworkInspect

type NetworkInspect struct {
	ID             string                              `json:"id"`
	Name           string                              `json:"name"`
	Driver         string                              `json:"driver"`
	Scope          string                              `json:"scope"`
	Created        time.Time                           `json:"created"`
	IPAM           NetworkIPAM                         `json:"ipam"`
	ConfigFrom     network.ConfigReference             `json:"configFrom"`
	Containers     map[string]network.EndpointResource `json:"containers"`
	Options        map[string]string                   `json:"options"`
	Labels         map[string]string                   `json:"labels"`
	Peers          []network.PeerInfo                  `json:"peers,omitempty"`
	Services       map[string]network.ServiceInfo      `json:"services,omitempty"`
	ContainersList []NetworkContainerEndpoint          `json:"containersList"`
	EnableIPv4     bool                                `json:"enableIPv4"`
	EnableIPv6     bool                                `json:"enableIPv6"`
	Internal       bool                                `json:"internal"`
	Attachable     bool                                `json:"attachable"`
	Ingress        bool                                `json:"ingress"`
	ConfigOnly     bool                                `json:"configOnly"`
}

type NetworkPruneReport

type NetworkPruneReport struct {
	ActivityID      *string  `json:"activityId,omitempty"`
	NetworksDeleted []string `json:"networksDeleted"`

	SpaceReclaimed uint64 `json:"spaceReclaimed"`
}

type NetworkSummary

type NetworkSummary struct {
	EnvironmentTag
	ID        string            `json:"id"`
	Name      string            `json:"name"`
	Driver    string            `json:"driver"`
	Scope     string            `json:"scope"`
	Created   time.Time         `json:"created"`
	Options   map[string]string `json:"options"`
	Labels    map[string]string `json:"labels"`
	IPAM      NetworkIPAM       `json:"ipam"`
	InUse     bool              `json:"inUse"`
	IsDefault bool              `json:"isDefault"`
}

type NetworkTopology

type NetworkTopology struct {
	Nodes []NetworkTopologyNode `json:"nodes"`
	Edges []NetworkTopologyEdge `json:"edges"`
}

type NetworkTopologyEdge

type NetworkTopologyEdge struct {
	ID          string `json:"id"`
	Source      string `json:"source"`
	Target      string `json:"target"`
	IPv4Address string `json:"ipv4Address,omitempty"`
	IPv6Address string `json:"ipv6Address,omitempty"`
}

type NetworkTopologyNode

type NetworkTopologyNode struct {
	EnvironmentTag
	ID       string                      `json:"id"`
	Name     string                      `json:"name"`
	Type     NetworkTopologyNodeType     `json:"type"`
	Metadata NetworkTopologyNodeMetadata `json:"metadata"`
}

type NetworkTopologyNodeMetadata

type NetworkTopologyNodeMetadata struct {
	Driver    string `json:"driver,omitempty"`
	Scope     string `json:"scope,omitempty"`
	Status    string `json:"status,omitempty"`
	Image     string `json:"image,omitempty"`
	IsDefault bool   `json:"isDefault,omitempty"`
}

type NetworkTopologyNodeType

type NetworkTopologyNodeType string
const (
	NetworkTopologyNodeTypeNetwork   NetworkTopologyNodeType = "network"
	NetworkTopologyNodeTypeContainer NetworkTopologyNodeType = "container"
)

type NetworkUsageCounts

type NetworkUsageCounts struct {
	Inuse  int `json:"inuse"`
	Unused int `json:"unused"`
	Total  int `json:"total"`
}

type NodeAgentBindingKind

type NodeAgentBindingKind string

type NodeAgentBindingRequest

type NodeAgentBindingRequest struct {
	EnvironmentID     string `json:"environmentId"`
	Rebind            bool   `json:"rebind,omitempty"`
	ReplaceDeployment bool   `json:"replaceDeployment,omitempty"`
}

type NodeAgentCandidate

type NodeAgentCandidate struct {
	EnvironmentID   string `json:"environmentId"`
	EnvironmentName string `json:"environmentName"`
	EnvironmentType string `json:"environmentType"`
}

type NodeAgentReconcileRequest

type NodeAgentReconcileRequest struct{}

type NodeAgentReconcileResponse

type NodeAgentReconcileResponse struct {
	Results []NodeAgentReconcileResult `json:"results"`
}

type NodeAgentReconcileResult

type NodeAgentReconcileResult struct {
	NodeID        string               `json:"nodeId"`
	State         NodeAgentState       `json:"state"`
	EnvironmentID *string              `json:"environmentId,omitempty"`
	Candidates    []NodeAgentCandidate `json:"candidates,omitempty"`
}

type NodeAgentState

type NodeAgentState string

type NodeAgentStatus

type NodeAgentStatus struct {
	State            NodeAgentState        `json:"state"`
	BindingKind      *NodeAgentBindingKind `json:"bindingKind,omitempty"`
	EnvironmentID    *string               `json:"environmentId,omitempty"`
	EnvironmentName  *string               `json:"environmentName,omitempty"`
	EnvironmentType  *string               `json:"environmentType,omitempty"`
	Connected        *bool                 `json:"connected,omitempty"`
	LastHeartbeat    *time.Time            `json:"lastHeartbeat,omitempty"`
	ReportedNodeID   *string               `json:"reportedNodeId,omitempty"`
	ReportedHostname *string               `json:"reportedHostname,omitempty"`
	Candidates       []NodeAgentCandidate  `json:"candidates,omitempty"`
}

type NotificationDispatchAutoHeal

type NotificationDispatchAutoHeal struct {
	ContainerName string `json:"containerName"`
	ContainerID   string `json:"containerId"`
}

type NotificationDispatchBatchContainerUpdate

type NotificationDispatchBatchContainerUpdate struct {
	Updates []NotificationDispatchContainerUpdate `json:"updates"`
}

type NotificationDispatchBatchImageUpdate

type NotificationDispatchBatchImageUpdate struct {
	Updates map[string]*ImageUpdateResponse `json:"updates"`
}

type NotificationDispatchContainerUpdate

type NotificationDispatchContainerUpdate struct {
	ContainerName string `json:"containerName"`
	ImageRef      string `json:"imageRef"`
	OldDigest     string `json:"oldDigest,omitempty"`
	NewDigest     string `json:"newDigest,omitempty"`
}

type NotificationDispatchImageUpdate

type NotificationDispatchImageUpdate struct {
	ImageRef   string              `json:"imageRef"`
	UpdateInfo ImageUpdateResponse `json:"updateInfo"`
}

type NotificationDispatchKind

type NotificationDispatchKind string

type NotificationDispatchPruneReport

type NotificationDispatchPruneReport struct {
	Result PruneAllResult `json:"result"`
}

type NotificationDispatchRequest

type NotificationDispatchRequest struct {
	ImageUpdate          *NotificationDispatchImageUpdate          `json:"imageUpdate,omitempty"`
	BatchImageUpdate     *NotificationDispatchBatchImageUpdate     `json:"batchImageUpdate,omitempty"`
	ContainerUpdate      *NotificationDispatchContainerUpdate      `json:"containerUpdate,omitempty"`
	BatchContainerUpdate *NotificationDispatchBatchContainerUpdate `json:"batchContainerUpdate,omitempty"`
	VulnerabilityFound   *NotificationDispatchVulnerabilityFound   `json:"vulnerabilityFound,omitempty"`
	PruneReport          *NotificationDispatchPruneReport          `json:"pruneReport,omitempty"`
	AutoHeal             *NotificationDispatchAutoHeal             `json:"autoHeal,omitempty"`
	Kind                 NotificationDispatchKind                  `json:"kind"`
}

type NotificationDispatchResponse

type NotificationDispatchResponse struct {
	Message   string `json:"message"`
	Delivered int    `json:"delivered"`
}

type NotificationDispatchVulnerabilityFound

type NotificationDispatchVulnerabilityFound struct {
	CVEID            string `json:"cveId"`
	CVELink          string `json:"cveLink"`
	Severity         string `json:"severity"`
	ImageName        string `json:"imageName"`
	FixedVersion     string `json:"fixedVersion,omitempty"`
	PkgName          string `json:"pkgName,omitempty"`
	InstalledVersion string `json:"installedVersion,omitempty"`
}

type NotificationProvider

type NotificationProvider string

type NotificationSettings

type NotificationSettings struct {
	Config   JsonObject           `json:"config"`
	Provider NotificationProvider `json:"provider"`
	ID       uint                 `json:"id" readOnly:"true"`
	Enabled  bool                 `json:"enabled"`
}

type NotificationTestResponse

type NotificationTestResponse struct {
	Message string `json:"message"`

	Warning string `json:"warning,omitempty"`
}

type OidcAuthUrlRequest

type OidcAuthUrlRequest struct {
	RedirectUri string `json:"redirectUri"`

	MobileRedirectUri string `json:"mobileRedirectUri,omitempty"`
}

type OidcAuthUrlResponse

type OidcAuthUrlResponse struct {
	AuthUrl string `json:"authUrl"`
}

type OidcCallbackRequest

type OidcCallbackRequest struct {
	Code  string `json:"code"`
	State string `json:"state"`

	MobileRedirectUri string `json:"mobileRedirectUri,omitempty"`
}

type OidcConfigResponse

type OidcConfigResponse struct {
	ClientID                    string `json:"clientId"`
	RedirectUri                 string `json:"redirectUri"`
	IssuerUrl                   string `json:"issuerUrl"`
	AuthorizationEndpoint       string `json:"authorizationEndpoint"`
	TokenEndpoint               string `json:"tokenEndpoint"`
	UserinfoEndpoint            string `json:"userinfoEndpoint"`
	DeviceAuthorizationEndpoint string `json:"deviceAuthorizationEndpoint,omitempty"`
	Scopes                      string `json:"scopes"`
}

type OidcDeviceAuthRequest

type OidcDeviceAuthRequest struct {
	RedirectUri string `json:"redirectUri,omitempty"`
}

type OidcDeviceAuthResponse

type OidcDeviceAuthResponse struct {
	DeviceCode              string `json:"deviceCode"`
	UserCode                string `json:"userCode"`
	VerificationUri         string `json:"verificationUri"`
	VerificationUriComplete string `json:"verificationUriComplete,omitempty"`

	ExpiresIn int `json:"expiresIn"`

	Interval int `json:"interval,omitempty"`
}

type OidcDeviceTokenRequest

type OidcDeviceTokenRequest struct {
	DeviceCode string `json:"deviceCode"`
}

type OidcRoleMapping

type OidcRoleMapping struct {
	CreatedAt     time.Time  `json:"createdAt" readOnly:"true"`
	EnvironmentID *string    `json:"environmentId,omitempty" doc:"Environment ID to scope the assignment to; omit for a global assignment"`
	UpdatedAt     *time.Time `json:"updatedAt,omitempty" readOnly:"true"`
	ID            string     `json:"id" readOnly:"true" doc:"Unique identifier of the mapping"`
	ClaimValue    string     `json:"claimValue" required:"false" doc:"OIDC claim value that triggers this mapping" example:"docker-admins"`
	RoleID        string     `json:"roleId" required:"false" doc:"Role to assign when the claim matches"`
	Source        string     `` /* 161-byte string literal not displayed */
}

type OidcRoleMappingSpec

type OidcRoleMappingSpec struct {
	EnvironmentID *string `json:"environmentId,omitempty" doc:"Environment ID to scope the assignment to; omit for a global assignment"`
	ClaimValue    string  `json:"claimValue" doc:"OIDC claim value to match"`
	RoleID        string  `json:"roleId" doc:"Role ID to assign when the claim matches"`
}

type OidcStatusInfo

type OidcStatusInfo struct {
	ProviderName    string `json:"providerName,omitempty"`
	ProviderLogoUrl string `json:"providerLogoUrl,omitempty"`
	MergeAccounts   bool   `json:"mergeAccounts"`
}

type OidcTokenResponse

type OidcTokenResponse struct {
	AccessToken  string `json:"access_token"`
	TokenType    string `json:"token_type"`
	RefreshToken string `json:"refresh_token,omitempty"`
	IDToken      string `json:"id_token,omitempty"`

	ExpiresIn int `json:"expires_in,omitempty"`
}

type OidcUserInfo

type OidcUserInfo struct {
	Extra             map[string]any `json:"-"`
	Subject           string         `json:"sub"`
	Name              string         `json:"name,omitempty" unorm:"nfc" trim:"true"`
	Email             string         `json:"email,omitempty"`
	PreferredUsername string         `json:"preferred_username,omitempty"`
	GivenName         string         `json:"given_name,omitempty" unorm:"nfc" trim:"true"`
	FamilyName        string         `json:"family_name,omitempty" unorm:"nfc" trim:"true"`
	Roles             []string       `json:"roles,omitempty"`
	Groups            []string       `json:"groups,omitempty"`
	EmailVerified     bool           `json:"email_verified,omitempty"`
	Admin             bool           `json:"admin,omitempty"`
}

type Paginated

type Paginated[T any] struct {
	Data               []T                  `json:"data" doc:"Array of items for the current page"`
	FailedEnvironments []EnvironmentFailure `json:"failedEnvironments,omitempty" doc:"Environments whose results are missing from a multi-environment response"`
	Pagination         PaginationResponse   `json:"pagination" doc:"Pagination metadata"`
	Success            bool                 `json:"success" doc:"Whether the request was successful"`
}

type PaginatedWithCounts

type PaginatedWithCounts[T, C any] struct {
	Counts             C                    `json:"counts" doc:"Aggregate counts for the filtered collection"`
	Data               []T                  `json:"data" doc:"Array of items for the current page"`
	FailedEnvironments []EnvironmentFailure `json:"failedEnvironments,omitempty" doc:"Environments whose results are missing from a multi-environment response"`
	Pagination         PaginationResponse   `json:"pagination" doc:"Pagination metadata"`
	Success            bool                 `json:"success" doc:"Whether the request was successful"`
}

type PaginatedWithWarnings

type PaginatedWithWarnings[T any] struct {
	Data       []T                `json:"data"`
	Warnings   []string           `json:"warnings,omitempty"`
	Pagination PaginationResponse `json:"pagination"`
	Success    bool               `json:"success"`
}

type PaginationResponse

type PaginationResponse struct {
	TotalPages      int64 `json:"totalPages" doc:"Total number of pages"`
	TotalItems      int64 `json:"totalItems" doc:"Total number of items in the current filtered set"`
	CurrentPage     int   `json:"currentPage" doc:"Current page number (1-indexed)"`
	ItemsPerPage    int   `json:"itemsPerPage" doc:"Number of items per page"`
	GrandTotalItems int64 `json:"grandTotalItems,omitempty" doc:"Total number of items without filters"`
	HasNextPage     bool  `json:"hasNextPage" doc:"Whether another page exists after this one"`
}

type PasskeyLoginAvailability

type PasskeyLoginAvailability struct {
	Available bool `json:"available" doc:"Whether a passkey is registered for the current WebAuthn domain"`
}

type PasswordChange

type PasswordChange struct {
	CurrentPassword string `json:"currentPassword,omitempty" writeOnly:"true" doc:"Current password of the user (required for non-OIDC users)"`
	NewPassword     string `json:"newPassword" writeOnly:"true" minLength:"8" doc:"New password for the user"`
}

type PatchMode

type PatchMode string

type PatchOptions

type PatchOptions struct {
	Suffix     string `json:"suffix,omitempty" doc:"Suffix appended to the source tag for the patched image"`
	PatchedTag string `json:"patchedTag,omitempty" doc:"Explicit tag for the patched image"`
	// When empty, all outdated OS packages are updated.
	ScanID         string `json:"scanId,omitempty" doc:"Vulnerability scan ID to patch from; empty patches all outdated packages"`
	TimeoutSeconds int    `json:"timeoutSeconds,omitempty" doc:"Timeout for the patch operation in seconds"`
	IgnoreErrors   bool   `json:"ignoreErrors,omitempty" doc:"Continue patching when individual package updates fail"`
}

type PatchRecord

type PatchRecord struct {
	CreatedAt       time.Time   `json:"createdAt"`
	PackagesUpdated *int        `json:"packagesUpdated,omitempty"`
	Error           *string     `json:"error,omitempty"`
	ActivityID      *string     `json:"activityId,omitempty"`
	DurationMs      *int64      `json:"durationMs,omitempty"`
	UpdatedAt       *time.Time  `json:"updatedAt,omitempty"`
	ID              string      `json:"id"`
	EnvironmentID   string      `json:"environmentId"`
	OriginalImageID string      `json:"originalImageId"`
	OriginalRef     string      `json:"originalRef"`
	OriginalDigest  string      `json:"originalDigest,omitempty"`
	PatchedRef      string      `json:"patchedRef"`
	Mode            PatchMode   `json:"mode"`
	Status          PatchStatus `json:"status"`
}

type PatchScanSummary

type PatchScanSummary struct {
	ScanTime     time.Time `json:"scanTime"`
	Status       string    `json:"status"`
	FixableCount int       `json:"fixableCount"`
	TotalCount   int       `json:"totalCount"`
}

type PatchStatus

type PatchStatus string

type PatchTarget

type PatchTarget struct {
	ScanTime      time.Time         `json:"scanTime"`
	LastPatch     *PatchRecord      `json:"lastPatch,omitempty"`
	LastPatchScan *PatchScanSummary `json:"lastPatchScan,omitempty"`
	EnvironmentTag

	ImageID      string `json:"imageId"`
	ImageRef     string `json:"imageRef"`
	FixableCount int    `json:"fixableCount"`
	TotalCount   int    `json:"totalCount"`
	LocalOnly    bool   `json:"localOnly,omitempty"`
}

type PermissionAction

type PermissionAction struct {
	Key         string   `json:"key" doc:"Action verb" example:"start"`
	Permission  string   `json:"permission" doc:"Fully-qualified permission string used in role definitions" example:"containers:start"`
	Label       string   `json:"label" doc:"Human-readable label" example:"Start"`
	Description string   `json:"description,omitempty" doc:"Optional longer description"`
	Requires    []string `` /* 140-byte string literal not displayed */
}

type PermissionPreset

type PermissionPreset struct {
	Key         string   `json:"key" doc:"Stable preset key" example:"editor"`
	Label       string   `json:"label" doc:"Human-readable preset label" example:"All permissions (non-admin)"`
	Description string   `json:"description,omitempty" doc:"Optional longer description for the preset"`
	Permissions []string `json:"permissions" doc:"Permissions included when the preset is selected"`
}

type PermissionResource

type PermissionResource struct {
	Key         string             `json:"key" doc:"Stable resource key" example:"containers"`
	Label       string             `json:"label" doc:"Human-readable label" example:"Containers"`
	Description string             `json:"description" doc:"What the resource covers" example:"Docker containers"`
	Scope       string             `json:"scope" enum:"global,env" doc:"'global' for org-level perms; 'env' for per-environment perms"`
	Actions     []PermissionAction `json:"actions" doc:"Actions available on this resource"`
}

type PermissionsManifest

type PermissionsManifest struct {
	Resources      []PermissionResource `json:"resources" doc:"Resource groups, in display order"`
	Presets        []PermissionPreset   `json:"presets,omitempty" doc:"Optional preset permission bundles for bulk selection in the UI"`
	AccessSurfaces []AccessSurface      `json:"accessSurfaces,omitempty" doc:"Backend-owned route, landing, and category access metadata for frontend UX gating"`
}

type Pod

type Pod struct {
	EnvironmentTag

	ID         string            `json:"id"`
	Name       string            `json:"name"`
	Namespace  string            `json:"namespace,omitempty"`
	Status     string            `json:"status"`
	Created    time.Time         `json:"created"`
	InfraID    string            `json:"infraId,omitempty"`
	Cgroup     string            `json:"cgroup,omitempty"`
	Labels     map[string]string `json:"labels,omitempty"`
	Networks   []string          `json:"networks,omitempty"`
	Containers []PodContainer    `json:"containers"`
}

type PodActionRequest

type PodActionRequest struct {
	Timeout *int   `json:"timeout,omitempty" doc:"Seconds to wait before killing the pod on stop"`
	Signal  string `json:"signal,omitempty" doc:"Signal sent on kill"`
}

type PodContainer

type PodContainer struct {
	ID           string `json:"id"`
	Names        string `json:"names"`
	Status       string `json:"status"`
	RestartCount uint   `json:"restartCount"`
}

type PodCreateRequest

type PodCreateRequest struct {
	Labels             map[string]string `json:"labels,omitempty" doc:"Pod labels"`
	RestartRetries     *uint             `json:"restartRetries,omitempty" doc:"Restart attempts for the on-failure policy"`
	ShareParent        *bool             `json:"shareParent,omitempty" doc:"Use the pod's cgroup as the cgroup parent of its containers"`
	Sysctl             map[string]string `json:"sysctl,omitempty" doc:"Namespaced kernel parameters"`
	Name               string            `json:"name" minLength:"1" doc:"Pod name"`
	Hostname           string            `json:"hostname,omitempty" doc:"Pod hostname"`
	ExitPolicy         string            `json:"exitPolicy,omitempty" enum:"continue,stop" doc:"Behaviour when the last container exits"`
	RestartPolicy      string            `json:"restartPolicy,omitempty" enum:"no,always,on-failure,unless-stopped" doc:"Restart policy for containers in the pod"`
	InfraImage         string            `json:"infraImage,omitempty" doc:"Image for the infra container"`
	InfraName          string            `json:"infraName,omitempty" doc:"Name of the infra container"`
	InfraConmonPidFile string            `json:"infraConmonPidFile,omitempty" doc:"Path that receives the infra container's conmon PID"`
	Pid                string            `json:"pid,omitempty" doc:"PID namespace: host, private, ns:<path>, or container:<id>"`
	Ipc                string            `json:"ipc,omitempty" doc:"IPC namespace: host, private, shareable, none, ns:<path>, or container:<id>"`
	Uts                string            `json:"uts,omitempty" doc:"UTS namespace: host, private, ns:<path>, or container:<id>"`
	Userns             string            `json:"userns,omitempty" doc:"User namespace, for example auto, keep-id, keep-id:uid=1000, host, or ns:<path>"`
	NetworkMode        string            `json:"networkMode,omitempty" doc:"bridge, host, none, private, slirp4netns, pasta, or ns:<path>"`
	HostsFile          string            `json:"hostsFile,omitempty" doc:"Base file for /etc/hosts, or image or none"`
	CgroupParent       string            `json:"cgroupParent,omitempty" doc:"Parent cgroup of the pod"`
	CPUSetCPUs         string            `json:"cpusetCpus,omitempty" doc:"CPUs allowed to run the pod, for example 0-3"`
	CPUSetMems         string            `json:"cpusetMems,omitempty" doc:"Memory nodes allowed to run the pod, for example 0,1"`
	Memory             string            `json:"memory,omitempty" doc:"Memory limit such as 512m or 2g"`
	MemorySwap         string            `json:"memorySwap,omitempty" doc:"Memory plus swap limit such as 1g, or -1 for unlimited swap"`
	ShmSize            string            `json:"shmSize,omitempty" doc:"Size of /dev/shm such as 64m"`
	ShmSizeSystemd     string            `json:"shmSizeSystemd,omitempty" doc:"Size of systemd tmpfs mounts such as 64m"`
	InfraCommand       []string          `json:"infraCommand,omitempty" doc:"Entrypoint of the infra container"`
	SharedNamespaces   []string          `json:"sharedNamespaces,omitempty" doc:"Namespaces shared between pod members"`
	UIDMap             []string          `json:"uidMap,omitempty" doc:"UID mappings as CONTAINER:HOST:SIZE"`
	GIDMap             []string          `json:"gidMap,omitempty" doc:"GID mappings as CONTAINER:HOST:SIZE"`
	NetworkOptions     []string          `json:"networkOptions,omitempty" doc:"Options for the slirp4netns or pasta network mode"`
	Networks           []PodNetwork      `json:"networks,omitempty" doc:"Networks to join"`
	PortMappings       []PodPortMapping  `json:"portMappings,omitempty" doc:"Published ports"`
	DNSServers         []string          `json:"dnsServers,omitempty" doc:"DNS servers"`
	DNSSearch          []string          `json:"dnsSearch,omitempty" doc:"DNS search domains"`
	DNSOptions         []string          `json:"dnsOptions,omitempty" doc:"DNS resolver options"`
	AddHosts           []string          `json:"addHosts,omitempty" doc:"Extra /etc/hosts entries as HOST:IP"`
	BlkioWeightDevices []PodDeviceLimit  `json:"blkioWeightDevices,omitempty" doc:"Per-device block IO weights"`
	DeviceReadBps      []PodDeviceLimit  `json:"deviceReadBps,omitempty" doc:"Per-device read rate limits"`
	DeviceWriteBps     []PodDeviceLimit  `json:"deviceWriteBps,omitempty" doc:"Per-device write rate limits"`
	Devices            []string          `json:"devices,omitempty" doc:"Host devices as HOST[:CONTAINER[:PERMISSIONS]]"`
	GPUs               []string          `json:"gpus,omitempty" doc:"NVIDIA GPUs to add through CDI, or all"`
	Volumes            []PodVolume       `json:"volumes,omitempty" doc:"Bind mounts and named volumes"`
	VolumesFrom        []string          `json:"volumesFrom,omitempty" doc:"Containers to mount volumes from, as CONTAINER[:OPTIONS]"`
	SecurityOpt        []string          `json:"securityOpt,omitempty" doc:"Security options such as label=disable"`
	CPUs               float64           `json:"cpus,omitempty" minimum:"0" doc:"Number of CPUs"`
	CPUShares          uint64            `json:"cpuShares,omitempty" doc:"Relative CPU weight"`
	BlkioWeight        uint16            `json:"blkioWeight,omitempty" minimum:"10" maximum:"1000" doc:"Relative block IO weight"`
	NoInfra            bool              `json:"noInfra,omitempty" doc:"Create the pod without an infra container"`
	NoManageResolvConf bool              `json:"noManageResolvConf,omitempty" doc:"Use the image's /etc/resolv.conf"`
	NoHosts            bool              `json:"noHosts,omitempty" doc:"Use the image's /etc/hosts"`
	NoHostname         bool              `json:"noHostname,omitempty" doc:"Use the image's /etc/hostname"`
}

type PodCreateResponse

type PodCreateResponse struct {
	ID string `json:"id"`
}

type PodDevice

type PodDevice struct {
	PathOnHost        string `json:"pathOnHost"`
	PathInContainer   string `json:"pathInContainer"`
	CgroupPermissions string `json:"cgroupPermissions,omitempty"`
}

type PodDeviceLimit

type PodDeviceLimit struct {
	Device string `json:"device" minLength:"1" doc:"Block device as MAJOR:MINOR"`
	Value  string `json:"value" minLength:"1" doc:"Weight (10-1000) for weight limits, or a rate such as 1mb for throughput limits"`
}

type PodInfraConfig

type PodInfraConfig struct {
	PortBindings       map[string][]PodPortBinding `json:"portBindings,omitempty"`
	NetworkOptions     map[string][]string         `json:"networkOptions,omitempty"`
	StaticIP           string                      `json:"staticIp,omitempty"`
	StaticMAC          string                      `json:"staticMac,omitempty"`
	HostsFile          string                      `json:"hostsFile,omitempty"`
	PidNS              string                      `json:"pidNs,omitempty"`
	UserNS             string                      `json:"userNs,omitempty"`
	UtsNS              string                      `json:"utsNs,omitempty"`
	DNSServer          []string                    `json:"dnsServer,omitempty"`
	DNSSearch          []string                    `json:"dnsSearch,omitempty"`
	DNSOption          []string                    `json:"dnsOption,omitempty"`
	HostAdd            []string                    `json:"hostAdd,omitempty"`
	Networks           []string                    `json:"networks,omitempty"`
	HostNetwork        bool                        `json:"hostNetwork"`
	NoManageResolvConf bool                        `json:"noManageResolvConf"`
	NoManageHostname   bool                        `json:"noManageHostname"`
	NoManageHosts      bool                        `json:"noManageHosts"`
}

type PodInspect

type PodInspect struct {
	Created            time.Time             `json:"created"`
	Labels             map[string]string     `json:"labels,omitempty"`
	InfraConfig        *PodInfraConfig       `json:"infraConfig,omitempty"`
	ID                 string                `json:"id"`
	Name               string                `json:"name"`
	Namespace          string                `json:"namespace,omitempty"`
	State              string                `json:"state"`
	ExitPolicy         string                `json:"exitPolicy,omitempty"`
	RestartPolicy      string                `json:"restartPolicy,omitempty"`
	Hostname           string                `json:"hostname,omitempty"`
	CgroupParent       string                `json:"cgroupParent,omitempty"`
	CgroupPath         string                `json:"cgroupPath,omitempty"`
	InfraContainerID   string                `json:"infraContainerId,omitempty"`
	CPUSetCPUs         string                `json:"cpusetCpus,omitempty"`
	CPUSetMems         string                `json:"cpusetMems,omitempty"`
	CreateCommand      []string              `json:"createCommand,omitempty"`
	SharedNamespaces   []string              `json:"sharedNamespaces,omitempty"`
	Containers         []PodInspectContainer `json:"containers"`
	BlkioWeightDevices []PodWeightDevice     `json:"blkioWeightDevices,omitempty"`
	DeviceReadBps      []PodThrottleDevice   `json:"deviceReadBps,omitempty"`
	DeviceWriteBps     []PodThrottleDevice   `json:"deviceWriteBps,omitempty"`
	Mounts             []PodMount            `json:"mounts,omitempty"`
	Devices            []PodDevice           `json:"devices,omitempty"`
	VolumesFrom        []string              `json:"volumesFrom,omitempty"`
	SecurityOpts       []string              `json:"securityOpts,omitempty"`
	NumContainers      uint                  `json:"numContainers"`
	CPUPeriod          uint64                `json:"cpuPeriod,omitempty"`
	CPUQuota           int64                 `json:"cpuQuota,omitempty"`
	CPUShares          uint64                `json:"cpuShares,omitempty"`
	MemoryLimit        uint64                `json:"memoryLimit,omitempty"`
	MemorySwap         uint64                `json:"memorySwap,omitempty"`
	BlkioWeight        uint64                `json:"blkioWeight,omitempty"`
	CreateCgroup       bool                  `json:"createCgroup"`
	CreateInfra        bool                  `json:"createInfra"`
}

type PodInspectContainer

type PodInspectContainer struct {
	Created  time.Time        `json:"created"`
	ID       string           `json:"id"`
	Name     string           `json:"name"`
	State    string           `json:"state"`
	Image    string           `json:"image,omitempty"`
	Status   string           `json:"status,omitempty"`
	Ports    []PodPortMapping `json:"ports,omitempty"`
	ExitCode int32            `json:"exitCode"`
	IsInfra  bool             `json:"isInfra"`
}

type PodMount

type PodMount struct {
	Type        string   `json:"type"`
	Name        string   `json:"name,omitempty"`
	Source      string   `json:"source,omitempty"`
	Destination string   `json:"destination"`
	Driver      string   `json:"driver,omitempty"`
	Mode        string   `json:"mode,omitempty"`
	Propagation string   `json:"propagation,omitempty"`
	SubPath     string   `json:"subPath,omitempty"`
	Options     []string `json:"options,omitempty"`
	RW          bool     `json:"rw"`
}

type PodNetwork

type PodNetwork struct {
	Name          string   `json:"name" minLength:"1" doc:"Network to join"`
	StaticMAC     string   `json:"staticMac,omitempty" doc:"Static MAC address"`
	InterfaceName string   `json:"interfaceName,omitempty" doc:"Interface name inside the pod"`
	Aliases       []string `json:"aliases,omitempty" doc:"Network-scoped aliases"`
	StaticIPs     []string `json:"staticIps,omitempty" doc:"Static IPv4 or IPv6 addresses"`
}

type PodPortBinding

type PodPortBinding struct {
	HostIP   string `json:"hostIp,omitempty"`
	HostPort string `json:"hostPort"`
}

type PodPortMapping

type PodPortMapping struct {
	HostIP        string `json:"hostIp,omitempty" doc:"Host IP to bind"`
	Protocol      string `json:"protocol,omitempty" doc:"tcp, udp, or sctp"`
	ContainerPort uint16 `json:"containerPort" minimum:"1" doc:"Port inside the pod"`
	HostPort      uint16 `json:"hostPort,omitempty" doc:"Port on the host"`
	Range         uint16 `json:"range,omitempty" doc:"Number of consecutive ports to map"`
}

type PodPruneReport

type PodPruneReport struct {
	ID string `json:"id"`
}

type PodStats

type PodStats struct {
	Pod           string `json:"pod"`
	CID           string `json:"cid"`
	Name          string `json:"name"`
	CPU           string `json:"cpu"`
	MemUsage      string `json:"memUsage"`
	MemUsageBytes string `json:"memUsageBytes"`
	Mem           string `json:"mem"`
	NetIO         string `json:"netIo"`
	BlockIO       string `json:"blockIo"`
	PIDS          string `json:"pids"`
}

type PodThrottleDevice

type PodThrottleDevice struct {
	Path string `json:"path"`
	Rate uint64 `json:"rate"`
}

type PodTop

type PodTop struct {
	Titles    []string   `json:"titles"`
	Processes [][]string `json:"processes"`
}

type PodVolume

type PodVolume struct {
	Source      string   `json:"source" minLength:"1" doc:"Absolute host path or named volume"`
	Destination string   `json:"destination" minLength:"1" doc:"Path inside the pod"`
	Options     []string `json:"options,omitempty" doc:"Mount options such as ro, z, Z, or U"`
}

type PodWeightDevice

type PodWeightDevice struct {
	Path   string `json:"path"`
	Weight uint16 `json:"weight"`
}

type PodmanAutoUpdateMode

type PodmanAutoUpdateMode string

type PodmanAutoUpdateOptions

type PodmanAutoUpdateOptions struct {
	Rollback  *bool               `json:"rollback,omitempty"`
	TLSVerify *bool               `json:"tlsVerify,omitempty"`
	Filters   map[string][]string `json:"filters,omitempty"`
	Authfile  string              `json:"authfile,omitempty"`
	DryRun    bool                `json:"dryRun,omitempty"`
}

type PodmanAutoUpdateReport

type PodmanAutoUpdateReport struct {
	ContainerID   string `json:"containerId"`
	ContainerName string `json:"containerName"`
	ImageName     string `json:"imageName"`
	Policy        string `json:"policy"`
	SystemdUnit   string `json:"systemdUnit"`
	Updated       string `json:"updated"`
}

type PodmanAutoUpdateResult

type PodmanAutoUpdateResult struct {
	Unit    *PodmanUnitStatus        `json:"unit,omitempty"`
	Mode    PodmanAutoUpdateMode     `json:"mode"`
	Reports []PodmanAutoUpdateReport `json:"reports"`
	Errors  []string                 `json:"errors"`
}

type PodmanContainer

type PodmanContainer struct {
	Created   time.Time         `json:"created"`
	Labels    map[string]string `json:"labels,omitempty"`
	ID        string            `json:"id"`
	Image     string            `json:"image"`
	ImageID   string            `json:"imageId,omitempty"`
	State     string            `json:"state"`
	Status    string            `json:"status,omitempty"`
	Pod       string            `json:"pod,omitempty"`
	PodName   string            `json:"podName,omitempty"`
	Names     []string          `json:"names"`
	Ports     []PodPortMapping  `json:"ports,omitempty"`
	StartedAt int64             `json:"startedAt,omitempty"`
	ExitCode  int32             `json:"exitCode"`
	Exited    bool              `json:"exited"`
	IsInfra   bool              `json:"isInfra"`
}

type PodmanInfo

type PodmanInfo struct {
	Version    PodmanInfoVersion    `json:"version"`
	Plugins    PodmanInfoPlugins    `json:"plugins"`
	Registries PodmanInfoRegistries `json:"registries"`
	Store      PodmanInfoStore      `json:"store"`
	Host       PodmanInfoHost       `json:"host"`
}

type PodmanInfoConmon

type PodmanInfoConmon struct {
	Package string `json:"package,omitempty"`
	Path    string `json:"path,omitempty"`
	Version string `json:"version,omitempty"`
}

type PodmanInfoContainerStore

type PodmanInfoContainerStore struct {
	Number  int `json:"number"`
	Paused  int `json:"paused"`
	Running int `json:"running"`
	Stopped int `json:"stopped"`
}

type PodmanInfoDistribution

type PodmanInfoDistribution struct {
	Distribution string `json:"distribution,omitempty"`
	Variant      string `json:"variant,omitempty"`
	Version      string `json:"version,omitempty"`
	Codename     string `json:"codename,omitempty"`
}

type PodmanInfoHelperBinary

type PodmanInfoHelperBinary struct {
	Executable string `json:"executable,omitempty"`
	Package    string `json:"package,omitempty"`
	Version    string `json:"version,omitempty"`
}

type PodmanInfoHost

type PodmanInfoHost struct {
	NetworkBackendInfo PodmanInfoNetworkBackend `json:"networkBackendInfo"`
	Distribution       PodmanInfoDistribution   `json:"distribution"`
	OCIRuntime         PodmanInfoOCIRuntime     `json:"ociRuntime"`
	Conmon             PodmanInfoConmon         `json:"conmon"`
	Slirp4netns        PodmanInfoHelperBinary   `json:"slirp4netns"`
	Pasta              PodmanInfoHelperBinary   `json:"pasta"`
	Security           PodmanInfoSecurity       `json:"security"`
	Arch               string                   `json:"arch,omitempty"`
	BuildahVersion     string                   `json:"buildahVersion,omitempty"`
	CgroupManager      string                   `json:"cgroupManager,omitempty"`
	CgroupVersion      string                   `json:"cgroupVersion,omitempty"`
	DatabaseBackend    string                   `json:"databaseBackend,omitempty"`
	EventLogger        string                   `json:"eventLogger,omitempty"`
	Hostname           string                   `json:"hostname,omitempty"`
	Kernel             string                   `json:"kernel,omitempty"`
	LogDriver          string                   `json:"logDriver,omitempty"`
	NetworkBackend     string                   `json:"networkBackend,omitempty"`
	Os                 string                   `json:"os,omitempty"`
	RootlessNetworkCmd string                   `json:"rootlessNetworkCmd,omitempty"`
	Uptime             string                   `json:"uptime,omitempty"`
	IDMappings         PodmanInfoIDMappings     `json:"idMappings"`
	CgroupControllers  []string                 `json:"cgroupControllers,omitempty"`
	RemoteSocket       PodmanInfoRemoteSocket   `json:"remoteSocket"`
	CPUs               int                      `json:"cpus"`
	MemFree            int64                    `json:"memFree"`
	MemTotal           int64                    `json:"memTotal"`
	SwapFree           int64                    `json:"swapFree"`
	SwapTotal          int64                    `json:"swapTotal"`
	ServiceIsRemote    bool                     `json:"serviceIsRemote"`
}

type PodmanInfoIDMap

type PodmanInfoIDMap struct {
	ContainerID int64 `json:"container_id"`
	HostID      int64 `json:"host_id"`
	Size        int64 `json:"size"`
}

type PodmanInfoIDMappings

type PodmanInfoIDMappings struct {
	UIDMap []PodmanInfoIDMap `json:"uidmap,omitempty"`
	GIDMap []PodmanInfoIDMap `json:"gidmap,omitempty"`
}

type PodmanInfoImageStore

type PodmanInfoImageStore struct {
	Number int `json:"number"`
}

type PodmanInfoNetworkBackend

type PodmanInfoNetworkBackend struct {
	Backend        string               `json:"backend,omitempty"`
	Version        string               `json:"version,omitempty"`
	Package        string               `json:"package,omitempty"`
	Path           string               `json:"path,omitempty"`
	DNS            PodmanInfoNetworkDNS `json:"dns"`
	DefaultNetwork string               `json:"defaultNetwork,omitempty"`
}

type PodmanInfoNetworkDNS

type PodmanInfoNetworkDNS struct {
	Version string `json:"version,omitempty"`
	Package string `json:"package,omitempty"`
	Path    string `json:"path,omitempty"`
}

type PodmanInfoOCIRuntime

type PodmanInfoOCIRuntime struct {
	Name    string `json:"name,omitempty"`
	Package string `json:"package,omitempty"`
	Path    string `json:"path,omitempty"`
	Version string `json:"version,omitempty"`
}

type PodmanInfoPlugins

type PodmanInfoPlugins struct {
	Network []string `json:"network,omitempty"`
	Volume  []string `json:"volume,omitempty"`
	Log     []string `json:"log,omitempty"`
}

type PodmanInfoRegistries

type PodmanInfoRegistries struct {
	Search []string `json:"search,omitempty"`
}

type PodmanInfoRemoteSocket

type PodmanInfoRemoteSocket struct {
	Path   string `json:"path,omitempty"`
	Exists bool   `json:"exists"`
}

type PodmanInfoSecurity

type PodmanInfoSecurity struct {
	SeccompProfilePath string `json:"seccompProfilePath,omitempty"`
	Capabilities       string `json:"capabilities,omitempty"`
	Rootless           bool   `json:"rootless"`
	SELinuxEnabled     bool   `json:"selinuxEnabled"`
	AppArmorEnabled    bool   `json:"apparmorEnabled"`
	SeccompEnabled     bool   `json:"seccompEnabled"`
}

type PodmanInfoStore

type PodmanInfoStore struct {
	GraphStatus     map[string]string        `json:"graphStatus,omitempty"`
	ConfigFile      string                   `json:"configFile,omitempty"`
	GraphDriverName string                   `json:"graphDriverName,omitempty"`
	GraphRoot       string                   `json:"graphRoot,omitempty"`
	RunRoot         string                   `json:"runRoot,omitempty"`
	VolumePath      string                   `json:"volumePath,omitempty"`
	ContainerStore  PodmanInfoContainerStore `json:"containerStore"`
	ImageStore      PodmanInfoImageStore     `json:"imageStore"`
}

type PodmanInfoVersion

type PodmanInfoVersion struct {
	APIVersion string `json:"apiVersion,omitempty"`
	Version    string `json:"version,omitempty"`
	GoVersion  string `json:"goVersion,omitempty"`
	GitCommit  string `json:"gitCommit,omitempty"`
	BuiltTime  string `json:"builtTime,omitempty"`
	OsArch     string `json:"osArch,omitempty"`
}

type PodmanSecret

type PodmanSecret struct {
	Spec      PodmanSecretSpec `json:"spec"`
	CreatedAt time.Time        `json:"createdAt"`
	UpdatedAt time.Time        `json:"updatedAt"`
	EnvironmentTag

	ID string `json:"id"`
}

type PodmanSecretCreateRequest

type PodmanSecretCreateRequest struct {
	DriverOptions map[string]string `json:"driverOptions,omitempty" doc:"Secret driver options"`
	Labels        map[string]string `json:"labels,omitempty" doc:"Secret labels"`
	Name          string            `json:"name" minLength:"1" doc:"Secret name"`
	Data          string            `json:"data" minLength:"1" doc:"Secret value"`
	Driver        string            `json:"driver,omitempty" doc:"Secret driver"`
}

type PodmanSecretCreateResponse

type PodmanSecretCreateResponse struct {
	ID string `json:"id"`
}

type PodmanSecretDriver

type PodmanSecretDriver struct {
	Options map[string]string `json:"options,omitempty"`
	Name    string            `json:"name"`
}

type PodmanSecretSpec

type PodmanSecretSpec struct {
	Driver PodmanSecretDriver `json:"driver"`
	Labels map[string]string  `json:"labels,omitempty"`
	Name   string             `json:"name"`
}

type PodmanSecretUpdateRequest

type PodmanSecretUpdateRequest struct {
	DriverOptions map[string]string `json:"driverOptions,omitempty" doc:"Secret driver options"`
	Labels        map[string]string `json:"labels,omitempty" doc:"Secret labels"`
	Data          string            `json:"data" minLength:"1" doc:"New secret value; Podman replaces the whole secret"`
	Driver        string            `json:"driver,omitempty" doc:"Secret driver"`
}

type PodmanStatus

type PodmanStatus struct {
	Version              string               `json:"version,omitempty"`
	APIVersion           string               `json:"apiVersion,omitempty"`
	AutoUpdateMode       PodmanAutoUpdateMode `json:"autoUpdateMode"`
	SystemdScope         PodmanSystemdScope   `json:"systemdScope,omitempty"`
	SystemdReason        string               `json:"systemdReason,omitempty"`
	Reason               string               `json:"reason,omitempty"`
	PodCount             int                  `json:"podCount" doc:"Number of Podman pods"`
	Detected             bool                 `json:"detected"`
	Rootless             bool                 `json:"rootless"`
	QuadletsSupported    bool                 `json:"quadletsSupported"`
	QuadletAppsSupported bool                 `json:"quadletAppsSupported"`
	SystemdAvailable     bool                 `json:"systemdAvailable"`
}

type PodmanSystemdAvailability

type PodmanSystemdAvailability struct {
	Scope     PodmanSystemdScope `json:"scope,omitempty"`
	Reason    string             `json:"reason,omitempty"`
	Available bool               `json:"available"`
}

type PodmanSystemdScope

type PodmanSystemdScope string

type PodmanUnitStatus

type PodmanUnitStatus struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	LoadState   string `json:"loadState"`
	ActiveState string `json:"activeState"`
	SubState    string `json:"subState"`
}

type PodmanVersion

type PodmanVersion struct {
	Version       string                   `json:"version"`
	APIVersion    string                   `json:"apiVersion"`
	MinAPIVersion string                   `json:"minApiVersion,omitempty"`
	GitCommit     string                   `json:"gitCommit,omitempty"`
	GoVersion     string                   `json:"goVersion,omitempty"`
	Os            string                   `json:"os,omitempty"`
	Arch          string                   `json:"arch,omitempty"`
	KernelVersion string                   `json:"kernelVersion,omitempty"`
	Components    []PodmanVersionComponent `json:"components,omitempty"`
}

type PodmanVersionComponent

type PodmanVersionComponent struct {
	Name    string `json:"name"`
	Version string `json:"version"`
}

type PortMapping

type PortMapping struct {
	EnvironmentTag
	ID            string `json:"id"`
	ContainerID   string `json:"containerId"`
	ContainerName string `json:"containerName"`
	HostIP        string `json:"hostIp,omitempty"`
	Protocol      string `json:"protocol"`
	HostPort      int    `json:"hostPort,omitempty"`
	ContainerPort int    `json:"containerPort"`
	IsPublished   bool   `json:"isPublished"`
}

type Project

type Project struct {
	StatusReason       *string                    `json:"statusReason,omitempty" readOnly:"true"`
	ActivityID         *string                    `json:"activityId,omitempty" readOnly:"true"`
	LastSyncCommit     *string                    `json:"lastSyncCommit,omitempty" readOnly:"true"`
	GitOpsManagedBy    *string                    `json:"gitOpsManagedBy,omitempty" readOnly:"true"`
	UpdateInfo         *ProjectUpdateInfo         `json:"updateInfo,omitempty" readOnly:"true"`
	ArchivedAt         *time.Time                 `json:"archivedAt,omitempty" readOnly:"true"`
	ConfigurationError *ProjectConfigurationError `json:"configurationError,omitempty" readOnly:"true"`
	EnvironmentTag
	Status                string       `json:"status" readOnly:"true"`
	DirName               string       `json:"dirName,omitempty" readOnly:"true"`
	ComposeContent        string       `json:"composeContent,omitempty"`
	ComposeFileName       string       `json:"composeFileName,omitempty" readOnly:"true"`
	EnvContent            string       `json:"envContent,omitempty"`
	OverrideContent       string       `json:"overrideContent,omitempty"`
	OverrideFileName      string       `json:"overrideFileName,omitempty" readOnly:"true"`
	Name                  string       `json:"name" required:"false"`
	GitRepositoryURL      string       `json:"gitRepositoryURL,omitempty" readOnly:"true"`
	GitRepositoryProvider string       `json:"gitRepositoryProvider,omitempty" readOnly:"true"`
	IconLightURL          string       `json:"iconLightUrl,omitempty" readOnly:"true"`
	RelativePath          string       `json:"relativePath,omitempty" readOnly:"true"`
	ProjectsRoot          string       `json:"projectsRoot,omitempty" readOnly:"true"`
	ID                    string       `json:"id" readOnly:"true"`
	IconDarkURL           string       `json:"iconDarkUrl,omitempty" readOnly:"true"`
	Path                  string       `json:"path" readOnly:"true"`
	UpdatedAt             string       `json:"updatedAt" readOnly:"true"`
	CreatedAt             string       `json:"createdAt" readOnly:"true"`
	Tags                  []ProjectTag `json:"tags" readOnly:"true"`

	ComposeFiles    []string                     `json:"composeFiles,omitempty" readOnly:"true"`
	RuntimeServices []ProjectRuntimeService      `json:"runtimeServices,omitempty" readOnly:"true"`
	Services        []composetypes.ServiceConfig `json:"services,omitempty" readOnly:"true"`
	URLs            []string                     `json:"urls,omitempty" readOnly:"true"`
	IncludeFiles    []ProjectIncludeFile         `json:"includeFiles,omitempty" readOnly:"true"`
	RunningCount    int                          `json:"runningCount" readOnly:"true"`
	ServiceCount    int                          `json:"serviceCount" readOnly:"true"`

	IsDiscovered      bool `json:"isDiscovered,omitzero" readOnly:"true"`
	IsArchived        bool `json:"isArchived" readOnly:"true"`
	HasBuildDirective bool `json:"hasBuildDirective,omitzero" readOnly:"true"`
	RedeployDisabled  bool `json:"redeployDisabled,omitzero" readOnly:"true"`
	EnvFileExists     bool `json:"envFileExists,omitzero" readOnly:"true"`
}

func (*Project) UnmarshalJSON

func (d *Project) UnmarshalJSON(data []byte) error

type ProjectBuildOptions

type ProjectBuildOptions struct {
	Push     *bool
	Load     *bool
	Provider string
	Services []string
}

type ProjectBuildRequest

type ProjectBuildRequest struct {
	Push     *bool    `json:"push,omitempty" doc:"Push images"`
	Load     *bool    `json:"load,omitempty" doc:"Load images into Docker"`
	Provider string   `json:"provider,omitempty" doc:"Build provider override"`
	Services []string `json:"services,omitempty" doc:"Service names to build"`
}

type ProjectConfigurationError

type ProjectConfigurationError struct {
	Code             string `json:"code"`
	Path             string `json:"path"`
	UID              int    `json:"uid"`
	GID              int    `json:"gid"`
	BlocksOperations bool   `json:"blocksOperations"`
}

type ProjectDeployOptions

type ProjectDeployOptions struct {
	PullPolicy    string `json:"pullPolicy,omitempty" binding:"omitempty,oneof=missing always never"`
	ForceRecreate bool   `json:"forceRecreate,omitempty"`
	Build         bool   `json:"build,omitempty"`
	RemoveOrphans bool   `json:"removeOrphans,omitempty"`

	RecreateVolumes bool `json:"recreateVolumes,omitempty"`
}

type ProjectDestroy

type ProjectDestroy struct {
	RemoveFiles   *bool `json:"removeFiles,omitempty"`
	RemoveVolumes bool  `json:"removeVolumes,omitempty"`
}

type ProjectDetailsOptions

type ProjectDetailsOptions struct {
	IncludeComposeContent  bool
	IncludeEnvState        bool
	IncludeIncludeFiles    bool
	IncludeServiceConfigs  bool
	IncludeRuntimeServices bool
	IncludeUpdateInfo      bool
}

func AllProjectDetails

func AllProjectDetails() ProjectDetailsOptions

type ProjectIncludeFile

type ProjectIncludeFile struct {
	Path         string `json:"path"`
	RelativePath string `json:"relativePath"`
	Content      string `json:"content,omitempty"`
}

type ProjectRecord

type ProjectRecord struct {
	CreatedAt          time.Time
	DirName            *string
	StatusReason       *string
	GitOpsManagedBy    *string
	ComposeProjectName *string
	BuildImageRefsJSON *string
	ArchivedAt         *time.Time
	UpdatedAt          *time.Time
	ID                 string
	Name               string
	Path               string
	Status             string
	ServiceCount       int
	RunningCount       int
	IsArchived         bool
}

type ProjectReference

type ProjectReference struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

type ProjectRenameJournal

type ProjectRenameJournal struct {
	UpdatedAt  time.Time             `json:"updatedAt"`
	OldDirName *string               `json:"oldDirName,omitempty"`
	ProjectID  string                `json:"projectId"`
	OldName    string                `json:"oldName"`
	NewName    string                `json:"newName"`
	OldPath    string                `json:"oldPath"`
	NewPath    string                `json:"newPath"`
	NewDirName string                `json:"newDirName"`
	Phase      string                `json:"phase"`
	Volumes    []VolumeJournalVolume `json:"volumes,omitempty"`
}

type ProjectRenameRecoveryOperations

type ProjectRenameRecoveryOperations struct {
	Docker               func(context.Context, bool) (*client.Client, error)
	WriteJournal         func(context.Context, *ProjectRenameJournal, string) error
	ClearJournal         func(context.Context, string) error
	ClearRollbackCleanup func(context.Context, string) error
	RestoreState         func(context.Context, *ProjectRenameJournal) error
	WriteRollbackCleanup func(context.Context, *ProjectRenameJournal) error
}

type ProjectRenameRollbackCleanup

type ProjectRenameRollbackCleanup struct {
	UpdatedAt time.Time             `json:"updatedAt"`
	ProjectID string                `json:"projectId"`
	OldName   string                `json:"oldName"`
	OldPath   string                `json:"oldPath"`
	NewName   string                `json:"newName"`
	NewPath   string                `json:"newPath"`
	Volumes   []VolumeJournalVolume `json:"volumes,omitempty"`
}

type ProjectRuntimeService

type ProjectRuntimeService struct {
	ContainerLabels  map[string]string           `json:"-"`
	Health           *string                     `json:"health,omitempty"`
	ServiceConfig    *composetypes.ServiceConfig `json:"serviceConfig,omitempty"`
	ImageID          string                      `json:"-"`
	Name             string                      `json:"name"`
	Image            string                      `json:"image"`
	Status           string                      `json:"status"`
	ContainerID      string                      `json:"containerId,omitempty"`
	ContainerName    string                      `json:"containerName,omitempty"`
	IconLightURL     string                      `json:"iconLightUrl,omitempty"`
	IconDarkURL      string                      `json:"iconDarkUrl,omitempty"`
	Ports            []string                    `json:"ports,omitempty"`
	RedeployDisabled bool                        `json:"redeployDisabled,omitempty"`
}

func (*ProjectRuntimeService) UnmarshalJSON

func (r *ProjectRuntimeService) UnmarshalJSON(data []byte) error

type ProjectServiceUpdateInfo

type ProjectServiceUpdateInfo struct {
	UpdateInfo *ImageUpdateInfo `json:"updateInfo,omitempty"`
	ImageRef   string           `json:"imageRef"`
}

type ProjectStatusCounts

type ProjectStatusCounts struct {
	RunningProjects  int `json:"runningProjects"`
	StoppedProjects  int `json:"stoppedProjects"`
	TotalProjects    int `json:"totalProjects"`
	ArchivedProjects int `json:"archivedProjects"`

	UpdatesAvailable int `json:"updatesAvailable" doc:"Active projects with a pending image update"`
}

type ProjectTag

type ProjectTag struct {
	Name    string             `json:"name"`
	Color   ProjectTagColor    `json:"color"`
	Sources []ProjectTagSource `json:"sources"`
}

type ProjectTagAssignment

type ProjectTagAssignment struct {
	ProjectID string
	Name      string
	Source    ProjectTagSource
	Color     ProjectTagColor
}

type ProjectTagColor

type ProjectTagColor string

type ProjectTagOption

type ProjectTagOption struct {
	Name  string          `json:"name"`
	Color ProjectTagColor `json:"color"`
}

type ProjectTagSource

type ProjectTagSource string

type ProjectUpdateInfo

type ProjectUpdateInfo struct {
	ServiceUpdates     map[string]ProjectServiceUpdateInfo `json:"serviceUpdates,omitempty"`
	ErrorMessage       *string                             `json:"errorMessage,omitempty"`
	UpdateInfoByRef    map[string]ImageUpdateInfo          `json:"updateInfoByRef,omitempty"`
	LastCheckedAt      *time.Time                          `json:"lastCheckedAt,omitempty"`
	Status             string                              `json:"status"`
	ImageRefs          []string                            `json:"imageRefs,omitempty"`
	UpdatedImageRefs   []string                            `json:"updatedImageRefs,omitempty"`
	NotPulledImageRefs []string                            `json:"notPulledImageRefs,omitempty"`
	ImageCount         int                                 `json:"imageCount"`
	CheckedImageCount  int                                 `json:"checkedImageCount"`
	ImagesWithUpdates  int                                 `json:"imagesWithUpdates"`
	ImagesNotPulled    int                                 `json:"imagesNotPulled"`
	ErrorCount         int                                 `json:"errorCount"`
	HasUpdate          bool                                `json:"hasUpdate"`
}

type ProjectVolumeRenameConflictError

type ProjectVolumeRenameConflictError struct {
	VolumeName string
}

func (*ProjectVolumeRenameConflictError) Error

type ProjectVolumeRenameInUseError

type ProjectVolumeRenameInUseError struct {
	VolumeName   string
	ContainerIDs []string
}

func (*ProjectVolumeRenameInUseError) Error

type ProjectVolumeRenameInsufficientSpaceError

type ProjectVolumeRenameInsufficientSpaceError struct {
	SourceVolume string
	TargetVolume string
	Detail       string
}

func (*ProjectVolumeRenameInsufficientSpaceError) Error

type ProjectWorkspaceUpdateManifest

type ProjectWorkspaceUpdateManifest struct {
	FileChanges []WorkspaceFileChange `json:"fileChanges" binding:"required" minItems:"1" maxItems:"500"`
}

type ProjectsDirectoryEntry

type ProjectsDirectoryEntry struct {
	Path    string `json:"path"`
	Enabled bool   `json:"enabled"`
}

type ProjectsDirectoryStatus

type ProjectsDirectoryStatus struct {
	Path          string `json:"path"`
	ContainerPath string `json:"containerPath"`
	Error         string `json:"error,omitempty"`
	Primary       bool   `json:"primary"`
	Enabled       bool   `json:"enabled"`
	Exists        bool   `json:"exists"`
}

type PruneAllRequest

type PruneAllRequest struct {
	Containers *PruneContainersOptions `json:"containers,omitempty"`
	Images     *PruneImagesOptions     `json:"images,omitempty"`
	Volumes    *PruneVolumesOptions    `json:"volumes,omitempty"`
	Networks   *PruneNetworksOptions   `json:"networks,omitempty"`
	BuildCache *PruneBuildCacheOptions `json:"buildCache,omitempty"`
}

func (*PruneAllRequest) UnmarshalJSON

func (r *PruneAllRequest) UnmarshalJSON(data []byte) error

type PruneAllResult

type PruneAllResult struct {
	ActivityID       *string  `json:"activityId,omitempty"`
	ContainersPruned []string `json:"containersPruned,omitempty"`
	ImagesDeleted    []string `json:"imagesDeleted,omitempty"`
	VolumesDeleted   []string `json:"volumesDeleted,omitempty"`
	NetworksDeleted  []string `json:"networksDeleted,omitempty"`
	Errors           []string `json:"errors,omitempty"`

	SpaceReclaimed uint64 `json:"spaceReclaimed"`

	ContainerSpaceReclaimed uint64 `json:"containerSpaceReclaimed,omitempty"`

	ImageSpaceReclaimed uint64 `json:"imageSpaceReclaimed,omitempty"`

	VolumeSpaceReclaimed uint64 `json:"volumeSpaceReclaimed,omitempty"`

	BuildCacheSpaceReclaimed uint64 `json:"buildCacheSpaceReclaimed,omitempty"`
	Success                  bool   `json:"success"`
}

type PruneBuildCacheMode

type PruneBuildCacheMode string

type PruneBuildCacheOptions

type PruneBuildCacheOptions struct {
	Mode  PruneBuildCacheMode `json:"mode"`
	Until string              `json:"until,omitempty"`
}

type PruneContainerMode

type PruneContainerMode string

type PruneContainersOptions

type PruneContainersOptions struct {
	Mode  PruneContainerMode `json:"mode"`
	Until string             `json:"until,omitempty"`
}

type PruneImageMode

type PruneImageMode string

type PruneImagesOptions

type PruneImagesOptions struct {
	Mode  PruneImageMode `json:"mode"`
	Until string         `json:"until,omitempty"`
}

type PruneNetworkMode

type PruneNetworkMode string

type PruneNetworksOptions

type PruneNetworksOptions struct {
	Mode  PruneNetworkMode `json:"mode"`
	Until string           `json:"until,omitempty"`
}

type PruneVolumeMode

type PruneVolumeMode string

type PruneVolumesOptions

type PruneVolumesOptions struct {
	Mode PruneVolumeMode `json:"mode"`
}

type Quadlet

type Quadlet struct {
	Name     string `json:"name"`
	UnitName string `json:"unitName,omitempty"`
	Path     string `json:"path"`
	Status   string `json:"status"`
	App      string `json:"app,omitempty"`
}

type QuadletDetail

type QuadletDetail struct {
	UnitStatus *PodmanUnitStatus `json:"unitStatus,omitempty"`
	EnvironmentTag

	Name       string            `json:"name"`
	UnitName   string            `json:"unitName"`
	Path       string            `json:"path"`
	Status     string            `json:"status"`
	App        string            `json:"app,omitempty"`
	Type       QuadletType       `json:"type"`
	Containers []PodmanContainer `json:"containers,omitempty"`
	Template   bool              `json:"template"`
}

type QuadletFile

type QuadletFile struct {
	Name    string `json:"name"`
	Content string `json:"content"`
}

type QuadletInstallReport

type QuadletInstallReport struct {
	InstalledQuadlets map[string]string `json:"installedQuadlets"`
	QuadletErrors     map[string]string `json:"quadletErrors"`
}

type QuadletInstallRequest

type QuadletInstallRequest struct {
	Name       string        `json:"name" minLength:"1" doc:"Quadlet file name including its extension"`
	Content    string        `json:"content" minLength:"1" doc:"Quadlet file contents"`
	App        string        `json:"app,omitempty" doc:"Application the quadlet belongs to"`
	ExtraFiles []QuadletFile `json:"extraFiles,omitempty" doc:"Additional files installed beside the quadlet"`
}

type QuadletRemoveReport

type QuadletRemoveReport struct {
	Errors  map[string]string `json:"errors"`
	Removed []string          `json:"removed"`
}

type QuadletType

type QuadletType string

type QuadletUpdateRequest

type QuadletUpdateRequest struct {
	Content    string        `json:"content" minLength:"1" doc:"Quadlet file contents"`
	ExtraFiles []QuadletFile `json:"extraFiles,omitempty" doc:"Additional files installed beside the quadlet"`
}

type ReadinessResponse

type ReadinessResponse struct {
	Checks map[string]string `json:"checks"`
	Status string            `json:"status"`
}

type RecoveryManifest

type RecoveryManifest struct {
	CreatedAt     time.Time         `json:"createdAt"`
	Environment   map[string]string `json:"environment"`
	ArcaneVersion string            `json:"arcaneVersion"`
	BackupID      string            `json:"backupId,omitempty"`
	ActivityID    string            `json:"activityId,omitempty"`
	DataPath      string            `json:"dataPath,omitempty"`
	ProjectsPath  string            `json:"projectsPath,omitempty"`
	DatabasePath  string            `json:"databasePath,omitempty"`
	FormatVersion int               `json:"formatVersion"`
}

type RecoveryRestoreRepository

type RecoveryRestoreRepository struct {
	Environment []string      `json:"environment"`
	Mounts      []mount.Mount `json:"mounts"`
}

type RecoveryRestoreRequest

type RecoveryRestoreRequest struct {
	SafetyBackup     *RecoverySafetyBackup  `json:"safetyBackup,omitempty"`
	BackupID         string                 `json:"backupId"`
	ContainerID      string                 `json:"containerId"`
	ContainerImage   string                 `json:"containerImage"`
	SnapshotID       string                 `json:"snapshotId"`
	LocalSnapshotID  string                 `json:"localSnapshotId,omitempty"`
	RemoteSnapshotID string                 `json:"remoteSnapshotId,omitempty"`
	S3DestinationID  string                 `json:"s3DestinationId,omitempty"`
	RecoveryKey      string                 `json:"recoveryKey"`
	ProjectsSetting  string                 `json:"projectsSetting,omitempty"`
	NetworkMode      string                 `json:"networkMode,omitempty"`
	Stages           []RecoveryRestoreStage `json:"stages"`
	RollbackStages   []RecoveryRestoreStage `json:"rollbackStages,omitempty"`
	Size             int64                  `json:"size,omitempty"`
	ProjectsIncluded bool                   `json:"projectsIncluded"`
}

type RecoveryRestoreStage

type RecoveryRestoreStage struct {
	Target     RecoveryRestoreTarget     `json:"target"`
	SnapshotID string                    `json:"snapshotId"`
	SourcePath string                    `json:"sourcePath"`
	Repository RecoveryRestoreRepository `json:"repository"`
}

type RecoveryRestoreTarget

type RecoveryRestoreTarget struct {
	Path   string        `json:"path"`
	Mounts []mount.Mount `json:"mounts"`
}

type RecoverySafetyBackup

type RecoverySafetyBackup struct {
	CreatedAt       time.Time `json:"createdAt"`
	ID              string    `json:"id"`
	LocalSnapshotID string    `json:"localSnapshotId"`
	Size            int64     `json:"size"`
}

type RemoteTemplate

type RemoteTemplate struct {
	BaseTemplate
	Version          string   `json:"version"`
	Author           string   `json:"author"`
	ComposeURL       string   `json:"compose_url"`
	EnvURL           string   `json:"env_url"`
	DocumentationURL string   `json:"documentation_url"`
	IconURL          string   `json:"icon_url,omitempty"`
	Tags             []string `json:"tags"`
}

type RestoreSystemBackupFilesRequest

type RestoreSystemBackupFilesRequest struct {
	RecoveryKey string `json:"recoveryKey"`
	BackupRestoreSelection
}

type RiskBand

type RiskBand string

type RiskDrivers

type RiskDrivers struct {
	KnownExploited        int `json:"knownExploited"`
	OverdueKnownExploited int `json:"overdueKnownExploited"`
	HighEPSS              int `json:"highEpss"`
	ExposedCriticalHigh   int `json:"exposedCriticalHigh"`
	Fixable               int `json:"fixable"`

	Findings      int `json:"findings"`
	ImagesScanned int `json:"imagesScanned"`
	ImagesTotal   int `json:"imagesTotal"`
	ScoredImages  int `json:"scoredImages"`
}

type RiskExposureBreakdown

type RiskExposureBreakdown struct {
	Running int `json:"running"`
	Stopped int `json:"stopped"`
	Unused  int `json:"unused"`
	Unknown int `json:"unknown"`
}

type RiskFinding

type RiskFinding struct {
	EPSS *float64 `json:"epss,omitempty"`

	EnvironmentTag
	VulnerabilityID string                `json:"vulnerabilityId"`
	PkgName         string                `json:"pkgName"`
	Title           string                `json:"title,omitempty"`
	Severity        VulnerabilitySeverity `json:"severity"`
	KEVDueDate      string                `json:"kevDueDate,omitempty"`
	FixedVersion    string                `json:"fixedVersion,omitempty"`
	CVSS            float64               `json:"cvss"`

	Risk                  float64 `json:"risk"`
	ImagesAffected        int     `json:"imagesAffected"`
	RunningImagesAffected int     `json:"runningImagesAffected"`
	KnownExploited        bool    `json:"knownExploited"`
	Ransomware            bool    `json:"ransomware"`
}

type RiskImage

type RiskImage struct {
	EnvironmentTag
	ImageID   string        `json:"imageId"`
	ImageName string        `json:"imageName"`
	Exposure  ImageExposure `json:"exposure"`

	VulnerabilityPatchPriority
	RunningContainers int `json:"runningContainers"`
	KnownExploited    int `json:"knownExploited"`
	Critical          int `json:"critical"`
	High              int `json:"high"`
	Fixable           int `json:"fixable"`

	Findings int `json:"findings"`
}

type RiskOverview

type RiskOverview struct {
	ComputedAt   time.Time        `json:"computedAt"`
	Delta7d      *int             `json:"delta7d,omitempty"`
	Drivers7dAgo *RiskDrivers     `json:"drivers7dAgo,omitempty"`
	ScoreDriver  *RiskScoreDriver `json:"scoreDriver,omitempty"`

	VulnerabilityPatchPriority
	ThreatIntel       ThreatIntelStatus `json:"threatIntel"`
	Trend             []RiskTrendPoint  `json:"trend"`
	RiskiestImages    []RiskImage       `json:"riskiestImages"`
	RiskiestFindings  []RiskFinding     `json:"riskiestFindings"`
	PrevalentFindings []RiskFinding     `json:"prevalentFindings"`
	Drivers           RiskDrivers       `json:"drivers"`

	Summary VulnerabilitySeveritySummary `json:"summary"`

	ScoreBasis RiskScoreBasis `json:"scoreBasis" doc:"Unrounded data behind riskScore, used to merge environments into one exact score"`

	Exposure RiskExposureBreakdown `json:"exposure"`
}

type RiskScoreBasis

type RiskScoreBasis struct {
	Score                         float64 `json:"score" doc:"Exposure-weighted average image score"`
	Weight                        float64 `json:"weight" doc:"Summed exposure weight of the scored images"`
	Peak                          float64 `json:"peak" doc:"Highest image score"`
	ExploitedRunningImages        int     `json:"exploitedRunningImages" doc:"Running images with a fixable known-exploited finding"`
	OverdueExploitedRunningImages int     `json:"overdueExploitedRunningImages" doc:"Running images with a fixable known-exploited finding past its KEV due date"`
}

type RiskScoreDriver

type RiskScoreDriver struct {
	VulnerabilityID string        `json:"vulnerabilityId"`
	ImageName       string        `json:"imageName"`
	PkgName         string        `json:"pkgName"`
	FixedVersion    string        `json:"fixedVersion"`
	Exposure        ImageExposure `json:"exposure"`
	KnownExploited  bool          `json:"knownExploited"`

	Risk float64 `json:"risk"`
}

type RiskTrendPoint

type RiskTrendPoint struct {
	ScoreBasis *RiskScoreBasis `` /* 129-byte string literal not displayed */
	Date       string          `json:"date"`
	RiskScore  int             `json:"riskScore"`
}

type Role

type Role struct {
	CreatedAt         time.Time  `json:"createdAt" readOnly:"true" doc:"Creation timestamp"`
	Description       *string    `json:"description,omitempty" maxLength:"500" doc:"Optional human description" unorm:"nfc" trim:"true"`
	UpdatedAt         *time.Time `json:"updatedAt,omitempty" readOnly:"true" doc:"Last update timestamp"`
	ID                string     `json:"id" readOnly:"true" doc:"Unique identifier of the role" example:"role_admin"`
	Name              string     `` /* 129-byte string literal not displayed */
	Permissions       []string   `` /* 134-byte string literal not displayed */
	AssignedUserCount int        `json:"assignedUserCount" readOnly:"true" doc:"How many users currently hold an assignment to this role"`
	BuiltIn           bool       `` /* 130-byte string literal not displayed */
}

type RoleAssignment

type RoleAssignment struct {
	CreatedAt     time.Time `json:"createdAt" doc:"Creation timestamp"`
	EnvironmentID *string   `json:"environmentId,omitempty" doc:"Environment ID this assignment is scoped to; omit for a global assignment"`
	ID            string    `json:"id" doc:"Unique identifier of the assignment"`
	UserID        string    `json:"userId" doc:"ID of the user holding this assignment"`
	RoleID        string    `json:"roleId" doc:"ID of the granted role"`
	Source        string    `json:"source" doc:"How the assignment was created" enum:"manual,oidc"`
}

type RoleAssignmentSummary

type RoleAssignmentSummary struct {
	RoleID        string  `json:"roleId" doc:"Role ID granted by this assignment"`
	EnvironmentID *string `json:"environmentId,omitempty" doc:"Environment ID this assignment is scoped to; omit for a global assignment"`
	Source        string  `json:"source" doc:"How the assignment was created" enum:"manual,oidc"`
}

type RunObserver

type RunObserver interface {
	ActivityID(run SchedulerRun) string
	SyncRunActivity(ctx context.Context, run SchedulerRun) error
}

ActivityID is persisted before projection and is empty for runs that should stay quiet.

type RunStatus

type RunStatus string
const (
	RunStatusQueued         RunStatus = "queued"
	RunStatusWaiting        RunStatus = "waiting"
	RunStatusRunning        RunStatus = "running"
	RunStatusRetrying       RunStatus = "retrying"
	RunStatusSucceeded      RunStatus = "succeeded"
	RunStatusPartial        RunStatus = "partial"
	RunStatusSkipped        RunStatus = "skipped"
	RunStatusFailed         RunStatus = "failed"
	RunStatusNeedsAttention RunStatus = "needs_attention"
	RunStatusCanceled       RunStatus = "canceled"

	SchedulerWorkflowTarget = "workflow"
)

func (RunStatus) Terminal

func (s RunStatus) Terminal() bool

type RunSystemVolumeBackupsRequest

type RunSystemVolumeBackupsRequest struct {
	Custom   *SystemVolumeBackupCustomRun `json:"custom,omitempty"`
	PolicyID string                       `json:"policyId,omitempty"`
}

type RuntimeInfo

type RuntimeInfo struct {
	LeakScannedAt      time.Time `json:"leakScannedAt,omitzero"`
	GoVersion          string    `json:"goVersion"`
	OS                 string    `json:"os"`
	Arch               string    `json:"arch"`
	Goroutines         int       `json:"goroutines"`
	WSWorkerGoroutines int       `json:"wsWorkerGoroutines"`
	LeakedGoroutines   int       `json:"leakedGoroutines"`
	GOMAXPROCS         int       `json:"gomaxprocs"`
	NumCPU             int       `json:"numCpu"`
	NumCgoCall         int64     `json:"numCgoCall"`
	UptimeSeconds      int64     `json:"uptimeSeconds"`
}

type S3Destination

type S3Destination struct {
	CreatedAt        time.Time  `json:"createdAt" readOnly:"true"`
	UpdatedAt        *time.Time `json:"updatedAt,omitempty" readOnly:"true"`
	ID               string     `json:"id" readOnly:"true"`
	Name             string     `json:"name" required:"false" minLength:"1" unorm:"nfc" trim:"true"`
	Endpoint         string     `json:"endpoint,omitempty"`
	Bucket           string     `json:"bucket" required:"false"`
	Region           string     `json:"region" required:"false"`
	AccessKeyID      string     `json:"accessKeyId" required:"false"`
	SecretAccessKey  string     `json:"secretAccessKey,omitempty" writeOnly:"true"`
	Prefix           string     `json:"prefix,omitempty"`
	UseSSL           bool       `json:"useSsl" required:"false"`
	ForcePathStyle   bool       `json:"forcePathStyle" required:"false"`
	SecretConfigured bool       `json:"secretConfigured" readOnly:"true"`
}

type S3DestinationSyncRequest

type S3DestinationSyncRequest struct {
	Destinations []S3Destination `json:"destinations"`
}

type S3DestinationUsage

type S3DestinationUsage struct {
	InUse bool `json:"inUse"`
}

type SaveDefaultTemplatesRequest

type SaveDefaultTemplatesRequest struct {
	ComposeContent string `json:"composeContent"`
	EnvContent     string `json:"envContent"`
}

type SchedulerActivitySyncCommand

type SchedulerActivitySyncCommand struct {
	UpdatedAt time.Time
	RunID     string
}

type SchedulerAdmissionCommand

type SchedulerAdmissionCommand struct {
	Epoch string
	Token string
}

type SchedulerAdmissionKey

type SchedulerAdmissionKey struct {
	Scope string
	ID    string
}

type SchedulerAdmissionState

type SchedulerAdmissionState struct {
	AcquiredAt time.Time
	Epoch      string
	Token      string
}

type SchedulerAttempt

type SchedulerAttempt struct {
	StartedAt  time.Time        `json:"startedAt"`
	FinishedAt *time.Time       `json:"finishedAt,omitempty"`
	Outcome    SchedulerOutcome `json:"outcome"`
	Number     int              `json:"number"`
}

type SchedulerCoordinatorImport

type SchedulerCoordinatorImport struct {
	SourceHash string
	Record     SchedulerQueueRecord
}

type SchedulerCoordinatorState

type SchedulerCoordinatorState struct {
	Dispatches          map[string]SchedulerDispatchIntent
	PendingActivitySync map[string]time.Time
	ImportHash          string
	Record              SchedulerQueueRecord
	Revision            uint64
	Imported            bool
}

type SchedulerDispatchIntent

type SchedulerDispatchIntent struct {
	RunID   string
	JobID   string
	Attempt int
}

type SchedulerExecutionClaim

type SchedulerExecutionClaim struct {
	Run       SchedulerRun
	Reconcile bool
	Claimed   bool
	Deferred  bool
}

type SchedulerExecutionCommand

type SchedulerExecutionCommand struct {
	EnvironmentID string
	JobID         string
	RunID         string
	Attempt       int
}

type SchedulerJob

type SchedulerJob interface {
	Name() string
	Schedule(ctx context.Context) string
	Run(ctx context.Context) (SchedulerOutcome, error)
}

type SchedulerOutcome

type SchedulerOutcome struct {
	Status     RunStatus       `json:"status"`
	Message    string          `json:"message,omitempty"`
	ActivityID string          `json:"activityId,omitempty"`
	Targets    []TargetOutcome `json:"targets,omitempty"`
	Steps      []StepOutcome   `json:"steps,omitempty"`
}

type SchedulerOutcomeError

type SchedulerOutcomeError struct {
	Cause   error
	Outcome SchedulerOutcome
}

func (*SchedulerOutcomeError) Error

func (e *SchedulerOutcomeError) Error() string

func (*SchedulerOutcomeError) Unwrap

func (e *SchedulerOutcomeError) Unwrap() error

type SchedulerQueueRecord

type SchedulerQueueRecord struct {
	Receipts      map[string]SchedulerRun `json:"receipts,omitempty"`
	JobID         string                  `json:"jobId"`
	EnvironmentID string                  `json:"environmentId"`
	Schedule      string                  `json:"schedule"`
	ScheduleJobID string                  `json:"scheduleJobId,omitempty"`
	Runs          []SchedulerRun          `json:"runs"`
}

type SchedulerReconciler

type SchedulerReconciler interface {
	Reconcile(ctx context.Context, previous SchedulerRun) (SchedulerOutcome, error)
}

type SchedulerRequest

type SchedulerRequest struct {
	RunID            string `json:"runId,omitempty"`
	JobID            string `json:"jobId"`
	EnvironmentID    string `json:"environmentId"`
	Trigger          string `json:"trigger"`
	RequestedWithKey string `json:"requestedWithKey,omitempty"`
	RequestedBy      string `json:"requestedBy,omitempty"`
}

type SchedulerRetryValidator

type SchedulerRetryValidator interface {
	ValidateRetry(ctx context.Context, run SchedulerRun) error
}

type SchedulerRun

type SchedulerRun struct {
	CreatedAt               time.Time          `json:"createdAt"`
	UpdatedAt               time.Time          `json:"updatedAt"`
	StartedAt               *time.Time         `json:"startedAt,omitempty"`
	FinishedAt              *time.Time         `json:"finishedAt,omitempty"`
	NextAttempt             *time.Time         `json:"nextAttempt,omitempty"`
	RemoteOutcome           *SchedulerOutcome  `json:"remoteOutcome,omitempty"`
	LastConfirmedAt         *time.Time         `json:"lastConfirmedAt,omitempty"`
	ActivityEnvironmentID   string             `json:"activityEnvironmentId,omitempty"`
	ActivityID              string             `json:"activityId,omitempty"`
	RequestedWithKey        string             `json:"requestedWithKey,omitempty"`
	ID                      string             `json:"id"`
	JobID                   string             `json:"jobId"`
	EnvironmentID           string             `json:"environmentId"`
	Trigger                 string             `json:"trigger"`
	RequestedBy             string             `json:"requestedBy,omitempty"`
	Status                  RunStatus          `json:"status"`
	Owner                   string             `json:"owner,omitempty"`
	Outcome                 SchedulerOutcome   `json:"outcome"`
	Attempts                []SchedulerAttempt `json:"attempts,omitempty"`
	AttemptCount            int                `json:"attemptCount"`
	RemoteAttemptCount      int                `json:"remoteAttemptCount,omitempty"`
	RemoteDeliveryAttempted bool               `json:"remoteDeliveryAttempted"`
	RemoteRetryRequested    bool               `json:"remoteRetryRequested,omitempty"`
	RemoteRetryAttempted    bool               `json:"remoteRetryAttempted,omitempty"`
	RemoteAccepted          bool               `json:"remoteAccepted"`
	RemoteSettled           bool               `json:"remoteSettled"`
}

type SchedulerRunList

type SchedulerRunList struct {
	Runs  []SchedulerRun `json:"runs"`
	Total int            `json:"total"`
	Page  int            `json:"page"`
	Limit int            `json:"limit"`
}

type SchedulerScheduleCommand

type SchedulerScheduleCommand struct {
	JobID    string
	Schedule string
}

type SchedulerWorkerHealth

type SchedulerWorkerHealth struct {
	UpdatedAt time.Time  `json:"updatedAt"`
	NextRetry *time.Time `json:"nextRetry,omitempty"`
	Status    string     `json:"status"`
	LastError string     `json:"lastError,omitempty"`
}

type SearchRequest

type SearchRequest struct {
	Query string `json:"query" binding:"required,min=1"`
}

type SearchResponse

type SearchResponse struct {
	Query   string     `json:"query"`
	Results []Category `json:"results"`
	Count   int        `json:"count"`
}

type SessionBootstrap

type SessionBootstrap struct {
	User         User                   `json:"user" doc:"Authenticated user"`
	Version      VersionInfo            `json:"version" doc:"Application version information"`
	Environments Paginated[Environment] `json:"environments" doc:"Environments the user can access"`
}

type SessionMeta

type SessionMeta struct {
	MFAVerifiedAt *time.Time
	UserAgent     string
	IPAddress     string
	Source        string
	MFAMethod     string
}

type SetUserRoleAssignments

type SetUserRoleAssignments struct {
	Assignments []UserRoleAssignmentInput `json:"assignments" doc:"Desired manual role assignments for the user"`
}

type SettingMetadata

type SettingMetadata struct {
	Key         string   `json:"key"`
	Label       string   `json:"label"`
	Type        string   `json:"type"`
	Description string   `json:"description,omitempty"`
	Keywords    []string `json:"keywords,omitempty"`
}

type SettingState

type SettingState struct {
	Key string `json:"key"`

	Value   string `json:"value"`
	Type    string `json:"type"`
	Default string `json:"default"`

	Source string `json:"source" enum:"default,db,env"`

	LockReason string `json:"lockReason,omitempty" enum:"env,readOnly"`

	Scope     string `json:"scope" enum:"manager,authentication,environment"`
	EnvName   string `json:"envName"`
	Locked    bool   `json:"locked"`
	Sensitive bool   `json:"sensitive"`
}

type SettingUpdate

type SettingUpdate struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type SettingsRuntime

type SettingsRuntime struct {
	BackupVolumeName            string `json:"backupVolumeName,omitzero"`
	FrontendTracingEnabled      bool   `json:"frontendTracingEnabled"`
	FrontendMetricsEnabled      bool   `json:"frontendMetricsEnabled"`
	FrontendLogsEnabled         bool   `json:"frontendLogsEnabled"`
	AgentMTLSManagerCAAvailable bool   `json:"agentMTLSManagerCAAvailable,omitzero"`
	DepotConfigured             bool   `json:"depotConfigured,omitzero"`
}

type SettingsSnapshot

type SettingsSnapshot struct {
	Settings []SettingState  `json:"settings"`
	Runtime  SettingsRuntime `json:"runtime"`
	ReadOnly bool            `json:"readOnly"`
}

type SettingsUpdate

type SettingsUpdate map[string]string

type SourceCleanupError

type SourceCleanupError struct {
	Err          error
	SourceVolume string
}

func (*SourceCleanupError) Error

func (e *SourceCleanupError) Error() string

func (*SourceCleanupError) Unwrap

func (e *SourceCleanupError) Unwrap() error

type StartUpgradeJobRequest

type StartUpgradeJobRequest struct {
	EnvironmentIDs []string `json:"environmentIds,omitempty" doc:"Environments to upgrade; empty upgrades every enabled environment"`
}

type StepOutcome

type StepOutcome struct {
	StartedAt  *time.Time `json:"startedAt,omitempty"`
	FinishedAt *time.Time `json:"finishedAt,omitempty"`
	Name       string     `json:"name"`
	Status     RunStatus  `json:"status"`
	Message    string     `json:"message,omitempty"`
	Total      int        `json:"total,omitempty"`
	Completed  int        `json:"completed,omitempty"`
	Failed     int        `json:"failed,omitempty"`
	Attempts   int        `json:"attempts,omitempty"`
}

type StoppableBusWatcher

type StoppableBusWatcher interface {
	BusWatcher
	Stop(ctx context.Context) error
}

type StreamEvent

type StreamEvent struct {
	Timestamp   time.Time               `json:"timestamp"`
	Activity    *ActivityStreamEvent    `json:"activity,omitempty"`
	Environment *EnvironmentStreamEvent `json:"environment,omitempty"`
	EventLog    *EventStreamEvent       `json:"eventLog,omitempty"`
	Version     *VersionStreamEvent     `json:"version,omitempty"`

	Upgrade *UpgradeJob `json:"upgrade,omitempty"`

	Channel string `json:"channel,omitempty"`

	Type string `json:"type,omitempty"`
}

Exactly one payload is set, retaining its channel's event type.

type SubmittedBody

type SubmittedBody struct {
	RawBody []byte
}

func (SubmittedBody) SubmittedFields

func (s SubmittedBody) SubmittedFields() (map[string]bool, error)

type SwarmBindingCandidate

type SwarmBindingCandidate struct {
	ParentEnvironmentID *string
	SwarmNodeID         *string
	Hidden              bool
	Enabled             bool
}

type SwarmConfig

type SwarmConfig struct {
	Spec      swarm.ConfigSpec `json:"spec" required:"false"`
	CreatedAt time.Time        `json:"createdAt" readOnly:"true"`
	UpdatedAt time.Time        `json:"updatedAt" readOnly:"true"`
	EnvironmentTag

	ID      string        `json:"id" readOnly:"true"`
	Version swarm.Version `json:"version" readOnly:"true"`
}

func NewSwarmConfig

func NewSwarmConfig(cfg swarm.Config) SwarmConfig

type SwarmConfigUpdateRequest

type SwarmConfigUpdateRequest struct {
	Labels  map[string]string `json:"labels" doc:"Replacement labels; config data is immutable"`
	Version uint64            `json:"version" doc:"Current config version, used to reject stale updates"`
}

type SwarmInfo

type SwarmInfo struct {
	ID                     string     `json:"id"`
	CreatedAt              time.Time  `json:"createdAt"`
	UpdatedAt              time.Time  `json:"updatedAt"`
	Spec                   swarm.Spec `json:"spec"`
	RootRotationInProgress bool       `json:"rootRotationInProgress"`
}

func NewSwarmInfo

func NewSwarmInfo(s swarm.Swarm) SwarmInfo

type SwarmInitRequest

type SwarmInitRequest struct {
	ListenAddr       string                 `json:"listenAddr,omitempty"`
	AdvertiseAddr    string                 `json:"advertiseAddr,omitempty"`
	DataPathAddr     string                 `json:"dataPathAddr,omitempty"`
	Spec             jsontext.Value         `json:"spec" doc:"Swarm specification"`
	Availability     swarm.NodeAvailability `json:"availability,omitempty"`
	DefaultAddrPool  []string               `json:"defaultAddrPool,omitempty"`
	DataPathPort     uint32                 `json:"dataPathPort,omitempty"`
	SubnetSize       uint32                 `json:"subnetSize,omitempty"`
	ForceNewCluster  bool                   `json:"forceNewCluster,omitempty"`
	AutoLockManagers bool                   `json:"autoLockManagers,omitempty"`
}

type SwarmInitResponse

type SwarmInitResponse struct {
	NodeID string `json:"nodeId"`
}

type SwarmJoinCandidate

type SwarmJoinCandidate struct {
	EnvironmentID   string `json:"environmentId"`
	EnvironmentName string `json:"environmentName"`
	EnvironmentType string `json:"environmentType"`
	Status          string `json:"status"`
}

type SwarmJoinEnvironmentResult

type SwarmJoinEnvironmentResult struct {
	NodeID        *string                         `json:"nodeId,omitempty"`
	Error         *string                         `json:"error,omitempty"`
	EnvironmentID string                          `json:"environmentId"`
	State         SwarmJoinEnvironmentResultState `json:"state"`
}

type SwarmJoinEnvironmentResultState

type SwarmJoinEnvironmentResultState string

type SwarmJoinEnvironmentRole

type SwarmJoinEnvironmentRole string

type SwarmJoinEnvironmentTarget

type SwarmJoinEnvironmentTarget struct {
	EnvironmentID string                   `json:"environmentId"`
	Role          SwarmJoinEnvironmentRole `json:"role"`
	Availability  swarm.NodeAvailability   `json:"availability,omitempty"`
	ListenAddr    string                   `json:"listenAddr,omitempty"`
	AdvertiseAddr string                   `json:"advertiseAddr,omitempty"`
	DataPathAddr  string                   `json:"dataPathAddr,omitempty"`
}

type SwarmJoinEnvironmentsRequest

type SwarmJoinEnvironmentsRequest struct {
	RemoteAddrs []string                     `json:"remoteAddrs"`
	Targets     []SwarmJoinEnvironmentTarget `json:"targets"`
}

type SwarmJoinEnvironmentsResponse

type SwarmJoinEnvironmentsResponse struct {
	Results []SwarmJoinEnvironmentResult `json:"results"`
}

type SwarmJoinRequest

type SwarmJoinRequest struct {
	ListenAddr    string                 `json:"listenAddr,omitempty"`
	AdvertiseAddr string                 `json:"advertiseAddr,omitempty"`
	DataPathAddr  string                 `json:"dataPathAddr,omitempty"`
	JoinToken     string                 `json:"joinToken"`
	Availability  swarm.NodeAvailability `json:"availability,omitempty"`
	RemoteAddrs   []string               `json:"remoteAddrs"`
}

type SwarmJoinTokensResponse

type SwarmJoinTokensResponse struct {
	Worker  string `json:"worker"`
	Manager string `json:"manager"`
}

type SwarmLeaveRequest

type SwarmLeaveRequest struct {
	Force bool `json:"force,omitempty"`
}

type SwarmNode

type SwarmNode struct {
	CreatedAt    time.Time         `json:"createdAt" readOnly:"true"`
	UpdatedAt    time.Time         `json:"updatedAt" readOnly:"true"`
	Labels       map[string]string `json:"labels,omitempty"`
	SystemLabels map[string]string `json:"systemLabels,omitempty" readOnly:"true"`

	EnvironmentTag
	ID string `json:"id" readOnly:"true"`

	Name           string          `json:"name,omitempty"`
	Hostname       string          `json:"hostname" readOnly:"true"`
	Role           string          `json:"role" required:"false"`
	Availability   string          `json:"availability" required:"false"`
	Status         string          `json:"status" readOnly:"true"`
	Address        string          `json:"address,omitempty" readOnly:"true"`
	ManagerStatus  string          `json:"managerStatus,omitempty" readOnly:"true"`
	ManagerAddress string          `json:"managerAddress,omitempty" readOnly:"true"`
	Reachability   string          `json:"reachability,omitempty" readOnly:"true"`
	EngineVersion  string          `json:"engineVersion,omitempty" readOnly:"true"`
	Platform       string          `json:"platform,omitempty" readOnly:"true"`
	Agent          NodeAgentStatus `json:"agent" readOnly:"true"`

	Version uint64 `json:"version,omitempty"`
}

func NewSwarmNode

func NewSwarmNode(node swarm.Node) SwarmNode

type SwarmRotateJoinTokensRequest

type SwarmRotateJoinTokensRequest struct {
	RotateWorkerToken  bool `json:"rotateWorkerToken,omitempty"`
	RotateManagerToken bool `json:"rotateManagerToken,omitempty"`
}

type SwarmRuntimeStatus

type SwarmRuntimeStatus struct {
	ClusterID string `json:"clusterId,omitempty" doc:"Swarm cluster ID when the environment is a swarm manager"`
	Enabled   bool   `json:"enabled"`
}

type SwarmSecret

type SwarmSecret struct {
	Spec      swarm.SecretSpec `json:"spec" required:"false"`
	CreatedAt time.Time        `json:"createdAt" readOnly:"true"`
	UpdatedAt time.Time        `json:"updatedAt" readOnly:"true"`
	EnvironmentTag

	ID      string        `json:"id" readOnly:"true"`
	Version swarm.Version `json:"version" readOnly:"true"`
}

func NewSwarmSecret

func NewSwarmSecret(secret swarm.Secret) SwarmSecret

type SwarmSecretUpdateRequest

type SwarmSecretUpdateRequest struct {
	Labels  map[string]string `json:"labels" doc:"Replacement labels; secret data is immutable"`
	Version uint64            `json:"version" doc:"Current secret version, used to reject stale updates"`
}

type SwarmServiceCreateOptions

type SwarmServiceCreateOptions struct {
	EncodedRegistryAuth string `json:"encodedRegistryAuth,omitempty"`
	QueryRegistry       bool   `json:"queryRegistry,omitempty"`
}

type SwarmServiceCreateRequest

type SwarmServiceCreateRequest struct {
	Options *SwarmServiceCreateOptions `json:"options,omitempty" doc:"Additional create options"`
	Spec    jsontext.Value             `json:"spec" doc:"Service specification"`
}

type SwarmServiceCreateResponse

type SwarmServiceCreateResponse struct {
	ID       string   `json:"id"`
	Warnings []string `json:"warnings,omitempty"`
}

type SwarmServiceInspect

type SwarmServiceInspect struct {
	Spec           swarm.ServiceSpec                    `json:"spec"`
	CreatedAt      time.Time                            `json:"createdAt"`
	UpdatedAt      time.Time                            `json:"updatedAt"`
	UpdateStatus   *swarm.UpdateStatus                  `json:"updateStatus,omitempty"`
	NetworkDetails map[string]SwarmServiceNetworkDetail `json:"networkDetails,omitempty"`
	ID             string                               `json:"id"`
	Endpoint       swarm.Endpoint                       `json:"endpoint"`
	Nodes          []string                             `json:"nodes,omitempty"`
	Mounts         []SwarmServiceMount                  `json:"mounts,omitempty"`
	Version        swarm.Version                        `json:"version"`
}

func NewSwarmServiceInspect

func NewSwarmServiceInspect(service swarm.Service) SwarmServiceInspect

type SwarmServiceMount

type SwarmServiceMount struct {
	VolumeOptions map[string]string `json:"volumeOptions,omitempty"`
	Type          string            `json:"type"`
	Source        string            `json:"source,omitempty"`
	Target        string            `json:"target"`
	VolumeDriver  string            `json:"volumeDriver,omitempty"`
	DevicePath    string            `json:"devicePath,omitempty"`
	ReadOnly      bool              `json:"readOnly,omitempty"`
}

type SwarmServiceNetworkConfigDetail

type SwarmServiceNetworkConfigDetail struct {
	Options     map[string]string               `json:"options,omitempty"`
	Name        string                          `json:"name"`
	Driver      string                          `json:"driver"`
	Scope       string                          `json:"scope"`
	IPv4Configs []SwarmServiceNetworkIPAMConfig `json:"ipv4Configs,omitempty"`
	IPv6Configs []SwarmServiceNetworkIPAMConfig `json:"ipv6Configs,omitempty"`
	EnableIPv4  bool                            `json:"enableIPv4"`
	EnableIPv6  bool                            `json:"enableIPv6"`
}

type SwarmServiceNetworkDetail

type SwarmServiceNetworkDetail struct {
	Options       map[string]string                `json:"options,omitempty"`
	ConfigNetwork *SwarmServiceNetworkConfigDetail `json:"configNetwork,omitempty"`
	ID            string                           `json:"id"`
	Name          string                           `json:"name"`
	Driver        string                           `json:"driver"`
	Scope         string                           `json:"scope"`
	ConfigFrom    string                           `json:"configFrom,omitempty"`
	IPAMConfigs   []SwarmServiceNetworkIPAMConfig  `json:"ipamConfigs,omitempty"`
	Internal      bool                             `json:"internal"`
	Attachable    bool                             `json:"attachable"`
	Ingress       bool                             `json:"ingress"`
	EnableIPv4    bool                             `json:"enableIPv4"`
	EnableIPv6    bool                             `json:"enableIPv6"`
	ConfigOnly    bool                             `json:"configOnly"`
}

type SwarmServiceNetworkIPAMConfig

type SwarmServiceNetworkIPAMConfig struct {
	Subnet  string `json:"subnet,omitempty"`
	Gateway string `json:"gateway,omitempty"`
	IPRange string `json:"ipRange,omitempty"`
}

type SwarmServicePort

type SwarmServicePort struct {
	Protocol      string `json:"protocol"`
	PublishMode   string `json:"publishMode,omitempty"`
	TargetPort    uint32 `json:"targetPort"`
	PublishedPort uint32 `json:"publishedPort,omitempty"`
}

type SwarmServiceScaleRequest

type SwarmServiceScaleRequest struct {
	Replicas uint64 `json:"replicas"`
}

type SwarmServiceSummary

type SwarmServiceSummary struct {
	CreatedAt time.Time         `json:"createdAt"`
	UpdatedAt time.Time         `json:"updatedAt"`
	Labels    map[string]string `json:"labels"`

	EnvironmentTag
	ID        string              `json:"id"`
	Name      string              `json:"name"`
	Image     string              `json:"image"`
	Mode      string              `json:"mode"`
	StackName string              `json:"stackName,omitempty"`
	Ports     []SwarmServicePort  `json:"ports"`
	Nodes     []string            `json:"nodes"`
	Networks  []string            `json:"networks"`
	Mounts    []SwarmServiceMount `json:"mounts"`

	Replicas        uint64 `json:"replicas"`
	RunningReplicas uint64 `json:"runningReplicas"`
}

func NewSwarmServiceSummary

func NewSwarmServiceSummary(service swarm.Service, nodeNames []string, networkNameByID map[string]string) SwarmServiceSummary

type SwarmServiceUpdateOptions

type SwarmServiceUpdateOptions struct {
	EncodedRegistryAuth string                   `json:"encodedRegistryAuth,omitempty"`
	RegistryAuthFrom    swarm.RegistryAuthSource `json:"registryAuthFrom,omitempty"`
	Rollback            string                   `json:"rollback,omitempty"`
	QueryRegistry       bool                     `json:"queryRegistry,omitempty"`
}

type SwarmServiceUpdateRequest

type SwarmServiceUpdateRequest struct {
	Spec    swarm.ServiceSpec          `json:"spec"`
	Options *SwarmServiceUpdateOptions `json:"options,omitzero"`
	Version uint64                     `json:"version"`
}

type SwarmServiceUpdateResponse

type SwarmServiceUpdateResponse struct {
	Warnings []string `json:"warnings,omitempty"`
}

type SwarmStackDeployRequest

type SwarmStackDeployRequest struct {
	Name            string `json:"name"`
	ComposeContent  string `json:"composeContent"`
	OverrideContent string `json:"overrideContent,omitempty"`
	EnvContent      string `json:"envContent,omitempty"`
	ResolveImage    string `json:"resolveImage,omitempty"`

	WorkingDir       string          `json:"-"`
	Files            []SwarmSyncFile `json:"files,omitempty"`
	WithRegistryAuth bool            `json:"withRegistryAuth,omitempty"`
	Prune            bool            `json:"prune,omitempty"`
}

type SwarmStackDeployResponse

type SwarmStackDeployResponse struct {
	Name string `json:"name"`
}

type SwarmStackInspect

type SwarmStackInspect struct {
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
	Name      string    `json:"name"`
	Namespace string    `json:"namespace"`
	Services  int       `json:"services"`
}

type SwarmStackRenderConfigRequest

type SwarmStackRenderConfigRequest struct {
	Name            string `json:"name"`
	ComposeContent  string `json:"composeContent"`
	OverrideContent string `json:"overrideContent,omitempty"`
	EnvContent      string `json:"envContent,omitempty"`
}

type SwarmStackRenderConfigResponse

type SwarmStackRenderConfigResponse struct {
	Name            string   `json:"name"`
	RenderedCompose string   `json:"renderedCompose"`
	Services        []string `json:"services"`
	Networks        []string `json:"networks"`
	Volumes         []string `json:"volumes"`
	Configs         []string `json:"configs"`
	Secrets         []string `json:"secrets"`
	Warnings        []string `json:"warnings,omitempty"`
}

type SwarmStackSource

type SwarmStackSource struct {
	Name            string          `json:"name" readOnly:"true"`
	ComposeContent  string          `json:"composeContent" required:"false"`
	OverrideContent string          `json:"overrideContent,omitempty"`
	EnvContent      string          `json:"envContent,omitempty"`
	Files           []SwarmSyncFile `json:"files,omitempty"`
}

type SwarmStackSummary

type SwarmStackSummary struct {
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`

	EnvironmentTag
	ID        string `json:"id"`
	Name      string `json:"name"`
	Namespace string `json:"namespace"`

	ClusterID string `json:"clusterId,omitempty" doc:"Swarm cluster ID of the manager that listed the stack"`
	Services  int    `json:"services"`

	HasSource bool `json:"hasSource" doc:"Whether this environment stores the stack's saved source files"`
}

type SwarmSyncFile

type SwarmSyncFile struct {
	RelativePath string `json:"relativePath"`
	Content      []byte `json:"content"`
}

type SwarmTaskSummary

type SwarmTaskSummary struct {
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
	EnvironmentTag
	ID           string `json:"id"`
	Name         string `json:"name"`
	ServiceID    string `json:"serviceId"`
	ServiceName  string `json:"serviceName"`
	NodeID       string `json:"nodeId"`
	NodeName     string `json:"nodeName"`
	DesiredState string `json:"desiredState"`
	CurrentState string `json:"currentState"`
	Error        string `json:"error,omitempty"`
	ContainerID  string `json:"containerId,omitempty"`
	Image        string `json:"image,omitempty"`
	Slot         int    `json:"slot,omitempty"`
}

func NewSwarmTaskSummary

func NewSwarmTaskSummary(task swarm.Task, serviceName, nodeName string) SwarmTaskSummary

type SwarmUnlockKeyResponse

type SwarmUnlockKeyResponse struct {
	UnlockKey string `json:"unlockKey"`
}

type SwarmUnlockRequest

type SwarmUnlockRequest struct {
	Key string `json:"key"`
}

type SwarmUpdateRequest

type SwarmUpdateRequest struct {
	Spec                   jsontext.Value `json:"spec" doc:"Updated swarm specification"`
	Version                uint64         `json:"version,omitempty"`
	RotateWorkerToken      bool           `json:"rotateWorkerToken,omitempty"`
	RotateManagerToken     bool           `json:"rotateManagerToken,omitempty"`
	RotateManagerUnlockKey bool           `json:"rotateManagerUnlockKey,omitempty"`
}

type SystemBackupDestination

type SystemBackupDestination string

type SystemBackupPolicy

type SystemBackupPolicy struct {
	LastRun           *SystemBackupRun `json:"lastRun,omitempty"`
	ID                string           `json:"id"`
	Schedule          string           `json:"schedule"`
	S3DestinationID   string           `json:"s3DestinationId,omitempty"`
	S3DestinationName string           `json:"s3DestinationName,omitempty"`
	RetentionCount    int              `json:"retentionCount"`
	Enabled           bool             `json:"enabled"`
	LocalEnabled      bool             `json:"localEnabled"`
	S3Enabled         bool             `json:"s3Enabled"`
}

type SystemBackupPolicyCollection

type SystemBackupPolicyCollection struct {
	Policies          []SystemBackupPolicy `json:"policies"`
	RecoveryKeyStored bool                 `json:"recoveryKeyStored"`
}

type SystemBackupRecoveryKey

type SystemBackupRecoveryKey struct {
	RecoveryKey string `json:"recoveryKey"`
}

type SystemBackupRecoveryKeyStatus

type SystemBackupRecoveryKeyStatus struct {
	Configured bool `json:"configured"`
}

type SystemBackupRun

type SystemBackupRun struct {
	CreatedAt         time.Time               `json:"createdAt"`
	RemoteAvailable   *bool                   `json:"remoteAvailable,omitempty"`
	ActivityID        string                  `json:"activityId,omitempty"`
	ID                string                  `json:"id"`
	Status            string                  `json:"status"`
	Trigger           string                  `json:"trigger"`
	Destination       SystemBackupDestination `json:"destination"`
	LocalSnapshotID   string                  `json:"localSnapshotId,omitempty"`
	RemoteSnapshotID  string                  `json:"remoteSnapshotId,omitempty"`
	S3DestinationID   string                  `json:"s3DestinationId,omitempty"`
	S3DestinationName string                  `json:"s3DestinationName,omitempty"`
	PolicyID          string                  `json:"policyId,omitempty"`
	Error             string                  `json:"error,omitempty"`
	Size              int64                   `json:"size"`
}

type SystemDiskUsage

type SystemDiskUsage struct {
	UnusedImagesBytes      int64 `json:"unusedImagesBytes" doc:"Bytes held by images not referenced by any container"`
	BuildCacheBytes        int64 `json:"buildCacheBytes" doc:"Bytes held by build cache records that are not in use"`
	UnusedVolumesBytes     int64 `json:"unusedVolumesBytes" doc:"Bytes held by volumes no container references"`
	StoppedContainersBytes int64 `json:"stoppedContainersBytes" doc:"Writable-layer bytes held by containers that are not running"`
}

type SystemStats

type SystemStats struct {
	Architecture string     `json:"architecture"`
	Platform     string     `json:"platform"`
	Hostname     string     `json:"hostname,omitempty"`
	GPUs         []GPUStats `json:"gpus,omitempty"`
	CPUUsage     float64    `json:"cpuUsage"`
	MemoryUsage  uint64     `json:"memoryUsage"`
	MemoryTotal  uint64     `json:"memoryTotal"`
	DiskUsage    uint64     `json:"diskUsage,omitempty"`
	DiskTotal    uint64     `json:"diskTotal,omitempty"`
	CPUCount     int        `json:"cpuCount"`
	GPUCount     int        `json:"gpuCount"`
}

type SystemVolumeBackupCustomRun

type SystemVolumeBackupCustomRun struct {
	Destination     SystemBackupDestination   `json:"destination"`
	S3DestinationID string                    `json:"s3DestinationId,omitempty"`
	SelectionMode   SystemVolumeSelectionMode `json:"selectionMode"`
	VolumeNames     []string                  `json:"volumeNames"`
	StopContainers  bool                      `json:"stopContainers"`
	IgnoreAnonymous bool                      `json:"ignoreAnonymous"`
}

type SystemVolumeBackupFailure

type SystemVolumeBackupFailure struct {
	VolumeName string `json:"volumeName"`
	Error      string `json:"error"`
}

type SystemVolumeBackupHistoryEntry

type SystemVolumeBackupHistoryEntry struct {
	EnvironmentTag
	CreatedAt         time.Time               `json:"createdAt" sortable:"true"`
	RemoteAvailable   *bool                   `json:"remoteAvailable,omitempty" gorm:"-"`
	ID                string                  `json:"id" sortable:"true"`
	Status            string                  `json:"status" sortable:"true"`
	Trigger           string                  `json:"trigger" sortable:"true"`
	Destination       SystemBackupDestination `json:"destination" sortable:"true"`
	Format            string                  `json:"format,omitempty"`
	LocalSnapshotID   string                  `json:"localSnapshotId,omitempty"`
	RemoteSnapshotID  string                  `json:"remoteSnapshotId,omitempty"`
	RemoteInstanceID  string                  `json:"remoteInstanceId,omitempty"`
	S3DestinationID   string                  `json:"s3DestinationId,omitempty"`
	S3DestinationName string                  `json:"s3DestinationName,omitempty"`
	PolicyID          string                  `json:"policyId,omitempty"`
	Error             string                  `json:"error,omitempty"`
	Type              BackupManagementType    `json:"type" sortable:"true"`
	ResourceType      string                  `json:"resourceType"`
	ResourceName      string                  `json:"resourceName" sortable:"true"`
	Size              int64                   `json:"size" sortable:"true"`
}

type SystemVolumeBackupOption

type SystemVolumeBackupOption struct {
	Name      string `json:"name"`
	Anonymous bool   `json:"anonymous"`
	Available bool   `json:"available"`
}

type SystemVolumeBackupPolicy

type SystemVolumeBackupPolicy struct {
	LastRun           *SystemBackupRun          `json:"lastRun,omitempty"`
	ID                string                    `json:"id"`
	Schedule          string                    `json:"schedule"`
	S3DestinationID   string                    `json:"s3DestinationId,omitempty"`
	S3DestinationName string                    `json:"s3DestinationName,omitempty"`
	SelectionMode     SystemVolumeSelectionMode `json:"selectionMode"`
	VolumeNames       []string                  `json:"volumeNames"`
	RetentionCount    int                       `json:"retentionCount"`
	Enabled           bool                      `json:"enabled"`
	StopContainers    bool                      `json:"stopContainers"`
	LocalEnabled      bool                      `json:"localEnabled"`
	S3Enabled         bool                      `json:"s3Enabled"`
	IgnoreAnonymous   bool                      `json:"ignoreAnonymous"`
}

type SystemVolumeBackupPolicyCollection

type SystemVolumeBackupPolicyCollection struct {
	Policies []SystemVolumeBackupPolicy `json:"policies"`
}

type SystemVolumeBackupRunResult

type SystemVolumeBackupRunResult struct {
	Failures  []SystemVolumeBackupFailure `json:"failures"`
	Matched   int                         `json:"matched"`
	Succeeded int                         `json:"succeeded"`
	Failed    int                         `json:"failed"`
	Skipped   int                         `json:"skipped"`
}

type SystemVolumeSelectionMode

type SystemVolumeSelectionMode string

type TargetMissingWithSourceError

type TargetMissingWithSourceError struct {
	SourceVolume string
	TargetVolume string
}

func (*TargetMissingWithSourceError) Error

type TargetOutcome

type TargetOutcome struct {
	ResourceType string         `json:"resourceType,omitempty"`
	ID           string         `json:"id"`
	Status       RunStatus      `json:"status"`
	Message      string         `json:"message,omitempty"`
	ActivityID   string         `json:"activityId,omitempty"`
	RecoveryData jsontext.Value `json:"-" msgpack:"recoveryData,omitempty"`
}

type TargetPreservedDuringRollbackError

type TargetPreservedDuringRollbackError struct {
	Err          error
	SourceVolume string
	TargetVolume string
}

func (*TargetPreservedDuringRollbackError) Error

func (*TargetPreservedDuringRollbackError) Unwrap

type Template

type Template struct {
	EnvContent *string           `json:"envContent,omitempty"`
	RegistryID *string           `json:"registryId,omitempty" readOnly:"true"`
	Registry   *TemplateRegistry `json:"registry,omitempty" readOnly:"true"`
	Metadata   *TemplateMeta     `json:"metadata,omitempty" readOnly:"true"`
	BaseTemplate
	Content  string `json:"content" required:"false"`
	IsCustom bool   `json:"isCustom" readOnly:"true"`
	IsRemote bool   `json:"isRemote" readOnly:"true"`
}

type TemplateBaseRegistry

type TemplateBaseRegistry struct {
	Name        string `json:"name" required:"false" unorm:"nfc" trim:"true"`
	Description string `json:"description" required:"false" unorm:"nfc" trim:"true"`
	URL         string `json:"url" required:"false"`
}

type TemplateContent

type TemplateContent struct {
	Template         Template      `json:"template"`
	Content          string        `json:"content"`
	EnvContent       string        `json:"envContent"`
	Services         []string      `json:"services"`
	EnvVariables     []EnvVariable `json:"envVariables"`
	IsFolderTemplate bool          `json:"isFolderTemplate"`
}

type TemplateMeta

type TemplateMeta struct {
	Version          *string  `json:"version,omitempty"`
	Author           *string  `json:"author,omitempty"`
	RemoteURL        *string  `json:"remoteUrl,omitempty"`
	EnvURL           *string  `json:"envUrl,omitempty"`
	DocumentationURL *string  `json:"documentationUrl,omitempty"`
	IconURL          *string  `json:"iconUrl,omitempty"`
	UpdatedAt        *string  `json:"updatedAt,omitempty"`
	Tags             []string `json:"tags,omitempty"`
}

type TemplateRegistry

type TemplateRegistry struct {
	LastFetchError *string `json:"lastFetchError,omitempty" readOnly:"true"`
	TemplateBaseRegistry
	ID      string `json:"id" readOnly:"true"`
	Enabled bool   `json:"enabled" required:"false"`
}

type TemplateRemoteRegistry

type TemplateRemoteRegistry struct {
	TemplateBaseRegistry
	Schema    string           `json:"$schema,omitempty"`
	Version   string           `json:"version"`
	Author    string           `json:"author"`
	Templates []RemoteTemplate `json:"templates"`
}

type ThemePalette

type ThemePalette struct {
	Background               string `json:"background" required:"true"`
	Foreground               string `json:"foreground" required:"true"`
	Card                     string `json:"card" required:"true"`
	CardForeground           string `json:"card-foreground" required:"true"`
	Popover                  string `json:"popover" required:"true"`
	PopoverForeground        string `json:"popover-foreground" required:"true"`
	Primary                  string `json:"primary" required:"true"`
	PrimaryForeground        string `json:"primary-foreground" required:"true"`
	Secondary                string `json:"secondary" required:"true"`
	SecondaryForeground      string `json:"secondary-foreground" required:"true"`
	Muted                    string `json:"muted" required:"true"`
	MutedForeground          string `json:"muted-foreground" required:"true"`
	Accent                   string `json:"accent" required:"true"`
	AccentForeground         string `json:"accent-foreground" required:"true"`
	Border                   string `json:"border" required:"true"`
	Input                    string `json:"input" required:"true"`
	Ring                     string `json:"ring" required:"true"`
	Sidebar                  string `json:"sidebar" required:"true"`
	SidebarForeground        string `json:"sidebar-foreground" required:"true"`
	SidebarPrimary           string `json:"sidebar-primary" required:"true"`
	SidebarPrimaryForeground string `json:"sidebar-primary-foreground" required:"true"`
	SidebarAccent            string `json:"sidebar-accent" required:"true"`
	SidebarAccentForeground  string `json:"sidebar-accent-foreground" required:"true"`
	SidebarBorder            string `json:"sidebar-border" required:"true"`
	SidebarRing              string `json:"sidebar-ring" required:"true"`
	Surface                  string `json:"surface" required:"true"`
	GlassShadowColor         string `json:"glass-shadow-color" required:"true"`
	SyntaxComment            string `json:"syntax-comment" required:"true"`
	SyntaxKeyword            string `json:"syntax-keyword" required:"true"`
	SyntaxProperty           string `json:"syntax-property" required:"true"`
	SyntaxString             string `json:"syntax-string" required:"true"`
	SyntaxNumber             string `json:"syntax-number" required:"true"`
	SyntaxOperator           string `json:"syntax-operator" required:"true"`
}

type ThreatIntelEntry

type ThreatIntelEntry struct {
	EPSSScore      *float64
	EPSSPercentile *float64
	EPSSCheckedAt  *time.Time
	UpdatedAt      *time.Time
	CVEID          string
	KEVDateAdded   string
	KEVDueDate     string
	KnownExploited bool
	KEVRansomware  bool
}

type ThreatIntelStatus

type ThreatIntelStatus struct {
	LastSyncedAt *time.Time `json:"lastSyncedAt,omitempty"`
	Enabled      bool       `json:"enabled"`
	Stale        bool       `json:"stale"`
}

type TimeFormat

type TimeFormat string
const (
	TimeFormatAuto   TimeFormat = "auto"
	TimeFormat12Hour TimeFormat = "12h"
	TimeFormat24Hour TimeFormat = "24h"
)

type TokenExchangeRequest

type TokenExchangeRequest struct {
	GrantType          string
	SubjectToken       string
	SubjectTokenType   string
	Audience           string
	Scope              string
	RequestedTokenType string
}

type TokenRefreshResponse

type TokenRefreshResponse struct {
	ExpiresAt    time.Time `json:"expiresAt" doc:"Expiration time of the new access token"`
	Token        string    `json:"token" doc:"New JWT access token"`
	RefreshToken string    `json:"refreshToken" doc:"New refresh token"`
}

type TrivyCVSS

type TrivyCVSS struct {
	V2Vector string  `json:"V2Vector"`
	V3Vector string  `json:"V3Vector"`
	V2Score  float64 `json:"V2Score"`
	V3Score  float64 `json:"V3Score"`
}

type TrivyDataSource

type TrivyDataSource struct {
	ID   string `json:"ID"`
	Name string `json:"Name"`
	URL  string `json:"URL"`
}

type TrivyLayer

type TrivyLayer struct {
	Digest string `json:"Digest"`
	DiffID string `json:"DiffID"`
}

type TrivyMetadata

type TrivyMetadata struct {
	OS          *TrivyOS `json:"OS,omitempty"`
	ImageID     string   `json:"ImageID"`
	DiffIDs     []string `json:"DiffIDs"`
	RepoTags    []string `json:"RepoTags"`
	RepoDigests []string `json:"RepoDigests"`
}

type TrivyOS

type TrivyOS struct {
	Family string `json:"Family"`
	Name   string `json:"Name"`
}

type TrivyReport

type TrivyReport struct {
	ArtifactName  string         `json:"ArtifactName"`
	ArtifactType  string         `json:"ArtifactType"`
	Metadata      TrivyMetadata  `json:"Metadata"`
	Results       []TrivyResults `json:"Results"`
	SchemaVersion int            `json:"SchemaVersion"`
}

type TrivyResults

type TrivyResults struct {
	Target          string               `json:"Target"`
	Class           string               `json:"Class"`
	Type            string               `json:"Type"`
	Vulnerabilities []TrivyVulnerability `json:"Vulnerabilities"`
}

type TrivyVulnerability

type TrivyVulnerability struct {
	Layer            *TrivyLayer          `json:"Layer,omitempty"`
	DataSource       *TrivyDataSource     `json:"DataSource,omitempty"`
	CVSS             map[string]TrivyCVSS `json:"CVSS"`
	VulnerabilityID  string               `json:"VulnerabilityID"`
	PkgID            string               `json:"PkgID"`
	PkgName          string               `json:"PkgName"`
	InstalledVersion string               `json:"InstalledVersion"`
	FixedVersion     string               `json:"FixedVersion"`
	Status           string               `json:"Status"`
	SeveritySource   string               `json:"SeveritySource"`
	PrimaryURL       string               `json:"PrimaryURL"`
	Title            string               `json:"Title"`
	Description      string               `json:"Description"`
	Severity         string               `json:"Severity"`
	PublishedDate    string               `json:"PublishedDate"`
	LastModifiedDate string               `json:"LastModifiedDate"`
	CweIDs           []string             `json:"CweIDs"`
	References       []string             `json:"References"`
}

type UnmanagedBackupSweep

type UnmanagedBackupSweep struct {
	Now                   time.Time
	SystemVolumePolicyIDs []string
	Within                []string
	Retention             time.Duration
}

UnmanagedBackupSweep's Within, when set, limits a recheck to the batch it already locked.

type Update

type Update[T any] struct {
	Body T
	SubmittedBody
}

type UpdateBackupPolicy

type UpdateBackupPolicy struct {
	ID              string `json:"id,omitempty"`
	Schedule        string `json:"schedule"`
	S3DestinationID string `json:"s3DestinationId,omitempty"`
	RetentionCount  int    `json:"retentionCount"`
	Enabled         bool   `json:"enabled"`
	StopContainers  bool   `json:"stopContainers,omitempty"`
	LocalEnabled    bool   `json:"localEnabled"`
	S3Enabled       bool   `json:"s3Enabled"`
}

type UpdateProjectTag

type UpdateProjectTag struct {
	Name     string          `json:"name"`
	Color    ProjectTagColor `json:"color,omitempty"`
	Attached bool            `json:"attached"`
}

type UpdateProjectTagResponse

type UpdateProjectTagResponse struct {
	ActivityID *string      `json:"activityId,omitempty"`
	Tags       []ProjectTag `json:"tags"`
}

type UpdateSystemBackupPolicies

type UpdateSystemBackupPolicies struct {
	Policies []UpdateBackupPolicy `json:"policies"`
}

type UpdateSystemVolumeBackupPolicies

type UpdateSystemVolumeBackupPolicies struct {
	Policies []UpdateSystemVolumeBackupPolicy `json:"policies"`
}

type UpdateSystemVolumeBackupPolicy

type UpdateSystemVolumeBackupPolicy struct {
	SelectionMode SystemVolumeSelectionMode `json:"selectionMode"`
	VolumeNames   []string                  `json:"volumeNames"`
	UpdateBackupPolicy

	IgnoreAnonymous bool `json:"ignoreAnonymous"`
}

type UpdateVolumeBackupPolicies

type UpdateVolumeBackupPolicies struct {
	Policies []UpdateBackupPolicy `json:"policies"`
}

type UpdaterCheckProjectInput

type UpdaterCheckProjectInput struct {
	EnvironmentID string `path:"id" doc:"Environment ID"`
	ProjectID     string `path:"projectId" doc:"Project ID"`
}

type UpdaterOptions

type UpdaterOptions struct {
	Type        string   `json:"type,omitempty"`
	ResourceIds []string `json:"resourceIds,omitempty"`
	ForceUpdate bool     `json:"forceUpdate,omitempty"`
	DryRun      bool     `json:"dryRun,omitempty"`

	IgnoreSettingsExclusions bool `json:"-"`
}

type UpdaterResourceResult

type UpdaterResourceResult struct {
	OldImages       map[string]string `json:"oldImages,omitempty"`
	NewImages       map[string]string `json:"newImages,omitempty"`
	Details         map[string]any    `json:"details,omitempty"`
	ResourceID      string            `json:"resourceId"`
	ResourceName    string            `json:"resourceName,omitempty"`
	ResourceType    string            `json:"resourceType"`
	Status          string            `json:"status"`
	Error           string            `json:"error,omitempty"`
	UpdateAvailable bool              `json:"updateAvailable,omitempty"`
	UpdateApplied   bool              `json:"updateApplied,omitempty"`
}

type UpdaterResult

type UpdaterResult struct {
	ActivityID *string                 `json:"activityId,omitempty"`
	StartTime  string                  `json:"startTime,omitempty"`
	EndTime    string                  `json:"endTime,omitempty"`
	Duration   string                  `json:"duration"`
	Items      []UpdaterResourceResult `json:"items"`
	Checked    int                     `json:"checked"`
	Updated    int                     `json:"updated"`
	Restarted  int                     `json:"restarted,omitempty"`
	Skipped    int                     `json:"skipped"`
	Failed     int                     `json:"failed"`
	Success    bool                    `json:"success,omitempty"`
}

type UpdaterStatus

type UpdaterStatus struct {
	ContainerIds       []string `json:"containerIds"`
	ProjectIds         []string `json:"projectIds"`
	UpdatingContainers int      `json:"updatingContainers"`
	UpdatingProjects   int      `json:"updatingProjects"`
}

type UpgradeCheckResult

type UpgradeCheckResult struct {
	Message    string `json:"message"`
	CanUpgrade bool   `json:"canUpgrade"`
	Error      bool   `json:"error"`
}

type UpgradeJob

type UpgradeJob struct {
	CreatedAt             time.Time          `json:"createdAt" sortable:"true"`
	UpdatedAt             *time.Time         `json:"updatedAt,omitempty"`
	Error                 *string            `json:"error,omitempty"`
	CompletedAt           *time.Time         `json:"completedAt,omitempty"`
	ID                    string             `json:"id"`
	Status                string             `json:"status"`
	UserID                string             `json:"userId"`
	Username              string             `json:"username"`
	ManagerVersionAtStart string             `json:"managerVersionAtStart"`
	ManagerDigestAtStart  string             `json:"managerDigestAtStart"`
	ManagerTargetVersion  string             `json:"managerTargetVersion"`
	Results               []UpgradeJobResult `json:"results,omitempty"`
}

type UpgradeJobResult

type UpgradeJobResult struct {
	StageStartedAt  *time.Time `json:"stageStartedAt,omitempty"`
	EnvironmentID   string     `json:"environmentId"`
	EnvironmentName string     `json:"environmentName"`
	Status          string     `json:"status"`
	FromVersion     string     `json:"fromVersion,omitempty"`
	FromDigest      string     `json:"fromDigest,omitempty"`
	ToVersion       string     `json:"toVersion,omitempty"`
	Stage           string     `json:"stage,omitempty"`
	Error           string     `json:"error,omitempty"`
	Logs            []string   `json:"logs,omitempty"`
	Percent         int        `json:"percent"`
}

type UpgradeProgressEvent

type UpgradeProgressEvent struct {
	At          time.Time `json:"at"`
	Type        string    `json:"type" enum:"stage,progress,log,done"`
	Message     string    `json:"message,omitempty"`
	FromVersion string    `json:"fromVersion,omitempty"`
	ToVersion   string    `json:"toVersion,omitempty"`
	Percent     int       `json:"percent"`
	Replay      bool      `json:"replay,omitempty"`
}

type UploadConsumeRequest

type UploadConsumeRequest struct {
	UploadID string `json:"uploadId" required:"true" doc:"ID of a complete upload session"`
}

type UploadSession

type UploadSession struct {
	CreatedAt      time.Time `json:"createdAt"`
	ID             string    `json:"id"`
	Kind           string    `json:"kind"`
	Filename       string    `json:"filename"`
	ReceivedChunks []int     `json:"receivedChunks"`
	Size           int64     `json:"size"`
	ChunkSize      int64     `json:"chunkSize"`
	TotalChunks    int       `json:"totalChunks"`
	Complete       bool      `json:"complete"`
}

type UploadSystemBackupRequest

type UploadSystemBackupRequest struct {
	S3DestinationID string `json:"s3DestinationId"`
	RecoveryKey     string `json:"recoveryKey"`
}

type UploadVolumeBackupRequest

type UploadVolumeBackupRequest struct {
	S3DestinationID string `json:"s3DestinationId" doc:"S3 destination for the uploaded backup"`
}

type User

type User struct {
	FontSize               *int                    `json:"fontSize,omitempty" minimum:"12" maximum:"20" doc:"Preferred root UI font size in px" example:"14"`
	DisplayName            *string                 `json:"displayName,omitempty" maxLength:"255" doc:"Display name of the user" example:"John Doe" unorm:"nfc" trim:"true"`
	Email                  *string                 `json:"email,omitempty" doc:"Email address of the user" example:"john@example.com"`
	AvatarURL              *string                 `` /* 134-byte string literal not displayed */
	BackdropURL            *string                 `json:"backdropUrl,omitempty" readOnly:"true" doc:"URL to the user's uploaded background image; omitted when none is uploaded"`
	OidcSubjectId          *string                 `json:"oidcSubjectId,omitempty" readOnly:"true" doc:"OIDC subject identifier for SSO users"`
	Locale                 *string                 `json:"locale,omitempty" doc:"Locale preference of the user" example:"en-US"`
	LastLogin              *string                 `` /* 139-byte string literal not displayed */
	PermissionsByEnv       map[string][]string     `` /* 140-byte string literal not displayed */
	Preferences            UserPreferences         `json:"preferences" required:"false" doc:"Personal display and UI preferences"`
	ID                     string                  `json:"id" readOnly:"true" doc:"Unique identifier of the user" example:"550e8400-e29b-41d4-a716-446655440000"`
	Username               string                  `` /* 138-byte string literal not displayed */
	Password               string                  `json:"password,omitempty" writeOnly:"true" minLength:"8" doc:"Password of the user; never returned"`
	TimeFormat             TimeFormat              `json:"timeFormat" required:"false" enum:"auto,12h,24h" doc:"Preferred time display format" example:"auto"`
	CreatedAt              string                  `json:"createdAt,omitempty" readOnly:"true" doc:"Date and time when the user was created"`
	UpdatedAt              string                  `json:"updatedAt,omitempty" readOnly:"true" doc:"Date and time when the user was last updated"`
	RoleAssignments        []RoleAssignmentSummary `json:"roleAssignments" readOnly:"true" doc:"Role assignments held by the user"`
	IsGlobalAdmin          bool                    `json:"isGlobalAdmin" readOnly:"true" doc:"Whether the user effectively holds global administrator access"`
	CanDelete              bool                    `json:"canDelete" readOnly:"true" doc:"Whether the user can currently be deleted"`
	RequiresPasswordChange bool                    `json:"requiresPasswordChange" readOnly:"true" doc:"Whether the user must change their password"`
}

type UserPreferences

type UserPreferences struct {
	ThemeMode                  *string `json:"themeMode,omitempty" enum:"light,dark,system" doc:"Light/dark mode preference"`
	ApplicationTheme           *string `json:"applicationTheme,omitempty" pattern:"^[a-z0-9-]{1,48}$" doc:"Theme preset or custom theme ID"`
	AccentColor                *string `json:"accentColor,omitempty" doc:"Primary accent color, or 'default'"`
	IconCatalog                *string `json:"iconCatalog,omitempty" enum:"selfhst,dashboard-icons" doc:"Catalog used to resolve project and container icon slugs"`
	OledMode                   *bool   `json:"oledMode,omitempty" doc:"Use true-black backgrounds in dark mode"`
	GlassEffectsEnabled        *bool   `json:"glassEffectsEnabled,omitempty" doc:"Apply blur and glass effects to UI surfaces"`
	AnimationsEnabled          *bool   `json:"animationsEnabled,omitempty" doc:"Enable decorative interface animations"`
	KeyboardShortcutsEnabled   *bool   `json:"keyboardShortcutsEnabled,omitempty" doc:"Enable keyboard shortcuts and shortcut hints"`
	MobileNavigationShowLabels *bool   `json:"mobileNavigationShowLabels,omitempty" doc:"Show text labels in mobile navigation"`
	DefaultLandingPage         *string `json:"defaultLandingPage,omitempty" doc:"Route opened after signing in"`
	DefaultProjectEditorLayout *string `` /* 143-byte string literal not displayed */
	EditorTabWidth             *int    `json:"editorTabWidth,omitempty" enum:"2,4,8" doc:"Spaces per indentation level in code editors and when formatting documents"`
	ToastPosition              *string `` /* 145-byte string literal not displayed */
	// A pointer so the merge-only preferences update replaces the whole map.
	EnvironmentColors     *map[string]string       `json:"environmentColors,omitempty" doc:"Environment label color by environment ID"`
	EnvironmentLabelStyle *string                  `json:"environmentLabelStyle,omitempty" enum:"name,dot" doc:"How resource lists label environments"`
	DashboardLayout       *[]DashboardWidgetLayout `json:"dashboardLayout,omitempty" doc:"Dashboard widgets with their grid position, size, and visibility"`
	CustomThemes          *[]CustomTheme           `json:"customThemes,omitempty" maxItems:"20" doc:"Imported custom color themes"`
	InterfaceFont         *string                  `` /* 147-byte string literal not displayed */
	MonospaceFont         *string                  `` /* 147-byte string literal not displayed */
	CodeFont              *string                  `` /* 139-byte string literal not displayed */
	Backdrop              *string                  `` /* 127-byte string literal not displayed */
	BackdropDim           *int                     `json:"backdropDim,omitempty" minimum:"0" maximum:"80" doc:"Percent the background image is darkened in dark mode"`
}

type UserRoleAssignmentInput

type UserRoleAssignmentInput struct {
	EnvironmentID *string `json:"environmentId,omitempty" doc:"Environment ID to scope the assignment to; omit for a global assignment"`
	RoleID        string  `json:"roleId" doc:"ID of the role to grant"`
}

type VersionCheck

type VersionCheck struct {
	CurrentVersion  string `json:"currentVersion"`
	NewestVersion   string `json:"newestVersion,omitempty"`
	ReleaseURL      string `json:"releaseUrl,omitempty"`
	UpdateAvailable bool   `json:"updateAvailable"`
}

type VersionInfo

type VersionInfo struct {
	CurrentVersion   string   `json:"currentVersion"`
	CurrentTag       string   `json:"currentTag,omitempty"`
	CurrentDigest    string   `json:"currentDigest,omitempty"`
	Revision         string   `json:"revision"`
	ShortRevision    string   `json:"shortRevision"`
	GoVersion        string   `json:"goVersion"`
	NodeVersion      string   `json:"nodeVersion"`
	SvelteKitVersion string   `json:"svelteKitVersion"`
	BuildTime        string   `json:"buildTime,omitempty"`
	DisplayVersion   string   `json:"displayVersion"`
	NewestVersion    string   `json:"newestVersion,omitempty"`
	NewestDigest     string   `json:"newestDigest,omitempty"`
	ReleaseURL       string   `json:"releaseUrl,omitempty"`
	ReleaseNotes     string   `json:"releaseNotes,omitempty"`
	ReleasedAt       string   `json:"releasedAt,omitempty"`
	EnabledFeatures  []string `json:"enabledFeatures,omitempty"`
	IsSemverVersion  bool     `json:"isSemverVersion"`
	IsStableVersion  bool     `json:"isStableVersion"`
	UpdateAvailable  bool     `json:"updateAvailable"`
}

func (*VersionInfo) AlreadyOnNewest

func (i *VersionInfo) AlreadyOnNewest() bool

type VersionStreamEvent

type VersionStreamEvent struct {
	Timestamp time.Time    `json:"timestamp"`
	Info      *VersionInfo `json:"info,omitempty"`
	Type      string       `json:"type"`
}

type Volume

type Volume struct {
	Options    map[string]string `json:"options" required:"false"`
	Labels     map[string]string `json:"labels" required:"false"`
	UsageData  *volume.UsageData `json:"usageData,omitempty" readOnly:"true"`
	ActivityID *string           `json:"activityId,omitempty" readOnly:"true"`
	EnvironmentTag
	ID         string   `json:"id" readOnly:"true"`
	Name       string   `json:"name" required:"false"`
	Driver     string   `json:"driver" required:"false"`
	Mountpoint string   `json:"mountpoint" readOnly:"true"`
	Scope      string   `json:"scope" readOnly:"true"`
	CreatedAt  string   `json:"createdAt" readOnly:"true"`
	Containers []string `json:"containers" readOnly:"true"`

	Size  int64 `json:"size" readOnly:"true"`
	InUse bool  `json:"inUse" readOnly:"true"`
}

func NewVolume

func NewVolume(v volume.Volume) Volume

type VolumeBackup

type VolumeBackup struct {
	CreatedAt         time.Time               `json:"createdAt"`
	UpdatedAt         *time.Time              `json:"updatedAt,omitempty"`
	ActivityID        *string                 `json:"activityId,omitempty"`
	RemoteAvailable   *bool                   `json:"remoteAvailable,omitempty"`
	ID                string                  `json:"id"`
	VolumeName        string                  `json:"volumeName"`
	Status            string                  `json:"status"`
	Trigger           string                  `json:"trigger"`
	Destination       VolumeBackupDestination `json:"destination"`
	Format            VolumeBackupFormat      `json:"format"`
	LocalSnapshotID   string                  `json:"localSnapshotId,omitempty"`
	RemoteSnapshotID  string                  `json:"remoteSnapshotId,omitempty"`
	S3DestinationID   string                  `json:"s3DestinationId,omitempty"`
	RemoteInstanceID  string                  `json:"remoteInstanceId,omitempty"`
	S3DestinationName string                  `json:"s3DestinationName,omitempty"`
	PolicyID          string                  `json:"policyId,omitempty"`
	Error             string                  `json:"error,omitempty"`
	Type              BackupManagementType    `json:"type"`
	Size              int64                   `json:"size"`
}

func (*VolumeBackup) Entry

func (b *VolumeBackup) Entry() VolumeBackupEntry

type VolumeBackupDestination

type VolumeBackupDestination string

type VolumeBackupEntry

type VolumeBackupEntry struct {
	RemoteAvailable   *bool                   `json:"remoteAvailable,omitempty"`
	ActivityID        *string                 `json:"activityId,omitempty"`
	ID                string                  `json:"id" doc:"Unique identifier of the backup"`
	VolumeName        string                  `json:"volumeName" doc:"Name of the volume"`
	CreatedAt         string                  `json:"createdAt" doc:"When the backup was created"`
	Status            string                  `json:"status" doc:"Backup result status"`
	Trigger           string                  `json:"trigger" doc:"How the backup was started"`
	Destination       VolumeBackupDestination `json:"destination" doc:"Requested backup storage target"`
	Format            VolumeBackupFormat      `json:"format" doc:"Storage format of the backup: legacy tar.gz archive or Rustic snapshot"`
	LocalSnapshotID   string                  `json:"localSnapshotId,omitempty" doc:"Snapshot ID in the local Rustic repository"`
	RemoteSnapshotID  string                  `json:"remoteSnapshotId,omitempty" doc:"Snapshot ID in the S3 Rustic repository"`
	S3DestinationID   string                  `json:"s3DestinationId,omitempty" doc:"S3 destination used by the backup"`
	S3DestinationName string                  `json:"s3DestinationName,omitempty" doc:"Name of the S3 destination used by the backup"`
	PolicyID          string                  `json:"policyId,omitempty" doc:"Backup policy that created the backup"`
	Error             string                  `json:"error,omitempty" doc:"Backup error when the run failed"`
	Type              BackupManagementType    `json:"type" doc:"Whether the backup was system-managed or volume-managed"`
	Size              int64                   `json:"size" doc:"Total size of the backup contents"`
}

type VolumeBackupFileRestoreOptions

type VolumeBackupFileRestoreOptions struct {
	ContainerID string
	VolumeName  string
	BackupID    string
	Path        string
}

type VolumeBackupFormat

type VolumeBackupFormat string

type VolumeBackupPolicy

type VolumeBackupPolicy struct {
	LastRun           *VolumeBackupEntry `json:"lastRun,omitempty"`
	ID                string             `json:"id"`
	VolumeName        string             `json:"volumeName"`
	Schedule          string             `json:"schedule"`
	S3DestinationID   string             `json:"s3DestinationId,omitempty"`
	S3DestinationName string             `json:"s3DestinationName,omitempty"`
	S3Bucket          string             `json:"s3Bucket,omitempty"`
	RetentionCount    int                `json:"retentionCount"`
	Enabled           bool               `json:"enabled"`
	StopContainers    bool               `json:"stopContainers"`
	LocalEnabled      bool               `json:"localEnabled"`
	S3Enabled         bool               `json:"s3Enabled"`
	S3Available       bool               `json:"s3Available"`
}

type VolumeBackupPolicyCollection

type VolumeBackupPolicyCollection struct {
	Policies    []VolumeBackupPolicy `json:"policies"`
	S3Available bool                 `json:"s3Available"`
}

type VolumeJournalSource

type VolumeJournalSource interface {
	JournalVolumes() []VolumeJournalVolume
}

type VolumeJournalVolume

type VolumeJournalVolume struct {
	Options map[string]string `json:"options,omitempty"`
	Labels  map[string]string `json:"labels,omitempty"`
	Key     string            `json:"key"`
	OldName string            `json:"oldName"`
	NewName string            `json:"newName"`
	Driver  string            `json:"driver,omitempty"`
}

type VolumeMigration

type VolumeMigration interface {
	Apply(ctx context.Context) error
	Rollback(ctx context.Context) error
}

type VolumePruneReport

type VolumePruneReport struct {
	ActivityID     *string  `json:"activityId,omitempty"`
	VolumesDeleted []string `json:"volumesDeleted"`

	SpaceReclaimed uint64 `json:"spaceReclaimed"`
}

type VolumeRename

type VolumeRename struct {
	Name string `json:"name" minLength:"1" doc:"New volume name"`
}

type VolumeRenameCommitter

type VolumeRenameCommitter interface {
	Commit(ctx context.Context) error
}

type VolumeRenameEntry

type VolumeRenameEntry struct {
	OldVolume     volume.Volume
	CreateOptions client.VolumeCreateOptions
	Key           string
	OldName       string
	NewName       string
}

type VolumeSourcePathMapper

type VolumeSourcePathMapper interface {
	TranslateVolumeSources(project *composetypes.Project, translateFileResources bool) error
	ContainerToHost(containerPath string) (hostPath string, mapped bool, err error)
}

type VolumeUsageCounts

type VolumeUsageCounts struct {
	Inuse  int `json:"inuse"`
	Unused int `json:"unused"`
	Total  int `json:"total"`
}

type VolumeWorkspaceFileChange

type VolumeWorkspaceFileChange struct {
	Operation     string `json:"operation" binding:"required" enum:"create_file,create_folder,update_file,rename,move,delete,restore_file"`
	RelativePath  string `json:"relativePath" binding:"required"`
	NewName       string `json:"newName,omitempty"`
	NewParentPath string `json:"newParentPath,omitempty"`
	UploadIndex   *int   `json:"uploadIndex,omitempty" minimum:"0"`
	BaselineIndex *int   `json:"baselineIndex,omitempty" minimum:"0"`
	BackupID      string `json:"backupId,omitempty"`
	Recursive     bool   `json:"recursive,omitempty"`
}

type VolumeWorkspaceUpdateManifest

type VolumeWorkspaceUpdateManifest struct {
	FileChanges []VolumeWorkspaceFileChange `json:"fileChanges" binding:"required" minItems:"1" maxItems:"500"`
}

type VolumesExternallyRemovedError

type VolumesExternallyRemovedError struct {
	Volumes []VolumeJournalVolume
}

func (*VolumesExternallyRemovedError) Error

type Vulnerability

type Vulnerability struct {
	CVSS             *CVSSInfo  `json:"cvss,omitempty"`
	PublishedDate    *time.Time `json:"publishedDate,omitempty"`
	LastModifiedDate *time.Time `json:"lastModifiedDate,omitempty"`
	VulnerabilityID  string     `json:"vulnerabilityId"`
	PkgName          string     `json:"pkgName"`
	InstalledVersion string     `json:"installedVersion"`

	FixedVersion string                `json:"fixedVersion,omitempty"`
	Severity     VulnerabilitySeverity `json:"severity"`

	Class string `json:"class,omitempty"`

	Type        string   `json:"type,omitempty"`
	Title       string   `json:"title,omitempty"`
	Description string   `json:"description,omitempty"`
	References  []string `json:"references,omitempty"`
}

type VulnerabilityBulkIgnoreResponse

type VulnerabilityBulkIgnoreResponse struct {
	AffectedCount int `json:"affectedCount"`
}

type VulnerabilityPackageInsight

type VulnerabilityPackageInsight struct {
	PkgName          string                `json:"pkgName"`
	Severity         VulnerabilitySeverity `json:"severity"`
	InstalledVersion string                `json:"installedVersion"`
	FixedVersion     string                `json:"fixedVersion,omitempty"`
	Count            int                   `json:"count"`
}

type VulnerabilityPatchPriority

type VulnerabilityPatchPriority struct {
	RiskBand    RiskBand                 `json:"riskBand"`
	ScoreStatus VulnerabilityScoreStatus `json:"scoreStatus"`
	RiskScore   int                      `json:"riskScore"`
}

type VulnerabilityScanInsights

type VulnerabilityScanInsights struct {
	VulnerabilityPatchPriority
	HighestVulnerabilityID string                        `json:"highestVulnerabilityId,omitempty"`
	Exposure               ImageExposure                 `json:"exposure"`
	TopPackages            []VulnerabilityPackageInsight `json:"topPackages"`
	HighestCVSS            float64                       `json:"highestCvss"`
	FixableCount           int                           `json:"fixableCount"`
	KnownExploitedCount    int                           `json:"knownExploitedCount"`
}

type VulnerabilityScanPhase

type VulnerabilityScanPhase string

type VulnerabilityScanResult

type VulnerabilityScanResult struct {
	ScanTime        time.Time                     `json:"scanTime"`
	ActivityID      *string                       `json:"activityId,omitempty"`
	Summary         *VulnerabilitySeveritySummary `json:"summary,omitempty"`
	Insights        *VulnerabilityScanInsights    `json:"insights,omitempty"`
	ImageID         string                        `json:"imageId"`
	ImageName       string                        `json:"imageName"`
	Status          VulnerabilityScanStatus       `json:"status"`
	ScanPhase       VulnerabilityScanPhase        `json:"scanPhase,omitempty"`
	Error           string                        `json:"error,omitempty"`
	ScannerVersion  string                        `json:"scannerVersion,omitempty"`
	Vulnerabilities []Vulnerability               `json:"vulnerabilities,omitempty"`

	Duration  int64 `json:"duration,omitempty"`
	HasReport bool  `json:"hasReport,omitempty"`
}

func ConvertTrivyReportToScanResult

func ConvertTrivyReportToScanResult(report *TrivyReport, imageID string, scanTime time.Time, duration int64) *VulnerabilityScanResult

type VulnerabilityScanStatus

type VulnerabilityScanStatus string

type VulnerabilityScanSummariesRequest

type VulnerabilityScanSummariesRequest struct {
	ImageIDs []string `json:"imageIds"`
}

type VulnerabilityScanSummariesResponse

type VulnerabilityScanSummariesResponse struct {
	Summaries map[string]*VulnerabilityScanSummary `json:"summaries"`
}

type VulnerabilityScanSummary

type VulnerabilityScanSummary struct {
	ImageID   string                        `json:"imageId"`
	ScanTime  time.Time                     `json:"scanTime"`
	Status    VulnerabilityScanStatus       `json:"status"`
	ScanPhase VulnerabilityScanPhase        `json:"scanPhase,omitempty"`
	Summary   *VulnerabilitySeveritySummary `json:"summary,omitempty"`
	Error     string                        `json:"error,omitempty"`
}

type VulnerabilityScannerStatus

type VulnerabilityScannerStatus struct {
	Version   string `json:"version,omitempty"`
	Available bool   `json:"available"`
}

type VulnerabilityScoreStatus

type VulnerabilityScoreStatus string

type VulnerabilitySeverity

type VulnerabilitySeverity string

type VulnerabilitySeveritySummary

type VulnerabilitySeveritySummary struct {
	Critical int `json:"critical"`
	High     int `json:"high"`
	Medium   int `json:"medium"`
	Low      int `json:"low"`
	Unknown  int `json:"unknown"`
	Total    int `json:"total"`
}

type VulnerabilityWithImage

type VulnerabilityWithImage struct {
	EnvironmentTag
	IgnoreID  string `json:"ignoreId,omitempty"`
	ImageID   string `json:"imageId"`
	ImageName string `json:"imageName"`

	Vulnerability

	Ignored bool `json:"ignored,omitempty"`
}

type WebSocketConnectionInfo

type WebSocketConnectionInfo struct {
	StartedAt  time.Time `json:"startedAt"`
	ID         string    `json:"id"`
	Kind       string    `json:"kind"`
	EnvID      string    `json:"envId,omitempty"`
	ResourceID string    `json:"resourceId,omitempty"`
	ClientIP   string    `json:"clientIp,omitempty"`
	UserID     string    `json:"userId,omitempty"`
	UserAgent  string    `json:"userAgent,omitempty"`
}

type WebSocketDiagnostics

type WebSocketDiagnostics struct {
	Connections []WebSocketConnectionInfo `json:"connections"`
	Snapshot    WebSocketMetricsSnapshot  `json:"snapshot"`
}

type WebSocketMetricsSnapshot

type WebSocketMetricsSnapshot struct {
	ProjectLogsActive   int64 `json:"projectLogsActive"`
	ContainerLogsActive int64 `json:"containerLogsActive"`
	ContainerStats      int64 `json:"containerStats"`
	ContainerExec       int64 `json:"containerExec"`
	SystemStats         int64 `json:"systemStats"`
	DiagnosticsActive   int64 `json:"diagnosticsActive"`
	ServiceLogsActive   int64 `json:"serviceLogsActive"`
}

type Webhook

type Webhook struct {
	CreatedAt       time.Time  `json:"createdAt" readOnly:"true" doc:"Creation timestamp"`
	LastTriggeredAt *time.Time `json:"lastTriggeredAt,omitempty" readOnly:"true" doc:"Timestamp of last successful trigger"`
	EnvironmentTag
	ID          string `json:"id" readOnly:"true" doc:"Webhook ID"`
	Name        string `json:"name" required:"false" minLength:"1" maxLength:"255" doc:"Human-readable name for this webhook" unorm:"nfc" trim:"true"`
	TokenPrefix string `json:"tokenPrefix" readOnly:"true" doc:"Masked token prefix for identification"`
	TargetType  string `` /* 163-byte string literal not displayed */
	ActionType  string `` /* 153-byte string literal not displayed */
	TargetID    string `` /* 129-byte string literal not displayed */
	TargetName  string `json:"targetName,omitempty" readOnly:"true" doc:"Resolved target resource name when available"`
	Enabled     bool   `json:"enabled" required:"false" doc:"Whether the webhook is active"`
}

type WebhookCreated

type WebhookCreated struct {
	CreatedAt  time.Time `json:"createdAt" doc:"Creation timestamp"`
	ID         string    `json:"id" doc:"Webhook ID"`
	Name       string    `json:"name" doc:"Webhook name"`
	Token      string    `json:"token" doc:"Full webhook token — store this securely, it will not be shown again"`
	TargetType string    `json:"targetType" doc:"Target type"`
	ActionType string    `json:"actionType" doc:"Action type"`
	TargetID   string    `json:"targetId" doc:"Target resource ID"`
}

type WorkerController

type WorkerController interface {
	RestartWatcher(ctx context.Context, watcherID string) error
	WatcherHealth(watcherID string) (SchedulerWorkerHealth, bool)
}

type Workspace

type Workspace struct {
	ActivityID        *string              `json:"activityId,omitempty"`
	FileTreeRevision  string               `json:"fileTreeRevision"`
	Files             []WorkspaceFileEntry `json:"files"`
	FileTreeTruncated bool                 `json:"fileTreeTruncated"`
}

type WorkspaceFileChange

type WorkspaceFileChange struct {
	UploadIndex   *int   `json:"uploadIndex,omitempty" minimum:"0"`
	BaselineIndex *int   `json:"baselineIndex,omitempty" minimum:"0"`
	Operation     string `json:"operation" binding:"required" enum:"create_file,create_folder,update_file,rename,move,delete"`
	RelativePath  string `json:"relativePath" binding:"required"`
	NewName       string `json:"newName,omitempty"`
	NewParentPath string `json:"newParentPath,omitempty"`
	Recursive     bool   `json:"recursive,omitempty"`
}

type WorkspaceFileContent

type WorkspaceFileContent struct {
	Path           string `json:"path"`
	RelativePath   string `json:"relativePath"`
	Name           string `json:"name"`
	Content        string `json:"content,omitempty"`
	MimeType       string `json:"mimeType"`
	ReadOnlyReason string `json:"readOnlyReason,omitempty" enum:"binary,too_large,symlink,special,gitops_managed"`
	Size           int64  `json:"size"`
	Editable       bool   `json:"editable"`
}

type WorkspaceFileEntry

type WorkspaceFileEntry struct {
	ModTime        time.Time `json:"modTime" doc:"Last modification time"`
	Name           string    `json:"name" doc:"Name of the file or directory"`
	Path           string    `json:"path" doc:"Full path to the file"`
	RelativePath   string    `json:"relativePath" doc:"Path relative to the workspace root"`
	Mode           string    `json:"mode,omitempty" doc:"File mode/permissions"`
	LinkTarget     string    `json:"linkTarget,omitempty" doc:"Target of the symbolic link"`
	ReadOnlyReason string    `json:"readOnlyReason,omitempty" enum:"binary,too_large,symlink,special,gitops_managed"`
	Size           int64     `json:"size" doc:"Size of the file in bytes"`
	IsDirectory    bool      `json:"isDirectory" doc:"Whether this entry is a directory"`
	IsSymlink      bool      `json:"isSymlink" doc:"Whether this entry is a symbolic link"`
	Editable       bool      `json:"editable" doc:"Whether this entry can be edited"`
}

type WorkspaceUpdateManifest

type WorkspaceUpdateManifest struct {
	FileTreeRevision string                `json:"fileTreeRevision" binding:"required"`
	FileChanges      []WorkspaceFileChange `json:"fileChanges" binding:"required" minItems:"1" maxItems:"500"`
}

type WorkspaceUploadRequest

type WorkspaceUploadRequest struct {
	UploadID   string `json:"uploadId" required:"true" doc:"ID of a complete upload session"`
	ParentPath string `json:"parentPath,omitempty" doc:"Folder relative to the workspace root that receives the file"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL