imperva

package
v0.0.0-...-339583a Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	Sites map[string]SiteDesc
	// contains filtered or unexported fields
}

func NewClient

func NewClient(id string, secret string, logger *slog.Logger, timeout int, ttl int) *Client

func (*Client) DescribeMetrics

func (c *Client) DescribeMetrics(ch chan<- *prometheus.Desc)

func (*Client) GetMetricsByDomain

func (c *Client) GetMetricsByDomain(domain string) ([]*prometheus.Metric, error)

func (*Client) UpdateSiteList

func (c *Client) UpdateSiteList() error

type SiteDesc

type SiteDesc struct {
	SiteId                               int      `json:"site_id"`
	Status                               string   `json:"status"`
	Domain                               string   `json:"domain"`
	AccountId                            int      `json:"account_id"`
	AccelerationLevel                    string   `json:"acceleration_level"`
	AccelerationLevelRaw                 string   `json:"acceleration_level_raw"`
	SiteCreationDate                     int64    `json:"site_creation_date"`
	Ips                                  []string `json:"ips"`
	Active                               string   `json:"active"`
	SupportAllTlsVersions                bool     `json:"support_all_tls_versions"`
	UseWildcardSanInsteadOfFullDomainSan bool     `json:"use_wildcard_san_instead_of_full_domain_san"`
	AddNakedDomainSan                    bool     `json:"add_naked_domain_san"`
	DisplayName                          string   `json:"display_name"`
	Security                             struct {
		Waf struct {
			Rules []struct {
				Action                 string `json:"action,omitempty"`
				ActionText             string `json:"action_text,omitempty"`
				Id                     string `json:"id"`
				Name                   string `json:"name"`
				BlockBadBots           bool   `json:"block_bad_bots,omitempty"`
				ChallengeSuspectedBots bool   `json:"challenge_suspected_bots,omitempty"`
				ActivationMode         string `json:"activation_mode,omitempty"`
				ActivationModeText     string `json:"activation_mode_text,omitempty"`
				DdosTrafficThreshold   int    `json:"ddos_traffic_threshold,omitempty"`
			} `json:"rules"`
		} `json:"waf"`
	} `json:"security"`
	Res        int    `json:"res"`
	ResMessage string `json:"res_message"`
}

type SiteListResponse

type SiteListResponse struct {
	Sites      []SiteDesc `json:"Sites"`
	Res        int        `json:"res"`
	ResMessage string     `json:"res_message"`
	DebugInfo  struct {
		IdInfo string `json:"id-info"`
	} `json:"debug_info"`
}

type StatsSummaryResponse

type StatsSummaryResponse struct {
	RequestsGeoDistSummary SumData   `json:"requests_geo_dist_summary"`
	VisitsDistSummary      []SumData `json:"visits_dist_summary"`
	Res                    int       `json:"res"`
	ResMessage             string    `json:"res_message"`
}

type StatsTimeSeriesResponse

type StatsTimeSeriesResponse struct {
	BandwidthTimeSeries []TSData `json:"bandwidth_timeseries,omitempty"`
	VisitsTimeSeries    []TSData `json:"visits_timeseries,omitempty"`
	HitsTimeSeries      []TSData `json:"hits_timeseries,omitempty"`
	Res                 int      `json:"res"`
	ResMessage          string   `json:"res_message"`
	DebugInfo           struct {
		IdInfo string `json:"id-info"`
	} `json:"debug_info"`
}

type SumData

type SumData struct {
	Data [][]interface{} `json:"data"`
	Id   string          `json:"id"`
	Name string          `json:"name"`
}

type TSData

type TSData struct {
	Data [][]int64 `json:"data"`
	Id   string    `json:"id"`
	Name string    `json:"name"`
}

Jump to

Keyboard shortcuts

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