armotypes

package
v0.0.674 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2026 License: Apache-2.0 Imports: 21 Imported by: 94

Documentation

Index

Constants

View Source
const (
	ViewedMainScreenField = "viewedMainScreen"
	ProcessingStatusField = "processingStatus"
	//AttackChainStatuss
	StatusActive AttackChainStatus = "active"
	StatusFixed  AttackChainStatus = "fixed"

	ProcessingStatusProcessing ProcessingStatus = "processing"
	ProcessingStatusDone       ProcessingStatus = "done"
	ProcessingStatusFailed     ProcessingStatus = "failed"
	ProcessingStatusTimeout    ProcessingStatus = "timeout"
)
View Source
const (
	UnknownScore  = 0
	InfoScore     = 100
	LowScore      = 200
	MediumScore   = 300
	HighScore     = 400
	CriticalScore = 500
)
View Source
const (
	CloudCheckStatusEmpty      = "EMPTY"
	CloudCheckStatusFail       = "FAIL"
	CloudCheckStatusManual     = "MANUAL"
	CloudCheckStatusPass       = "PASS"
	CloudCheckStatusSkipped    = "SKIP"
	CloudCheckStatusAccepted   = "ACCEPT"
	CloudCheckStatusIrrelevant = "IRRELEVANT"
)

cloud check statuses

View Source
const (
	CloudEmptyCheckType     = "EMPTY"
	CloudAutomatedCheckType = "AUTOMATED"
	CloudManualCheckType    = CloudCheckStatusManual
	CloudManualAndAutomated = CloudAutomatedCheckType + "/" + CloudManualCheckType
)

cloud check types

View Source
const (
	ScanFailed     = "FAILED"
	ScanInProgress = "INPROGRESS"
	ScanSuccess    = "SUCCESS"
)
View Source
const (
	ScanFailedScore     = 1
	ScanInProgressScore = 2
	ScanSuccessScore    = 3
)
View Source
const (
	//risk factors
	RiskFactorExternalFacing RiskFactor = "External facing"
	RiskFactorPrivileged     RiskFactor = "Privileged"
	RiskFactorSecretAccess   RiskFactor = "Secret access"
	RiskFactorDataAccess     RiskFactor = "Data access"
	RiskFactorHostAccess     RiskFactor = "Host access"
	RiskFactorAILLMClient    RiskFactor = "AI/LLM client"
	RiskFactorAILLMServer    RiskFactor = "AI/LLM service"
	RiskFactorInternetFacing RiskFactor = "Internet facing"

	//scan types
	ClusterPosture           ScanType = "cluster"
	RepositoryPosture        ScanType = "repository"
	ContainerVulnerabilities ScanType = "container"
	RegistryVulnerabilities  ScanType = "registry"
)
View Source
const (
	ArmoKollectorContainerName = "armo-collector" // deprecated, kept for backward compatibility
	KollectorContainerName     = "kollector"

	// registry scan
	LowestHelmVersionSupportedRegistryScanAndTest = "v1.9"
	LowestHelmVersionSupportedRegistryScan        = "v1.7.14"
	RegistryInfoArgKey                            = "registryInfo-v1"
	RegistryScanSecretName                        = "kubescape-registry-scan" //nolint:gosec
	RegistrySecretNameArgKey                      = "registry-secret"

	// vulnerability scan
	LowestHelmVersionSupportedVulnerabilityScan = "v1.7.17"

	// cronjob template annotation and labels
	CronJobTemplateAnnotationArmoJobIDKeyDeprecated      = "armo.jobid"       // deprecated
	CronJobTemplateAnnotationArmoCloudJobIDKeyDeprecated = "armo.cloud/jobid" // deprecated
	CronJobTemplateAnnotationJobIDKey                    = "app.kubescape/job-id"

	CronJobTemplateAnnotationUpdateJobIDDeprecated = "armo.updatejobid" // deprecated
	CronJobTemplateAnnotationUpdateJobID           = "app.kubescape/update-job-id"

	CronJobTemplateAnnotationNamespaceKeyDeprecated = "armo.namespace" // deprecated
	CronJobTemplateAnnotationNamespaceKey           = "app.kubescape/namespace"

	CronJobTemplateAnnotationRegistryNameKey = "armo.cloud/registryname"
	CronJobTemplateAnnotationHostScannerKey  = "armo.host-scanner"
	CronJobTemplateAnnotationFrameworkKey    = "armo.framework"

	CronJobTemplateLabelKey               = "armo.tier"
	CronJobTemplateLabelValueKubescape    = "kubescape-scan"
	CronJobTemplateLabelValueVulnScan     = "vuln-scan"
	CronJobTemplateLabelValueRegistryScan = "registry-scan"
)
View Source
const (
	K8sKindCluster   = "Cluster"
	K8sKindNode      = "Node"
	K8sKindNamespace = "Namespace"
	K8sKindSecret    = "Secret"
	K8sKindCronJob   = "CronJob"
	K8sKindJob       = "Job"
	K8sKindConfigMap = "ConfigMap"

	K8sApiVersionV1      = "v1"
	K8sApiVersionRBAC    = "rbac.authorization.k8s.io"
	K8sApiVersionRBACV1  = K8sApiVersionRBAC + "/" + K8sApiVersionV1
	K8SApiVersionAppsV1  = "apps/v1"
	K8SApiVersionBatchV1 = "batch/v1"
)
View Source
const (
	V2ListExistsOperator       string = "exists"
	V2ListEqualOperator        string = "equal"
	V2ListNotEqualOperator     string = "notequal"
	V2ListMissingOperator      string = "missing"
	V2ListEmptyOperator        string = "empty"
	V2ListMatchOperator        string = "match"
	V2ListGreaterOperator      string = "greater"
	V2ListLowerOperator        string = "lower"
	V2ListRegexOperator        string = "regex"
	V2ListLikeOperator         string = "like"
	V2ListRangeOperator        string = "range"
	V2ListIgnoreCaseOption     string = "ignorecase"
	V2ListArrayOperator        string = "arraymatch"
	V2ListElementMatchOperator string = "elemMatch" // for matching elements in array e.g. {"users.name|elemMatch": "users.age|elemMatch" : "30|greater"}

	V2ListAscendingSort  string = "asc"
	V2ListDescendingSort string = "desc"

	V2ListValueSeparator    = ","
	V2ListOperatorSeparator = "|"
	V2ListSubQuerySeparator = "&"
	V2ListSortTypeSeparator = ":"
	V2ListEscapeChar        = "\\"
)
View Source
const (
	CustomerGuidQuery   = "customerGUID"
	ClusterNameQuery    = "cluster"
	DatacenterNameQuery = "datacenter"
	NamespaceQuery      = "namespace"
	ProjectQuery        = "project"
	WlidQuery           = "wlid"
	SidQuery            = "sid"
)
View Source
const (
	SubscriptionStatusIncomplete        = string(stripe.SubscriptionStatusIncomplete)
	SubscriptionStatusIncompleteExpired = string(stripe.SubscriptionStatusIncompleteExpired)
	SubscriptionStatusTrialing          = string(stripe.SubscriptionStatusTrialing)
	SubscriptionStatusActive            = string(stripe.SubscriptionStatusActive)
	SubscriptionStatusPastDue           = string(stripe.SubscriptionStatusPastDue)
	SubscriptionStatusCanceled          = string(stripe.SubscriptionStatusCanceled)
	SubscriptionStatusUnpaid            = string(stripe.SubscriptionStatusUnpaid)
	SubscriptionStatusTrialExpired      = "trial expired"
)
View Source
const (
	PostureControlStatusUnknown    = 0
	PostureControlStatusPassed     = 1
	PostureControlStatusWarning    = 2 // deprecated
	PostureControlStatusFailed     = 3
	PostureControlStatusSkipped    = 4
	PostureControlStatusIrrelevant = 5 // deprecated
	PostureControlStatusError      = 6

	PostureResourceMaxCtrls = 6
)
View Source
const (
	RegistryResourcePrefix      = "kubescape-registry-scan"
	RegistryAuthFieldInSecret   = "registriesAuth"
	RegistryCommandBody         = "request-body.json"
	RegistryCronjobTemplateName = "cronjobTemplate"
	RegistryRequestVolumeName   = "request-body-volume"
)
View Source
const (
	Empty   RegistryManageStatus = ""
	Created RegistryManageStatus = "Created"
	Updated RegistryManageStatus = "Updated"
	Error   RegistryManageStatus = "Error"

	// Scan statuses
	Failed     RegistryScanStatus = "Failed"
	InProgress RegistryScanStatus = "In Progress"
	Completed  RegistryScanStatus = "Completed"
)
View Source
const (
	RuleSeverityNone        = 0
	RuleSeverityLow         = 1
	RuleSeverityMed         = 5
	RuleSeverityHigh        = 8
	RuleSeverityCritical    = 10
	RuleSeveritySystemIssue = 1000
)

copied from kubescape/node-agent/pkg/ruleengine/v1/rule.go

View Source
const (
	SecurityIssueStatusDetected  SecurityIssueStatus = "Detected"
	SecurityIssueStatusResolved  SecurityIssueStatus = "Resolved"
	SecurityIssueStatusException SecurityIssueStatus = "Exception"

	RiskTypeControl                  RiskType = "Control"
	RiskTypeControlWithNetworkPolicy RiskType = "ControlWithNetworkPolicy"
	RiskTypeAttackPath               RiskType = "AttackPath"
	RiskTypeVulnerability            RiskType = "Vulnerability"

	SecurityIssueSeverityCritical SecurityIssueSeverity = "Critical"
	SecurityIssueSeverityHigh     SecurityIssueSeverity = "High"
	SecurityIssueSeverityMedium   SecurityIssueSeverity = "Medium"
	SecurityIssueSeverityLow      SecurityIssueSeverity = "Low"

	ResolvedReasonResourceDeleted ResolvedReason = "ResourceDeleted"
	ResolvedReasonClusterDeleted  ResolvedReason = "ClusterDeleted"
	ResolvedReasonRiskResolved    ResolvedReason = "RiskResolved"
)
View Source
const (
	ExploitableCisaKev        = "Known Exploited"
	ExploitableHighLikelihood = "High Likelihood"
	ExploitableNo             = "No"
	EpssThreshold             = 0.10 // 10%
	CisaKevKnown              = "Known"
	CisaKevUnknown            = "Unknown"
)
View Source
const GlobalRegex = "*/*"
View Source
const RegistryScanStatusesKind = "RegistryStatuses"
View Source
const RegistryScanStatusesKindPath = "registrystatuses"

Variables

View Source
var CloudIntToSeverity = map[int]string{
	UnknownScore:  "none",
	InfoScore:     "info",
	LowScore:      "low",
	MediumScore:   "medium",
	HighScore:     "high",
	CriticalScore: "critical",
}
View Source
var CloudPostureScanIntToStatus = map[int]string{
	ScanFailedScore:     ScanFailed,
	ScanInProgressScore: ScanInProgress,
	ScanSuccessScore:    ScanSuccess,
}
View Source
var CloudPostureScanStatusToInt = map[string]int{
	ScanFailed:     1,
	ScanInProgress: 2,
	ScanSuccess:    3,
}

cloud posture scans statuses

View Source
var CloudSeverityToInt = map[string]int{
	"critical": 500,
	"high":     400,
	"medium":   300,
	"low":      200,
	"info":     100,
	"none":     0,
}

cloud severities

View Source
var MandatorySeccompSyscalls = []string{"epoll_wait", "tgkill", "sched_yield"}
View Source
var RegistryTypeMap = map[RegistryProvider]func() ContainerImageRegistry{
	AWS:    func() ContainerImageRegistry { return new(AWSImageRegistry) },
	Azure:  func() ContainerImageRegistry { return new(AzureImageRegistry) },
	Google: func() ContainerImageRegistry { return new(GoogleImageRegistry) },
	Harbor: func() ContainerImageRegistry { return new(HarborImageRegistry) },
	Quay:   func() ContainerImageRegistry { return new(QuayImageRegistry) },
	Nexus:  func() ContainerImageRegistry { return new(NexusImageRegistry) },
	Gitlab: func() ContainerImageRegistry { return new(GitlabImageRegistry) },
}
View Source
var RiskFactorMapping = map[string]RiskFactor{
	"C-0256":        RiskFactorExternalFacing,
	"C-0266":        RiskFactorExternalFacing,
	"C-0046":        RiskFactorPrivileged,
	"C-0057":        RiskFactorPrivileged,
	"C-0255":        RiskFactorSecretAccess,
	"C-0257":        RiskFactorDataAccess,
	"C-0038":        RiskFactorHostAccess,
	"C-0041":        RiskFactorHostAccess,
	"C-0044":        RiskFactorHostAccess,
	"C-0048":        RiskFactorHostAccess,
	"C-AILLMClient": RiskFactorAILLMClient,
	"C-AILLMServer": RiskFactorAILLMServer,
}

Functions

func GetControlIDsByRiskFactors added in v0.0.284

func GetControlIDsByRiskFactors(riskFactorsStr string) []string

func MockPortalDesignator

func MockPortalDesignator() *identifiers.PortalDesignator

func RuleSeverityFromString added in v0.0.640

func RuleSeverityFromString(severity string) int

func RuleSeverityToString added in v0.0.640

func RuleSeverityToString(severity int) string

func ValidateContainerScanID added in v0.0.193

func ValidateContainerScanID(containerScanID string) bool

Types

type AWSImageRegistry added in v0.0.459

type AWSImageRegistry struct {
	BaseContainerImageRegistry `json:",inline"`
	RegistryURI                string `json:"registryURI"`
	RegistryRegion             string `json:"registryRegion"`
	AccessKeyID                string `json:"accessKeyID,omitempty"`
	SecretAccessKey            string `json:"secretAccessKey,omitempty"`
	RoleARN                    string `json:"roleARN,omitempty"`
}

func (*AWSImageRegistry) ExtractSecret added in v0.0.459

func (aws *AWSImageRegistry) ExtractSecret() interface{}

func (*AWSImageRegistry) FillSecret added in v0.0.459

func (aws *AWSImageRegistry) FillSecret(value interface{}) error

func (*AWSImageRegistry) GetDisplayName added in v0.0.473

func (aws *AWSImageRegistry) GetDisplayName() string

func (*AWSImageRegistry) MaskSecret added in v0.0.459

func (aws *AWSImageRegistry) MaskSecret()

func (*AWSImageRegistry) Validate added in v0.0.459

func (aws *AWSImageRegistry) Validate() error

type AdmissionAlert added in v0.0.423

type AdmissionAlert struct {
	Kind             schema.GroupVersionKind     `json:"kind,omitempty" bson:"kind,omitempty"`
	RequestNamespace string                      `json:"requestNamespace,omitempty" bson:"requestNamespace,omitempty"`
	ObjectName       string                      `json:"objectName,omitempty" bson:"objectName,omitempty"`
	Resource         schema.GroupVersionResource `json:"resource,omitempty" bson:"resource,omitempty"`
	Subresource      string                      `json:"subresource,omitempty" bson:"subresource,omitempty"`
	Operation        admission.Operation         `json:"operation,omitempty" bson:"operation,omitempty"`
	Options          *unstructured.Unstructured  `json:"options,omitempty" bson:"options,omitempty"`
	DryRun           bool                        `json:"dryRun,omitempty" bson:"dryRun,omitempty"`
	Object           *unstructured.Unstructured  `json:"object,omitempty" bson:"object,omitempty"`
	OldObject        *unstructured.Unstructured  `json:"oldObject,omitempty" bson:"oldObject,omitempty"`
	UserInfo         *user.DefaultInfo           `json:"userInfo,omitempty" bson:"userInfo,omitempty"`
}

type AdvancedScopeEntity added in v0.0.601

type AdvancedScopeEntity struct {
	Entity   string `json:"entity" bson:"entity"`
	Operator string `json:"condition" bson:"operator"`
	Values   string `json:"values" bson:"values"`
}

type AggregatedNetworkConnection added in v0.0.605

type AggregatedNetworkConnection struct {
	DNSName                   string   `json:"dnsName"`
	Direction                 string   `json:"direction"`
	Port                      int32    `json:"port"`
	Protocol                  string   `json:"protocol"`
	EndpointWorkloadName      *string  `json:"endpointWorkloadName,omitempty"`
	EndpointWorkloadNamespace *string  `json:"endpointWorkloadNamespace,omitempty"`
	IPAddresses               []string `json:"ipAddresses"`
}

type Alert2Channel

type Alert2Channel struct {
	Critical []SlackChannel `json:"criticalChannels,omitempty" bson:"criticalChannels,omitempty"`
	Error    []SlackChannel `json:"errorChannels,omitempty" bson:"errorChannels,omitempty"`
	Info     []SlackChannel `json:"infoChannels,omitempty" bson:"infoChannels,omitempty"`
}

type AlertSourcePlatform added in v0.0.545

type AlertSourcePlatform int
const (
	AlertSourcePlatformUnknown AlertSourcePlatform = iota
	AlertSourcePlatformK8s
	AlertSourcePlatformHost
	AlertSourcePlatformCloud
	AlertSourcePlatformECS
)

type AlertType added in v0.0.367

type AlertType int
const (
	AlertTypeRule AlertType = iota
	AlertTypeMalware
	AlertTypeAdmission
	AlertTypeCdr
	AlertTypeHttpRule
	AlertTypeNetworkScan
)

type ApprovementState

type ApprovementState struct {
	UpdateAuditEntry `json:",inline"`
	Status           ApprovementStatus `json:"status"`
}

type ApprovementStatus

type ApprovementStatus int
const (
	ApprovementStatusApprove ApprovementStatus = iota + 1
	ApprovementStatusDecline
	ApprovementStatusPending
)

type AssociationStatus

type AssociationStatus int
const (
	AssociationStatusAssigned AssociationStatus = iota + 1
	AssociationStatusShown
	AssociationStatusDeclineByUser
	AssociationStatusHandled // the user took this recommendation into account
	AssociationStatusFixed   // the user fixed the issue in some another way
)

type AttackChain added in v0.0.203

type AttackChain struct {
	AttackChainNodes AttackChainNode `json:"attackChainNodes,omitempty" bson:"attackChainNodes,omitempty"`
	AttackChainConfig
}

type AttackChainConfig added in v0.0.210

type AttackChainConfig struct {
	PortalBase       `json:",inline" bson:",inline"`
	Resource         identifiers.PortalDesignator `json:"resource,omitempty" bson:"resource,omitempty"`
	Description      string                       `json:"description,omitempty" bson:"description,omitempty"`
	CreationTime     string                       `json:"creationTime,omitempty" bson:"creationTime,omitempty"`
	AttackChainID    string                       `json:"attackChainID,omitempty" bson:"attackChainID,omitempty"` // name/cluster/resourceID
	ClusterName      string                       `json:"clusterName,omitempty" bson:"clusterName,omitempty"`
	CustomerGUID     string                       `json:"customerGUID,omitempty" bson:"customerGUID,omitempty"`
	LatestReportGUID string                       `json:"latestReportGUID,omitempty" bson:"latestReportGUID,omitempty"` // latest reportGUID in which this attack chain was identified
	UIStatus         *AttackChainUIStatus         `json:"uiStatus,omitempty" bson:"uiStatus,omitempty"`
	Status           AttackChainStatus            `json:"status,omitempty" bson:"status,omitempty"` // "active"/ "fixed"
	IsInternetFacing *bool                        `json:"isInternetFacing,omitempty" bson:"isInternetFacing,omitempty"`
}

type AttackChainNode added in v0.0.203

type AttackChainNode struct {
	Name                           string            `json:"name" bson:"name,omitempty"`
	Description                    string            `json:"description" bson:"description,omitempty"`
	ControlIDs                     []string          `json:"controlIDs,omitempty" bson:"controlIDs,omitempty"` // failed/ignored controls that are associated to this attack chain node
	Vulnerabilities                []Vulnerabilities `json:"vulnerabilities,omitempty" bson:"vulnerabilities,omitempty"`
	RelatedResources               []RelatedResource `json:"relatedResources" bson:"relatedResources,omitempty"`
	NextNodes                      []AttackChainNode `json:"nextNodes,omitempty" bson:"nextNodes,omitempty"`
	FlattenRelatedResourcesDisplay bool              `json:"flattenRelatedResourcesDisplay,omitempty" bson:"flattenRelatedResourcesDisplay,omitempty"`
}

func (*AttackChainNode) Equals added in v0.0.248

func (a *AttackChainNode) Equals(b *AttackChainNode) bool

func (*AttackChainNode) GetControlIDsFromAllNodes added in v0.0.241

func (attackChainNode *AttackChainNode) GetControlIDsFromAllNodes(controlIDs []string) []string

GetControlIDsFromAllNodes is a recursive func that returns a list of controlIDs from all nodes in the attack chain

type AttackChainStatus added in v0.0.203

type AttackChainStatus string

type AttackChainUIStatus added in v0.0.203

type AttackChainUIStatus struct {
	// fields updated by the BE
	FirstSeen string `json:"firstSeen,omitempty" bson:"firstSeen,omitempty"` // timestamp of first scan in which the attack chain was identified
	// fields updated by the UI
	ViewedMainScreen string `json:"viewedMainScreen,omitempty" bson:"viewedMainScreen,omitempty"` // if the attack chain was viewed by the user// New badge
	ProcessingStatus string `json:"processingStatus,omitempty" bson:"processingStatus,omitempty"` // "processing"/ "done"
}

struct for UI support. All strings are timestamps

type AuthMethod added in v0.0.125

type AuthMethod struct {
	Username string `json:"username,omitempty" bson:"username"`
	Password string `json:"password,omitempty" bson:"password"`
	Type     string `json:"type,omitempty" bson:"type"`
}

type AzureImageRegistry added in v0.0.459

type AzureImageRegistry struct {
	BaseContainerImageRegistry `json:",inline"`
	LoginServer                string `json:"loginServer"`
	Username                   string `json:"username"`
	AccessToken                string `json:"accessToken,omitempty"`
}

func (*AzureImageRegistry) ExtractSecret added in v0.0.459

func (azure *AzureImageRegistry) ExtractSecret() interface{}

func (*AzureImageRegistry) FillSecret added in v0.0.459

func (azure *AzureImageRegistry) FillSecret(value interface{}) error

func (*AzureImageRegistry) GetDisplayName added in v0.0.473

func (azure *AzureImageRegistry) GetDisplayName() string

func (*AzureImageRegistry) MaskSecret added in v0.0.459

func (azure *AzureImageRegistry) MaskSecret()

func (*AzureImageRegistry) Validate added in v0.0.459

func (azure *AzureImageRegistry) Validate() error
type Banner struct {
	CustomerGUID string `json:"customerGUID,omitempty" bson:"customerGUID,omitempty"` // customerGUID of the account which clicked the banner
	ScanID       string `json:"scanID,omitempty" bson:"scanID,omitempty"`             // for detailed view, unique key for banner is combination of scanID and bannerID
}

type BaseContainerImageRegistry added in v0.0.449

type BaseContainerImageRegistry struct {
	PortalBase          `json:",inline" bson:"inline"`
	Provider            RegistryProvider     `json:"provider" bson:"provider"`
	ClusterName         string               `json:"clusterName" bson:"clusterName"`
	Repositories        []string             `json:"repositories" bson:"repositories"`
	LastScan            *time.Time           `json:"lastScan,omitempty" bson:"lastScan,omitempty"`
	ScanFrequency       string               `json:"scanFrequency,omitempty" bson:"scanFrequency"`
	NextScan            *time.Time           `json:"nextScan,omitempty" bson:"nextScan,omitempty"`
	ResourceName        string               `json:"resourceName,omitempty" bson:"resourceName,omitempty"`
	AuthID              string               `json:"authID,omitempty" bson:"authID"`
	ManageStatus        RegistryManageStatus `json:"manageStatus,omitempty" bson:"manageStatus"`
	ManageStatusMessage string               `json:"manageStatusMessage,omitempty" bson:"manageStatusMessage"`
	ScanStatus          RegistryScanStatus   `json:"scanStatus,omitempty" bson:"scanStatus"`
	ScanStatusMessage   string               `json:"scanStatusMessage,omitempty" bson:"scanStatusMessage"`
}

func (*BaseContainerImageRegistry) GetBase added in v0.0.473

func (*BaseContainerImageRegistry) SetBase added in v0.0.473

func (*BaseContainerImageRegistry) ValidateBase added in v0.0.459

func (base *BaseContainerImageRegistry) ValidateBase() error

type BaseExceptionPolicy added in v0.0.334

type BaseExceptionPolicy struct {
	PortalBase `json:",inline" bson:"inline"`
	PolicyType PolicyType `json:"policyType,omitempty" bson:"policyType,omitempty"`

	// IDs of the policies (SecurityRiskID, ControlID, etc.)
	PolicyIDs      []string                       `json:"policyIDs,omitempty" bson:"policyIDs,omitempty"`
	CreationTime   string                         `json:"creationTime,omitempty" bson:"creationTime,omitempty"`
	Reason         string                         `json:"reason,omitempty" bson:"reason,omitempty"`
	ExpirationDate *time.Time                     `json:"expirationDate,omitempty" bson:"expirationDate,omitempty"`
	CreatedBy      string                         `json:"createdBy,omitempty" bson:"createdBy,omitempty"`
	Resources      []identifiers.PortalDesignator `json:"resources,omitempty" bson:"resources,omitempty"`
	AdvancedScopes []AdvancedScopeEntity          `json:"advancedScopes,omitempty" bson:"advancedScopes,omitempty"`
}

type BaseImage added in v0.0.424

type BaseImage struct {
	DisplayName          string       `json:"displayName"`
	Command              string       `json:"command"`
	Size                 uint64       `json:"size"`
	HighestSeverityFound string       `json:"highestSeverityFound,omitempty"`
	Layers               []ImageLayer `json:"layers,omitempty"`
}

type BaseRuntimeAlert added in v0.0.367

type BaseRuntimeAlert struct {
	// AlertName is either RuleName or MalwareName
	AlertName string `json:"alertName,omitempty" bson:"alertName,omitempty"`
	// Arguments of specific alerts (e.g. for unexpected files: open file flags; for unexpected process: return code)
	Arguments map[string]interface{} `json:"arguments,omitempty" bson:"arguments,omitempty"`
	// Infected process id
	InfectedPID uint32 `json:"infectedPID,omitempty" bson:"infectedPID,omitempty"`
	// Process tree unique id
	ProcessTreeUniqueID uint32 `json:"processTreeUniqueID,omitempty" bson:"processTreeUniqueID,omitempty"`
	// Fix suggestions
	FixSuggestions string `json:"fixSuggestions,omitempty" bson:"fixSuggestions,omitempty"`
	// MD5 hash of the file that was infected
	MD5Hash string `json:"md5Hash,omitempty" bson:"md5Hash,omitempty"`
	// SHA1 hash of the file that was infected
	SHA1Hash string `json:"sha1Hash,omitempty" bson:"sha1Hash,omitempty"`
	// SHA256 hash of the file that was infected
	SHA256Hash string `json:"sha256Hash,omitempty" bson:"sha256Hash,omitempty"`
	// Severity of the alert
	Severity int `json:"severity,omitempty" bson:"severity,omitempty"`
	// Size of the file that was infected
	Size string `json:"size,omitempty" bson:"size,omitempty"`
	// Timestamp of the alert
	Timestamp time.Time `json:"timestamp" bson:"timestamp"`
	// Nanoseconds of the alert
	Nanoseconds uint64 `json:"nanoseconds,omitempty" bson:"nanoseconds,omitempty"`
	// Trace of the alert
	Trace Trace `json:"trace,omitempty" bson:"trace,omitempty"`
	// Unique ID of the alert
	UniqueID string `json:"uniqueID,omitempty" bson:"uniqueID,omitempty"`
	// Profile metadata
	ProfileMetadata *ProfileMetadata `json:"profileMetadata,omitempty" bson:"profileMetadata,omitempty"`
	// Identifiers of the alert
	Identifiers *common.Identifiers `json:"identifiers,omitempty" bson:"identifiers,omitempty"`
}

type CAContainerMetrics added in v0.0.249

type CAContainerMetrics struct {
	core.Container    `json:",inline"`
	CAIntegrityStatus int `json:"caIntegrityStatus"`
}

CAContainerMetrics holds data of single container which runs in multiple pods

type CAK8SMeta added in v0.0.249

type CAK8SMeta struct {
	CustomerGUID   string    `json:"customerGUID"`
	CAClusterName  string    `json:"caClusterName,omitempty"`
	LastUpdateTime time.Time `json:"caLastUpdate"`
	IsActive       bool      `json:"isActive"`
}

CAK8SMeta holds common metadata about k8s objects

type CAMicroserviceOverview added in v0.0.249

type CAMicroserviceOverview struct {
	CAMicroserviceOverviewMetadata `json:",inline"`
}

CAMicroserviceOverview represnets it's name

type CAMicroserviceOverviewMetadata added in v0.0.249

type CAMicroserviceOverviewMetadata struct {
	CAK8SMeta     `json:",inline"`
	WLID          string   `json:"wlid"`
	Datacenter    string   `json:"datacenter,omitempty"`
	OVNamespace   string   `json:"namespace,omitempty"`
	Project       string   `json:"project,omitempty"`
	Orchestrator  string   `json:"orchestrator"`
	Kind          string   `json:"kind"`
	OperationType string   `json:"operationType"`
	OVName        string   `json:"name"`
	Categories    []string `json:"categories"`
	DisplayName   string   `json:"displayName,omitempty"`
	CloudProvider string   `json:"cloudProvider"`
}

CAMicroserviceOverviewMetadata represnets it's name

type CSPMExceptionPolicy added in v0.0.509

type CSPMExceptionPolicy struct {
	BaseExceptionPolicy `json:",inline"`
	Name                string   `json:"name"`     // rule name
	Controls            []string `json:"controls"` // affected controls
	Severity            string   `json:"severity"`
	SeverityScore       int      `json:"severityScore"`
	RuleHash            string   `json:"ruleHash"`
}

type Capability added in v0.0.564

type Capability struct {
	Title       string `json:"title"`
	Description string `json:"description"`
	Enabled     bool   `json:"enabled"`
}

type CheckRegistryResp added in v0.0.471

type CheckRegistryResp struct {
	Repositories []string `json:"repositories,omitempty"`
	ErrorMessage string   `json:"errorMessage,omitempty"`
}

type CisaKevInfo added in v0.0.281

type CisaKevInfo struct {
	DateAdded                  string `json:"dateAdded" bson:"dateAdded"`
	DueDate                    string `json:"dueDate" bson:"dueDate"`
	KnownRansomwareCampaignUse string `json:"knownRansomwareCampaignUse" bson:"knownRansomwareCampaignUse"`
	Notes                      string `json:"notes" bson:"notes"`
}

type CloudMetadata added in v0.0.469

type CloudMetadata struct {
	AccountID    string   `json:"account_id,omitempty" bson:"account_id,omitempty"`
	HostType     HostType `json:"host_type,omitempty" bson:"host_type,omitempty"`
	Hostname     string   `json:"hostname,omitempty" bson:"hostname,omitempty"`
	InstanceID   string   `json:"instance_id,omitempty" bson:"instance_id,omitempty"`
	InstanceType string   `json:"instance_type,omitempty" bson:"instance_type,omitempty"` // m5.large, ...
	OrgID        string   `json:"org_id,omitempty" bson:"org_id,omitempty"`
	PrivateIP    string   `json:"private_ip,omitempty" bson:"private_ip,omitempty"`
	PrivateIPs   []string `json:"private_ips,omitempty" bson:"private_ips,omitempty"`
	// Provider is the cloud provider name (e.g. aws, gcp, azure).
	Provider      Provider `json:"provider,omitempty" bson:"provider,omitempty"`
	PublicIP      string   `json:"public_ip,omitempty" bson:"public_ip,omitempty"`
	PublicIPs     []string `json:"public_ips,omitempty" bson:"public_ips,omitempty"`
	Region        string   `json:"region,omitempty" bson:"region,omitempty"`
	ResourceGroup string   `json:"resource_group,omitempty" bson:"resource_group,omitempty"` // Azure Resource Group
	Services      []string `json:"services,omitempty" bson:"services,omitempty"`
	Zone          string   `json:"zone,omitempty" bson:"zone,omitempty"`
}

type ClusterAttackChainState added in v0.0.251

type ClusterAttackChainState struct {
	PortalBase               `json:",inline" bson:"inline"`
	CreationTime             string `json:"creationTime,omitempty" bson:"creationTime,omitempty"`
	ClusterName              string `json:"clusterName,omitempty" bson:"clusterName,omitempty"`
	LastPostureScanTriggered string `json:"lastPostureScanTriggered,omitempty" bson:"lastPostureScanTriggered,omitempty"`
	LastTimeEngineCompleted  string `json:"lastTimeEngineCompleted,omitempty" bson:"lastTimeEngineCompleted,omitempty"`
}

type ClusterInfo added in v0.0.502

type ClusterInfo struct {
	Cluster          string       `json:"cluster"`
	NodeCount        int          `json:"nodeCount"`
	CPUSum           int          `json:"cpuSum"`
	CloudProvider    string       `json:"cloudProvider"`
	HelmVersion      string       `json:"helmVersion"`
	ClusterVersion   string       `json:"clusterVersion"`
	LastReportTime   *time.Time   `json:"lastReportTime,omitempty"`
	LastKeepAlive    *time.Time   `json:"lastKeepAlive,omitempty"`
	CreatedAt        *time.Time   `json:"createdAt,omitempty"`
	IsConnected      bool         `json:"isConnected"`
	Capabilities     []Capability `json:"capabilities,omitempty"`
	Status           string       `json:"status,omitempty"`
	FailedFeatures   []string     `json:"failedFeatures,omitempty"`
	ConnectionTime   *time.Time   `json:"connectionTime,omitempty"`
	StatusChangeTime *time.Time   `json:"statusChangeTime,omitempty"`
}

type CommPID added in v0.0.549

type CommPID struct {
	Comm string `json:"comm,omitempty" bson:"comm,omitempty"`
	PID  uint32 `json:"pid,omitempty" bson:"pid,omitempty"`
}

func (CommPID) MarshalText added in v0.0.549

func (c CommPID) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler

func (*CommPID) UnmarshalText added in v0.0.549

func (c *CommPID) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler

type CommonSummaryFields

type CommonSummaryFields struct {
	// The unique id of the report this summary belongs to
	ReportID GUID `json:"reportGUID"`

	// The designators of this summary
	Designators *identifiers.PortalDesignator `json:"designators"`

	// Time of the scan that produced this summary
	Timestamp time.Time `json:"timestamp"`

	// swagger:ignore
	// Indication if this summary is marked for deletetion
	DeleteStatus RecordStatus `json:"deletionStatus,omitempty"`
}

swagger:model

type ComponentPathInfo added in v0.0.283

type ComponentPathInfo struct {
	ContainerPathInfo
	HostPathInfo
	ImageTag   string   `json:"imageTag"`
	ImageHash  string   `json:"imageHash"`
	IsRelevant string   `json:"isRelevant"`
	Paths      []string `json:"paths"`
}

type ComponentSummary added in v0.0.293

type ComponentSummary struct {
	CustomerGUID    string              `json:"customerGUID"`
	Name            string              `json:"name"`
	Version         string              `json:"version"`
	PackageType     string              `json:"packageType"`
	Paths           []string            `json:"paths"`
	FixVersions     []string            `json:"fixVersions"`
	Licenses        []string            `json:"licenses"`
	CriticalCount   int                 `json:"criticalCount"`
	HighCount       int                 `json:"highCount"`
	MediumCount     int                 `json:"mediumCount"`
	LowCount        int                 `json:"lowCount"`
	UnknownCount    int                 `json:"unknownCount"`
	ClustersCount   int                 `json:"clustersCount"`
	NamespacesCount int                 `json:"namespacesCount"`
	WorkloadsCount  int                 `json:"workloadsCount"`
	ImagesCount     int                 `json:"imagesCount"`
	HostsCount      int                 `json:"hostsCount"`
	SeverityStats   map[string][]string `json:"severityStats"`
	TicketManager   TicketManager       `json:"ticketManager,omitempty"`
	Tickets         []Ticket            `json:"tickets,omitempty"`
	TicketsCount    int                 `json:"ticketsCount,omitempty"`
}

type ConnectedStatus added in v0.0.270

type ConnectedStatus string
const (
	Connected    ConnectedStatus = "connected"
	Disconnected ConnectedStatus = "disconnected"
)

type ContainerImageRegistry added in v0.0.459

type ContainerImageRegistry interface {
	MaskSecret()
	ExtractSecret() interface{}
	FillSecret(interface{}) error
	GetBase() *BaseContainerImageRegistry
	SetBase(*BaseContainerImageRegistry)
	Validate() error
	GetDisplayName() string
}

func UnmarshalRegistry added in v0.0.459

func UnmarshalRegistry(payload []byte) (ContainerImageRegistry, error)

type ContainerImageRegistryScanStatusUpdate added in v0.0.480

type ContainerImageRegistryScanStatusUpdate struct {
	GUID              string             `json:"guid"`
	ScanStatus        RegistryScanStatus `json:"scanStatus"`
	ScanStatusMessage string             `json:"scanStatusMessage,omitempty"`
	ScanTime          time.Time          `json:"scanTime"`
}

type ContainerPathInfo added in v0.0.283

type ContainerPathInfo struct {
	NameSpace        string `json:"namespace"`
	WorkloadName     string `json:"workloadName"`
	ContainerName    string `json:"containerName"`
	WorkloadKind     string `json:"workloadKind"`
	WorkloadHash     string `json:"workloadHash"`
	WLID             string `json:"wlid"`
	ClusterName      string `json:"clusterName"`
	ClusterShortName string `json:"clusterShortName"`
}

type ContainerStatus added in v0.0.418

type ContainerStatus struct {
	CustomerGUID string `json:"customerGUID"`
	ClusterName  string `json:"clusterName"`

	ResourceHash  string        `json:"resourceHash"`
	Name          string        `json:"name"`          // container name
	ContainerType ContainerType `json:"containerType"` // initcontainer, container, ephemeralcontainer

	Architectures []string `json:"architectures"` // architectures of the container
	WorkloadName  string   `json:"workloadName"`  // name of the workload
	Kind          string   `json:"kind"`          // kind of the workload
	Namespace     string   `json:"namespace"`     // namespace of the workload

	// seccomp related fields (coming from ApplicationProfile)
	// IsSeccompConfiguredWorkloadLevel  *bool    `json:"isSeccompConfiguredWorkloadLevel"` // if nil, seccomp is not configured
	IsSeccompConfiguredDefaultRuntime *bool    `json:"isSeccompConfiguredDefaultRuntime"` // if nil, seccomp is not configured
	SeccompConfiguredLocalhostProfile string   `json:"seccompConfiguredLocalhostProfile"`
	SeccompConfiguredSyscalls         []string `json:"seccompConfiguredSyscalls"`
	SeccompConfiguredArchitectures    []string `json:"seccompConfiguredArchitectures"`
	SyscallsUsed                      []string `json:"syscallsUsed"`

	ApplicationProfileLastUpdated  *time.Time `json:"applicationProfileLastUpdated"`  // last updated time of applicationProfile
	ApplicationProfileResourceHash string     `json:"applicationProfileResourceHash"` // resource hash of applicationProfile

}

type ContainerSummary added in v0.0.249

type ContainerSummary struct {
	Name         string  `json:"name"`
	Image        string  `json:"image"`
	IsPrivileged bool    `json:"root"`
	Probes       []Probe `json:"probes,omitempty"`
	Limitations  `json:"limitations,omitempty"`
}

ContainerSummary - a must have summarized info of containers

type ContainerType added in v0.0.418

type ContainerType string
const (
	InitContainer      ContainerType = "initcontainer"
	Container          ContainerType = "container"
	EphemeralContainer ContainerType = "ephemeralcontainer"
)

type ContainersStatusData added in v0.0.249

type ContainersStatusData map[string]map[string]string

ContainersStatusData holds the status of containers in runtime. This including the docker image tag + image hash

func (*ContainersStatusData) GetContainerImageDetails added in v0.0.249

func (contsImages *ContainersStatusData) GetContainerImageDetails(contName string) (string, string, error)

GetContainerImageDetails extract the docker image details of specific container in list

type ControlInfo

type ControlInfo struct {

	// ID of the control
	// Example: C-0034
	ID string `json:"id"`

	Name string `json:"name"`

	// How much this control is critical
	// Example: 6
	BaseScore float32 `json:"baseScore"`

	// How many failed resources for this control
	// Example: 3
	FailedResources int `json:"failedResources"`

	SmartRemediation bool `json:"smartRemediation"`
}

ControlInfo Basic information about a control

type ControlInputs

type ControlInputs struct {
	Rulename string
	Inputs   []PostureAttributesList // Attribute = input list name, Values = list values
}

type CountFunc added in v0.0.216

type CountFunc func(customerGUID string, scopeFilters *QueryScopeParams, paginationObject *V2ListRequest) (uint64, error)

type Cursor added in v0.0.207

type Cursor struct {
	Id        string    `json:"id,omitempty"`
	KeepAlive *Duration `json:"keepAlive,omitempty"`
}

type CustomerAccessStatus added in v0.0.170

type CustomerAccessStatus string
const (
	PayingCustomer  CustomerAccessStatus = "paying"
	FreeCustomer    CustomerAccessStatus = "free"
	TrialCustomer   CustomerAccessStatus = "trial"
	BlockedCustomer CustomerAccessStatus = "blocked"
	LimitedCustomer CustomerAccessStatus = "limited"
)

type CustomerConfig

type CustomerConfig struct {
	Name       string                       `json:"name" bson:"name"`
	Attributes map[string]interface{}       `json:"attributes,omitempty" bson:"attributes,omitempty"` // could be string
	Scope      identifiers.PortalDesignator `json:"scope" bson:"scope"`
	Settings   Settings                     `json:"settings" bson:"settings"`
}

func MockCustomerConfig

func MockCustomerConfig() *CustomerConfig

type CustomerOnboarding added in v0.0.143

type CustomerOnboarding struct {
	Completed   *bool    `json:"completed,omitempty" bson:"completed,omitempty"`     // user completed the onboarding
	CompanySize *string  `json:"companySize,omitempty" bson:"companySize,omitempty"` // user company size
	Role        *string  `json:"role,omitempty" bson:"role,omitempty"`               // user role
	OrgName     *string  `json:"orgName,omitempty" bson:"orgName,omitempty"`         // user organization name
	Interests   []string `json:"interests,omitempty" bson:"interests,omitempty"`     // user interests
}

type CustomerState added in v0.0.143

type CustomerState struct {
	Onboarding           *CustomerOnboarding      `json:"onboarding,omitempty" bson:"onboarding,omitempty"`
	GettingStarted       *GettingStartedChecklist `json:"gettingStarted,omitempty" bson:"gettingStarted,omitempty"`
	NodeUsage            *NodeUsage               `json:"nodeUsage,omitempty" bson:"nodeUsage,omitempty"`
	AttackChainsLastScan string                   `json:"attackChainsLastScan,omitempty" bson:"attackChainsLastScan,omitempty"`
	FeatureFlags         *map[string]bool         `json:"enabledFeatureFlags,omitempty" bson:"enabledFeatureFlags,omitempty"`
}

CustomerState holds the state of the customer, used for UI purposes

func (*CustomerState) IsFeatureEnabled added in v0.0.511

func (cs *CustomerState) IsFeatureEnabled(key string) bool

func (*CustomerState) SetFeatureEnabled added in v0.0.511

func (cs *CustomerState) SetFeatureEnabled(key string, val bool)

type Cvss added in v0.0.290

type Cvss struct {
	Vector              string                 `json:"vector"`
	Version             string                 `json:"version"`
	Source              string                 `json:"source"`
	BaseScore           float64                `json:"baseScore"`
	ExploitabiltiyScore float64                `json:"exploitabilityScore"`
	ImpactScore         float64                `json:"impactScore"`
	ExploitabilityInfo  CvssExploitabilityInfo `json:"exploitabilityInfo"`
	ImpactInfo          CvssImpactInfo         `json:"impactInfo"`
}

type CvssExploitabilityInfo added in v0.0.283

type CvssExploitabilityInfo struct {
	AttackVector       string `json:"attackVector,omitempty"`
	AccessVector       string `json:"accessVector,omitempty"`
	AttackComplexity   string `json:"attackComplexity,omitempty"`
	AccessComplexity   string `json:"accessComplexity,omitempty"`
	Authentication     string `json:"authentication,omitempty"`
	PrivilegesRequired string `json:"privilegesRequired,omitempty"`
	UserInteraction    string `json:"userInteraction,omitempty"`
	Scope              string `json:"scope,omitempty"`
}

type CvssImpactInfo added in v0.0.283

type CvssImpactInfo struct {
	Confidentiality string `json:"confidentiality,omitempty"`
	Integrity       string `json:"integrity,omitempty"`
	Availability    string `json:"availability,omitempty"`
}

type CvssInfo added in v0.0.283

type CvssInfo struct {
	BaseScore    float64 `json:"baseScore" bson:"baseScore"`
	ScoreVersion string  `json:"scoreVersion" bson:"scoreVersion"`
	Severity     string  `json:"severity" bson:"severity"`
	CVSS         []Cvss  `json:"cvss" bson:"cvss"`
}

type DataType added in v0.0.201

type DataType string

type DeleteCountResponse added in v0.0.272

type DeleteCountResponse struct {
	DeletedCount int64 `json:"deletedCount"`
}

type Duration added in v0.0.207

type Duration time.Duration

func (Duration) IsValid added in v0.0.207

func (d Duration) IsValid() bool

func (Duration) MarshalJSON added in v0.0.207

func (d Duration) MarshalJSON() ([]byte, error)

func (*Duration) SetDuration added in v0.0.207

func (d *Duration) SetDuration(duration time.Duration)

func (Duration) String added in v0.0.207

func (d Duration) String() string

func (*Duration) UnmarshalJSON added in v0.0.207

func (d *Duration) UnmarshalJSON(b []byte) error

type EndpointKind added in v0.0.551

type EndpointKind string
const (
	EndpointKindPod     EndpointKind = "pod"
	EndpointKindService EndpointKind = "svc"
	EndpointKindRaw     EndpointKind = "raw"
)

type EnforcmentsRule

type EnforcmentsRule struct {
	MonitoredObject          []string `json:"monitoredObject"`
	MonitoredObjectExistence []string `json:"objectExistence"`
	MonitoredObjectEvent     []string `json:"event"`
	Action                   []string `json:"action"`
}

type EpssInfo added in v0.0.281

type EpssInfo struct {
	Epss       float64 `json:"epss" bson:"epss"`
	Percentile float64 `json:"percentile" bson:"percentile"`
	Date       string  `json:"date" bson:"date"`
}

type EventType added in v0.0.634

type EventType string
const (
	EventTypeExec         EventType = "exec"
	EventTypeOpen         EventType = "open"
	EventTypeCapabilities EventType = "capabilities"
	EventTypeDNS          EventType = "dns"
	EventTypeNetwork      EventType = "network"
	EventTypeSyscall      EventType = "syscall"
	EventTypeSymlink      EventType = "symlink"
	EventTypeHardlink     EventType = "hardlink"
	EventTypeSSH          EventType = "ssh"
	EventTypeHTTP         EventType = "http"
)

type ExecutionPolicy

type ExecutionPolicy struct {
	PortalBase                `json:",inline"`
	Designators               []identifiers.PortalDesignator `json:"designators"`
	PolicyType                string                         `json:"policyType"`
	CreationTime              string                         `json:"creation_time"`
	ExecutionEnforcmentsRules []EnforcmentsRule              `json:"enforcementRules"`
}

type File added in v0.0.516

type File struct {
	Path       string         `json:"path,omitempty" bson:"path,omitempty"`
	Size       int64          `json:"size,omitempty" bson:"size,omitempty"`
	Hashes     FileHashes     `json:"hashes,omitempty" bson:"hashes,omitempty"`
	Timestamps FileTimestamps `json:"timestamps,omitempty" bson:"timestamps,omitempty"`
	Ownership  FileOwnership  `json:"ownership,omitempty" bson:"ownership,omitempty"`
	Attributes FileAttributes `json:"attributes,omitempty" bson:"attributes,omitempty"`
}

type FileAttributes added in v0.0.516

type FileAttributes struct {
	Permissions string `json:"permissions,omitempty" bson:"permissions,omitempty"`
}

type FileHashes added in v0.0.516

type FileHashes struct {
	MD5    string `json:"md5,omitempty" bson:"md5,omitempty"`
	SHA1   string `json:"sha1,omitempty" bson:"sha1,omitempty"`
	SHA256 string `json:"sha256,omitempty" bson:"sha256,omitempty"`
}

type FileOwnership added in v0.0.516

type FileOwnership struct {
	Uid       *uint32 `json:"uid,omitempty" bson:"uid,omitempty"`
	Gid       *uint32 `json:"gid,omitempty" bson:"gid,omitempty"`
	UserName  string  `json:"userName,omitempty" bson:"userName,omitempty"`
	GroupName string  `json:"groupName,omitempty" bson:"groupName,omitempty"`
}

type FileTimestamps added in v0.0.516

type FileTimestamps struct {
	CreationTime     time.Time `json:"creationTime,omitempty" bson:"creationTime,omitempty"`
	ModificationTime time.Time `json:"modificationTime,omitempty" bson:"modificationTime,omitempty"`
	AccessTime       time.Time `json:"accessTime,omitempty" bson:"accessTime,omitempty"`
}

type Filters added in v0.0.207

type Filters struct {
	InstanceIDField  string
	ClusterNameField string
	NamespaceField   string
	WlidField        string
	KindField        string
	NameField        string
	RegistryField    string
	RepositoryField  string
	TagField         string
}

type FixPath

type FixPath struct {
	Path  string `json:"path"`
	Value string `json:"value"`
}

type GUID

type GUID string

swagger:strfmt uuid4 Example: 0f42fbe3-d81e-444d-8cc7-bc892c7623e9

type GenericCRD added in v0.0.399

type GenericCRD[T any] struct {
	Kind       string   `json:"kind"`
	ApiVersion string   `json:"apiVersion"`
	Metadata   Metadata `json:"metadata"`
	Spec       T        `json:"spec"`
}

type GettingStartedChecklist added in v0.0.143

type GettingStartedChecklist struct {
	// indicates if the user has dismissed the checklist
	GettingStartedDismissed *bool `json:"gettingStartedDismissed,omitempty" bson:"gettingStartedDismissed,omitempty"`
	// checklist items
	EverConnectedCluster   *bool `json:"everConnectedCluster,omitempty" bson:"everConnectedCluster,omitempty"`
	EverScannedRepository  *bool `json:"everScannedRepository,omitempty" bson:"everScannedRepository,omitempty"`
	EverScannedRegistry    *bool `json:"everScannedRegistry,omitempty" bson:"everScannedRegistry,omitempty"`
	EverCollaborated       *bool `json:"everCollaborated,omitempty" bson:"everCollaborated,omitempty"` // TODO - deprecated, replaced by EverConnectedTicketing + EverConnectedAlerting
	EverInvitedTeammate    *bool `json:"everInvitedTeammate,omitempty" bson:"everInvitedTeammate,omitempty"`
	EverUsedRbacVisualizer *bool `json:"everUsedRbacVisualizer,omitempty" bson:"everUsedRbacVisualizer,omitempty"`
	EverConnectedTicketing *bool `json:"everConnectedTicketing,omitempty" bson:"everConnectedTicketing,omitempty"`
	EverConnectedAlerting  *bool `json:"everConnectedAlerting,omitempty" bson:"everConnectedAlerting,omitempty"`
}

type GitlabImageRegistry added in v0.0.641

type GitlabImageRegistry struct {
	BaseContainerImageRegistry `json:",inline"`
	RegistryURL                string `json:"registryURL"`
	Username                   string `json:"username"`
	AccessToken                string `json:"accessToken,omitempty"`
}

func (*GitlabImageRegistry) ExtractSecret added in v0.0.641

func (gitlab *GitlabImageRegistry) ExtractSecret() interface{}

func (*GitlabImageRegistry) FillSecret added in v0.0.641

func (gitlab *GitlabImageRegistry) FillSecret(value interface{}) error

func (*GitlabImageRegistry) GetDisplayName added in v0.0.641

func (gitlab *GitlabImageRegistry) GetDisplayName() string

func (*GitlabImageRegistry) MaskSecret added in v0.0.641

func (gitlab *GitlabImageRegistry) MaskSecret()

func (*GitlabImageRegistry) Validate added in v0.0.641

func (gitlab *GitlabImageRegistry) Validate() error

type GoogleImageRegistry added in v0.0.459

type GoogleImageRegistry struct {
	BaseContainerImageRegistry `json:",inline"`
	RegistryURI                string                 `json:"registryURI"`
	ProjectID                  string                 `json:"projectID"`
	Key                        map[string]interface{} `json:"key,omitempty"`
}

func (*GoogleImageRegistry) ExtractSecret added in v0.0.459

func (google *GoogleImageRegistry) ExtractSecret() interface{}

func (*GoogleImageRegistry) FillSecret added in v0.0.459

func (google *GoogleImageRegistry) FillSecret(value interface{}) error

func (*GoogleImageRegistry) GetDisplayName added in v0.0.473

func (google *GoogleImageRegistry) GetDisplayName() string

func (*GoogleImageRegistry) MaskSecret added in v0.0.459

func (google *GoogleImageRegistry) MaskSecret()

func (*GoogleImageRegistry) Validate added in v0.0.459

func (google *GoogleImageRegistry) Validate() error

type HarborImageRegistry added in v0.0.449

type HarborImageRegistry struct {
	BaseContainerImageRegistry `json:",inline"`
	InstanceURL                string `json:"instanceURL"`
	Username                   string `json:"username"`
	Password                   string `json:"password,omitempty"`
}

func (*HarborImageRegistry) ExtractSecret added in v0.0.459

func (harbor *HarborImageRegistry) ExtractSecret() interface{}

func (*HarborImageRegistry) FillSecret added in v0.0.459

func (harbor *HarborImageRegistry) FillSecret(value interface{}) error

func (*HarborImageRegistry) GetDisplayName added in v0.0.473

func (harbor *HarborImageRegistry) GetDisplayName() string

func (*HarborImageRegistry) MaskSecret added in v0.0.459

func (harbor *HarborImageRegistry) MaskSecret()

func (*HarborImageRegistry) Validate added in v0.0.459

func (harbor *HarborImageRegistry) Validate() error

type HealthReport added in v0.0.661

type HealthReport struct {
	// AgentVersion is the version of the agent emitting this report.
	AgentVersion string `json:"agent_version"`
	// SensorUpdated is the time the sensor was installed/updated.
	SensorUpdated time.Time `json:"sensor_updated"`
	// Timestamp is the time the report was generated.
	Timestamp time.Time `json:"timestamp"`
	// CloudMetadata contains enriched cloud provider metadata associated with this node.
	CloudMetadata CloudMetadata `json:"cloudMetadata"`
}

HealthReport represents a minimal health report emitted by the agent.

type HighlightsByControl

type HighlightsByControl struct {
	ControlID   string    `json:"controlID"`
	Highlights  []string  `json:"highlights"` // TODO: deprecate (failedPath)
	ReviewPaths []string  `json:"reviewPaths"`
	DeletePaths []string  `json:"deletePaths"`
	FixPaths    []FixPath `json:"fixPaths"`
	FixCommand  string    `json:"fixCommand"`
}

type HostPathInfo added in v0.0.627

type HostPathInfo struct {
	HostName     string `json:"hostName"`
	InstanceHash string `json:"instanceHash"`
	HostID       string `json:"hostID"`
	AccountID    string `json:"accountID"`
	AccountName  string `json:"accountName"`
	HostType     string `json:"hostType"`
	Region       string `json:"region"`
	Provider     string `json:"provider"`
}

type HostType added in v0.0.666

type HostType string
const (
	HostTypeAci        HostType = "aci"
	HostTypeAks        HostType = "aks"
	HostTypeAutopilot  HostType = "autopilot"
	HostTypeAzureVm    HostType = "azurevm"
	HostTypeCloudRun   HostType = "cloudrun"
	HostTypeDoks       HostType = "doks"
	HostTypeDroplet    HostType = "droplet"
	HostTypeEc2        HostType = "ec2"
	HostTypeEcsEc2     HostType = "ecs-ec2"
	HostTypeEcsFargate HostType = "ecs-fargate"
	HostTypeEksEc2     HostType = "eks-ec2"
	HostTypeEksFargate HostType = "eks-fargate"
	HostTypeGce        HostType = "gce"
	HostTypeGke        HostType = "gke"
	HostTypeKubernetes HostType = "kubernetes"
	HostTypeOther      HostType = "other"
)

type HttpRuleAlert added in v0.0.506

type HttpRuleAlert struct {
	Request struct {
		Method  string            `json:"method,omitempty" bson:"method,omitempty"`   // e.g., "GET"
		URL     string            `json:"url,omitempty" bson:"url,omitempty"`         // e.g., "/index.html"
		Header  map[string]string `json:"header,omitempty" bson:"header,omitempty"`   // e.g., "Content-Type" -> ["application/json"]
		Body    string            `json:"body,omitempty" bson:"body,omitempty"`       // e.g., "<html>...</html>"
		Proto   string            `json:"proto,omitempty" bson:"proto,omitempty"`     // e.g., "HTTP/1.1"
		Payload string            `json:"payload,omitempty" bson:"payload,omitempty"` // e.g., "'OR 1=1"'"
	} `json:"request,omitempty" bson:"request,omitempty"`

	Response struct {
		StatusCode   int               `json:"statusCode,omitempty" bson:"statusCode,omitempty"`     // e.g., 200
		Header       map[string]string `json:"header,omitempty" bson:"header,omitempty"`             // e.g., "Content-Type" -> ["application/json"]
		Body         string            `json:"body,omitempty" bson:"body,omitempty"`                 // e.g., "<html>...</html>"
		Proto        string            `json:"proto,omitempty" bson:"proto,omitempty"`               // e.g., "HTTP/1.1"
		FullResponse string            `json:"fullResponse,omitempty" bson:"fullResponse,omitempty"` // e.g., "{...}"
	} `json:"response,omitempty" bson:"response,omitempty"`

	SourcePodInfo RuntimeAlertK8sDetails `json:"sourcePodInfo,omitempty" bson:"podInfo,omitempty"`
	AttackerIp    string                 `json:"attackerIp,omitempty" bson:"attackerIp,omitempty"`

	// Enrichment fields for the layer 7 alert
	PastActivityCount *int   `json:"pastActivityCount,omitempty" bson:"pastActivityCount,omitempty"`
	Country           string `json:"country,omitempty" bson:"country,omitempty"`
	City              string `json:"city,omitempty" bson:"city,omitempty"`
	Explain           string `json:"explain,omitempty" bson:"explain,omitempty"`
}

type ISecurityIssue added in v0.0.325

type ISecurityIssue interface {
	GetClusterName() string
	GetShortClusterName() string
	SetClusterName(string)
	SetShortClusterName(string)
	GetK8sResourceHash() string
	SetTickets([]Ticket)
}

type IgnoreRuleSummary added in v0.0.304

type IgnoreRuleSummary struct {
	NumberOfSystemRules int      `json:"numberOfSystemRules"`
	IgnoreRulesIDs      []string `json:"ignoreRulesIDs"`
}

type IgnoreRuleUserInputMessage added in v0.0.435

type IgnoreRuleUserInputMessage struct {
	PolicyType PolicyType      `json:"policyType"`
	NewData    json.RawMessage `json:"newData"`
	OldData    json.RawMessage `json:"oldData"`
}

type ImageLayer added in v0.0.420

type ImageLayer struct {
	Order                int    `json:"order"`
	Hash                 string `json:"hash,omitempty"`
	Command              string `json:"command"`
	Size                 uint64 `json:"size"`
	HighestSeverityFound string `json:"highestSeverityFound,omitempty"`
}

type ImageSummary added in v0.0.298

type ImageSummary struct {
	CustomerGUID    string              `json:"customerGUID"`
	Tag             string              `json:"tag"`
	Digest          string              `json:"digest"`
	Registry        string              `json:"registry"`
	Repository      string              `json:"repository"`
	Architecture    string              `json:"architecture"`
	OS              string              `json:"os"`
	Size            uint64              `json:"size"`
	BaseImage       string              `json:"baseImage"`
	LastScanTime    time.Time           `json:"lastScanTime"`
	Clusters        []string            `json:"clusters"`
	Namespaces      []string            `json:"namespaces"`
	Workloads       []string            `json:"workloads"`
	Kinds           []string            `json:"kinds"`
	Containers      []string            `json:"containers"`
	SeverityStats   map[string][]string `json:"severityStats"`
	CriticalCount   int                 `json:"criticalCount"`
	HighCount       int                 `json:"highCount"`
	MediumCount     int                 `json:"mediumCount"`
	LowCount        int                 `json:"lowCount"`
	UnknownCount    int                 `json:"unknownCount"`
	ClustersCount   int                 `json:"clustersCount"`
	NamespacesCount int                 `json:"namespacesCount"`
	WorkloadsCount  int                 `json:"workloadsCount"`
	ContainersCount int                 `json:"containersCount"`
	TicketManager   TicketManager       `json:"ticketManager,omitempty"`
	Tickets         []Ticket            `json:"tickets,omitempty"`
	TicketsCount    int                 `json:"ticketsCount,omitempty"`
}

type InstallationData added in v0.0.191

type InstallationData struct {
	ClusterName                               string                                    `json:"clusterName,omitempty" bson:"clusterName,omitempty"`                                                             // cluster name defined manually or from the cluster context
	ClusterShortName                          string                                    `json:"clusterShortName,omitempty" bson:"clusterShortName,omitempty"`                                                   // cluster short name enriched from the cluster name by BE
	StorageEnabled                            *bool                                     `json:"storage,omitempty" bson:"storage,omitempty"`                                                                     // storage configuration (enabled/disabled)
	RelevantImageVulnerabilitiesEnabled       *bool                                     `json:"relevantImageVulnerabilitiesEnabled,omitempty" bson:"relevantImageVulnerabilitiesEnabled,omitempty"`             // relevancy actual state (enabled/disabled)
	RelevantImageVulnerabilitiesConfiguration RelevantImageVulnerabilitiesConfiguration `json:"relevantImageVulnerabilitiesConfiguration,omitempty" bson:"relevantImageVulnerabilitiesConfiguration,omitempty"` // relevancy configuration defined user
	Namespace                                 string                                    `json:"namespace,omitempty" bson:"namespace,omitempty"`                                                                 // namespace to deploy the components
	ImageVulnerabilitiesScanningEnabled       *bool                                     `json:"imageVulnerabilitiesScanningEnabled,omitempty" bson:"imageVulnerabilitiesScanningEnabled,omitempty"`             // image scanning configuration (enabled/disabled)
	PostureScanEnabled                        *bool                                     `json:"postureScanEnabled,omitempty" bson:"postureScanEnabled,omitempty"`                                               // posture configuration (enabled/disabled)
	OtelCollectorEnabled                      *bool                                     `json:"otelCollector,omitempty" bson:"otelCollector,omitempty"`                                                         // otel collector configuration (enabled/disabled)
	ClusterProvider                           string                                    `json:"clusterProvider,omitempty" bson:"clusterProvider,omitempty"`                                                     // cluster provider (aws/azure/gcp)
	IncludeNamespaces                         []string                                  `json:"includeNamespaces,omitempty" bson:"includeNamespaces,omitempty"`                                                 // perform scanning only on specific namespaces
	ExcludeNamespaces                         []string                                  `json:"excludeNamespaces,omitempty" bson:"excludeNamespaces,omitempty"`                                                 // fully ignore namespaces
	DefaultFrameworks                         []string                                  `json:"defaultFrameworks,omitempty" bson:"defaultFrameworks,omitempty"`                                                 // fully ignore namespaces
}

type K8SAncestor added in v0.0.249

type K8SAncestor struct {
	Name           string      `json:"name"`
	Kind           string      `json:"kind"`
	FullDeclaraion interface{} `json:"ownerData,omitempty"`
}

K8SAncestor represents the kind of the microservice inside the k8s cluster

type K8SNamespace added in v0.0.249

type K8SNamespace struct {
	CAK8SMeta      `json:",inline"`
	Name           string `json:"name"`
	core.Namespace `json:",inline"`
}

K8SNamespace represents single k8s namespace in cluster

type K8SPodObject added in v0.0.249

type K8SPodObject struct {
	CAK8SMeta         `json:",inline"`
	Name              string      `json:"podName"`
	CreatedAt         time.Time   `json:"startedAt,omitempty"`
	TerminatedAt      *time.Time  `json:"terminatedAt,omitempty"`
	PodIP             string      `json:"podIP"`
	NodeName          string      `json:"nodeName"`
	Namespace         string      `json:"namespace"`
	NominatedNodeName string      `json:"nominatedNodeName"`
	Ancestor          K8SAncestor `json:"uptreeOwner,omitempty"`
	PodSpecID         int64       `json:"podSpecId"`
	PodStatus         string      `json:"podStatus"`
}

K8SPodObject represents actuall pod which run on particular node of the cluster

type KDRMonitoredClusters added in v0.0.535

type KDRMonitoredClusters struct {
	MonitoredClusters    []string `json:"monitored,omitempty"`
	NotMonitoredClusters []string `json:"notMonitored,omitempty"`
}

type KDRMonitoredEntitiesCounters added in v0.0.400

type KDRMonitoredEntitiesCounters struct {
	ClustersCount   int `json:"clustersCount"`
	NodesCount      int `json:"nodesCount"`
	NamespacesCount int `json:"namespacesCount"`
	PodsCount       int `json:"podsCount"`
	ContainersCount int `json:"containersCount"`
}

type KPILogin

type KPILogin struct {
	CustomerGUID string    `json:"tennantGUID"`
	Timestamp    time.Time `json:"timestamp"`
	Username     string    `json:"username"`
	Email        string    `json:"e-mail"`
	IP           string    `json:"IP,omitempty"`
}

type KPIPostureScan

type KPIPostureScan struct {
	Client           string    `json:"client"`
	ClientVersion    string    `json:"clientVersion"`
	Framework        string    `json:"framework"`
	FrameworkVersion string    `json:"frameworkVersion"`
	Timestamp        time.Time `json:"timestamp"`
	Target           string    `json:"target"` //yaml,helm,running - what we actually scanned
	ClientIP         string    `json:"clientIP"`
}

type KubernetesObject added in v0.0.264

type KubernetesObject struct {
	Designators       identifiers.PortalDesignator `json:"designators"`
	ResourceHash      string                       `json:"resourceHash"`
	ResourceObjectRef string                       `json:"resourceObjectRef"`
	ResourceVersion   string                       `json:"resourceVersion"`
	Checksum          string                       `json:"checksum"`
	CreationTimestamp time.Time                    `json:"creationTimestamp"`

	OwnerReferenceName string `json:"ownerReferenceName"`
	OwnerReferenceKind string `json:"ownerReferenceKind"`

	// related only to kubescape CRDs.
	RelatedName            string `json:"relatedName"`
	RelatedKind            string `json:"relatedKind"`
	RelatedAPIGroup        string `json:"relatedAPIGroup"`
	RelatedNamespace       string `json:"relatedNamespace"`
	RelatedAPIVersion      string `json:"relatedAPIVersion"`
	RelatedResourceVersion string `json:"relatedResourceVersion"`
	Status                 string `json:"status"`
	CompletionStatus       string `json:"completionStatus"`

	NetworkPolicyStatus NetworkPolicyStatus `json:"networkPolicyStatus"`

	Labels      map[string]string `json:"labels"`
	Annotations map[string]string `json:"annotations"`

	// pod selector labels of network policies
	NetworkPolicyPodSelectorLabels map[string]string `json:"podSelectorLabels,omitempty"`

	// pod spec labels of workloads
	PodSpecLabels map[string]string `json:"podSpecLabels,omitempty"`

	// pod selector labels of services
	ServicePodSelectorLabels map[string]string `json:"servicePodSelectorLabels,omitempty"`

	// roleRef of RoleBinding
	RoleBindingRoleRef *RoleBindingRoleRef `json:"roleRef,omitempty"`

	// subjects of RoleBinding
	RoleBindingSubjects []RoleBindingSubject `json:"subjects,omitempty"`

	// additional properties of the resource
	AdditionalProps map[string]string `json:"additionalProps,omitempty"`

	// containers (names) of the resource
	Containers []string `json:"containers,omitempty"`
	// init containers (names) of the resource
	InitContainers []string `json:"initContainers,omitempty"`
	// ephemeral containers (names) of the resource
	EphemeralContainers []string `json:"ephemeralContainers,omitempty"`

	// Storage-specific fields
	ResourceSize             int
	RelatedContainerProfiles map[string]string
}

KubernetesObject represents a single Kubernetes object, either native or kubescape CRD

type LicenseType added in v0.0.154

type LicenseType string
const (
	LicenseTypeFree       LicenseType = "Free"
	LicenseTypeTeam       LicenseType = "Team"
	LicenseTypeEnterprise LicenseType = "Enterprise"
)

type Limitations added in v0.0.249

type Limitations struct {
	CPU    int64 `json:"cpu,omitempty"`
	Memory int64 `json:"memory,omitempty"`
	Disk   int64 `json:"disk,omitempty"`
}

Limitations - container defined limitations

type MalwareAlert added in v0.0.359

type MalwareAlert struct {
	MalwareFile        File             `json:"malwareFile,omitempty" bson:"malwareFile,omitempty"`
	Action             string           `json:"action,omitempty" bson:"action,omitempty"`
	DetectionMethod    string           `json:"detectionMethod,omitempty" bson:"detectionMethod,omitempty"`
	ProcessTree        ProcessTree      `json:"processTree,omitempty" bson:"processTree,omitempty"`
	Signature          MalwareSignature `json:"signature,omitempty" bson:"signature,omitempty"`
	MalwareDescription string           `json:"malwareDescription,omitempty" bson:"malwareDescription,omitempty"`
}

type MalwareSignature added in v0.0.518

type MalwareSignature struct {
	ID          int64     `json:"id,omitempty"`
	Sha256      string    `json:"sha256,omitempty"`
	Sha1        string    `json:"sha1,omitempty"`
	Md5         string    `json:"md5,omitempty"`
	Name        string    `json:"name,omitempty"`
	Description string    `json:"description,omitempty"`
	Families    []string  `json:"families,omitempty"`
	Aliases     []string  `json:"aliases,omitempty"`
	Sources     []string  `json:"sources,omitempty"`
	FirstSeen   time.Time `json:"first_seen,omitempty"`
}

type Metadata added in v0.0.410

type Metadata struct {
	Name      string `json:"name"`
	Namespace string `json:"namespace"`
}

type MicroserviceExtraDetails added in v0.0.249

type MicroserviceExtraDetails struct {
	CAMicroserviceOverviewMetadata `json:",inline"`
	NumOfContainers                int                `json:"NumOfContainers"`
	Labels                         map[string]string  `json:"labels,omitempty"`
	Annotations                    map[string]string  `json:"annotations,omitempty"`
	ContainersSummary              []ContainerSummary `json:"containers"`
	ExternalFacing                 bool               `json:"isExternalFacingMS"`
}

MicroserviceExtraDetails represent an overview of microservice, services, container data and cloud data

type MicroserviceInfo added in v0.0.249

type MicroserviceInfo struct {
	MicroserviceMetadataView `json:",inline"`
	PodSpecID                int64 `json:"podSpecId"` // will be sent from the cluster-agent to reconize this spec
	core.PodSpec             `json:"spec"`
	core.PodStatus           `json:"status" yaml:"status"`
	Containers               []CAContainerMetrics `json:"containers,omitempty"`
	K8SPodObjects            []K8SPodObject       `json:"k8sPodObjects,omitempty"`
	CAStartTime              time.Time            `json:"caStartTime"`
}

MicroserviceInfo single microservice with CA metrics

func (*MicroserviceInfo) GetShortName added in v0.0.249

func (msi *MicroserviceInfo) GetShortName() string

GetShortName returns the last 2 parts of the microservice

type MicroserviceMetadataView added in v0.0.249

type MicroserviceMetadataView struct {
	CAMicroserviceOverviewMetadata
	metav1.ObjectMeta `json:"metadata"`
	Ancestor          K8SAncestor       `json:"uptreeOwner,omitempty"`
	UsageType         string            `json:"usageType,omitempty"`
	Categories        map[string]bool   `json:"categories"`
	CALabels          map[string]string `json:"caLabels"`
}

MicroserviceMetadataView represent the model to return in metadata request

type MissingRuntimeInfoReason added in v0.0.356

type MissingRuntimeInfoReason int
const (
	UnknownReason            MissingRuntimeInfoReason = 0
	RestartRequired          MissingRuntimeInfoReason = 1
	UnscheduledNodeAgentPods MissingRuntimeInfoReason = 2
	IncompatibleKernel       MissingRuntimeInfoReason = 3
	RuncNotFound             MissingRuntimeInfoReason = 4
)

MissingRuntimeInfoReason is used to store the reason why the runtime information is missing

type NetworkConnection added in v0.0.555

type NetworkConnection struct {
	IPAddress                 string  `json:"ipAddress"`
	Inbound                   bool    `json:"inbound"`
	DNSName                   string  `json:"dnsName"`
	Port                      int32   `json:"port"`
	Protocol                  string  `json:"protocol"`
	EndpointWorkloadName      *string `json:"endpointWorkloadName,omitempty"`
	EndpointWorkloadNamespace *string `json:"endpointWorkloadNamespace,omitempty"`
	EndpointWorkloadKind      *string `json:"endpointWorkloadKind,omitempty"`
}

NetworkConnection network connection

type NetworkPoliciesWorkload added in v0.0.269

type NetworkPoliciesWorkload struct {
	ResourceHash               string                   `json:"resourceHash"`
	Name                       string                   `json:"name"`
	Kind                       string                   `json:"kind"`
	CustomerGUID               string                   `json:"customerGUID"`
	Namespace                  string                   `json:"namespace"`
	ClusterName                string                   `json:"cluster"`
	ClusterShortName           string                   `json:"clusterShortName"`
	AppliedNetworkPolicyType   string                   `json:"appliedNetworkPolicyType"`
	NetworkPolicyStatus        NetworkPolicyStatus      `json:"networkPolicyStatus"`
	NetworkPolicyStatusMessage string                   `json:"networkPolicyStatusMessage"`
	MissingRuntimeInfoReason   MissingRuntimeInfoReason `json:"missingRuntimeInfoReason"`
}

NetworkPoliciesWorkload is used store information about workloads in the customer's clusters related to the NetworkPolicies feature

type NetworkPolicyStatus added in v0.0.282

type NetworkPolicyStatus int
const (
	MissingRuntimeInfo    NetworkPolicyStatus = 1
	NetworkPolicyRequired NetworkPolicyStatus = 2
	NetworkPolicyApplied  NetworkPolicyStatus = 3
)

type NetworkScanAlert added in v0.0.524

type NetworkScanAlert struct {
	Domain    string   `json:"domain,omitempty" bson:"domain,omitempty"`
	Addresses []string `json:"addresses,omitempty" bson:"addresses,omitempty"`
}

type NetworkStream added in v0.0.551

type NetworkStream struct {
	// <identifier> to <network stream entity>
	Entities map[string]NetworkStreamEntity `json:"entities,omitempty"`
}

NetworkStream represents a collection of network traffic events for a specific pod/container

type NetworkStreamEntity added in v0.0.551

type NetworkStreamEntity struct {
	// entity kind
	Kind NetworkStreamEntityKind `json:"kind,omitempty"`
	// entity details
	NetworkStreamEntityContainer `json:",inline"`
	// inbound network events
	Inbound map[string]NetworkStreamEvent `json:"inbound,omitempty"`
	// outbound network events
	Outbound map[string]NetworkStreamEvent `json:"outbound,omitempty"`
}

NetworkStreamEntity represents an aggregation of network connections from/to a specific source

type NetworkStreamEntityContainer added in v0.0.551

type NetworkStreamEntityContainer struct {
	// ContainerName is the name of the container generating these network events
	ContainerName string `json:"containerName,omitempty"`
	// ContainerID is the unique identifier for the container
	ContainerID string `json:"containerID,omitempty"`
	// namespace is the namespace where the pod is deployed
	PodNamespace string `json:"podNamespace,omitempty"`
	// PodName is the name of the pod involved in the network traffic
	PodName string `json:"podName,omitempty"`
	// WorkloadName is the name of the parent workload (e.g., Deployment, StatefulSet)
	WorkloadName string `json:"workloadName,omitempty"`
	// WorkloadKind is the type of the parent workload (e.g., Deployment, StatefulSet)
	WorkloadKind string `json:"workloadKind,omitempty"`
}

NetworkStreamEntityContainer represents a container generating network events

type NetworkStreamEntityKind added in v0.0.551

type NetworkStreamEntityKind string
const (
	NetworkStreamEntityKindContainer NetworkStreamEntityKind = "container" // container
	NetworkStreamEntityKindHost      NetworkStreamEntityKind = "host"      // host

)

type NetworkStreamEvent added in v0.0.551

type NetworkStreamEvent struct {
	Timestamp   time.Time                  `json:"timestamp,omitempty"`
	IPAddress   string                     `json:"ipAddress,omitempty"`
	DNSName     string                     `json:"dnsName,omitempty"`
	Port        int32                      `json:"port,omitempty"`
	Protocol    NetworkStreamEventProtocol `json:"protocol,omitempty"`
	ProcessTree *ProcessTree               `json:"processTree,omitempty"`
	// endpoint kind (pod, service, raw)
	Kind EndpointKind `json:"kind,omitempty"`
	// endpoint details in case of pod
	NetworkStreamEventEndpointPodDetails `json:",inline"`
	// endpoint details in case of service
	NetworkStreamEventEndpointServiceDetails `json:",inline"`
}

NetworkStreamEvent represents an aggregation of network connections from/to a specific source

func (*NetworkStreamEvent) String added in v0.0.551

func (e *NetworkStreamEvent) String() string

type NetworkStreamEventEndpointPodDetails added in v0.0.551

type NetworkStreamEventEndpointPodDetails struct {
	// PodName is the name of the pod
	PodName string `json:"podName,omitempty"`
	// PodNamespace is the namespace of the pod
	PodNamespace string `json:"podNamespace,omitempty"`
	// WorkloadName is the name of the parent workload (e.g., Deployment, StatefulSet)
	WorkloadName string `json:"workloadName,omitempty"`
	// WorkloadNamespace is the namespace of the parent workload
	WorkloadNamespace string `json:"workloadNamespace,omitempty"`
	// WorkloadKind is the kind of the parent workload (e.g., Deployment, StatefulSet)
	WorkloadKind string `json:"workloadKind,omitempty"`
}

type NetworkStreamEventEndpointServiceDetails added in v0.0.551

type NetworkStreamEventEndpointServiceDetails struct {
	ServiceName      string `json:"serviceName,omitempty"`
	ServiceNamespace string `json:"serviceNamespace,omitempty"`
}

type NetworkStreamEventProtocol added in v0.0.551

type NetworkStreamEventProtocol string
const (
	NetworkStreamEventProtocolTCP NetworkStreamEventProtocol = "TCP"
	NetworkStreamEventProtocolUDP NetworkStreamEventProtocol = "UDP"
	NetworkStreamEventProtocolDNS NetworkStreamEventProtocol = "DNS"
)

type NexusImageRegistry added in v0.0.473

type NexusImageRegistry struct {
	BaseContainerImageRegistry `json:",inline"`
	RegistryURL                string `json:"registryURL"`
	Username                   string `json:"username"`
	Password                   string `json:"password,omitempty"`
}

func (*NexusImageRegistry) ExtractSecret added in v0.0.473

func (nexus *NexusImageRegistry) ExtractSecret() interface{}

func (*NexusImageRegistry) FillSecret added in v0.0.473

func (nexus *NexusImageRegistry) FillSecret(value interface{}) error

func (*NexusImageRegistry) GetDisplayName added in v0.0.473

func (nexus *NexusImageRegistry) GetDisplayName() string

func (*NexusImageRegistry) MaskSecret added in v0.0.473

func (nexus *NexusImageRegistry) MaskSecret()

func (*NexusImageRegistry) Validate added in v0.0.473

func (nexus *NexusImageRegistry) Validate() error

type NodeAgentConfig added in v0.0.582

type NodeAgentConfig struct {
	MaxSniffingTime string `json:"maxSniffingTimePerContainer"`
}

type NodeProfile added in v0.0.399

type NodeProfile struct {
	PodStatuses []PodStatus `json:"podStatuses"`

	CurrentState string `json:"currentState"`

	NodeAgentRunning bool `json:"nodeAgentRunning"`

	RuntimeDetectionEnabled bool `json:"runtimeDetectionEnabled"`

	CloudMetadata *CloudMetadata `json:"cloudMetadata,omitempty"`
}

information of node-agent pod status can be taken from PodStatus table in postgres

type NodeSpec added in v0.0.436

type NodeSpec struct {
	AllocatedCPU *int `json:"allocatedCPU,omitempty"`
}

type NodeStatus added in v0.0.403

type NodeStatus struct {
	CustomerGUID    string `json:"customerGUID"`
	Cluster         string `json:"cluster"`
	Name            string `json:"name"`
	K8sResourceHash string `json:"k8sResourceHash"`
	NodeProfile     `json:",inline"`
	NodeSpec        `json:",inline"`
}

func (*NodeStatus) CountMonitoredContainers added in v0.0.403

func (nc *NodeStatus) CountMonitoredContainers() int

func (*NodeStatus) CountMonitoredNamespaces added in v0.0.403

func (nc *NodeStatus) CountMonitoredNamespaces() int

func (*NodeStatus) CountMonitoredPods added in v0.0.403

func (nc *NodeStatus) CountMonitoredPods() int

func (*NodeStatus) CountRunningPods added in v0.0.403

func (nc *NodeStatus) CountRunningPods() int

func (*NodeStatus) CountRunningPodsContainers added in v0.0.403

func (nc *NodeStatus) CountRunningPodsContainers() int

func (*NodeStatus) GetMonitoredContainers added in v0.0.403

func (nc *NodeStatus) GetMonitoredContainers() map[string][]PodContainer

func (*NodeStatus) GetMonitoredNamespaces added in v0.0.403

func (nc *NodeStatus) GetMonitoredNamespaces() []string

func (*NodeStatus) GetMonitoredPods added in v0.0.403

func (nc *NodeStatus) GetMonitoredPods() []PodStatus

func (*NodeStatus) GetRunningPods added in v0.0.403

func (nc *NodeStatus) GetRunningPods() []PodStatus

func (*NodeStatus) IsKDRMonitored added in v0.0.403

func (nc *NodeStatus) IsKDRMonitored() bool

type NodeUsage added in v0.0.169

type NodeUsage struct {
	// max sum of nodes across all clusters ever scanned on one day
	MaxNodesSumEver int `json:"maxNodesSumEver,omitempty" bson:"maxNodesSumEver,omitempty"`
	// date of MaxNodesSumEver
	MaxNodesSumDate string `json:"maxNodesSumDate,omitempty" bson:"maxNodesSumDate,omitempty"`
}

type Notifications

type Notifications struct {
	PostureScan               []string `json:"postureScan,omitempty" bson:"postureScan,omitempty"` // bad approach kept till i see if can do something with mongo and old data
	PostureScoreAboveLastScan []string `json:"postureScoreAboveLastScan,omitempty" bson:"postureScoreAboveLastScan,omitempty"`

	PostureScanV1              []SlackNotification `json:"postureScanV1" bson:"postureScanV1"`
	PostureScanAboveLastScanV1 []SlackNotification `json:"postureScoreAboveLastScanV1" bson:"postureScoreAboveLastScanV1"`
}

type PaginationCursorFunc added in v0.0.216

type PaginationCursorFunc func(customerGUID, instacnceID string, wlids []string, paginationObject *V2ListRequest) (*V2ListResponse, error)

PaginationCursorFunc declaring function which returns data ready for pagination by cursor to the next page

type PaginationSearchByScopeFiltersFunc added in v0.0.216

type PaginationSearchByScopeFiltersFunc func(customerGUID string, scopeFilters *QueryScopeParams, paginationObject *V2ListRequest) ([]RawJSONObject, *RespTotal, error)

type PaginationSearchByScopeFiltersScrollFunc added in v0.0.216

type PaginationSearchByScopeFiltersScrollFunc func(customerGUID string, scopeFilters *QueryScopeParams, paginationObject *V2ListRequest) (*SearchResponse, error)

PaginationSearchByScopeFiltersScrollFunc declaring function which returns data ready for paginationtype PaginationSearchByScopeFiltersFunc func(customerGUID string, scopeFilters *armotypes.QueryScopeParams, paginationObject *armotypes.V2ListRequest) ([]armotypes.RawJSONObject, *ElasticRespTotal, error)

type PaginationSearchFunc added in v0.0.216

type PaginationSearchFunc func(customerGUID, instacnceID string, wlids []string, paginationObject *V2ListRequest) ([]RawJSONObject, *RespTotal, error)

PaginationSearchFunc declaring function which returns data ready for pagination

type PodContainer added in v0.0.399

type PodContainer struct {
	Name                string    `json:"name"`
	Image               string    `json:"image"`
	IsKDRMonitored      bool      `json:"isKDRMonitored"`
	CurrentState        string    `json:"currentState"`
	LastStateExitCode   int       `json:"lastStateExitCode"`
	LastStateFinishedAt time.Time `json:"lastStateFinishedAt"`
	LastStateStartedAt  time.Time `json:"lastStateStartedAt"`
	RestartCount        int       `json:"restartCount"`
}

type PodInfo added in v0.0.571

type PodInfo struct {
	App                 string    `json:"app"`
	Name                string    `json:"name"`
	Namespace           string    `json:"namespace"`
	NodeName            string    `json:"nodeName"`
	UpdatedAt           time.Time `json:"updatedAt"`
	CreationTime        time.Time `json:"creationTimestamp"`
	Phase               string    `json:"phase"`
	CurrentState        string    `json:"currentState"`
	LastStateReason     string    `json:"lastStateReason"`
	LastStateFinishedAt time.Time `json:"lastStateFinishedAt"`
	RestartCount        int       `json:"restartCount"`
	ContainerImages     []string  `json:"containerImages,omitempty"`
}

type PodStatus added in v0.0.352

type PodStatus struct {
	CustomerGUID               string         `json:"customerGUID"`
	Cluster                    string         `json:"cluster"`
	ResourceHash               string         `json:"resourceHash"`
	ResourceVersion            string         `json:"resourceVersion"`
	Name                       string         `json:"name"`
	Namespace                  string         `json:"namespace"`
	NodeName                   string         `json:"nodeName"`
	App                        string         `json:"app"`
	Phase                      string         `json:"phase"`
	CurrentState               string         `json:"currentState"`
	LastStateExitCode          int            `json:"lastStateExitCode"`   // Deprecated, use PodContainer.LastStateExitCode
	LastStateFinishedAt        time.Time      `json:"lastStateFinishedAt"` // Deprecated, use PodContainer.LastStateFinishedAt
	LastStateStartedAt         time.Time      `json:"lastStateStartedAt"`  // Deprecated, use PodContainer.LastStateStartedAt
	LastStateReason            string         `json:"lastStateReason"`
	LastStateMessage           string         `json:"lastStateMessage"`
	LastStateTransitionTime    time.Time      `json:"lastStateTransitionTime"`
	RestartCount               int            `json:"restartCount"` // Deprecated, use PodContainer.RestartCount
	CreationTimestamp          time.Time      `json:"creationTimestamp"`
	Containers                 []PodContainer `json:"containers,omitempty"`
	InitContainers             []PodContainer `json:"initContainers,omitempty"`
	EphemeralContainers        []PodContainer `json:"ephemeralContainers,omitempty"`
	HasFinalApplicationProfile bool           `json:"hasFinalApplicationProfile"`
	HasApplicableRuleBindings  bool           `json:"hasApplicableRuleBindings"`
	HasRelevancyCalculating    bool           `json:"hasRelevancyCalculating"`
	IsKDRMonitored             bool           `json:"isKDRMonitored"`
	ContainerImages            []string       `json:"containerImages,omitempty"`
}

func (*PodStatus) GetMonitoredContainers added in v0.0.399

func (ps *PodStatus) GetMonitoredContainers() []PodContainer

type PolicyType added in v0.0.172

type PolicyType string
const (
	// SecurityRiskPolicy - policy for security risks
	SecurityRiskExceptionPolicyType PolicyType = "securityRiskExceptionPolicy"

	// RuntimeIncidentPolicy - policy for runtime incidents
	RuntimeIncidentExceptionPolicyType PolicyType = "runtimeIncidentExceptionPolicy"

	// CSPM - policy for CSPM
	CSPMExceptionPolicyType PolicyType = "cspmExceptionPolicy"
)
const PostureExceptionPolicyType PolicyType = "postureExceptionPolicy"
const VulnerabilityExceptionPolicyType PolicyType = "vulnerabilityExceptionPolicy"

type PortalBase

type PortalBase struct {
	GUID        string                 `json:"guid" bson:"guid"`
	Name        string                 `json:"name" bson:"name"`
	Attributes  map[string]interface{} `json:"attributes,omitempty" bson:"attributes,omitempty"` // could be string
	UpdatedTime string                 `json:"updatedTime,omitempty" bson:"updatedTime,omitempty"`
}

PortalBase holds basic items data from portal BE

func MockPortalBase

func MockPortalBase(customerGUID, name string, attributes map[string]interface{}) *PortalBase

func (*PortalBase) GetAttributes added in v0.0.128

func (p *PortalBase) GetAttributes() map[string]interface{}

func (*PortalBase) GetGUID added in v0.0.128

func (p *PortalBase) GetGUID() string

Getters & Setter used by derived types for interfaces implementation

func (*PortalBase) GetName added in v0.0.128

func (p *PortalBase) GetName() string

func (*PortalBase) GetTimestampFieldName added in v0.0.393

func (p *PortalBase) GetTimestampFieldName() string

func (*PortalBase) GetUpdatedTime added in v0.0.141

func (p *PortalBase) GetUpdatedTime() *time.Time

func (*PortalBase) SetAttributes added in v0.0.128

func (p *PortalBase) SetAttributes(attributes map[string]interface{})

func (*PortalBase) SetGUID added in v0.0.128

func (p *PortalBase) SetGUID(guid string)

func (*PortalBase) SetName added in v0.0.128

func (p *PortalBase) SetName(name string)

func (*PortalBase) SetUpdatedTime added in v0.0.135

func (p *PortalBase) SetUpdatedTime(updatedTime *time.Time)

type PortalCache added in v0.0.201

type PortalCache[T any] struct {
	GUID         string    `json:"guid" bson:"guid"`
	Name         string    `json:"name,omitempty" bson:"name,omitempty"`
	DataType     DataType  `json:"dataType,omitempty" bson:"dataType,omitempty"`
	Data         T         `json:"data,omitempty" bson:"data,omitempty"`
	CreationTime string    `json:"creationTime" bson:"creationTime"`
	UpdatedTime  string    `json:"lastUpdated,omitempty" bson:"lastUpdated,omitempty"`
	ExpiryTime   time.Time `json:"expiryTime,omitempty" bson:"expiryTime,omitempty"`
}

PortalCache is an auxiliary structure to store cache data

func (*PortalCache[T]) GetTimestampFieldName added in v0.0.393

func (c *PortalCache[T]) GetTimestampFieldName() string

func (*PortalCache[T]) SetExpiryTime added in v0.0.201

func (c *PortalCache[T]) SetExpiryTime(expiryTime time.Time)

func (*PortalCache[T]) SetTTL added in v0.0.201

func (c *PortalCache[T]) SetTTL(ttl time.Duration)

type PortalCluster added in v0.0.120

type PortalCluster struct {
	PortalBase       `json:",inline" bson:"inline"`
	SubscriptionDate string            `json:"subscription_date,omitempty" bson:"subscription_date,omitempty"`
	LastLoginDate    string            `json:"last_login_date,omitempty" bson:"last_login_date,omitempty"`
	InstallationData *InstallationData `json:"installationData" bson:"installationData,omitempty"`
}

PortalCluster holds cluster data from portal BE

type PortalRegistryCronJob added in v0.0.132

type PortalRegistryCronJob struct {
	PortalBase      `json:",inline" bson:"inline"`
	RegistryInfo    `json:",inline" bson:"inline"`
	CreationDate    string       `json:"creationDate,omitempty" bson:"creationDate,omitempty"`
	ID              string       `json:"id,omitempty" bson:"id,omitempty"`
	ClusterName     string       `json:"clusterName,omitempty" bson:"clusterName,omitempty"`
	CronTabSchedule string       `json:"cronTabSchedule,omitempty" bson:"cronTabSchedule,omitempty"`
	Repositories    []Repository `json:"repositories,omitempty" bson:"repositories,omitempty"`
}

type PortalRepository added in v0.0.128

type PortalRepository struct {
	PortalBase   `json:",inline" bson:"inline"`
	CreationDate string `json:"creationDate,omitempty" bson:"creationDate,omitempty"`
	Provider     string `json:"provider,omitempty" bson:"provider,omitempty"`
	Owner        string `json:"owner,omitempty" bson:"owner,omitempty"`
	RepoName     string `json:"repoName,omitempty" bson:"repoName,omitempty"`
	BranchName   string `json:"branchName,omitempty" bson:"branchName,omitempty"`
}

type PostureAttributesList

type PostureAttributesList struct {
	Attribute string   `json:"attributeName"`
	Values    []string `json:"values"`
}

type PostureClusterOverTime

type PostureClusterOverTime struct {
	Designators  identifiers.PortalDesignator `json:"designators,omitempty"`
	ClusterName  string                       `json:"clusterName"`
	Frameworks   []PostureFrameworkOverTime   `json:"frameworks"`
	DeleteStatus RecordStatus                 `json:"deletionStatus,omitempty"`
}

-------- /api/v1/posture/clustersOvertime response datastructures

type PostureClusterSummary added in v0.0.122

type PostureClusterSummary struct {
	Score           float32                      `json:"score"`
	TotalControls   int                          `json:"totalControls"`
	FailedControls  int                          `json:"failedControls"`
	SkippedControls int                          `json:"skippedControls,omitempty"`
	WarningControls int                          `json:"warningControls,omitempty"` // Deprecated
	ReportID        string                       `json:"reportGUID"`
	Designators     identifiers.PortalDesignator `json:"designators"`

	Timestamp    time.Time    `json:"timestamp"`
	DeleteStatus RecordStatus `json:"deletionStatus,omitempty"`

	Frameworks []string `json:"frameworks"`

	// Counters - Failed resources by severity
	CriticalSeverityResources int `json:"criticalSeverityResources"`
	HighSeverityResources     int `json:"highSeverityResources"`
	MediumSeverityResources   int `json:"mediumSeverityResources"`
	LowSeverityResources      int `json:"lowSeverityResources"`

	// Counters - Failed controls by severity
	CriticalSeverityControls int `json:"criticalSeverityControls"`
	HighSeverityControls     int `json:"highSeverityControls"`
	MediumSeverityControls   int `json:"mediumSeverityControls"`
	LowSeverityControls      int `json:"lowSeverityControls"`

	// Counters -  Resources by status
	PassedResources   int `json:"passedResources"`
	FailedResources   int `json:"failedResources"`
	SkippedResources  int `jsons:"skippedResources,omitempty"`
	ExcludedResources int `json:"excludedResources,omitempty"` // Deprecated

	// Metadata
	KubescapeVersion  string `json:"kubescapeVersion"`
	KubernetesVersion string `json:"kubernetesVersion"`
	WorkerNodeCount   int    `json:"workerNodeCount"`
	Location          string `json:"location"`
	CloudProvider     string `json:"cloudProvider"`

	// Information about the controls that were run on this entity
	// The key is the status of the control (`failed`, `passed`, etc)
	ControlsInfo map[string][]ControlInfo `json:"controlsInfo"`

	// Names of the cluster
	FullName   string `json:"clusterFullName"`
	ShortName  string `json:"clusterShortName"`
	PrefixName string `json:"clusterPrefixName"`

	//tickets opened for in this cluster
	TicketManager TicketManager `json:"ticketManager,omitempty"`
	Tickets       []Ticket      `json:"tickets,omitempty"`
}

type PostureContainerSummary

type PostureContainerSummary struct {
	ContainerName string `json:"containerName"`
	ImageTag      string `json:"image,omitempty"`
}

type PostureControlSummary

type PostureControlSummary struct {
	Designators                    identifiers.PortalDesignator `json:"designators"`
	ControlID                      string                       `json:"id"` // "C0001"
	ControlGUID                    string                       `json:"guid"`
	Name                           string                       `json:"name"`
	AffectedResourcesCount         int                          `json:"affectedResourcesCount"`
	FailedResourcesCount           int                          `json:"failedResourcesCount"`
	SkippedResourcesCount          int                          `json:"skippedResourcesCount"`
	WarningResourcesCount          int                          `json:"warningResourcesCount"` // Deprecated
	TotalScannedResourcesCount     *int                         `json:"totalScannedResourcesCount"`
	PreviousAffectedResourcesCount int                          `json:"previousAffectedResourcesCount"`
	PreviousFailedResourcesCount   int                          `json:"previousFailedResourcesCount"`
	PreviousSkippedResourcesCount  int                          `json:"previousSkippedResourcesCount"`
	PreviousWarningResourcesCount  int                          `json:"previousWarningResourcesCount"` // Deprecated
	Framework                      string                       `json:"frameworkName"`
	FrameworkSubSectionID          []string                     `json:"frameworkSubsectionID,omitempty"`
	Remediation                    string                       `json:"remediation"`
	Status                         int                          `json:"status"`
	StatusText                     string                       `json:"statusText"`
	SubStatusText                  string                       `json:"subStatusText,omitempty"`
	Description                    string                       `json:"description"`
	Section                        string                       `json:"section"`
	Timestamp                      time.Time                    `json:"timestamp"`
	ReportID                       string                       `json:"reportGUID"`
	DeleteStatus                   RecordStatus                 `json:"deletionStatus,omitempty"`
	Score                          float32                      `json:"score"`
	ComplianceScore                *float32                     `json:"complianceScore"`
	ScoreFactor                    float32                      `json:"baseScore"`
	ScoreWeight                    float32                      `json:"scoreWeight"`
	ARMOImprovement                float32                      `json:"ARMOimprovement"`
	RelevantCloudProvides          []string                     `json:"relevantCloudProvides"`
	ControlInputs                  []ControlInputs              `json:"controlInputs"`
	IsLastScan                     int                          `json:"isLastScan"`
	HighlightPathsCount            int64                        `json:"highlightPathsCount"`
	ClusterShortName               string                       `json:"clusterShortName"`
	SmartRemediation               bool                         `json:"smartRemediation"`
	FixByNetworkPolicy             bool                         `json:"fixByNetworkPolicy"`
	//tickets opened for this control
	TicketManager TicketManager `json:"ticketManager,omitempty"`
	Tickets       []Ticket      `json:"tickets,omitempty"`
}

----/api/v1/posture/controls

type PostureExceptionPolicy

type PostureExceptionPolicy struct {
	PortalBase      `json:",inline" bson:"inline"`
	PolicyType      string                          `json:"policyType,omitempty" bson:"policyType,omitempty"`
	CreationTime    string                          `json:"creationTime,omitempty" bson:"creationTime,omitempty"`
	Actions         []PostureExceptionPolicyActions `json:"actions,omitempty" bson:"actions,omitempty"`
	Resources       []identifiers.PortalDesignator  `json:"resources" bson:"resources,omitempty"`
	PosturePolicies []PosturePolicy                 `json:"posturePolicies,omitempty" bson:"posturePolicies,omitempty"`
	Reason          *string                         `json:"reason,omitempty" bson:"reason,omitempty"`
	ExpirationDate  *time.Time                      `json:"expirationDate,omitempty" bson:"expirationDate"`
	CreatedBy       string                          `json:"createdBy,omitempty" bson:"createdBy,omitempty"`
}

func (*PostureExceptionPolicy) IsAlertOnly

func (exceptionPolicy *PostureExceptionPolicy) IsAlertOnly() bool

func (*PostureExceptionPolicy) IsDisable

func (exceptionPolicy *PostureExceptionPolicy) IsDisable() bool

type PostureExceptionPolicyActions

type PostureExceptionPolicyActions string
const AlertOnly PostureExceptionPolicyActions = "alertOnly"
const Disable PostureExceptionPolicyActions = "disable"

type PostureFrameworkOverTime

type PostureFrameworkOverTime struct {
	// "frameworkName": "MITRE",
	//                 "riskScore": 54,
	RiskScore       float32                         `json:"riskScore,omitempty"`
	ComplianceScore float32                         `json:"complianceScore,omitempty"`
	Framework       string                          `json:"frameworkName"`
	Coords          []PostureFrameworkOverTimeCoord `json:"cords"`
}

PostureFrameworkOverTime - the response structure

type PostureFrameworkOverTimeCoord

type PostureFrameworkOverTimeCoord struct {
	ScoreValue      float32   `json:"value,omitempty"`
	ComplianceScore float32   `json:"complianceScore,omitempty"`
	ReportID        string    `json:"reportGUID"`
	Timestamp       time.Time `json:"timestamp"`
}

type PostureFrameworkSubsectionSummary

type PostureFrameworkSubsectionSummary struct {
	// The name (title) of the subsection
	// Example: General Policies
	Name string `json:"name"`

	// The name of the framework this subsection belongs to
	// Example: CIS
	Framework string `json:"framework"`

	// Unique id of the subsection inside its framework
	// Example: 5.7
	ID string `json:"id"`

	// Statistics about the controls that were run
	// The key is the status of the control (`failed`, `passed`, etc).
	// The value is the number of controls
	// Example: {"failed": 3, "passed": 4}
	ControlsStats map[string]uint `json:"controlsStats"`
}

type PostureFrameworkSummary

type PostureFrameworkSummary struct {
	Name             string                       `json:"name"`
	TypeTags         []string                     `json:"typeTags"`
	Score            float32                      `json:"value"`
	ComplianceScore  float32                      `json:"complianceScorev1"`
	ImprovementScore float32                      `json:"improvementScore"`
	TotalControls    int                          `json:"totalControls"`
	FailedControls   int                          `json:"failedControls"`
	SkippedControls  int                          `json:"skippedControls,omitempty"`
	WarningControls  int                          `json:"warningControls,omitempty"` // Deprecated
	ReportID         string                       `json:"reportGUID"`
	Designators      identifiers.PortalDesignator `json:"designators"`

	Timestamp    time.Time    `json:"timestamp"`
	DeleteStatus RecordStatus `json:"deletionStatus,omitempty"`
}

type PostureFrameworksOverTime

type PostureFrameworksOverTime struct {
	ClusterName string `json:"clusterName"`

	ScoreValue float32   `json:"value"`
	ReportID   string    `json:"reportGUID"`
	Timestamp  time.Time `json:"timestamp"`
	Framework  string    `json:"frameworkName"`
}

Used for elastic

type PostureJobParams

type PostureJobParams struct {
	Name            string `json:"name,omitempty"`
	ID              string `json:"id,omitempty"`
	ClusterName     string `json:"clusterName"`
	FrameworkName   string `json:"frameworkName"`
	CronTabSchedule string `json:"cronTabSchedule,omitempty"`
	JobID           string `json:"jobID,omitempty"`
}

type PosturePaths

type PosturePaths struct {
	ResourceID string `json:"resourceID,omitempty"` // resource on which the remediation needs to be applied
	// must have only one of the following
	FailedPath string  `json:"failedPath,omitempty"` // TODO: deprecate
	ReviewPath string  `json:"reviewPath,omitempty"`
	DeletePath string  `json:"deletePath,omitempty"`
	FixPath    FixPath `json:"fixPath,omitempty"`
	FixCommand string  `json:"fixCommand,omitempty"`
}

type PosturePolicy

type PosturePolicy struct {
	FrameworkName string `json:"frameworkName" bson:"frameworkName"`
	// deprecated - use ControlID instead
	ControlName   string `json:"controlName,omitempty" bson:"controlName,omitempty"`
	ControlID     string `json:"controlID,omitempty" bson:"controlID,omitempty"`
	RuleName      string `json:"ruleName,omitempty" bson:"ruleName,omitempty"`
	SeverityScore int    `json:"severityScore,omitempty" bson:"severityScore,omitempty"`
}

type PostureReportResultRaw

type PostureReportResultRaw struct {
	Designators           identifiers.PortalDesignator `json:"designators"`
	Timestamp             time.Time                    `json:"timestamp"`
	ReportID              string                       `json:"reportGUID"`
	ResourceID            string                       `json:"resourceID"`
	ControlID             string                       `json:"controlID"`
	ControlConfigurations []ControlInputs              `json:"controlConfigurations,omitempty"`
	HighlightsPaths       []PosturePaths               `json:"highlightsPaths"`
	RelatedResourcesIDs   []string                     `json:"relatedResourcesID,omitempty"`
}

type PostureResource

type PostureResource struct {
	UniqueResourceResult string                       `json:"uniqueResourceResult"` // FNV(customerGUID + cluster+resourceID+frameworkName + resource.ReportID) to allow fast search for aggregation
	Designators          identifiers.PortalDesignator `json:"designators"`
	Name                 string                       `json:"name"`       // wlid/sid and etc.
	ResourceID           string                       `json:"resourceID"` //as given by kscape

	ControlName       string                      `json:"controlName"`
	HighlightPaths    []string                    `json:"highlightPaths"` // specifies "failedPath" - where exactly in the raw resources the control failed
	FixPaths          []FixPath                   `json:"fixPaths"`       // specifies "fixPaths" - what in the raw resources needs to be added by user
	ControlID         string                      `json:"controlID"`
	FrameworkName     string                      `json:"frameworkName"`
	ControlStatus     int                         `json:"controlStatus"` // it's rather resource status within the control, control might fail but on this specific resource it might be passed (exception)
	ControlStatusText string                      `json:"controlStatusText"`
	RelatedExceptions []PostureExceptionPolicy    `json:"relatedExceptions"` // configured in portal
	ExceptionApplied  []PostureExceptionPolicy    `json:"exceptionApplied"`  //actual ruleResponse
	ResourceKind      string                      `json:"kind"`
	ResourceNamespace string                      `json:"namespace"`
	Remediation       string                      `json:"remediation"`
	Images            []PostureContainerSummary   `json:"containers,omitempty"`
	DeleteStatus      RecordStatus                `json:"deletionStatus,omitempty"`
	Recommendations   []RecommendationAssociation `json:"recommendations"`

	Timestamp time.Time `json:"timestamp"`
	ReportID  string    `json:"reportGUID"`
}

1 resource per 1 control

type PostureResourceSummary

type PostureResourceSummary struct {
	Designators  identifiers.PortalDesignator `json:"designators"`
	Name         string                       `json:"name"`                   // wlid/sid and etc.
	ResourceID   string                       `json:"resourceID"`             //as given by kscape
	ResourceHash string                       `json:"resourceHash,omitempty"` //common hash of customerGUID, cluster, kind, name, namespace, apiVersion

	//gives upto PostureResourceMaxCtrls controls as an example
	FailedControl   []string `json:"failedControls"`
	WarningControls []string `json:"warningControls"`
	SkippedControls []string `json:"skippedControls"`
	//maps statusText 2 list of controlIDs
	StatusToControls map[string][]string `json:"statusToControls"`

	HighlightsPerCtrl []HighlightsByControl `json:"highlightsPerControl"`

	//totalcount (including the failed/warning controls slices)
	FailedControlCount     int                         `json:"failedControlsCount"`
	SkippedControlCount    int                         `json:"skippedControlsCount"`
	WarningControlCount    int                         `json:"warningControlsCount"` // Deprecated
	Status                 int                         `json:"status"`
	StatusText             string                      `json:"statusText"`
	SubStatusText          string                      `json:"subStatusText,omitempty"`
	Remediation            []string                    `json:"remediation"`
	ResourceKind           string                      `json:"resourceKind"`
	FrameworkName          string                      `json:"frameworkName"`
	ExceptionRecommendaion string                      `json:"exceptionRecommendaion"`
	RelatedExceptions      []PostureExceptionPolicy    `json:"relatedExceptions"` // configured in portal
	ExceptionApplied       []PostureExceptionPolicy    `json:"exceptionApplied"`  //actual ruleResponse
	Images                 []PostureContainerSummary   `json:"containers,omitempty"`
	Recommendations        []RecommendationAssociation `json:"recommendations"`

	Timestamp     time.Time    `json:"timestamp"`
	ReportID      string       `json:"reportGUID"`
	DeleteStatus  RecordStatus `json:"deletionStatus,omitempty"`
	ArmoBestScore int64        `json:"armoBestScore"`

	// Information about the controls that were run on this entity
	// The key is the status of the control (`failed`, `passed`, etc)
	ControlsInfo map[string][]ControlInfo `json:"controlsInfo"`

	// Counters - Failed controls by severity
	CriticalSeverityControls int    `json:"criticalSeverityControls"`
	HighSeverityControls     int    `json:"highSeverityControls"`
	MediumSeverityControls   int    `json:"mediumSeverityControls"`
	LowSeverityControls      int    `json:"lowSeverityControls"`
	ClusterShortName         string `json:"clusterShortName"`

	// if True, at least one failed control supports smart remediation
	SmartRemediation bool `json:"smartRemediation"`

	//tickets opened for this resource
	TicketManager TicketManager `json:"ticketManager,omitempty"`
	Tickets       []Ticket      `json:"tickets,omitempty"`
}

type PostureScanConfig

type PostureScanConfig struct {
	ScanFrequency ScanFrequency `json:"scanFrequency,omitempty" bson:"scanFrequency,omitempty"`
}

type PostureSummary

type PostureSummary struct {
	RuntimeImprovementPercentage float32                      `json:"runtimeImprovementPercentage"`
	LastRun                      time.Time                    `json:"lastRun"`
	ReportID                     string                       `json:"reportGUID"`
	Designators                  identifiers.PortalDesignator `json:"designators"`
	PostureAttributes            PostureAttributesList        `json:"postureAttributes"`
	ClusterCloudProvider         string                       `json:"clusterCloudProvider"`

	DeleteStatus RecordStatus `json:"deletionStatus,omitempty"`
}

--------/api/v1/posture/summary

type Probe added in v0.0.249

type Probe struct {
	Type string `json:"type"` // e,g liveness/readiness/<w.e>
	Data string `json:"data"` // actual probe data/settings
}

Probe - represent the various container probes

type Process added in v0.0.377

type Process struct {
	PID        uint32    `json:"pid,omitempty" bson:"pid,omitempty"`
	Cmdline    string    `json:"cmdline,omitempty" bson:"cmdline,omitempty"`
	Comm       string    `json:"comm,omitempty" bson:"comm,omitempty"`
	PPID       uint32    `json:"ppid,omitempty" bson:"ppid,omitempty"`
	Pcomm      string    `json:"pcomm,omitempty" bson:"pcomm,omitempty"`
	Hardlink   string    `json:"hardlink,omitempty" bson:"hardlink,omitempty"`
	Uid        *uint32   `json:"uid,omitempty" bson:"uid,omitempty"`
	Gid        *uint32   `json:"gid,omitempty" bson:"gid,omitempty"`
	UserName   string    `json:"userName,omitempty" bson:"userName,omitempty"`
	GroupName  string    `json:"groupName,omitempty" bson:"groupName,omitempty"`
	StartTime  time.Time `json:"startTime,omitempty" bson:"startTime,omitempty"`
	UpperLayer *bool     `json:"upperLayer,omitempty" bson:"upperLayer,omitempty"`
	Cwd        string    `json:"cwd,omitempty" bson:"cwd,omitempty"`
	Path       string    `json:"path,omitempty" bson:"path,omitempty"`
	// Deprecated: Use ChildrenMap instead
	Children    []Process            `json:"children,omitempty" bson:"children,omitempty"`
	ChildrenMap map[CommPID]*Process `json:"childrenMap,omitempty" bson:"childrenMap,omitempty"`
}

func (*Process) DeepCopy added in v0.0.563

func (p *Process) DeepCopy() *Process

DeepCopy creates a deep copy of the Process struct.

func (*Process) MigrateToMap added in v0.0.549

func (p *Process) MigrateToMap()

MigrateToMap migrates the Children slice to ChildrenMap to accommodate for older versions of the Process struct

type ProcessTree added in v0.0.377

type ProcessTree struct {
	ProcessTree Process `json:"processTree" bson:"processTree"`
	UniqueID    uint32  `json:"uniqueID,omitempty" bson:"uniqueID,omitempty"`
	ContainerID string  `json:"containerID,omitempty" bson:"containerID,omitempty"`
}

func (*ProcessTree) FindProcessByPID added in v0.0.539

func (pt *ProcessTree) FindProcessByPID(pid uint32) *Process

FindProcessByPID searches for a process by PID in the process tree

type ProcessingStatus added in v0.0.203

type ProcessingStatus string

type ProfileDependency added in v0.0.591

type ProfileDependency int
const (
	Required ProfileDependency = iota
	Optional
	NotRequired
)

type ProfileKind added in v0.0.653

type ProfileKind string
const (
	ContainerProfileKind    ProfileKind = "ContainerProfile"
	TSContainerProfileKind  ProfileKind = "TSContainerProfile"
	ApplicationProfileKind  ProfileKind = "ApplicationProfile"
	NetworkNeighborhoodKind ProfileKind = "NetworkNeighborhood"
)

type ProfileMetadata added in v0.0.591

type ProfileMetadata struct {
	Status            string            `json:"status,omitempty" bson:"status,omitempty"`
	Completion        string            `json:"completion,omitempty" bson:"completion,omitempty"`
	Name              string            `json:"name,omitempty" bson:"name,omitempty"`
	FailOnProfile     bool              `json:"failOnProfile" bson:"failOnProfile"`
	Type              ProfileType       `json:"type" bson:"type"`
	ProfileDependency ProfileDependency `json:"profileDependency,omitempty" bson:"profileDependency,omitempty"`
	Error             string            `json:"errorMessage,omitempty" bson:"errorMessage,omitempty"`
}

type ProfileType added in v0.0.591

type ProfileType int
const (
	ApplicationProfile ProfileType = iota
	NetworkProfile
)

type Provider added in v0.0.469

type Provider string
const (
	ProviderAlibaba      Provider = "alibaba"
	ProviderAws          Provider = "aws"
	ProviderAzure        Provider = "azure"
	ProviderDigitalOcean Provider = "digitalocean"
	ProviderEquinixMetal Provider = "equinixmetal" // formerly Packet
	ProviderExoscale     Provider = "exoscale"
	ProviderGcp          Provider = "gcp"
	ProviderHetzner      Provider = "hetzner"
	ProviderIBM          Provider = "ibm"
	ProviderLinode       Provider = "linode"
	ProviderOpenStack    Provider = "openstack"
	ProviderOracle       Provider = "oracle"
	ProviderOther        Provider = "other"
	ProviderScaleway     Provider = "scaleway"
	ProviderVMware       Provider = "vmware"
	ProviderVultr        Provider = "vultr"
)

type ProviderConnectionStatus added in v0.0.270

type ProviderConnectionStatus struct {
	Status ConnectedStatus `json:"status"`
}

type QuayImageRegistry added in v0.0.449

type QuayImageRegistry struct {
	BaseContainerImageRegistry `json:",inline"`
	ContainerRegistryName      string `json:"containerRegistryName"`
	RobotAccountName           string `json:"robotAccountName"`
	RobotAccountToken          string `json:"robotAccountToken,omitempty"`
}

func (*QuayImageRegistry) ExtractSecret added in v0.0.459

func (quay *QuayImageRegistry) ExtractSecret() interface{}

func (*QuayImageRegistry) FillSecret added in v0.0.459

func (quay *QuayImageRegistry) FillSecret(value interface{}) error

func (*QuayImageRegistry) GetDisplayName added in v0.0.473

func (quay *QuayImageRegistry) GetDisplayName() string

func (*QuayImageRegistry) MaskSecret added in v0.0.459

func (quay *QuayImageRegistry) MaskSecret()

func (*QuayImageRegistry) Validate added in v0.0.459

func (quay *QuayImageRegistry) Validate() error

type QueryScopeParams added in v0.0.207

type QueryScopeParams struct {
	InstanceID string
	Cluster    []string
	Namespace  []string
	WLIDs      []string
	Kind       []string
	Name       []string
	Repository []string
	Registry   []string
	Tag        []string
	Custom     map[string][]string
}

func (*QueryScopeParams) FixOrAddAsInnerFilters added in v0.0.207

func (qsp *QueryScopeParams) FixOrAddAsInnerFilters(paginationReq *V2ListRequest, instanceIDField, clusterNameField, namespaceField,
	wlidField, kindField, nameField string)

FixOrAddAsInnerFilters adds the query scope params as inner filters of the request to adapt the right field names

func (*QueryScopeParams) FixOrAddAsInnerFiltersMap added in v0.0.207

func (qsp *QueryScopeParams) FixOrAddAsInnerFiltersMap(paginationReq *V2ListRequest, filters Filters)

func (*QueryScopeParams) FixOrAddAsUniqueInnerFilters added in v0.0.216

func (qsp *QueryScopeParams) FixOrAddAsUniqueInnerFilters(reqObj *UniqueValuesRequestV2, instanceIDField, clusterNameField, namespaceField,
	wlidField, kindField, nameField string)

fixOrAddAsInnerFilters adds the query scope params as inner filters of the request to adapt the right field names

func (*QueryScopeParams) FixOrAddAsUniqueInnerFiltersMap added in v0.0.216

func (qsp *QueryScopeParams) FixOrAddAsUniqueInnerFiltersMap(reqObj *UniqueValuesRequestV2, filters Filters)

type RawJSONObject added in v0.0.207

type RawJSONObject gojay.EmbeddedJSON

RawJSONObject holds bytes of JSON object

func (*RawJSONObject) MarshalJSON added in v0.0.207

func (rjo *RawJSONObject) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.marshaler interface

type RawResource

type RawResource struct {
	Designators  identifiers.PortalDesignator `json:"designators"`
	Timestamp    time.Time                    `json:"timestamp"`
	DeleteStatus RecordStatus                 `json:"deletionStatus,omitempty"`

	ResourceID          string                    `json:"resourceID"`
	PostureReportID     string                    `json:"postureReportID,omitempty"`
	SPIFFE              string                    `json:"spiffe"`
	Containers          []PostureContainerSummary `json:"containers,omitempty"`
	RelatedResourcesIDs []string                  `json:"relatedResourcesID,omitempty"`
	RAW                 json.RawMessage           `json:"object"`
}

type RecommendationAssociation

type RecommendationAssociation struct {
	PortalBase `json:",inline"`
	// audit for user actions taken for this recommendation
	UpdatesAudit []UpdateAuditEntry `json:"updatesAudit"`
	// the context to show this recommendation to this customer
	Context []identifiers.ArmoContext `json:"context"`
	// designator object as we have in current resources represntaion
	// this is about to be useless
	Designators identifiers.PortalDesignator `json:"designators"`
	// guid of the recommendation in recommendation DB
	RecommendationPrototypeGUID string                   `json:"recommendationPrototypeGUID"`
	RecommendationDetails       RecommendationSkeletonV1 `json:"recommendationDetails"`
	// current status of this recommendation for the given resource
	Status AssociationStatus `json:"status"`
}

this structure is dedicated to connect between recommendation and specific resource and trace the user actions taken due to this recommendation

type RecommendationSkeletonV1

type RecommendationSkeletonV1 struct {
	PortalBase `json:",inline"`
	// audit for manual changes made in this recommendation
	UpdatesAudit []UpdateAuditEntry `json:"updatesAudit"`
	// the action the user should take
	Action      string `json:"action"`
	Description string `json:"description"`
	// link to some well explained description of this recommendation
	DescriptionLink string `json:"descriptionLink"`
	// the context to show this recommendation in
	Context []identifiers.ArmoContext `json:"context"`
	// the approvement status. Do we should show this recommendation to users?
	Approvement ApprovementState `json:"approvement"`
}

type RecordStatus

type RecordStatus int
const (
	RecordAlive        RecordStatus = 0
	RecordShouldDelete RecordStatus = 1
)

type RegistryInfo added in v0.0.125

type RegistryInfo struct {
	RegistryName     string     `json:"registryName,omitempty" bson:"registryName"`
	RegistryProvider string     `json:"registryProvider,omitempty" bson:"registryProvider"`
	RegistryToken    string     `json:"registryToken,omitempty" bson:"registryToken"`
	Depth            *int       `json:"depth,omitempty" bson:"depth"`
	Include          []string   `json:"include,omitempty" bson:"include"`
	Exclude          []string   `json:"exclude,omitempty" bson:"exclude"`
	Kind             string     `json:"kind,omitempty" bson:"kind"`
	IsHTTPS          *bool      `json:"isHTTPS,omitempty" bson:"isHTTPS"`
	SkipTLSVerify    *bool      `json:"skipTLSVerify,omitempty" bson:"skipTLSVerify"`
	AuthMethod       AuthMethod `json:"authMethod,omitempty" bson:"authMethod"`
	SecretName       string     `json:"secretName,omitempty" bson:"secretName"`
}

type RegistryJobParams

type RegistryJobParams struct {
	Name            string `json:"name,omitempty"`
	ID              string `json:"id,omitempty"`
	ClusterName     string `json:"clusterName"`
	RegistryName    string `json:"registryName"`
	CronTabSchedule string `json:"cronTabSchedule,omitempty"`
	JobID           string `json:"jobID,omitempty"`
}

type RegistryManageStatus added in v0.0.471

type RegistryManageStatus string

type RegistryProvider added in v0.0.449

type RegistryProvider string
const (
	AWS    RegistryProvider = "aws"
	Azure  RegistryProvider = "azure"
	Google RegistryProvider = "google"
	Harbor RegistryProvider = "harbor"
	Quay   RegistryProvider = "quay"
	Nexus  RegistryProvider = "nexus"
	Gitlab RegistryProvider = "gitlab"
)

type RegistryScanStatus added in v0.0.471

type RegistryScanStatus string

type RelatedResource added in v0.0.346

type RelatedResource struct {
	identifiers.PortalDesignator `json:",inline" bson:",inline"`
	Clickable                    bool              `json:"clickable,omitempty" bson:"clickable,omitempty"`
	EdgeText                     []string          `json:"edgeText,omitempty" bson:"edgeText,omitempty"`
	RelatedResources             []RelatedResource `json:"relatedResources,omitempty" bson:"relatedResources,omitempty"`
}

type RelevantImageVulnerabilitiesConfiguration added in v0.0.198

type RelevantImageVulnerabilitiesConfiguration string
const (
	RelevantImageVulnerabilitiesConfigurationEnable  RelevantImageVulnerabilitiesConfiguration = "enable"
	RelevantImageVulnerabilitiesConfigurationDisable RelevantImageVulnerabilitiesConfiguration = "disable"
	RelevantImageVulnerabilitiesConfigurationDetect  RelevantImageVulnerabilitiesConfiguration = "detect"
)

type RepoEntityKind

type RepoEntityKind string

Kind of an entity. Can only be one of the following: `file` or `repo` Example: repo

const (
	RepoEntityFile RepoEntityKind = "file"
	RepoEntityRepo RepoEntityKind = "repo"
)

type RepoEntitySummary

type RepoEntitySummary struct {
	Designators identifiers.PortalDesignator `json:"designators"`

	// Name of this entity
	// Example: "my-repo"
	Name string `json:"name"`

	Kind RepoEntityKind `json:"kind"`

	// Number of children of the entity. For `file`s entity it would be
	// the amount of the resources inside this file, and for `repo`s -
	// the amount of scanned files
	// Example: 13
	ChildCount uint64 `json:"childCount"`

	// Status of the entity
	// Example: failed
	StatusText string `json:"statusText"`

	// Information about the controls that were run on this entity
	// The key is the status of the control (`failed`, `passed`, etc)
	ControlsInfo map[string][]ControlInfo `json:"controlsInfo"`

	// Statistics about the controls that were run
	// The key is the status of the control (`failed`, `passed`, etc).
	// The value is the number of controls
	// Example: {"failed": 3, "passed": 4}
	ControlsStats map[string]int `json:"controlsStats"`

	// Frameworks that were run.
	// In multi-frameworks-summary, this property is
	// taking the place of the `framework` property
	// Example: ["ArmoBest", "MITRE"]
	Frameworks []string `json:"frameworks,omitempty"`

	// Single framework this summary is for.
	// Example: ArmoBest
	Framework string `json:"framework,omitempty"`

	// Time of the scan that produced this result
	Timestamp time.Time `json:"timestamp"`
	ReportID  string    `json:"reportGUID"`

	// swagger:ignore
	// This record is marked for deletion or not
	DeleteStatus RecordStatus `json:"deletionStatus,omitempty"`

	//tickets opened for in this entity (repository or repository file)
	TicketManager TicketManager `json:"ticketManager,omitempty"`
	Tickets       []Ticket      `json:"tickets,omitempty"`
}

RepoEntitySummary summary of repo scanning entity.

type Repository added in v0.0.133

type Repository struct {
	RepositoryName string `json:"repositoryName"`
}

type ResolvedReason added in v0.0.375

type ResolvedReason string

type Resource added in v0.0.334

type Resource struct {
	K8sResourceHash  string `json:"k8sResourceHash,omitempty" bson:"k8sResourceHash,omitempty"`
	Cluster          string `json:"cluster,omitempty" bson:"cluster,omitempty"`
	ClusterShortName string `json:"clusterShortName"`
	Namespace        string `json:"namespace,omitempty" bson:"namespace,omitempty"`
	Kind             string `json:"kind,omitempty" bson:"kind,omitempty"`
	Name             string `json:"name,omitempty" bson:"name,omitempty"`
}

type RespTotal added in v0.0.201

type RespTotal struct {
	Value    int    `json:"value"`
	Relation string `json:"relation"`
}

func (*RespTotal) NKeys added in v0.0.216

func (ert *RespTotal) NKeys() int

NKeys --

func (*RespTotal) UnmarshalJSONObject added in v0.0.216

func (ert *RespTotal) UnmarshalJSONObject(dec *gojay.Decoder, key string) error

UnmarshalJSONObject --

type RespTotal64 added in v0.0.207

type RespTotal64 struct {
	Value    uint64 `json:"value"`
	Relation string `json:"relation"`
}

type RetrieveObjectsByRequestPayload added in v0.0.207

type RetrieveObjectsByRequestPayload struct {
	MultipleItems map[string][]string
	SingleItems   map[string]string
	Exists        []string
	MustNot       []map[string]interface{}
	ExcludeFields []string
}

payload for querying/filtering a list, key: <fieldname> and value is the string value

type Risk added in v0.0.316

type Risk struct {
	ID   string   `json:"ID"`
	Type RiskType `json:"type"`

	// field to be enriched by the backend, relevant only to type Control
	FixByNetworkPolicy bool `json:"fixByNetworkPolicy"`
}

Risk represents an individual risk with an ID and type

type RiskFactor added in v0.0.283

type RiskFactor string

func GetRiskFactors added in v0.0.284

func GetRiskFactors(controlIDs []string) []RiskFactor

GetRiskFactors returns a list of unique risk factors for given control IDs.

type RiskType added in v0.0.316

type RiskType string

func (*RiskType) UnmarshalJSON added in v0.0.316

func (rt *RiskType) UnmarshalJSON(data []byte) error

UnmarshalJSON is a custom unmarshaler for RiskType that validates its value

type RoleBindingRoleRef added in v0.0.543

type RoleBindingRoleRef struct {
	APIVersion string `json:"apiVersion,omitempty"`
	Kind       string `json:"kind,omitempty"`
	Name       string `json:"name,omitempty"`
	Namespace  string `json:"namespace,omitempty"`
}

type RoleBindingSubject added in v0.0.543

type RoleBindingSubject struct {
	APIVersion string `json:"apiVersion,omitempty"`
	Kind       string `json:"kind,omitempty"`
	Name       string `json:"name,omitempty"`
	Namespace  string `json:"namespace,omitempty"`
}

type RuleAlert added in v0.0.359

type RuleAlert struct {
	// Rule Description
	RuleDescription string `json:"ruleDescription,omitempty" bson:"ruleDescription,omitempty"`
}

type RuleExpression added in v0.0.623

type RuleExpression struct {
	EventType  EventType `json:"eventType" yaml:"eventType" bson:"eventType"`
	Expression string    `json:"expression" yaml:"expression" bson:"expression"`
}

type RuleExpressions added in v0.0.623

type RuleExpressions struct {
	Message        string           `json:"message" yaml:"message" bson:"message"`
	UniqueID       string           `json:"uniqueId" yaml:"uniqueId" bson:"uniqueId"`
	RuleExpression []RuleExpression `json:"ruleExpression" yaml:"ruleExpression" bson:"ruleExpression"`
}

type RuntimeAlert added in v0.0.359

type RuntimeAlert struct {
	BaseRuntimeAlert       `json:",inline" bson:"inline"`
	RuleAlert              `json:",inline" bson:"inline"`
	MalwareAlert           `json:",inline" bson:"inline"`
	AdmissionAlert         `json:",inline" bson:"inline"`
	RuntimeAlertK8sDetails `json:",inline" bson:"inline"`
	RuntimeAlertECSDetails `json:",inline" bson:"inline"`
	cdr.CdrAlert           `json:"cdrevent,omitempty" bson:"cdrevent"`
	HttpRuleAlert          `json:",inline" bson:"inline"`
	NetworkScanAlert       `json:"networkscan,inline" bson:"networkscan"`
	AlertType              AlertType           `json:"alertType" bson:"alertType"`
	AlertSourcePlatform    AlertSourcePlatform `json:"alertSourcePlatform" bson:"alertSourcePlatform"`
	// Rule ID
	RuleID string `json:"ruleID,omitempty" bson:"ruleID,omitempty"`
	// IsTriggerAlert indicates if this alert is a trigger alert
	IsTriggerAlert bool `json:"isTriggerAlert,omitempty" bson:"isTriggerAlert,omitempty"`
	// Hostname is the name of the node agent pod
	HostName string          `json:"hostName" bson:"hostName"`
	Message  string          `json:"message" bson:"message"`
	Fields   json.RawMessage `json:"fields,omitempty" bson:"fields,omitempty"`
}

func (*RuntimeAlert) GetAlertSourcePlatform added in v0.0.545

func (ra *RuntimeAlert) GetAlertSourcePlatform() AlertSourcePlatform

func (*RuntimeAlert) Validate added in v0.0.664

func (ra *RuntimeAlert) Validate() error

type RuntimeAlertECSDetails added in v0.0.669

type RuntimeAlertECSDetails struct {
	ClusterARN        string `json:"clusterArn,omitempty" bson:"clusterArn,omitempty"`
	ECSClusterName    string `json:"ecsClusterName,omitempty" bson:"ecsClusterName,omitempty"`
	ServiceName       string `json:"serviceName,omitempty" bson:"serviceName,omitempty"`
	TaskARN           string `json:"taskArn,omitempty" bson:"taskArn,omitempty"`
	TaskFamily        string `json:"taskFamily,omitempty" bson:"taskFamily,omitempty"`
	TaskDefinitionARN string `json:"taskDefinitionArn,omitempty" bson:"taskDefinitionArn,omitempty"`
	ECSContainerName  string `json:"ecsContainerName,omitempty" bson:"ecsContainerName,omitempty"`
	ContainerARN      string `json:"containerArn,omitempty" bson:"containerArn,omitempty"`
	ECSContainerID    string `json:"ecsContainerID,omitempty" bson:"ecsContainerID,omitempty"`
	ContainerInstance string `json:"containerInstance,omitempty" bson:"containerInstance,omitempty"` // EC2 instance ID (EC2 launch type only)
	LaunchType        string `json:"launchType,omitempty" bson:"launchType,omitempty"`               // EC2 or FARGATE
	AvailabilityZone  string `json:"availabilityZone,omitempty" bson:"availabilityZone,omitempty"`
	ECSImage          string `json:"ecsImage,omitempty" bson:"ecsImage,omitempty"`
	ECSImageDigest    string `json:"ecsImageDigest,omitempty" bson:"ecsImageDigest,omitempty"`
}

type RuntimeAlertK8sDetails added in v0.0.367

type RuntimeAlertK8sDetails struct {
	ClusterName       string            `json:"clusterName,omitempty" bson:"clusterName,omitempty"`
	ClusterUID        string            `json:"clusterUID,omitempty" bson:"clusterUID,omitempty"`
	ContainerName     string            `json:"containerName,omitempty" bson:"containerName,omitempty"`
	HostNetwork       *bool             `json:"hostNetwork,omitempty" bson:"hostNetwork,omitempty"`
	OldImage          string            `json:"oldImage,omitempty" bson:"oldImage,omitempty"`
	Image             string            `json:"image,omitempty" bson:"image,omitempty"`
	ImageDigest       string            `json:"imageDigest,omitempty" bson:"imageDigest,omitempty"`
	Namespace         string            `json:"namespace,omitempty" bson:"namespace,omitempty"`
	NodeName          string            `json:"nodeName,omitempty" bson:"nodeName,omitempty"`
	ContainerID       string            `json:"containerID,omitempty" bson:"containerID,omitempty"`
	PodName           string            `json:"podName,omitempty" bson:"podName,omitempty"`
	PodNamespace      string            `json:"podNamespace,omitempty" bson:"podNamespace,omitempty"`
	PodUID            string            `json:"podUID,omitempty" bson:"podUID,omitempty"`
	PodLabels         map[string]string `json:"podLabels,omitempty" bson:"podLabels,omitempty"`
	WorkloadName      string            `json:"workloadName,omitempty" bson:"workloadName,omitempty"`
	WorkloadNamespace string            `json:"workloadNamespace,omitempty" bson:"workloadNamespace,omitempty"`
	WorkloadKind      string            `json:"workloadKind,omitempty" bson:"workloadKind,omitempty"`
	WorkloadUID       string            `json:"workloadUID,omitempty" bson:"workloadUID,omitempty"`
}

type RuntimeIncidentExceptionPolicy added in v0.0.440

type RuntimeIncidentExceptionPolicy struct {
	BaseExceptionPolicy `json:",inline"`
	Name                string `json:"name"`
	IncidentTypeId      string `json:"incidentTypeId"`
	Severity            string `json:"severity"`
	SeverityScore       int    `json:"severityScore"`
}

type RuntimeRule added in v0.0.623

type RuntimeRule struct {
	Enabled                 bool              `json:"enabled" yaml:"enabled" bson:"enabled"`
	ID                      string            `json:"id" yaml:"id" bson:"id"`
	Name                    string            `json:"name" yaml:"name" bson:"name"`
	Description             string            `json:"description" yaml:"description" bson:"description"`
	Expressions             RuleExpressions   `json:"expressions" yaml:"expressions" bson:"expressions"`
	ProfileDependency       ProfileDependency `json:"profileDependency" yaml:"profileDependency" bson:"profileDependency"`
	Severity                int               `json:"severity" bson:"severity"`
	SeverityString          string            `json:"severityString" bson:"severityString"`
	SupportPolicy           bool              `json:"supportPolicy" yaml:"supportPolicy" bson:"supportPolicy"`
	Tags                    []string          `json:"tags" yaml:"tags" bson:"tags"`
	State                   map[string]any    `json:"state,omitempty" yaml:"state,omitempty" bson:"state,omitempty"`
	AgentVersionRequirement string            `json:"agentVersionRequirement" yaml:"agentVersionRequirement" bson:"agentVersionRequirement"`
	IsTriggerAlert          bool              `json:"isTriggerAlert" yaml:"isTriggerAlert" bson:"isTriggerAlert"`
	MitreTactic             string            `json:"mitreTactic" bson:"mitreTactic"`
	MitreTechnique          string            `json:"mitreTechnique" bson:"mitreTechnique"`
	Category                string            `json:"category" bson:"category"`
	IncidentTypeId          string            `json:"incidentTypeId" bson:"incidentTypeId"`
}

type SavedFilter added in v0.0.538

type SavedFilter struct {
	PortalBase `json:",inline" bson:"inline"`
	Subject    string              `json:"subject" bson:"subject"`
	View       string              `json:"view" bson:"view"`
	Filters    []map[string]string `json:"filters" bson:"filters"`
	IsDefault  bool                `json:"isDefault" bson:"isDefault"`
}

type ScanFrequency

type ScanFrequency string

type ScanType added in v0.0.146

type ScanType string

type SearchAfterResp added in v0.0.207

type SearchAfterResp struct {
	Sort interface{} `json:"sort"`
}

type SearchResponse added in v0.0.207

type SearchResponse struct {
	Result []RawJSONObject
	Total  *RespTotal
	Cursor *Cursor
	Sort   *SearchAfterResp
}

type SeccompStatus added in v0.0.417

type SeccompStatus int
const (
	SeccompStatusUnknown            SeccompStatus = 0
	SeccompStatusMissingRuntimeInfo SeccompStatus = 1
	SeccompStatusMissing            SeccompStatus = 2
	SeccompStatusOverlyPermissive   SeccompStatus = 3
	SeccompStatusOptimized          SeccompStatus = 4
	SeccompStatusMisconfigured      SeccompStatus = 5
)

type SeccompWorkload added in v0.0.417

type SeccompWorkload struct {
	Name                     string                   `json:"name"`
	Kind                     string                   `json:"kind"`
	Namespace                string                   `json:"namespace"`
	ClusterName              string                   `json:"clusterName"`
	K8sResourceHash          string                   `json:"k8sResourceHash"`
	ProfileStatus            SeccompStatus            `json:"profileStatus"`
	SyscallsUsedCount        int                      `json:"syscallsUsedCount"`
	SyscallsUnusedCount      int                      `json:"syscallsUnusedCount"`
	SyscallsUsed             []string                 `json:"syscallsUsed"`
	SyscallUnused            []string                 `json:"syscallsUnused"`
	MissingRuntimeInfoReason MissingRuntimeInfoReason `json:"missingRuntimeInfoReason"`
}

type SecurityIssue added in v0.0.316

type SecurityIssue struct {
	ISecurityIssue   `json:",inline,omitempty"`
	Cluster          string   `json:"cluster"`
	ClusterShortName string   `json:"clusterShortName"`
	Namespace        string   `json:"namespace"`
	ResourceName     string   `json:"resourceName"`
	Kind             string   `json:"kind"`
	ResourceID       string   `json:"resourceID"`
	K8sResourceHash  string   `json:"k8sResourceHash"`
	RiskID           string   `json:"riskID"` // controlID/attackTrackID
	RiskType         RiskType `json:"riskType,omitempty"`

	SecurityRiskID string `json:"securityRiskID"`

	Status SecurityIssueStatus `json:"status"`

	IsNew bool `json:"isNew"`

	LastTimeDetected    string `json:"lastTimeDetected,omitempty"`
	LastTimeResolved    string `json:"lastTimeResolved,omitempty"`
	ExceptionApplied    bool   `json:"exceptionApplied"`
	ExceptionPolicyGUID string `json:"exceptionPolicyGUID"`

	TicketManager TicketManager `json:"ticketManager,omitempty"`
	Tickets       []Ticket      `json:"tickets,omitempty"`
}

func (*SecurityIssue) GetClusterName added in v0.0.343

func (si *SecurityIssue) GetClusterName() string

func (*SecurityIssue) GetK8sResourceHash added in v0.0.394

func (si *SecurityIssue) GetK8sResourceHash() string

func (*SecurityIssue) GetShortClusterName added in v0.0.343

func (si *SecurityIssue) GetShortClusterName() string

func (*SecurityIssue) SetClusterName added in v0.0.343

func (si *SecurityIssue) SetClusterName(clusterName string)

func (*SecurityIssue) SetShortClusterName added in v0.0.343

func (si *SecurityIssue) SetShortClusterName(clusterShortName string)

func (*SecurityIssue) SetTickets added in v0.0.394

func (si *SecurityIssue) SetTickets(tickets []Ticket)

type SecurityIssueAttackPath added in v0.0.325

type SecurityIssueAttackPath struct {
	SecurityIssue `json:",inline"`
	AttackChainID string `json:"attackChainID"`
	FirstSeen     string `json:"firstSeen"`
}

type SecurityIssueControl added in v0.0.325

type SecurityIssueControl struct {
	SecurityIssue `json:",inline"`
	ControlID     string `json:"controlID"`
	ReportGUID    string `json:"reportGUID"`
	FrameworkName string `json:"frameworkName"`

	// relevant for controls with network policy fix
	AppliedNetworkPolicyType string              `json:"appliedNetworkPolicyType,omitempty"`
	NetworkPolicyStatus      NetworkPolicyStatus `json:"networkPolicyStatus,omitempty"`

	MissingRuntimeInfoReason MissingRuntimeInfoReason `json:"missingRuntimeInfoReason,omitempty"`
}

type SecurityIssueSeverity added in v0.0.320

type SecurityIssueSeverity string

type SecurityIssueStatus added in v0.0.316

type SecurityIssueStatus string

type SecurityIssueVulnerability added in v0.0.431

type SecurityIssueVulnerability struct {
	SecurityIssue    `json:",inline"`
	CriticalCount    int                 `json:"criticalCount"`
	HighCount        int                 `json:"highCount"`
	MediumCount      int                 `json:"mediumCount"`
	LowCount         int                 `json:"lowCount"`
	SeverityStats    map[string][]string `json:"severityStats"`
	RiskFactorsCount int                 `json:"riskFactorsCount"`
	RiskFactors      []RiskFactor        `json:"riskFactors"`
}

type SecurityIssuesCategories added in v0.0.320

type SecurityIssuesCategories struct {
	CategoryResourceCounters map[string]int `json:"categoryResourceCounter"`
	TotalResources           int            `json:"totalResources"`
}

func NewSecurityIssuesCategories added in v0.0.320

func NewSecurityIssuesCategories() SecurityIssuesCategories

func (*SecurityIssuesCategories) SetCategoryTotal added in v0.0.320

func (sic *SecurityIssuesCategories) SetCategoryTotal(category string, total int)

type SecurityIssuesRisksTotals added in v0.0.598

type SecurityIssuesRisksTotals struct {
	TotalSecurityIssues int `json:"totalSecurityIssues,omitempty"`
	TotalRisks          int `json:"totalRisks,omitempty"`
}

type SecurityIssuesSeverities added in v0.0.320

type SecurityIssuesSeverities struct {
	SeverityResourceCounters map[SecurityIssueSeverity]int `json:"severityResourceCounter"`
	TotalResources           int                           `json:"totalResources"`
}

func NewSecurityIssuesSeverities added in v0.0.320

func NewSecurityIssuesSeverities() SecurityIssuesSeverities

func (*SecurityIssuesSeverities) SetSeverityTotal added in v0.0.320

func (sis *SecurityIssuesSeverities) SetSeverityTotal(severity SecurityIssueSeverity, total int)

type SecurityIssuesSummary added in v0.0.316

type SecurityIssuesSummary struct {
	SecurityRiskID                   string `json:"securityRiskID"`
	SecurityRiskName                 string `json:"securityRiskName"`
	Category                         string `json:"category"`
	Severity                         string `json:"severity"`
	LastUpdated                      string `json:"lastUpdated"`
	AffectedClustersCount            int    `json:"affectedClustersCount"`
	AffectedNamespacesCount          int    `json:"affectedNamespacesCount"`
	AffectedResourcesCount           int    `json:"affectedResourcesCount"`
	ResourcesDetectedLastUpdateCount int    `json:"resourcesDetectedLastUpdateCount"`
	ResourcesResolvedLastUpdateCount int    `json:"resourcesResolvedLastUpdateCount"`

	ResourcesDetectedLastChangeCount int        `json:"resourcesDetectedLastChangeCount"`
	ResourcesDetectedLastChange      []Resource `json:"resourcesDetectedLastChange"`

	// resources that are resolved excluding deleted
	ResourcesResolvedLastChangeCount int        `json:"resourcesResolvedLastChangeCount"`
	ResourcesResolvedLastChange      []Resource `json:"resourcesResolvedLastChange"`

	// resources that are resolved because of a kubernetes resource deletion or cluster deletion
	ResourcesDeletedLastChangeCount int        `json:"resourcesDeletedLastChangeCount"`
	ResourcesDeletedLastChange      []Resource `json:"resourcesDeletedLastChange"`

	AffectedResourcesChange int `json:"affectedResourcesChange"`

	// if True, control supports smart remediation
	SmartRemediation bool `json:"smartRemediation"`

	TicketManager TicketManager `json:"ticketManager,omitempty"`
	Tickets       []Ticket      `json:"tickets,omitempty"`
}

type SecurityIssuesTrends added in v0.0.364

type SecurityIssuesTrends struct {

	// date in format yyyy-mm-dd
	Date string `json:"date"`

	// new detected issues within the day
	NewDetected int `json:"newDetected"`

	// new resolved issues within the day
	NewResolved int `json:"newResolved"`

	TotalNewDetectedUpToDate int `json:"totalNewDetectedUpToDate"`

	TotalNewResolvedUpToDate int `json:"totalNewResolvedUpToDate"`

	// new detected issues at the end of the day
	NewDetectedEndOfDay int `json:"newDetectedEndOfDay"`

	// new resolved issues at the end of the day
	NewResolvedEndOfDay int `json:"newResolvedEndOfDay"`

	// total detected from the beginning of the period until current date
	TotalDetectedUpToDate int `json:"totalDetectedUpToDate"`
}

type SecurityIssuesTrendsSummary added in v0.0.364

type SecurityIssuesTrendsSummary struct {
	SecurityIssuesTrends []SecurityIssuesTrends `json:"securityIssuesTrends"`

	// total issues detected for the period
	TotalDetectedForPeriod int `json:"totalDetectedForPeriod"`

	// total issues resolved for the period
	TotalResolvedForPeriod int `json:"totalResolvedForPeriod"`

	// current detected issues
	CurrentDetected int `json:"currentDetected"`

	// CurrentDetected - TotalDetectedUpToDate of first date of period.
	ChangeFromBeginningOfPeriod int `json:"changeFromBeginningOfPeriod"`
}

type SecurityRisk added in v0.0.316

type SecurityRisk struct {
	ID               string           `json:"ID"`
	Name             string           `json:"name"`
	Description      string           `json:"description"`
	WhatIs           string           `json:"whatIs"`
	Severity         string           `json:"severity"`
	Category         string           `json:"category"`
	Remediation      string           `json:"remediation"`
	Risks            []Risk           `json:"risks"`
	SecurityIssues   []ISecurityIssue `json:"securityIssues,omitempty"`
	SmartRemediation bool             `json:"smartRemediation"`
}

SecurityRisk represents the main object with various fields and an array of Risks

func (*SecurityRisk) GetRiskTypes added in v0.0.325

func (sr *SecurityRisk) GetRiskTypes() []RiskType

func (*SecurityRisk) GetRisks added in v0.0.316

func (sr *SecurityRisk) GetRisks() []Risk

func (*SecurityRisk) GetRisksIDsByType added in v0.0.316

func (sr *SecurityRisk) GetRisksIDsByType(riskType RiskType) []string

type SecurityRiskExceptionPolicy added in v0.0.334

type SecurityRiskExceptionPolicy struct {
	BaseExceptionPolicy `json:",inline"`
	Name                string `json:"name"`
	Category            string `json:"category"`
	Severity            string `json:"severity"`
	SecurityRiskID      string `json:"securityRiskID"`
	Risks               []Risk `json:"risks"`
}

type Settings

type Settings struct {
	PostureControlInputs    map[string][]string     `json:"postureControlInputs" bson:"postureControlInputs"`
	PostureScanConfig       PostureScanConfig       `json:"postureScanConfig" bson:"postureScanConfig"`
	VulnerabilityScanConfig VulnerabilityScanConfig `json:"vulnerabilityScanConfig" bson:"vulnerabilityScanConfig"`
	SlackConfigurations     SlackSettings           `json:"slackConfigurations,omitempty" bson:"slackConfigurations,omitempty"`
}

func MockSettings

func MockSettings() *Settings

type SlackChannel

type SlackChannel struct {
	ChannelID   string `json:"id"`
	ChannelName string `json:"name"`
}

type SlackChannels added in v0.0.270

type SlackChannels struct {
	Channels []SlackChannel `json:"channels"`
}

type SlackNotification

type SlackNotification struct {
	IsActive   bool                   `json:"isActive" bson:"isActive"`
	Channels   []SlackChannel         `json:"channels" bson:"channels"`
	Attributes map[string]interface{} `json:"attributes" bson:"attributes"`
}

type SlackSettings

type SlackSettings struct {
	Token         string `json:"token" bson:"token"`
	Alert2Channel `json:",inline,omitempty" bson:"inline,omitempty"`
	Notifications `json:"notifications,omitempty" bson:"notifications,omitempty"`
}

type StackFrame added in v0.0.468

type StackFrame struct {
	// Frame ID
	FrameID string `json:"frameId,omitempty" bson:"frameId,omitempty"`
	// Function name
	Function string `json:"function,omitempty" bson:"function,omitempty"`
	// File name
	File string `json:"file,omitempty" bson:"file,omitempty"`
	// Line number
	Line *int `json:"line,omitempty" bson:"line,omitempty"`
	// Address
	Address string `json:"address,omitempty" bson:"address,omitempty"`
	// Arguments
	Arguments []string `json:"arguments,omitempty" bson:"arguments,omitempty"`
	// User/Kernel space
	UserSpace bool `json:"userSpace,omitempty" bson:"userSpace,omitempty"`
	// Native/Source code
	NativeCode *bool `json:"nativeCode,omitempty" bson:"nativeCode,omitempty"`
	// Anomaly flag
	Anomaly bool `json:"anomaly,omitempty" bson:"anomaly,omitempty"`
}

type Subscription added in v0.0.154

type Subscription struct {

	// Stripe internal customer ID, usually generated on subscription creation.
	StripeCustomerID string `json:"stripeCustomerID,omitempty" bson:"stripeCustomerID,omitempty"`

	// Stripe subscription id.
	StripeSubscriptionID string `json:"stripeSubscriptionID,omitempty" bson:"stripeSubscriptionID,omitempty"`

	// Stripe subscription status, optional values: incomplete, incomplete_expired, trialing, active, past_due, canceled, or unpaid.
	SubscriptionStatus string `json:"subscriptionStatus,omitempty" bson:"subscriptionStatus,omitempty"`

	// Date when the subscription was first created. The date might differ from the created date due to backdating
	StartDate int64 `json:"startDate,omitempty" bson:"startDate,omitempty"`

	// Stripe The most recent invoice this subscription has generated.
	LatestInvoice string `json:"latestInvoice,omitempty" bson:"latestInvoice,omitempty"`

	// determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
	CancelAtPeriodEnd *bool `json:"cancelAtPeriodEnd,omitempty" bson:"cancelAtPeriodEnd,omitempty"`

	// End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
	CurrentPeriodStart int64 `json:"currentPeriodStart,omitempty" bson:"currentPeriodStart,omitempty"`

	// End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
	CurrentPeriodEnd int64 `json:"currentPeriodEnd,omitempty" bson:"currentPeriodEnd,omitempty"`

	// If the subscription has a trial, the end of that trial.
	TrialEnd int64 `json:"trialEnd,omitempty" bson:"trialEnd,omitempty"`

	// monthly average of daily sum of max scanned Worker Nodes per cluster per day
	NumNodes int `json:"numNodes,omitempty" bson:"numNodes,omitempty"`

	// can be "free", "team" or "enterprise"
	LicenseType LicenseType `json:"licenseType,omitempty" bson:"licenseType,omitempty"`
}

hold information of a single subscription.

type SynchronizerClient added in v0.0.333

type SynchronizerClient struct {
	CustomerGUID        string    `json:"customerGUID"`
	Cluster             string    `json:"cluster"`
	Replica             string    `json:"replica"`
	LastKeepAlive       time.Time `json:"lastKeepAlive"`
	ConnectionTime      time.Time `json:"connectionTime"`
	HelmVersion         string    `json:"helmVersion"`
	SynchronizerVersion string    `json:"synchronizerVersion"`
	ConnectionId        string    `json:"connectionId"`
	FirstConnected      time.Time `json:"firstConnected"`
	GitVersion          string    `json:"gitVersion"`
	CloudProvider       string    `json:"cloudProvider"`
	ClusterStatus       string    `json:"clusterStatus"`
	LearningTime        string    `json:"learningTime"`
}

SynchronizerClient represents a client which is connected to the synchronizer server

type Ticket added in v0.0.371

type Ticket struct {
	GUID           string              `json:"guid,omitempty"`           //ticket guid in armo
	JiraCollabGUID string              `json:"jiraCollabGUID,omitempty"` //integration guid between jira creator and the ticket
	TicketManager  TicketManager       `json:"ticketManager"`            //ticket service provider
	Owner          map[string]string   `json:"owner,omitempty"`          //armo entity that owns the ticket
	Subjects       []map[string]string `json:"subjects,omitempty"`       //armo entities mentioned in the ticket
	Link           string              `json:"link,omitempty"`           //link to the ticket
	Status         string              `json:"status,omitempty"`         //status of the ticket
	LinkTitle      string              `json:"linkTitle,omitempty"`      //title of the ticket
	Severity       string              `json:"severity,omitempty"`       //severity of the ticket
	Error          string              `json:"error,omitempty"`          //error message if any
	ErrorCode      int                 `json:"errorCode,omitempty"`      //error code if any (e.g. http status code like 401)
	ProviderData   map[string]string   `json:"providerData,omitempty"`   //provider specific data
	CreatedBy      string              `json:"createdBy,omitempty"`      //user that created the ticket

	// metadata for the ticket
	CustomerGUID string     `json:"customerGUID,omitempty"`
	Timestamp    *time.Time `json:"timestamp,omitempty"`
}

type TicketManager added in v0.0.371

type TicketManager string
const (
	TicketManagerJira   TicketManager = "jira"
	TicketManagerLinear TicketManager = "linear"
)

type TimeSeriesContainerProfileObject added in v0.0.651

type TimeSeriesContainerProfileObject struct {
	CustomerGUID            string `json:"customerGUID"`
	Cluster                 string `json:"cluster"`
	Namespace               string `json:"namespace"`
	Name                    string `json:"name"`
	SeriesID                string `json:"seriesID"`
	TSSuffix                string `json:"tsSuffix"`
	ReportTimestamp         string `json:"reportTimestamp"`
	Status                  string `json:"status"`
	Completion              string `json:"completion"`
	PreviousReportTimestamp string `json:"previousReportTimestamp"`
	ResourceObjectRef       string `json:"resourceObjectRef"`
	HasData                 bool   `json:"hasData"`
}

type Trace added in v0.0.468

type Trace struct {
	// Trace ID
	TraceID string `json:"traceId,omitempty" bson:"traceId,omitempty"`
	// Stack trace
	Stack []StackFrame `json:"stack,omitempty" bson:"stack,omitempty"`
	// Package name
	Package string `json:"package,omitempty" bson:"package,omitempty"`
	// Language
	Language string `json:"language,omitempty" bson:"language,omitempty"`
}

type UniqueCardinalityResponseV2 added in v0.0.207

type UniqueCardinalityResponseV2 struct {
	Fields map[string]uint64 `json:"fields"`
}

UniqueCardinalityResponseV2 holds response data of cardinality request

func (*UniqueCardinalityResponseV2) ReplaceFieldsFromKeywords added in v0.0.216

func (uvr *UniqueCardinalityResponseV2) ReplaceFieldsFromKeywords(keywordMap map[string]string)

ReplaceFieldsFromKeywords restores the original fields names from the .keyword if necessary

type UniqueValuesRequestV2 added in v0.0.207

type UniqueValuesRequestV2 struct {
	Fields map[string]string `json:"fields"`
	// Which elements of the list to return, each field can hold multiple values separated by comma
	// Example: ": {"severity": "High,Medium",		"type": "61539,30303"}
	// An empty map means "return the complete list"
	InnerFilters []map[string]string `json:"innerFilters"`
	PageSize     int                 `json:"pageSize,omitempty"`
	//for apis that support pagination
	PageNum *int `json:"pageNum,omitempty"`
	//Include hit counts for each field
	CountFields             *bool             `json:"countFields,omitempty"`
	FieldsReverseKeywordMap map[string]string `json:"-"`
	Cursor                  string            `json:"-"`
	// The time window to search (Default: since - beginning of the time, until - now)
	Since          *time.Time `json:"since,omitempty"`
	Until          *time.Time `json:"until,omitempty"`
	TimestampField string     `json:"-"`

	// Ticket manager to use for the request - for example, to get tickets from Jira or Linear
	TicketManager TicketManager `json:"ticketManager,omitempty"`
}

UniqueValuesRequestV2 holds data to return unique values to

func (*UniqueValuesRequestV2) GetFieldsNames added in v0.0.216

func (uvr *UniqueValuesRequestV2) GetFieldsNames() []string

GetFieldsNames retunrs slice of Fields names

func (*UniqueValuesRequestV2) ReplaceFieldsToKeywords added in v0.0.216

func (uvr *UniqueValuesRequestV2) ReplaceFieldsToKeywords(keywordMap map[string]string)

ReplaceFieldsToKeywords replaces the original fields names to the .keyword if necessary

func (*UniqueValuesRequestV2) ValidateCountFields added in v0.0.317

func (u *UniqueValuesRequestV2) ValidateCountFields(countDefault bool) bool

func (*UniqueValuesRequestV2) ValidatePageProperties added in v0.0.207

func (u *UniqueValuesRequestV2) ValidatePageProperties(maxPageSize int)

ValidatePageProperties validate page size and page number to be valid

type UniqueValuesResponseFieldsCount added in v0.0.207

type UniqueValuesResponseFieldsCount struct {
	Field string `json:"key"`
	Count int64  `json:"count"`
}

UniqueValuesResponseFieldsCount holds response data of UniqueValuesResponseV2 request

type UniqueValuesResponseV2 added in v0.0.207

type UniqueValuesResponseV2 struct {
	Fields      map[string][]string                          `json:"fields"`
	FieldsCount map[string][]UniqueValuesResponseFieldsCount `json:"fieldsCount"`
}

UniqueValuesResponseV2 holds response data of unique values

func (*UniqueValuesResponseV2) ListFields added in v0.0.216

func (uvr *UniqueValuesResponseV2) ListFields(key string) []string

ListFields list all UniqueValuesResponseV2 fields

func (*UniqueValuesResponseV2) ReplaceFieldsFromKeywords added in v0.0.216

func (uvr *UniqueValuesResponseV2) ReplaceFieldsFromKeywords(keywordMap map[string]string)

ReplaceFieldsFromKeywords restores the original fields names from the .keyword if necessary

type UniqueValuesSearchByScopeFiltersFunc added in v0.0.216

type UniqueValuesSearchByScopeFiltersFunc func(customerGUID string, scopeFilters *QueryScopeParams, reqObj *UniqueValuesRequestV2) (*UniqueValuesResponseV2, error)

type UpdateAuditEntry

type UpdateAuditEntry struct {
	Timestamp time.Time `json:"timestamp"`
	UserName  string    `json:"userName"`
}

type User added in v0.0.194

type User struct {
	DismissedBanners map[string]Banner `json:"dismissedBanners,omitempty" bson:"dismissedBanners,omitempty"` // map of bannerID to Banner
}

type V2ListRequest added in v0.0.197

type V2ListRequest struct {
	// properties of the requested next page
	// Use ValidatePageProperties to set PageSize field
	PageSize *int `json:"pageSize"`
	// One can leave it empty for 0, then call ValidatePageProperties
	PageNum *int `json:"pageNum"`
	// The time window of the list to return. Default: since - begining og the time, until - now.
	Since *time.Time `json:"since"`
	Until *time.Time `json:"until"`
	// Which elements of the list to return, each field can hold multiple values separated by comma
	// An empty map means "return the complete list"
	// Example: [{"severity": "High,Medium",		"type": "61539,30303"}]
	InnerFilters []map[string]string `json:"innerFilters"`
	// How to order (sort) the list, field name + sort order (asc/desc), like https://www.w3schools.com/sql/sql_orderby.asp
	// When empty, the default sort order is used. To disable the default sort order, set IgnoreDefaultSort to true
	// Example: timestamp:asc,severity:desc
	OrderBy string `json:"orderBy"`
	// When true, the default sort order is ignored
	// TODO: take it off, and use the default sort order when OrderBy is empty
	IgnoreDefaultSort bool `json:"ignoreDefaultOrderBy,omitempty"`
	// Cursor to the next page of former requset.
	// Cursor cannot be used with another parameters of this struct
	Cursor           *Cursor `json:"cursorV1,omitempty"`
	CursorDepracated string  `json:"cursor"`
	// FieldsList allow us to return only subset of the source document fields
	// Don't expose FieldsList outside without well designed decision
	// swagger:ignore
	FieldsList              []string          `json:"includeFields"`
	FieldsReverseKeywordMap map[string]string `json:"-"`
	// TODO: reuse cursor struct (few line above)
	SearchAfter *SearchAfterResp `json:"searchAfter"`
	// For PUT request, can be used to update only specific fields with specific values
	// map of field name to new value
	FieldsToUpdate map[string]string `json:"fieldsToUpdate"`
	//internal flag to indicate if the request is validated (avoid fixing pagination twice in the same request)
	// swagger:ignore
	FixedPageNum bool `json:"_fixedPageNum"`

	// Ticket manager to use for the request - for example, to get tickets from Jira or Linear
	TicketManager TicketManager `json:"ticketManager,omitempty"`
}

TODO use armotypes.V2ListRequest V2ListRequest descripts what portion of the list the client is requesting swagger:model PaginationRequest

func (*V2ListRequest) GetFieldsNames added in v0.0.207

func (lr *V2ListRequest) GetFieldsNames() []string

GetFieldsNames retunrs slice of Fields names

func (*V2ListRequest) ReplaceFieldsToKeywords added in v0.0.216

func (lr *V2ListRequest) ReplaceFieldsToKeywords(keywordMap map[string]string)

ReplaceFieldsToKeywords replaces the original fields names to the .keyword if necessary

func (*V2ListRequest) ValidateOrderBy added in v0.0.216

func (lr *V2ListRequest) ValidateOrderBy(defaultDescOrder string)

ValidateOrderBy vlidate that the order-by field is well configured to the desired state

func (*V2ListRequest) ValidatePageProperties added in v0.0.207

func (lr *V2ListRequest) ValidatePageProperties(maxPageSize int)

ValidatePageProperties validate page size and page number to be valid

type V2ListResponse added in v0.0.207

type V2ListResponse V2ListResponseGeneric[interface{}]

type V2ListResponseGeneric added in v0.0.246

type V2ListResponseGeneric[T any] struct {
	Total    RespTotal `json:"total"`
	Response T         `json:"response"`
	// Cursor for quick access to the next page. Not supported yet
	Cursor string `json:"cursor"`
}

V2ListResponse holds the response of some list request with some metadata

type VolumeScanState added in v0.0.617

type VolumeScanState struct {
	CustomerGUID     string `json:"customerGUID"`
	VolumeID         string `json:"volumeID"`
	VolumeScanID     string `json:"volumeScanID"`
	ScanStatus       string `json:"scanStatus"`
	ErrorType        string `json:"errorType,omitempty"`
	ErrorRaw         string `json:"errorRaw,omitempty"`
	ErrorDescription string `json:"errorDescription,omitempty"`
}

type Vulnerabilities added in v0.0.205

type Vulnerabilities struct {
	ContainerName string   `json:"containerName" bson:"containerName,omitempty"`
	ImageScanID   string   `json:"imageScanID" bson:"imageScanID,omitempty"`
	Names         []string `json:"names" bson:"names,omitempty"` // CVE names
}

type VulnerabilitiesComponent added in v0.0.283

type VulnerabilitiesComponent struct {
	CustomerGUID string `json:"customerGUID"`
	Name         string `json:"name"`
	Version      string `json:"version"`
	PackageType  string `json:"packageType"`
	// swagger:ignore
	FirstSeen   time.Time           `json:"firstSeen"` //first found in the user account (not in the world)
	FixVersions []string            `json:"fixVersions"`
	PathsInfo   []ComponentPathInfo `json:"pathsInfo"`
}

type Vulnerability added in v0.0.142

type Vulnerability struct {
	Name               string                       `json:"name"`
	UniqueFindingID    int64                        `json:"uniqueFindingID"`
	ID                 string                       `json:"id"`
	Severity           string                       `json:"severity"`
	SeverityScore      int                          `json:"severityScore"`
	Links              []string                     `json:"links"`
	Description        string                       `json:"description"`
	Exploitable        string                       `json:"exploitable"`
	IsRelevant         string                       `json:"isRelevant"`
	DiscoveredDate     time.Time                    `json:"discoveredDate"`
	ComponentInfo      VulnerabilitiesComponent     `json:"componentInfo"`
	CvssInfo           CvssInfo                     `json:"cvssInfo"`
	EpssInfo           EpssInfo                     `json:"epssInfo"`
	CisaKevInfo        CisaKevInfo                  `json:"cisaKevInfo"`
	WorkloadsCount     int                          `json:"workloadsCount"`
	ImagesCount        int                          `json:"imagesCount"`
	HostsCount         int                          `json:"hostsCount"`
	IgnoreRulesSummary map[string]IgnoreRuleSummary `json:"ignoreRulesSummary"`
	TicketManager      TicketManager                `json:"ticketManager,omitempty"`
	Tickets            []Ticket                     `json:"tickets,omitempty"`
	HasTickets         bool                         `json:"hasTickets,omitempty"`
	TicketsCount       int                          `json:"ticketsCount,omitempty"`
}

type VulnerabilityExceptionPolicy

type VulnerabilityExceptionPolicy struct {
	PortalBase `json:",inline" bson:"inline"`

	// Policy type. Must be 'vulnerabilityExceptionPolicy'
	// required: true
	// Example: vulnerabilityExceptionPolicy
	PolicyType string `json:"policyType,omitempty" bson:"policyType,omitempty"`

	// Creation time of the policy
	// Example: 2022-03-31T08:57:58.048014
	CreationTime string `json:"creationTime" bson:"creationTime"`

	// Actions to apply (currently only 'ignore' is available)
	// required: true
	// min: 1
	// Example: ["ignore"]
	Actions []VulnerabilityExceptionPolicyActions `json:"actions" bson:"actions,omitempty"`

	// Items to apply the actions on
	// required: true
	// min: 1
	Designatores []identifiers.PortalDesignator `json:"designators" bson:"designators,omitempty"`

	// Vulnerabilities to take the actions on
	// required: true
	// min: 1
	VulnerabilityPolicies []VulnerabilityPolicy `json:"vulnerabilities" bson:"vulnerabilities,omitempty"`
	Reason                string                `json:"reason,omitempty" bson:"reason,omitempty"`
	ExpirationDate        *time.Time            `json:"expirationDate" bson:"expirationDate,omitempty"`
	ExpiredOnFix          *bool                 `json:"expiredOnFix,omitempty" bson:"expiredOnFix,omitempty"`
	CreatedBy             string                `json:"createdBy,omitempty" bson:"createdBy,omitempty"`
}

func MockVulnerabilityException

func MockVulnerabilityException() *VulnerabilityExceptionPolicy

func (*VulnerabilityExceptionPolicy) IsAlertOnly

func (exceptionPolicy *VulnerabilityExceptionPolicy) IsAlertOnly() bool

type VulnerabilityExceptionPolicyActions

type VulnerabilityExceptionPolicyActions string
const Ignore VulnerabilityExceptionPolicyActions = "ignore"

type VulnerabilityJobParams

type VulnerabilityJobParams struct {
	Name            string `json:"name,omitempty"`
	ID              string `json:"id,omitempty"`
	ClusterName     string `json:"clusterName"`
	Namespace       string `json:"namespace"`
	CronTabSchedule string `json:"cronTabSchedule,omitempty"`
	JobID           string `json:"jobID,omitempty"`
}

type VulnerabilityPolicy

type VulnerabilityPolicy struct {
	// The name of the vulnerability
	// Example: CVE-2022-28128
	Name          string `json:"name" bson:"name"`
	SeverityScore int    `json:"severityScore,omitempty" bson:"severityScore,omitempty"`
}

type VulnerabilityScanConfig

type VulnerabilityScanConfig struct {
	ScanFrequency             ScanFrequency `json:"scanFrequency,omitempty" bson:"scanFrequency,omitempty"`
	CriticalPriorityThreshold int           `json:"criticalPriorityThreshold,omitempty" bson:"criticalPriorityThreshold,omitempty"`
	HighPriorityThreshold     int           `json:"highPriorityThreshold,omitempty" bson:"highPriorityThreshold,omitempty"`
	MediumPriorityThreshold   int           `json:"mediumPriorityThreshold,omitempty" bson:"mediumPriorityThreshold,omitempty"`
	ScanNewDeployment         bool          `json:"scanNewDeployment,omitempty" bson:"scanNewDeployment,omitempty"`
	AllowlistRegistries       []string      `json:"AllowlistRegistries,omitempty" bson:"AllowlistRegistries,omitempty"`
	BlocklistRegistries       []string      `json:"BlocklistRegistries,omitempty" bson:"BlocklistRegistries,omitempty"`
}

type VulnerabilityToHost added in v0.0.615

type VulnerabilityToHost struct {
	CustomerGUID             string                     `json:"customerGUID"`
	Region                   string                     `json:"region"`
	InstanceHash             string                     `json:"instanceHash"`
	InstanceScanId           string                     `json:"instanceScanId"`
	HostID                   string                     `json:"hostID"`
	HostName                 string                     `json:"hostName"`
	AccountID                string                     `json:"accountID"`
	AccountName              string                     `json:"accountName"`
	HostType                 string                     `json:"hostType"`
	ImageID                  string                     `json:"imageID"`
	ImageName                string                     `json:"imageName"`
	KernelVersion            string                     `json:"kernelVersion"`
	PrivateIpAddress         string                     `json:"privateIpAddress"`
	PublicIpAddress          string                     `json:"publicIpAddress"`
	CloudAccountGUID         string                     `json:"cloudAccountGUID"`
	Provider                 string                     `json:"provider"`
	VolumeCount              int                        `json:"volumeCount"`
	LastScanTime             time.Time                  `json:"lastScanTime"`
	CriticalCount            int                        `json:"criticalCount"`
	HighCount                int                        `json:"highCount"`
	MediumCount              int                        `json:"mediumCount"`
	LowCount                 int                        `json:"lowCount"`
	UnknownCount             int                        `json:"unknownCount"`
	SeverityStats            map[string][]string        `json:"severityStats"`
	RiskFactorsCount         int                        `json:"riskFactorsCount"`
	RiskFactors              []RiskFactor               `json:"riskFactors"`
	Labels                   []string                   `json:"labels"`
	HasRelevancyData         bool                       `json:"hasRelevancyData"`
	Tickets                  []Ticket                   `json:"tickets,omitempty"`
	MissingRuntimeInfoReason MissingRuntimeInfoReason   `json:"missingRuntimeInfoReason"`
	TicketsCount             int                        `json:"ticketsCount,omitempty"`
	ScanStatus               string                     `json:"scanStatus"`
	HostErrorType            string                     `json:"hostErrorType,omitempty"`
	HostErrorRaw             string                     `json:"hostErrorRaw,omitempty"`
	HostErrorDescription     string                     `json:"hostErrorDescription,omitempty"` // enriched on API level with host error descriptions for UI
	VolumesInfo              map[string]VolumeScanState `json:"volumeScanStates"`
	VolumeErrorDescriptions  []string                   `json:"volumeErrorDescriptions,omitempty"` // enriched on API level with volume error descriptions for UI

}

type VulnerabilityUniqueComponent added in v0.0.451

type VulnerabilityUniqueComponent struct {
	CustomerGUID     string `json:"customerGUID"`
	ComponentID      uint64 `json:"componentID"`
	Component        string `json:"component"`
	ComponentVersion string `json:"componentVersion"`
	PackageType      string `json:"packageType"`
}

type VulnerabilityUniqueDailyFindings added in v0.0.405

type VulnerabilityUniqueDailyFindings struct {
	Timestamp     time.Time `json:"timestamp"`
	CriticalCount int       `json:"criticalCount"`
	HighCount     int       `json:"highCount"`
	MediumCount   int       `json:"mediumCount"`
	LowCount      int       `json:"lowCount"`
	UnknownCount  int       `json:"unknownCount"`
}

type VulnerabilityUniqueFinding added in v0.0.405

type VulnerabilityUniqueFinding struct {
	CustomerGUID     string    `json:"customerGUID"`
	SeverityScore    int64     `json:"severityScore"`
	VulnerabilityID  string    `json:"vulnerabilityID"`
	Component        string    `json:"component"`
	ComponentVersion string    `json:"componentVersion"`
	FixAvailable     *bool     `json:"fixAvailable"`
	ResourceHash     string    `json:"resourceHash"`
	CloudHostHash    string    `json:"cloudHostHash"`
	IsRelevant       bool      `json:"isRelevant"`
	ScanDate         time.Time `json:"scanDate"`
	CloudAccountGUID string    `json:"cloudAccountGUID,omitempty"` // optional
	InstanceScanID   string    `json:"instanceScanID,omitempty"`   // optional
}

type VulnerabilityWorkload added in v0.0.283

type VulnerabilityWorkload struct {
	Wlid                     string                   `json:"wlid"`
	ResourceHash             string                   `json:"resourceHash"` //common hash of customerGUID, cluster, kind, name, namespace, apiVersion
	Name                     string                   `json:"name"`         // deprecated
	Workload                 string                   `json:"workload"`     // workload name (replaced 'name' field)
	Namespace                string                   `json:"namespace"`
	Kind                     string                   `json:"kind"`
	Cluster                  string                   `json:"cluster"`
	ClusterShortName         string                   `json:"clusterShortName"`
	LastScanTime             time.Time                `json:"lastScanTime"`
	CustomerGUID             string                   `json:"customerGUID"`
	ImagesCount              int                      `json:"imagesCount"`
	CriticalCount            int                      `json:"criticalCount"`
	HighCount                int                      `json:"highCount"`
	MediumCount              int                      `json:"mediumCount"`
	LowCount                 int                      `json:"lowCount"`
	UnknownCount             int                      `json:"unknownCount"`
	SeverityStats            map[string][]string      `json:"severityStats"`
	RiskFactorsCount         int                      `json:"riskFactorsCount"`
	RiskFactors              []RiskFactor             `json:"riskFactors"`
	Labels                   []string                 `json:"labels"`
	HasRelevancyData         bool                     `json:"hasRelevancyData"`
	Images                   []string                 `json:"images"`
	TicketManager            TicketManager            `json:"ticketManager,omitempty"`
	Tickets                  []Ticket                 `json:"tickets,omitempty"`
	MissingRuntimeInfoReason MissingRuntimeInfoReason `json:"missingRuntimeInfoReason"`
	TicketsCount             int                      `json:"ticketsCount,omitempty"`
}

type WorkloadStatus added in v0.0.419

type WorkloadStatus struct {
	ResourceHash      string   `json:"resourceHash"`
	CustomerGUID      string   `json:"customerGUID"`
	ClusterName       string   `json:"clusterName"`
	IsInternetFacing  *bool    `json:"isInternetFacing"`
	AiClientProviders []string `json:"aiClientProviders"`
	AiServerProviders []string `json:"aiServerProviders"`
	RiskFactors       []string `json:"riskFactors"`
}

type WorkloadViews added in v0.0.586

type WorkloadViews struct {
	WorkloadName       string     `json:"workloadName"`
	Kind               string     `json:"kind"` // will be deprecated in the future after type is introduced
	Type               string     `json:"type"`
	Cluster            string     `json:"cluster"`
	AccountID          string     `json:"accountId"`
	Region             string     `json:"region"`
	Provider           string     `json:"provider"`
	Namespace          string     `json:"namespace"`
	CreationTimestamp  *time.Time `json:"creationTimestamp,omitempty"`
	CompletionStatus   string     `json:"completionStatus,omitempty"`
	Status             string     `json:"status,omitempty"`
	LearningPeriod     string     `json:"learningPeriod,omitempty"`
	RiskFactors        []string   `json:"riskFactors,omitempty"`
	LearningPercentage *int       `json:"learningPercentage,omitempty"`
	HostName           string     `json:"hostName,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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