model

package
v2.2.2 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EvidenceStatusAccepted    = "Accepted"
	EvidenceStatusFlagged     = "Flagged"
	EvidenceStatusInitialized = "Initialized"
	EvidenceStatusNA          = "NA"
	EvidenceStatusNotReady    = "Not ready for audit"
	EvidenceStatusReady       = "Ready for audit"
)

EvidenceStatus represents the possible statuses for evidence

View Source
const (
	EvidenceTypeEvidence = "Evidence"
	EvidenceTypeRequest  = "Request"
	EvidenceTypePolicy   = "Policy"
	EvidenceTypeTest     = "Test"
)

EvidenceType represents the possible types of evidence

View Source
const (
	TaskStatusComplete                      TaskStatus = "COMPLETE"
	TaskStatusDueSoon                       TaskStatus = "DUE_SOON"
	TaskStatusNone                          TaskStatus = "NONE"
	TaskStatusOverdue                       TaskStatus = "OVERDUE"
	TaskStatusPaused                        TaskStatus = "PAUSED"
	TaskStatusOffboardingComplete           TaskStatus = "OFFBOARDING_COMPLETE"
	TaskStatusOffboardingDueSoon            TaskStatus = "OFFBOARDING_DUE_SOON"
	TaskStatusOffboardingOffboardingOverdue TaskStatus = "OFFBOARDING_OVERDUE"

	EmploymentStatusUpcoming EmploymentStatus = "UPCOMING"
	EmploymentStatusCurrent  EmploymentStatus = "CURRENT"
	EmploymentStatusOnLeave  EmploymentStatus = "ON_LEAVE"
	EmploymentStatusInactive EmploymentStatus = "INACTIVE"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Computer

type Computer struct {
	ID                    string           `json:"id"`
	IntegrationID         string           `json:"integrationId"`
	LastCheckDate         *time.Time       `json:"lastCheckDate,omitempty"`
	OperatingSystem       *OperatingSystem `json:"operatingSystem,omitempty"`
	Owner                 *ComputerOwner   `json:"owner,omitempty"`
	SerialNumber          string           `json:"serialNumber"`
	UDID                  string           `json:"udid"`
	Screenlock            *SecurityCheck   `json:"screenlock,omitempty"`
	DiskEncryption        *SecurityCheck   `json:"diskEncryption,omitempty"`
	PasswordManager       *SecurityCheck   `json:"passwordManager,omitempty"`
	AntivirusInstallation *SecurityCheck   `json:"antivirusInstallation,omitempty"`

	// Deprecated fields - not available in REST API but kept for backward compatibility
	OwnerName                  string        `json:"ownerName,omitempty"`
	AgentVersion               string        `json:"agentVersion,omitempty"`
	OsVersion                  string        `json:"osVersion,omitempty"`
	IsPasswordManagerInstalled *bool         `json:"isPasswordManagerInstalled,omitempty"`
	IsEncrypted                *bool         `json:"isEncrypted,omitempty"`
	HasScreenLock              *bool         `json:"hasScreenLock,omitempty"`
	Hostname                   string        `json:"hostname,omitempty"`
	HostIdentifier             string        `json:"hostIdentifier,omitempty"`
	LastPing                   *time.Time    `json:"lastPing,omitempty"`
	NumBrowserExtensions       *int          `json:"numBrowserExtensions,omitempty"`
	EndpointApplications       []interface{} `json:"endpointApplications,omitempty"`
	InstalledAvPrograms        []interface{} `json:"installedAvPrograms,omitempty"`
	InstalledPasswordManagers  []interface{} `json:"installedPasswordManagers,omitempty"`
	UnsupportedReasons         interface{}   `json:"unsupportedReasons,omitempty"`
	OwnerID                    string        `json:"ownerId,omitempty"`
	OrganizationName           string        `json:"organizationName,omitempty"`
}

Computer represents a computer/device in the Vanta system

type ComputerOwner

type ComputerOwner struct {
	ID           string `json:"id"`
	EmailAddress string `json:"emailAddress"`
	DisplayName  string `json:"displayName"`
}

ComputerOwner represents the owner of a computer

type ComputerResults

type ComputerResults struct {
	PageInfo PageInfo    `json:"pageInfo"`
	Data     []*Computer `json:"data"`
}

ComputerResults contains the actual computer data and pagination info

type DeactivateMetadata added in v2.2.0

type DeactivateMetadata struct {
	IsVulnDeactivatedIndefinitely bool       `json:"isVulnDeactivatedIndefinitely"`
	DeactivatedUntilDate          *time.Time `json:"deactivatedUntilDate,omitempty"`
	DeactivationReason            string     `json:"deactivationReason,omitempty"`
	DeactivatedOnDate             *time.Time `json:"deactivatedOnDate,omitempty"`
	DeactivatedBy                 string     `json:"deactivatedBy,omitempty"`
}

DeactivateMetadata contains deactivation/ignored status information

type DeactivatedStatusInfo

type DeactivatedStatusInfo struct {
	IsDeactivated     bool       `json:"isDeactivated"`
	DeactivatedReason *string    `json:"deactivatedReason"`
	LastUpdatedDate   *time.Time `json:"lastUpdatedDate"`
}

DeactivatedStatusInfo represents deactivation status information

type Employment

type Employment struct {
	EndDate   *time.Time        `json:"endDate,omitempty"`
	JobTitle  *string           `json:"jobTitle,omitempty"`
	StartDate *time.Time        `json:"startDate,omitempty"`
	Status    *EmploymentStatus `json:"status,omitempty"`
}

Employment contains employment information

type EmploymentStatus

type EmploymentStatus string

type Evidence

type Evidence struct {
	ID                string            `json:"id"`
	ExternalID        string            `json:"externalId"`
	Status            string            `json:"status"`
	Name              string            `json:"name"`
	DeletionDate      *time.Time        `json:"deletionDate"`
	CreationDate      time.Time         `json:"creationDate"`
	StatusUpdatedDate time.Time         `json:"statusUpdatedDate"`
	TestStatus        *string           `json:"testStatus"`
	EvidenceType      string            `json:"evidenceType"`
	EvidenceID        string            `json:"evidenceId"`
	RelatedControls   []*RelatedControl `json:"relatedControls"`
	Description       *string           `json:"description"`
}

Evidence represents audit evidence in the Vanta system

type EvidenceResults

type EvidenceResults struct {
	PageInfo PageInfo    `json:"pageInfo"`
	Data     []*Evidence `json:"data"`
}

EvidenceResults contains the actual evidence data and pagination info

type GenericNamedItem

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

type GroupItem

type GroupItem struct {
	ID           string     `json:"id"`
	Name         string     `json:"name"`
	CreationDate *time.Time `json:"creationDate,omitempty"`
}

GroupItem represents a group in the Vanta system

type GroupResults

type GroupResults struct {
	PageInfo PageInfo     `json:"pageInfo"`
	Data     []*GroupItem `json:"data"`
}

GroupResults contains the actual group data and pagination info

type Integration

type Integration struct {
	IntegrationID string                   `json:"integrationId"`
	DisplayName   string                   `json:"displayName"`
	ResourceKinds []string                 `json:"resourceKinds"`
	Connections   []*IntegrationConnection `json:"connections"`

	// Deprecated fields - not available in REST API but kept for backward compatibility
	Description           string        `json:"description,omitempty"`
	ApplicationURL        string        `json:"applicationUrl,omitempty"`
	InstallationURL       string        `json:"installationUrl,omitempty"`
	LogoSlugID            string        `json:"logoSlugId,omitempty"`
	Credentials           interface{}   `json:"credentials,omitempty"`
	IntegrationCategories []string      `json:"integrationCategories,omitempty"`
	ServiceCategories     []string      `json:"serviceCategories,omitempty"`
	Tests                 []interface{} `json:"tests,omitempty"`
	OrganizationName      string        `json:"organizationName,omitempty"`
}

Integration represents a connected integration in the Vanta system

type IntegrationConnection

type IntegrationConnection struct {
	ConnectionID           string  `json:"connectionId"`
	IsDisabled             bool    `json:"isDisabled"`
	ConnectionErrorMessage *string `json:"connectionErrorMessage"`
}

IntegrationConnection represents a connection within an integration

type IntegrationResults

type IntegrationResults struct {
	PageInfo PageInfo       `json:"pageInfo"`
	Data     []*Integration `json:"data"`
}

IntegrationResults contains the actual integration data and pagination info

type LeaveInfo

type LeaveInfo struct {
}

LeaveInfo contains leave information

type ListComputersOptions

type ListComputersOptions struct {
	Limit  int    `json:"limit,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

ListComputersOptions represents options for listing computers

type ListComputersOutput

type ListComputersOutput struct {
	Results ComputerResults `json:"results"`
}

ListComputersOutput represents the response from the list computers API

type ListEvidenceOptions

type ListEvidenceOptions struct {
	AuditID string `json:"audit_id"`
	Limit   int    `json:"limit,omitempty"`
	Cursor  string `json:"cursor,omitempty"`
}

ListEvidenceOptions represents the options for listing evidence

type ListEvidenceOutput

type ListEvidenceOutput struct {
	Results EvidenceResults `json:"results"`
}

ListEvidenceOutput represents the response from the list evidence API

type ListGroupsOptions

type ListGroupsOptions struct {
	Limit  int    `json:"limit,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

ListGroupsOptions represents options for listing groups

type ListGroupsOutput

type ListGroupsOutput struct {
	Results GroupResults `json:"results"`
}

ListGroupsOutput represents the response from the list groups API

type ListIntegrationsOptions

type ListIntegrationsOptions struct {
	Limit  int    `json:"limit,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

ListIntegrationsOptions represents options for listing integrations

type ListIntegrationsOutput

type ListIntegrationsOutput struct {
	Results IntegrationResults `json:"results"`
}

ListIntegrationsOutput represents the response from the list connected integrations API

type ListMonitorsOptions

type ListMonitorsOptions struct {
	Limit  int    `json:"limit,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

ListMonitorsOptions represents options for listing monitors

type ListPeopleOptions

type ListPeopleOptions struct {
	Limit  int    `json:"limit,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

ListPeopleOptions represents options for listing people

type ListPeopleOutput

type ListPeopleOutput struct {
	Results PeopleResults `json:"results"`
}

ListPeopleOutput represents the response from the list people API

type ListPoliciesOptions

type ListPoliciesOptions struct {
	Limit  int    `json:"limit,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

ListPoliciesOptions represents options for listing policies

type ListPoliciesOutput

type ListPoliciesOutput struct {
	Results PolicyResults `json:"results"`
}

ListPoliciesOutput represents the response from the list policies API

type ListTestEntitiesOptions

type ListTestEntitiesOptions struct {
	Limit        int    `json:"limit,omitempty"`
	Cursor       string `json:"cursor,omitempty"`
	EntityStatus string `json:"entityStatus,omitempty"`
}

ListTestEntitiesOptions represents options for listing test entities

type ListTestsOptions

type ListTestsOptions struct {
	PageSize          int    `json:"pageSize,omitempty"`          // 1 to 100, defaults to 10
	PageCursor        string `json:"pageCursor,omitempty"`        // Pagination cursor
	StatusFilter      string `json:"statusFilter,omitempty"`      // OK, DEACTIVATED, NEEDS_ATTENTION, IN_PROGRESS, INVALID, NOT_APPLICABLE
	FrameworkFilter   string `json:"frameworkFilter,omitempty"`   // Filter by framework
	IntegrationFilter string `json:"integrationFilter,omitempty"` // Filter by integration (e.g., "aws")
	ControlFilter     string `json:"controlFilter,omitempty"`     // Filter by control ID
	OwnerFilter       string `json:"ownerFilter,omitempty"`       // Filter by owner ID
	CategoryFilter    string `json:"categoryFilter,omitempty"`    // Filter by category
	IsInRollout       *bool  `json:"isInRollout,omitempty"`       // Filter by rollout status
}

ListTestsOptions represents options for listing comprehensive tests

type ListVendorsOptions

type ListVendorsOptions struct {
	Limit  int    `json:"limit,omitempty"`
	Cursor string `json:"cursor,omitempty"`
}

ListVendorsOptions represents options for listing vendors

type ListVendorsOutput

type ListVendorsOutput struct {
	Results VendorResults `json:"results"`
}

ListVendorsOutput represents the response from the list vendors API

type ListVulnerabilitiesOptions added in v2.2.0

type ListVulnerabilitiesOptions struct {
	Limit                             int        `json:"limit,omitempty"`
	Cursor                            string     `json:"cursor,omitempty"`
	Severity                          string     `json:"severity,omitempty"`
	IsFixAvailable                    *bool      `json:"isFixAvailable,omitempty"`
	IsDeactivated                     *bool      `json:"isDeactivated,omitempty"`
	IntegrationID                     string     `json:"integrationId,omitempty"`
	VulnerableAssetID                 string     `json:"vulnerableAssetId,omitempty"`
	SLADeadlineBeforeDate             *time.Time `json:"slaDeadlineBeforeDate,omitempty"`
	SLADeadlineAfterDate              *time.Time `json:"slaDeadlineAfterDate,omitempty"`
	IncludeVulnerabilitiesWithoutSLAs *bool      `json:"includeVulnerabilitiesWithoutSlas,omitempty"`
}

ListVulnerabilitiesOptions represents options for listing vulnerabilities

type ListVulnerabilitiesOutput added in v2.2.0

type ListVulnerabilitiesOutput struct {
	Results VulnerabilityResults `json:"results"`
}

ListVulnerabilitiesOutput represents the response from the list vulnerabilities API

type Monitor

type Monitor struct {
	ID                     string                 `json:"id"`
	Name                   string                 `json:"name"`
	LastTestRunDate        *time.Time             `json:"lastTestRunDate"`
	LatestFlipDate         *time.Time             `json:"latestFlipDate"`
	Description            string                 `json:"description"`
	FailureDescription     string                 `json:"failureDescription"`
	RemediationDescription string                 `json:"remediationDescription"`
	Version                *MonitorVersion        `json:"version"`
	Category               string                 `json:"category"`
	Integrations           []string               `json:"integrations"`
	Status                 string                 `json:"status"`
	DeactivatedStatusInfo  *DeactivatedStatusInfo `json:"deactivatedStatusInfo"`
	RemediationStatusInfo  *RemediationStatusInfo `json:"remediationStatusInfo"`
	Owner                  *MonitorOwner          `json:"owner"`
}

Monitor represents a monitor/test in Vanta

type MonitorOwner

type MonitorOwner struct {
	ID           string `json:"id"`
	EmailAddress string `json:"emailAddress"`
	DisplayName  string `json:"displayName"`
}

MonitorOwner represents the owner of a monitor

type MonitorResults

type MonitorResults struct {
	Results MonitorResultsData `json:"results"`
}

MonitorResults represents the paginated response for monitor list

type MonitorResultsData

type MonitorResultsData struct {
	PageInfo PageInfo   `json:"pageInfo"`
	Data     []*Monitor `json:"data"`
}

MonitorResultsData represents the data portion of monitor results

type MonitorVersion

type MonitorVersion struct {
	Major int    `json:"major"`
	Minor int    `json:"minor"`
	ID    string `json:"_id"`
}

MonitorVersion represents version information for a monitor

type Name

type Name struct {
	Display string `json:"display"`
	Last    string `json:"last"`
	First   string `json:"first"`
}

Name contains name information

type OperatingSystem

type OperatingSystem struct {
	Type    string `json:"type"`
	Version string `json:"version"`
}

OperatingSystem represents operating system information

type PageInfo

type PageInfo struct {
	HasPreviousPage bool   `json:"hasPreviousPage"`
	HasNextPage     bool   `json:"hasNextPage"`
	StartCursor     string `json:"startCursor"`
	EndCursor       string `json:"endCursor"`
}

type PeopleResults

type PeopleResults struct {
	PageInfo PageInfo  `json:"pageInfo"`
	Data     []*Person `json:"data"`
}

PeopleResults contains the actual people data and pagination info

type Person

type Person struct {
	ID           string        `json:"id"`
	EmailAddress string        `json:"emailAddress"`
	Employment   *Employment   `json:"employment,omitempty"`
	Name         *Name         `json:"name,omitempty"`
	GroupIDs     []string      `json:"groupIds,omitempty"`
	Sources      *Sources      `json:"sources,omitempty"`
	TasksSummary *TasksSummary `json:"tasksSummary,omitempty"`
}

Person represents a person in the Vanta system

type Policy

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

Policy represents a policy item

type PolicyItem

type PolicyItem struct {
	ID             string               `json:"id"`
	Name           string               `json:"name"`
	Description    string               `json:"description"`
	Status         string               `json:"status"`
	ApprovedAtDate *time.Time           `json:"approvedAtDate,omitempty"`
	LatestVersion  *PolicyLatestVersion `json:"latestVersion,omitempty"`
}

PolicyItem represents a policy in the Vanta system

type PolicyLatestVersion

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

PolicyLatestVersion represents the latest version information of a policy

type PolicyResults

type PolicyResults struct {
	PageInfo PageInfo      `json:"pageInfo"`
	Data     []*PolicyItem `json:"data"`
}

PolicyResults contains the actual policy data and pagination info

type PolicyStatus

type PolicyStatus string
const (
	PolicyStatusNeedsRemediation PolicyStatus = "NEEDS_REMEDIATION"
	PolicyStatusCompliant        PolicyStatus = "COMPLIANT"
	PolicyStatusNotStarted       PolicyStatus = "NOT_STARTED"
)

type PolicyTask

type PolicyTask struct {
	TaskType           string      `json:"taskType,omitempty"`
	Status             string      `json:"status,omitempty"`
	DueDate            *time.Time  `json:"dueDate,omitempty"`
	CompletionDate     *time.Time  `json:"completionDate,omitempty"`
	Disabled           interface{} `json:"disabled,omitempty"`
	UnacceptedPolicies []Policy    `json:"unacceptedPolicies,omitempty"`
	AcceptedPolicies   []Policy    `json:"acceptedPolicies,omitempty"`
}

PolicyTask represents policy acceptance task details

type RelatedControl

type RelatedControl struct {
	Name         string   `json:"name"`
	SectionNames []string `json:"sectionNames"`
}

RelatedControl represents a control associated to evidence

type RemediationStatusInfo

type RemediationStatusInfo struct {
	Status                 string     `json:"status"`
	SoonestRemediateByDate *time.Time `json:"soonestRemediateByDate"`
	ItemCount              int        `json:"itemCount"`
}

RemediationStatusInfo represents remediation status information

type SecurityCheck

type SecurityCheck struct {
	Outcome string `json:"outcome"`
}

SecurityCheck represents the outcome of a security check

type SourceInfo

type SourceInfo struct {
	IntegrationID string `json:"integrationId,omitempty"`
	ResourceID    string `json:"resourceId,omitempty"`
	Type          string `json:"type,omitempty"`
}

SourceInfo contains information about a data source

type Sources

type Sources struct {
	EmailAddress *SourceInfo `json:"emailAddress,omitempty"`
	Employment   *SourceInfo `json:"employment,omitempty"`
}

Sources contains data source information

type TaskDetail

type TaskDetail struct {
	TaskType       string      `json:"taskType,omitempty"`
	Status         string      `json:"status,omitempty"`
	DueDate        *time.Time  `json:"dueDate,omitempty"`
	CompletionDate *time.Time  `json:"completionDate,omitempty"`
	Disabled       interface{} `json:"disabled,omitempty"`
}

TaskDetail represents a generic task detail

type TaskStatus

type TaskStatus string

type TasksDetails

type TasksDetails struct {
	CompleteTrainings              *TaskDetail `json:"completeTrainings,omitempty"`
	CompleteCustomTasks            *TaskDetail `json:"completeCustomTasks,omitempty"`
	CompleteOffboardingCustomTasks *TaskDetail `json:"completeOffboardingCustomTasks,omitempty"`
	CompleteBackgroundChecks       *TaskDetail `json:"completeBackgroundChecks,omitempty"`
	AcceptPolicies                 *PolicyTask `json:"acceptPolicies,omitempty"`
	InstallDeviceMonitoring        *TaskDetail `json:"installDeviceMonitoring,omitempty"`
}

TasksDetails contains detailed task information

type TasksSummary

type TasksSummary struct {
	CompletionDate *time.Time   `json:"completionDate,omitempty"`
	DueDate        *time.Time   `json:"dueDate,omitempty"`
	Status         string       `json:"status"`
	Details        TasksDetails `json:"details"`
}

TasksSummary contains task completion summary

type Test

type Test struct {
	ID                     string                 `json:"id"`
	Name                   string                 `json:"name"`
	LastTestRunDate        *time.Time             `json:"lastTestRunDate"`
	LatestFlipDate         *time.Time             `json:"latestFlipDate"`
	Description            string                 `json:"description"`
	FailureDescription     string                 `json:"failureDescription"`
	RemediationDescription string                 `json:"remediationDescription"`
	Version                *TestVersion           `json:"version"`
	Category               string                 `json:"category"`
	Integrations           []string               `json:"integrations"`
	Status                 string                 `json:"status"`
	DeactivatedStatusInfo  *TestDeactivatedStatus `json:"deactivatedStatusInfo"`
	RemediationStatusInfo  *TestRemediationStatus `json:"remediationStatusInfo"`
	Owner                  *TestOwner             `json:"owner"`
}

Test represents a comprehensive test/monitor in Vanta with full API details

type TestDeactivatedStatus

type TestDeactivatedStatus struct {
	IsDeactivated     bool       `json:"isDeactivated"`
	DeactivatedReason *string    `json:"deactivatedReason"`
	LastUpdatedDate   *time.Time `json:"lastUpdatedDate"`
}

TestDeactivatedStatus represents deactivation status information

type TestEntitiesResults

type TestEntitiesResults struct {
	Results TestEntitiesResultsData `json:"results"`
}

TestEntitiesResults represents the paginated response for test entities

type TestEntitiesResultsData

type TestEntitiesResultsData struct {
	PageInfo PageInfo      `json:"pageInfo"`
	Data     []*TestEntity `json:"data"`
}

TestEntitiesResultsData represents the data portion of test entities results

type TestEntity

type TestEntity struct {
	ID                string     `json:"id"`
	EntityStatus      string     `json:"entityStatus"`
	DisplayName       string     `json:"displayName"`
	ResponseType      string     `json:"responseType"`
	DeactivatedReason *string    `json:"deactivatedReason"`
	LastUpdatedDate   *time.Time `json:"lastUpdatedDate"`
	CreatedDate       *time.Time `json:"createdDate"`
}

TestEntity represents an entity associated with a test

type TestOwner

type TestOwner struct {
	ID           string `json:"id"`
	EmailAddress string `json:"emailAddress"`
	DisplayName  string `json:"displayName"`
}

TestOwner represents the owner of a test

type TestRemediationStatus

type TestRemediationStatus struct {
	Status                 string     `json:"status"`
	SoonestRemediateByDate *time.Time `json:"soonestRemediateByDate"`
	ItemCount              int        `json:"itemCount"`
}

TestRemediationStatus represents remediation status information

type TestResults

type TestResults struct {
	Results TestResultsData `json:"results"`
}

TestResults represents the paginated response for comprehensive test list

type TestResultsData

type TestResultsData struct {
	PageInfo PageInfo `json:"pageInfo"`
	Data     []*Test  `json:"data"`
}

TestResultsData represents the data portion of test results

type TestVersion

type TestVersion struct {
	Major int    `json:"major"`
	Minor int    `json:"minor"`
	ID    string `json:"_id"`
}

TestVersion represents version information for a test

type Vendor

type Vendor struct {
	ID                               string             `json:"id"`
	Name                             string             `json:"name"`
	WebsiteURL                       string             `json:"websiteUrl"`
	AccountManagerName               *string            `json:"accountManagerName"`
	AccountManagerEmail              *string            `json:"accountManagerEmail"`
	ServicesProvided                 *string            `json:"servicesProvided"`
	AdditionalNotes                  *string            `json:"additionalNotes"`
	SecurityOwnerUserID              string             `json:"securityOwnerUserId"`
	BusinessOwnerUserID              string             `json:"businessOwnerUserId"`
	ContractStartDate                *time.Time         `json:"contractStartDate"`
	ContractRenewalDate              *time.Time         `json:"contractRenewalDate"`
	ContractTerminationDate          *time.Time         `json:"contractTerminationDate"`
	NextSecurityReviewDueDate        *time.Time         `json:"nextSecurityReviewDueDate"`
	LastSecurityReviewCompletionDate *time.Time         `json:"lastSecurityReviewCompletionDate"`
	IsVisibleToAuditors              bool               `json:"isVisibleToAuditors"`
	IsRiskAutoScored                 bool               `json:"isRiskAutoScored"`
	Category                         *VendorCategory    `json:"category"`
	AuthDetails                      *VendorAuthDetails `json:"authDetails"`
	RiskAttributeIDs                 []string           `json:"riskAttributeIds"`
	Status                           string             `json:"status"`
	InherentRiskLevel                string             `json:"inherentRiskLevel"`
	ResidualRiskLevel                string             `json:"residualRiskLevel"`
	VendorHeadquarters               *string            `json:"vendorHeadquarters"`
	ContractAmount                   *float64           `json:"contractAmount"`
	CustomFields                     interface{}        `json:"customFields"`

	// Deprecated fields - not available in REST API but kept for backward compatibility
	Title             string      `json:"title,omitempty"`
	EvidenceRequestID string      `json:"evidenceRequestId,omitempty"`
	Description       string      `json:"description,omitempty"`
	UID               string      `json:"uid,omitempty"`
	AppUploadEnabled  *bool       `json:"appUploadEnabled,omitempty"`
	Restricted        *bool       `json:"restricted,omitempty"`
	DismissedStatus   interface{} `json:"dismissedStatus,omitempty"`
	RenewalMetadata   interface{} `json:"renewalMetadata,omitempty"`
	OrganizationName  string      `json:"organizationName,omitempty"`
}

Vendor represents a vendor/company in the Vanta system

type VendorAuthDetails

type VendorAuthDetails struct {
	Method                 string `json:"method"`
	PasswordMFA            *bool  `json:"passwordMFA"`
	PasswordRequiresNumber *bool  `json:"passwordRequiresNumber"`
	PasswordRequiresSymbol *bool  `json:"passwordRequiresSymbol"`
	PasswordMinimumLength  *int   `json:"passwordMinimumLength"`
}

VendorAuthDetails represents authentication details for a vendor

type VendorCategory

type VendorCategory struct {
	DisplayName string `json:"displayName"`
}

VendorCategory represents the category of a vendor

type VendorResults

type VendorResults struct {
	PageInfo PageInfo  `json:"pageInfo"`
	Data     []*Vendor `json:"data"`
}

VendorResults contains the actual vendor data and pagination info

type Vulnerability added in v2.2.0

type Vulnerability struct {
	ID                 string              `json:"id"`
	Name               string              `json:"name"` // CVE identifier
	Description        string              `json:"description"`
	Severity           string              `json:"severity"` // CRITICAL, HIGH, MEDIUM, LOW
	CVSSSeverityScore  *float64            `json:"cvssSeverityScore,omitempty"`
	RemediateByDate    *time.Time          `json:"remediateByDate,omitempty"` // SLA deadline
	IsFixable          bool                `json:"isFixable"`
	DeactivateMetadata *DeactivateMetadata `json:"deactivateMetadata,omitempty"` // Deactivation/ignored info
	FirstDetectedDate  *time.Time          `json:"firstDetectedDate,omitempty"`
	SourceDetectedDate *time.Time          `json:"sourceDetectedDate,omitempty"` // When source scanner first detected
	LastDetectedDate   *time.Time          `json:"lastDetectedDate,omitempty"`
	IntegrationID      string              `json:"integrationId"`
	TargetID           string              `json:"targetId,omitempty"`
	PackageIdentifier  string              `json:"packageIdentifier,omitempty"`
	VulnerableAssetID  string              `json:"vulnerableAssetId,omitempty"`
	ExternalURL        string              `json:"externalUrl,omitempty"` // Link to CVE details
	VulnerabilityType  string              `json:"vulnerabilityType,omitempty"`
	ScannerScore       *float64            `json:"scannerScore,omitempty"`
	ScanSource         string              `json:"scanSource,omitempty"` // Scanning tool that detected the vulnerability
	RelatedVulns       []string            `json:"relatedVulns,omitempty"`
	RelatedURLs        []string            `json:"relatedUrls,omitempty"`
}

Vulnerability represents a vulnerability in the Vanta system

type VulnerabilityResults added in v2.2.0

type VulnerabilityResults struct {
	PageInfo PageInfo         `json:"pageInfo"`
	Data     []*Vulnerability `json:"data"`
}

VulnerabilityResults contains the actual vulnerability data and pagination info

Jump to

Keyboard shortcuts

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