Documentation ¶
Index ¶
- Constants
- Variables
- func GetControlIDsByRiskFactors(riskFactorsStr string) []string
- func GetInClusterSupportedNamespaces() []string
- func MockPortalDesignator() *identifiers.PortalDesignator
- func ValidateContainerScanID(containerScanID string) bool
- type Alert2Channel
- type AlertType
- type ApprovementState
- type ApprovementStatus
- type AssociationStatus
- type AttackChain
- type AttackChainConfig
- type AttackChainNode
- type AttackChainStatus
- type AttackChainUIStatus
- type AuthMethod
- type Banner
- type BaseExceptionPolicy
- type BaseRuntimeAlert
- type CAContainerMetrics
- type CAK8SMeta
- type CAMicroserviceOverview
- type CAMicroserviceOverviewMetadata
- type CisaKevInfo
- type ClusterAttackChainState
- type CommonSummaryFields
- type ComponentPathInfo
- type ComponentSummary
- type ConnectedStatus
- type ContainerPathInfo
- type ContainerSummary
- type ContainersStatusData
- type ControlInfo
- type ControlInputs
- type CountFunc
- type Cursor
- type CustomerAccessStatus
- type CustomerConfig
- type CustomerOnboarding
- type CustomerState
- type Cvss
- type CvssExploitabilityInfo
- type CvssImpactInfo
- type CvssInfo
- type DataType
- type DeleteCountResponse
- type Duration
- type EnforcmentsRule
- type EpssInfo
- type ExecutionPolicy
- type Filters
- type FixPath
- type GUID
- type GettingStartedChecklist
- type HighlightsByControl
- type ISecurityIssue
- type IgnoreRuleSummary
- type ImageSummary
- type IncidentCategory
- type InstallationData
- type K8SAncestor
- type K8SNamespace
- type K8SPodObject
- type KPILogin
- type KPIPostureScan
- type KubernetesObject
- type LicenseType
- type Limitations
- type MalwareAlert
- type MicroserviceExtraDetails
- type MicroserviceInfo
- type MicroserviceMetadataView
- type MissingRuntimeInfoReason
- type NetworkPoliciesWorkload
- type NetworkPolicyStatus
- type NodeUsage
- type Notifications
- type PaginationCursorFunc
- type PaginationSearchByScopeFiltersFunc
- type PaginationSearchByScopeFiltersScrollFunc
- type PaginationSearchFunc
- type PodStatus
- type PolicyType
- type PortalBase
- func (p *PortalBase) GetAttributes() map[string]interface{}
- func (p *PortalBase) GetGUID() string
- func (p *PortalBase) GetName() string
- func (p *PortalBase) GetUpdatedTime() *time.Time
- func (p *PortalBase) SetAttributes(attributes map[string]interface{})
- func (p *PortalBase) SetGUID(guid string)
- func (p *PortalBase) SetName(name string)
- func (p *PortalBase) SetUpdatedTime(updatedTime *time.Time)
- type PortalCache
- type PortalCluster
- type PortalRegistryCronJob
- type PortalRepository
- type PostureAttributesList
- type PostureClusterOverTime
- type PostureClusterSummary
- type PostureContainerSummary
- type PostureControlSummary
- type PostureExceptionPolicy
- type PostureExceptionPolicyActions
- type PostureFrameworkOverTime
- type PostureFrameworkOverTimeCoord
- type PostureFrameworkSubsectionSummary
- type PostureFrameworkSummary
- type PostureFrameworksOverTime
- type PostureJobParams
- type PosturePaths
- type PosturePolicy
- type PostureReportResultRaw
- type PostureResource
- type PostureResourceSummary
- type PostureScanConfig
- type PostureSummary
- type Probe
- type Process
- type ProcessTree
- type ProcessingStatus
- type ProviderConnectionStatus
- type QueryScopeParams
- func (qsp *QueryScopeParams) FixOrAddAsInnerFilters(paginationReq *V2ListRequest, ...)
- func (qsp *QueryScopeParams) FixOrAddAsInnerFiltersMap(paginationReq *V2ListRequest, filters Filters)
- func (qsp *QueryScopeParams) FixOrAddAsUniqueInnerFilters(reqObj *UniqueValuesRequestV2, ...)
- func (qsp *QueryScopeParams) FixOrAddAsUniqueInnerFiltersMap(reqObj *UniqueValuesRequestV2, filters Filters)
- type RawJSONObject
- type RawResource
- type RecommendationAssociation
- type RecommendationSkeletonV1
- type RecordStatus
- type RegistryInfo
- type RegistryJobParams
- type RelatedResource
- type RelevantImageVulnerabilitiesConfiguration
- type RepoEntityKind
- type RepoEntitySummary
- type Repository
- type ResolvedReason
- type Resource
- type RespTotal
- type RespTotal64
- type RetrieveObjectsByRequestPayload
- type Risk
- type RiskFactor
- type RiskType
- type RuleAlert
- type RuntimeAlert
- type RuntimeAlertK8sDetails
- type RuntimeIncident
- type RuntimeIncidentResource
- type ScanFrequency
- type ScanType
- type SearchAfterResp
- type SearchResponse
- type SecurityIssue
- type SecurityIssueAttackPath
- type SecurityIssueControl
- type SecurityIssueSeverity
- type SecurityIssueStatus
- type SecurityIssuesCategories
- type SecurityIssuesSeverities
- type SecurityIssuesSummary
- type SecurityIssuesTrends
- type SecurityIssuesTrendsSummary
- type SecurityRisk
- type SecurityRiskExceptionPolicy
- type Settings
- type SlackChannel
- type SlackChannels
- type SlackNotification
- type SlackSettings
- type Subscription
- type SynchronizerClient
- type Ticket
- type TicketManager
- type UniqueCardinalityResponseV2
- type UniqueValuesRequestV2
- type UniqueValuesResponseFieldsCount
- type UniqueValuesResponseV2
- type UniqueValuesSearchByScopeFiltersFunc
- type UpdateAuditEntry
- type User
- type V2ListRequest
- type V2ListResponse
- type V2ListResponseGeneric
- type Vulnerabilities
- type VulnerabilitiesComponent
- type Vulnerability
- type VulnerabilityExceptionPolicy
- type VulnerabilityExceptionPolicyActions
- type VulnerabilityJobParams
- type VulnerabilityPolicy
- type VulnerabilityScanConfig
- type VulnerabilityWorkload
Constants ¶
const ( ViewedMainScreenField = "viewedMainScreen" ProcessingStatusField = "processingStatus" //AttackChainStatuss StatusActive AttackChainStatus = "active" StatusFixed AttackChainStatus = "fixed" ProcessingStatusProcessing ProcessingStatus = "processing" ProcessingStatusDone ProcessingStatus = "done" ProcessingStatusFailed ProcessingStatus = "failed" ProcessingStatusTimeout ProcessingStatus = "timeout" )
const ( //risk factors RiskFactorExternalFacing RiskFactor = "External facing" RiskFactorPrivileged RiskFactor = "Privileged" RiskFactorSecretAccess RiskFactor = "Secret access" RiskFactorDataAccess RiskFactor = "Data access" RiskFactorHostAccess RiskFactor = "Host access" //scan types ClusterPosture ScanType = "cluster" RepositoryPosture ScanType = "repository" ContainerVulnerabilities ScanType = "container" RegistryVulnerabilities ScanType = "registry" )
const ( // In-cluster namespaces ArmoSystemNamespace = "armo-system" // deprecated, kept for backward compatibility KubescapeNamespace = "kubescape" 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 // 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" )
const ( K8sKindCluster = "Cluster" K8sKindNode = "Node" K8sKindNamespace = "Namespace" K8sApiVersionV1 = "v1" K8sApiVersionRBAC = "rbac.authorization.k8s.io" K8sApiVersionRBACV1 = K8sApiVersionRBAC + "/" + K8sApiVersionV1 K8SApiVersionAppsV1 = "apps/v1" K8SApiVersionBatchV1 = "batch/v1" )
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 = "\\" )
const ( CustomerGuidQuery = "customerGUID" ClusterNameQuery = "cluster" DatacenterNameQuery = "datacenter" NamespaceQuery = "namespace" ProjectQuery = "project" WlidQuery = "wlid" SidQuery = "sid" )
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" )
const ( PostureControlStatusUnknown = 0 PostureControlStatusPassed = 1 PostureControlStatusWarning = 2 // deprecated PostureControlStatusFailed = 3 PostureControlStatusSkipped = 4 PostureControlStatusIrrelevant = 5 // deprecated PostureControlStatusError = 6 PostureResourceMaxCtrls = 6 )
const ( SecurityIssueStatusDetected SecurityIssueStatus = "Detected" SecurityIssueStatusResolved SecurityIssueStatus = "Resolved" RiskTypeControl RiskType = "Control" RiskTypeControlWithNetworkPolicy RiskType = "ControlWithNetworkPolicy" RiskTypeAttackPath RiskType = "AttackPath" SecurityIssueSeverityCritical SecurityIssueSeverity = "Critical" SecurityIssueSeverityHigh SecurityIssueSeverity = "High" SecurityIssueSeverityMedium SecurityIssueSeverity = "Medium" SecurityIssueSeverityLow SecurityIssueSeverity = "Low" SecurityRiskExceptionPolicyType PolicyType = "securityRiskExceptionPolicy" ResolvedReasonResourceDeleted ResolvedReason = "ResourceDeleted" ResolvedReasonClusterDeleted ResolvedReason = "ClusterDeleted" ResolvedReasonRiskResolved ResolvedReason = "RiskResolved" )
const ( ExploitableCisaKev = "Known Exploited" ExploitableHighLikelihood = "High Likelihood" ExploitableNo = "No" EpssThreshold = 0.10 // 10% CisaKevKnown = "Known" CisaKevUnknown = "Unknown" )
Variables ¶
var ActiveSubscriptionStatuses = []string{SubscriptionStatusIncomplete, SubscriptionStatusTrialing, SubscriptionStatusActive}
var RiskFactorMapping = map[string]RiskFactor{ "C-0256": 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, }
Functions ¶
func GetControlIDsByRiskFactors ¶ added in v0.0.284
func GetInClusterSupportedNamespaces ¶ added in v0.0.114
func GetInClusterSupportedNamespaces() []string
func MockPortalDesignator ¶
func MockPortalDesignator() *identifiers.PortalDesignator
func ValidateContainerScanID ¶ added in v0.0.193
Types ¶
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 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" }
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 Banner ¶ added in v0.0.194
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 BaseExceptionPolicy ¶ added in v0.0.334
type BaseExceptionPolicy struct { PortalBase `json:",inline" bson:"inline"` PolicyType string `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"` }
type BaseRuntimeAlert ¶ added in v0.0.367
type BaseRuntimeAlert struct { // AlertName is either RuleName or MalwareName AlertName string `json:"alertName,omitempty" bson:"name,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"` // Command line Timestamp time.Time `json:"timestamp" bson:"timestamp"` }
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 CisaKevInfo ¶ added in v0.0.281
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 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 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"` FixVersions []string `json:"fixVersions"` CriticalCount int `json:"criticalCount"` HighCount int `json:"highCount"` MediumCount int `json:"mediumCount"` LowCount int `json:"lowCount"` ClustersCount int `json:"clustersCount"` NamespacesCount int `json:"namespacesCount"` WorkloadsCount int `json:"workloadsCount"` ImagesCount int `json:"imagesCount"` SeverityStats map[string][]string `json:"severityStats"` Tickets []Ticket `json:"tickets,omitempty"` }
type ConnectedStatus ¶ added in v0.0.270
type ConnectedStatus string
const ( Connected ConnectedStatus = "connected" Disconnected ConnectedStatus = "disconnected" )
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 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 ContainersStatusData ¶ added in v0.0.249
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"` // if True, this control supports smart remediation // swagger:ignore SupportsSmartRemediation bool `json:"supportsSmartRemediation"` // DEPRECATED 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 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"` }
CustomerState holds the state of the customer, used for UI purposes
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 DeleteCountResponse ¶ added in v0.0.272
type DeleteCountResponse struct {
DeletedCount int64 `json:"deletedCount"`
}
type Duration ¶ added in v0.0.207
func (Duration) MarshalJSON ¶ added in v0.0.207
func (*Duration) SetDuration ¶ added in v0.0.207
func (*Duration) UnmarshalJSON ¶ added in v0.0.207
type EnforcmentsRule ¶
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 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 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 ISecurityIssue ¶ added in v0.0.325
type IgnoreRuleSummary ¶ added in v0.0.304
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"` 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"` ClustersCount int `json:"clustersCount"` NamespacesCount int `json:"namespacesCount"` WorkloadsCount int `json:"workloadsCount"` ContainersCount int `json:"containersCount"` Tickets []Ticket `json:"tickets,omitempty"` }
type IncidentCategory ¶ added in v0.0.359
type IncidentCategory string
const ( RuntimeIncidentCategoryMalware IncidentCategory = "Malware" RuntimeIncidentCategoryAnomaly IncidentCategory = "Anomaly" )
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 }
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 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 DRDs. 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"` // used for network policies PodSelectorLabels map[string]string `json:"podSelectorLabels"` }
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 {
MalwareDescription string `json:"malwareDescription,omitempty" bson:"malwareDescription,omitempty"`
}
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 NetworkPoliciesWorkload ¶ added in v0.0.269
type NetworkPoliciesWorkload struct { Name string `json:"name"` Kind string `json:"kind"` CustomerGUID string `json:"customerGUID"` Namespace string `json:"namespace"` ClusterName string `json:"cluster"` ClusterShortName string `json:"clusterShortName"` 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 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 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"` LastStateFinishedAt time.Time `json:"lastStateFinishedAt"` LastStateStartedAt time.Time `json:"lastStateStartedAt"` LastStateReason string `json:"lastStateReason"` LastStateMessage string `json:"lastStateMessage"` RestartCount int `json:"restartCount"` CreationTimestamp time.Time `json:"creationTimestamp"` }
type PolicyType ¶ added in v0.0.172
type PolicyType string
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) 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]) 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 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 Tickets []Ticket `json:"tickets,omitempty"` }
type PostureContainerSummary ¶
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"` // swagger:ignore SupportsSmartRemediation bool `json:"supportsSmartRemediation"` // DEPRECATED SmartRemediation bool `json:"smartRemediation"` FixByNetworkPolicy bool `json:"fixByNetworkPolicy"` //tickets opened for this control 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 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 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"` 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 // swagger:ignore SupportsSmartRemediation bool `json:"supportsSmartRemediation"` // DEPRECATED SmartRemediation bool `json:"smartRemediation"` //tickets opened for this resource 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"` UpperLayer bool `json:"upperLayer,omitempty" bson:"upperLayer,omitempty"` Cwd string `json:"cwd,omitempty" bson:"cwd,omitempty"` Path string `json:"path,omitempty" bson:"path,omitempty"` Children []Process `json:"children,omitempty" bson:"children,omitempty"` }
type ProcessTree ¶ added in v0.0.377
type ProcessingStatus ¶ added in v0.0.203
type ProcessingStatus string
type ProviderConnectionStatus ¶ added in v0.0.270
type ProviderConnectionStatus struct {
Status ConnectedStatus `json:"status"`
}
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 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) 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 RespTotal64 ¶ added in v0.0.207
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
UnmarshalJSON is a custom unmarshaler for RiskType that validates its value
type RuntimeAlert ¶ added in v0.0.359
type RuntimeAlert struct { BaseRuntimeAlert `json:",inline"` RuleAlert `json:",inline"` MalwareAlert `json:",inline"` RuntimeAlertK8sDetails `json:",inline"` AlertType AlertType `json:"alertType" bson:"alertType"` // Hostname is the name of the node agent pod HostName string `json:"hostName" bson:"hostName"` Message string `json:"message" bson:"message"` }
type RuntimeAlertK8sDetails ¶ added in v0.0.367
type RuntimeAlertK8sDetails struct { ClusterName string `json:"clusterName" bson:"clusterName"` ContainerName string `json:"containerName,omitempty" bson:"containerName,omitempty"` HostNetwork *bool `json:"hostNetwork,omitempty" bson:"hostNetwork,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"` WorkloadName string `json:"workloadName" bson:"workloadName"` WorkloadNamespace string `json:"workloadNamespace,omitempty" bson:"workloadNamespace,omitempty"` WorkloadKind string `json:"workloadKind" bson:"workloadKind"` }
type RuntimeIncident ¶ added in v0.0.359
type RuntimeIncident struct { PortalBase `json:",inline" bson:"inline"` // details of the incident triggers RuntimeIncidentResource `json:",inline" bson:"inline"` RuntimeAlert `json:",inline" bson:"inline"` // category of the incident IncidentCategory IncidentCategory `json:"incidentCategory" bson:"incidentCategory" ` CreationTimestamp time.Time `json:"creationTimestamp" bson:"creationTimestamp"` Title string `json:"title" bson:"title"` Severity string `json:"incidentSeverity" bson:"incidentSeverity"` SeverityScore int `json:"severityScore" bson:"severityScore"` Mitigation string `json:"mitigation" bson:"mitigation"` // alerts / events that are part of this incident RelatedAlerts []RuntimeAlert `json:"relatedAlerts" bson:"relatedAlerts"` // user gestures SeenAt *time.Time `json:"seenAt" bson:"seenAt"` IsDismissed bool `json:"isDismissed" bson:"isDismissed"` MarkedAsFalsePositive bool `json:"markedAsFalsePositive" bson:"markedAsFalsePositive"` // for future use RelatedResources []RuntimeIncidentResource `json:"relatedResources" bson:"relatedResources"` ProcessTree *ProcessTree `json:"processTree,omitempty" bson:"processTree,omitempty"` }
type RuntimeIncidentResource ¶ added in v0.0.359
type RuntimeIncidentResource struct { Spiffe string `json:"spiffe" bson:"spiffe" ` ResourceID string `json:"resourceID" bson:"resourceID"` // hash of the resource to cross with various DBs Designators identifiers.PortalDesignator `json:"designators" bson:"designators"` }
type ScanFrequency ¶
type ScanFrequency 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 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"` }
func (*SecurityIssue) GetClusterName ¶ added in v0.0.343
func (si *SecurityIssue) GetClusterName() 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)
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 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 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 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 // swagger:ignore SupportsSmartRemediation bool `json:"supportsSmartRemediation"` // DEPRECATED SmartRemediation bool `json:"smartRemediation"` }
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 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 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 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"` }
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 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 }
type TicketManager ¶ added in v0.0.371
type TicketManager string
const (
TicketManagerJira TicketManager = "jira"
)
type UniqueCardinalityResponseV2 ¶ added in v0.0.207
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:"-"` }
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 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"` }
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 Vulnerabilities ¶ added in v0.0.205
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"` 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"` ComponentInfo VulnerabilitiesComponent `json:"componentInfo"` CvssInfo CvssInfo `json:"cvssInfo"` EpssInfo EpssInfo `json:"epssInfo"` CisaKevInfo CisaKevInfo `json:"cisaKevInfo"` WorkloadsCount int `json:"workloadsCount"` ImagesCount int `json:"imagesCount"` IgnoreRulesSummary map[string]IgnoreRuleSummary `json:"ignoreRulesSummary"` Tickets []Ticket `json:"tickets,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 VulnerabilityPolicy ¶
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 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"` 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"` 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"` Tickets []Ticket `json:"tickets,omitempty"` }
Source Files ¶
- attackchainstypes.go
- attackchainstypesutils.go
- cachetypes.go
- common.go
- configtypes.go
- configtypes_mock.go
- customerslackconfigurations.go
- datastructuresmethod.go
- exceptionpolicy.go
- executionpolicytypes.go
- helmconsts.go
- integrationtypes.go
- k8stypes.go
- kpitypes.go
- kubernetes_objects.go
- microservice_info.go
- microservice_info_method.go
- networkpolicies.go
- oauth2types.go
- pagination_structs.go
- pagination_structs_methods.go
- paginationmethods.go
- podstatus.go
- portaltypes.go
- portaltypes_mock.go
- portaltypesutils.go
- postureexceptionpolicytypes.go
- postureexceptionpolicytypesutils.go
- posturerecommendations.go
- posturetypes.go
- recordstatus.go
- registrytypes.go
- reposcanning.go
- runtimeincidents.go
- securityrisks.go
- synchronizerclients.go
- vulnerabilityexceptionpolicytypes.go
- vulnerabilityexceptionpolicytypes_mock.go
- vulnerabilitytypes.go