waap

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdvancedRuleService added in v0.3.0

type AdvancedRuleService struct {
	Options []option.RequestOption
}

AdvancedRuleService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewAdvancedRuleService method instead.

func NewAdvancedRuleService added in v0.3.0

func NewAdvancedRuleService(opts ...option.RequestOption) (r AdvancedRuleService)

NewAdvancedRuleService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*AdvancedRuleService) List added in v0.3.0

Retrieve an advanced rules descriptor

type CustomPageSetListParams added in v0.3.0

type CustomPageSetListParams struct {
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Filter page sets based on their name. Supports '\*' as a wildcard character
	Name param.Opt[string] `query:"name,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Filter page sets based on their IDs
	IDs []int64 `query:"ids,omitzero" json:"-"`
	// Sort the response by given field.
	//
	// Any of "name", "-name", "id", "-id".
	Ordering CustomPageSetListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (CustomPageSetListParams) URLQuery added in v0.3.0

func (r CustomPageSetListParams) URLQuery() (v url.Values, err error)

URLQuery serializes CustomPageSetListParams's query parameters as `url.Values`.

type CustomPageSetListParamsOrdering added in v0.3.0

type CustomPageSetListParamsOrdering string

Sort the response by given field.

const (
	CustomPageSetListParamsOrderingName      CustomPageSetListParamsOrdering = "name"
	CustomPageSetListParamsOrderingMinusName CustomPageSetListParamsOrdering = "-name"
	CustomPageSetListParamsOrderingID        CustomPageSetListParamsOrdering = "id"
	CustomPageSetListParamsOrderingMinusID   CustomPageSetListParamsOrdering = "-id"
)

type CustomPageSetNewParams added in v0.3.0

type CustomPageSetNewParams struct {
	// Name of the custom page set
	Name string `json:"name,required"`
	// List of domain IDs that are associated with this page set
	Domains            []int64                             `json:"domains,omitzero"`
	Block              WaapBlockPageDataParam              `json:"block,omitzero"`
	BlockCsrf          WaapBlockCsrfPageDataParam          `json:"block_csrf,omitzero"`
	Captcha            WaapCaptchaPageDataParam            `json:"captcha,omitzero"`
	CookieDisabled     WaapCookieDisabledPageDataParam     `json:"cookie_disabled,omitzero"`
	Handshake          WaapHandshakePageDataParam          `json:"handshake,omitzero"`
	JavascriptDisabled WaapJavascriptDisabledPageDataParam `json:"javascript_disabled,omitzero"`
	// contains filtered or unexported fields
}

func (CustomPageSetNewParams) MarshalJSON added in v0.3.0

func (r CustomPageSetNewParams) MarshalJSON() (data []byte, err error)

func (*CustomPageSetNewParams) UnmarshalJSON added in v0.3.0

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

type CustomPageSetPreviewParams added in v0.3.0

type CustomPageSetPreviewParams struct {
	// The type of the custom page
	//
	// Any of "block.html", "block_csrf.html", "captcha.html", "cookieDisabled.html",
	// "handshake.html", "javascriptDisabled.html".
	PageType WaapPageType `query:"page_type,omitzero,required" json:"-"`
	// Error message
	Error param.Opt[string] `json:"error,omitzero"`
	// The text to display in the header of the custom page
	Header param.Opt[string] `json:"header,omitzero"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo param.Opt[string] `json:"logo,omitzero"`
	// The text to display in the body of the custom page
	Text param.Opt[string] `json:"text,omitzero"`
	// The text to display in the title of the custom page
	Title param.Opt[string] `json:"title,omitzero"`
	// contains filtered or unexported fields
}

func (CustomPageSetPreviewParams) MarshalJSON added in v0.3.0

func (r CustomPageSetPreviewParams) MarshalJSON() (data []byte, err error)

func (CustomPageSetPreviewParams) URLQuery added in v0.3.0

func (r CustomPageSetPreviewParams) URLQuery() (v url.Values, err error)

URLQuery serializes CustomPageSetPreviewParams's query parameters as `url.Values`.

func (*CustomPageSetPreviewParams) UnmarshalJSON added in v0.3.0

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

type CustomPageSetService added in v0.3.0

type CustomPageSetService struct {
	Options []option.RequestOption
}

CustomPageSetService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewCustomPageSetService method instead.

func NewCustomPageSetService added in v0.3.0

func NewCustomPageSetService(opts ...option.RequestOption) (r CustomPageSetService)

NewCustomPageSetService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*CustomPageSetService) Delete added in v0.3.0

func (r *CustomPageSetService) Delete(ctx context.Context, setID int64, opts ...option.RequestOption) (err error)

Delete a custom page set

func (*CustomPageSetService) Get added in v0.3.0

func (r *CustomPageSetService) Get(ctx context.Context, setID int64, opts ...option.RequestOption) (res *WaapCustomPageSet, err error)

Retrieve a custom page set based on the provided ID

func (*CustomPageSetService) List added in v0.3.0

Retrieve a list of custom page sets available for use

func (*CustomPageSetService) ListAutoPaging added in v0.3.0

Retrieve a list of custom page sets available for use

func (*CustomPageSetService) New added in v0.3.0

Create a custom page set based on the provided data. For any custom page type (block, `block_csrf`, etc) that is not provided the default page will be used.

func (*CustomPageSetService) Preview added in v0.3.0

Allows to preview a custom page without creating it based on the provided type and data

func (*CustomPageSetService) Update added in v0.3.0

func (r *CustomPageSetService) Update(ctx context.Context, setID int64, body CustomPageSetUpdateParams, opts ...option.RequestOption) (err error)

Update a custom page set based on the provided parameters. To update a field, provide the field with the new value. To remove a field, provide it as null. To keep a field unaltered, do not include it in the request. Note: `name` cannot be removed. When updating a custom page, include all the fields that you want it to have. Any field not included will be removed.

type CustomPageSetUpdateParams added in v0.3.0

type CustomPageSetUpdateParams struct {
	// Name of the custom page set
	Name param.Opt[string] `json:"name,omitzero"`
	// List of domain IDs that are associated with this page set
	Domains            []int64                             `json:"domains,omitzero"`
	Block              WaapBlockPageDataParam              `json:"block,omitzero"`
	BlockCsrf          WaapBlockCsrfPageDataParam          `json:"block_csrf,omitzero"`
	Captcha            WaapCaptchaPageDataParam            `json:"captcha,omitzero"`
	CookieDisabled     WaapCookieDisabledPageDataParam     `json:"cookie_disabled,omitzero"`
	Handshake          WaapHandshakePageDataParam          `json:"handshake,omitzero"`
	JavascriptDisabled WaapJavascriptDisabledPageDataParam `json:"javascript_disabled,omitzero"`
	// contains filtered or unexported fields
}

func (CustomPageSetUpdateParams) MarshalJSON added in v0.3.0

func (r CustomPageSetUpdateParams) MarshalJSON() (data []byte, err error)

func (*CustomPageSetUpdateParams) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryGetSettingsResponse added in v0.3.0

type DomainAPIDiscoveryGetSettingsResponse struct {
	// The URL of the API description file. This will be periodically scanned if
	// `descriptionFileScanEnabled` is enabled. Supported formats are YAML and JSON,
	// and it must adhere to OpenAPI versions 2, 3, or 3.1.
	DescriptionFileLocation string `json:"descriptionFileLocation,nullable"`
	// Indicates if periodic scan of the description file is enabled
	DescriptionFileScanEnabled bool `json:"descriptionFileScanEnabled,nullable"`
	// The interval in hours for scanning the description file
	DescriptionFileScanIntervalHours int64 `json:"descriptionFileScanIntervalHours,nullable"`
	// Indicates if traffic scan is enabled. Traffic scan is used to discover
	// undocumented APIs
	TrafficScanEnabled bool `json:"trafficScanEnabled,nullable"`
	// The interval in hours for scanning the traffic
	TrafficScanIntervalHours int64 `json:"trafficScanIntervalHours,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		DescriptionFileLocation          respjson.Field
		DescriptionFileScanEnabled       respjson.Field
		DescriptionFileScanIntervalHours respjson.Field
		TrafficScanEnabled               respjson.Field
		TrafficScanIntervalHours         respjson.Field
		ExtraFields                      map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the API discovery settings

func (DomainAPIDiscoveryGetSettingsResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*DomainAPIDiscoveryGetSettingsResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryScanOpenAPIResponse added in v0.3.0

type DomainAPIDiscoveryScanOpenAPIResponse struct {
	// The task ID
	ID string `json:"id,required" format:"uuid"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the task result ID

func (DomainAPIDiscoveryScanOpenAPIResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*DomainAPIDiscoveryScanOpenAPIResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryScanResultGetParams added in v0.3.0

type DomainAPIDiscoveryScanResultGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainAPIDiscoveryScanResultGetResponse added in v0.3.0

type DomainAPIDiscoveryScanResultGetResponse struct {
	// The scan ID
	ID string `json:"id,required" format:"uuid"`
	// The date and time the scan ended
	EndTime time.Time `json:"end_time,required" format:"date-time"`
	// The message associated with the scan
	Message string `json:"message,required"`
	// The date and time the scan started
	StartTime time.Time `json:"start_time,required" format:"date-time"`
	// The different statuses a task result can have
	//
	// Any of "SUCCESS", "FAILURE", "IN_PROGRESS".
	Status DomainAPIDiscoveryScanResultGetResponseStatus `json:"status,required"`
	// The different types of scans that can be performed
	//
	// Any of "TRAFFIC_SCAN", "API_DESCRIPTION_FILE_SCAN".
	Type DomainAPIDiscoveryScanResultGetResponseType `json:"type,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		EndTime     respjson.Field
		Message     respjson.Field
		StartTime   respjson.Field
		Status      respjson.Field
		Type        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The result of a scan

func (DomainAPIDiscoveryScanResultGetResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*DomainAPIDiscoveryScanResultGetResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryScanResultGetResponseStatus added in v0.3.0

type DomainAPIDiscoveryScanResultGetResponseStatus string

The different statuses a task result can have

const (
	DomainAPIDiscoveryScanResultGetResponseStatusSuccess    DomainAPIDiscoveryScanResultGetResponseStatus = "SUCCESS"
	DomainAPIDiscoveryScanResultGetResponseStatusFailure    DomainAPIDiscoveryScanResultGetResponseStatus = "FAILURE"
	DomainAPIDiscoveryScanResultGetResponseStatusInProgress DomainAPIDiscoveryScanResultGetResponseStatus = "IN_PROGRESS"
)

type DomainAPIDiscoveryScanResultGetResponseType added in v0.3.0

type DomainAPIDiscoveryScanResultGetResponseType string

The different types of scans that can be performed

const (
	DomainAPIDiscoveryScanResultGetResponseTypeTrafficScan            DomainAPIDiscoveryScanResultGetResponseType = "TRAFFIC_SCAN"
	DomainAPIDiscoveryScanResultGetResponseTypeAPIDescriptionFileScan DomainAPIDiscoveryScanResultGetResponseType = "API_DESCRIPTION_FILE_SCAN"
)

type DomainAPIDiscoveryScanResultListParams added in v0.3.0

type DomainAPIDiscoveryScanResultListParams struct {
	// Filter by the message of the scan. Supports '\*' as a wildcard character
	Message param.Opt[string] `query:"message,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// The different statuses a task result can have
	//
	// Any of "SUCCESS", "FAILURE", "IN_PROGRESS".
	Status DomainAPIDiscoveryScanResultListParamsStatus `query:"status,omitzero" json:"-"`
	// The different types of scans that can be performed
	//
	// Any of "TRAFFIC_SCAN", "API_DESCRIPTION_FILE_SCAN".
	Type DomainAPIDiscoveryScanResultListParamsType `query:"type,omitzero" json:"-"`
	// Sort the response by given field.
	//
	// Any of "id", "type", "start_time", "end_time", "status", "message", "-id",
	// "-type", "-start_time", "-end_time", "-status", "-message".
	Ordering DomainAPIDiscoveryScanResultListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAPIDiscoveryScanResultListParams) URLQuery added in v0.3.0

URLQuery serializes DomainAPIDiscoveryScanResultListParams's query parameters as `url.Values`.

type DomainAPIDiscoveryScanResultListParamsOrdering added in v0.3.0

type DomainAPIDiscoveryScanResultListParamsOrdering string

Sort the response by given field.

const (
	DomainAPIDiscoveryScanResultListParamsOrderingID             DomainAPIDiscoveryScanResultListParamsOrdering = "id"
	DomainAPIDiscoveryScanResultListParamsOrderingType           DomainAPIDiscoveryScanResultListParamsOrdering = "type"
	DomainAPIDiscoveryScanResultListParamsOrderingStartTime      DomainAPIDiscoveryScanResultListParamsOrdering = "start_time"
	DomainAPIDiscoveryScanResultListParamsOrderingEndTime        DomainAPIDiscoveryScanResultListParamsOrdering = "end_time"
	DomainAPIDiscoveryScanResultListParamsOrderingStatus         DomainAPIDiscoveryScanResultListParamsOrdering = "status"
	DomainAPIDiscoveryScanResultListParamsOrderingMessage        DomainAPIDiscoveryScanResultListParamsOrdering = "message"
	DomainAPIDiscoveryScanResultListParamsOrderingMinusID        DomainAPIDiscoveryScanResultListParamsOrdering = "-id"
	DomainAPIDiscoveryScanResultListParamsOrderingMinusType      DomainAPIDiscoveryScanResultListParamsOrdering = "-type"
	DomainAPIDiscoveryScanResultListParamsOrderingMinusStartTime DomainAPIDiscoveryScanResultListParamsOrdering = "-start_time"
	DomainAPIDiscoveryScanResultListParamsOrderingMinusEndTime   DomainAPIDiscoveryScanResultListParamsOrdering = "-end_time"
	DomainAPIDiscoveryScanResultListParamsOrderingMinusStatus    DomainAPIDiscoveryScanResultListParamsOrdering = "-status"
	DomainAPIDiscoveryScanResultListParamsOrderingMinusMessage   DomainAPIDiscoveryScanResultListParamsOrdering = "-message"
)

type DomainAPIDiscoveryScanResultListParamsStatus added in v0.3.0

type DomainAPIDiscoveryScanResultListParamsStatus string

The different statuses a task result can have

const (
	DomainAPIDiscoveryScanResultListParamsStatusSuccess    DomainAPIDiscoveryScanResultListParamsStatus = "SUCCESS"
	DomainAPIDiscoveryScanResultListParamsStatusFailure    DomainAPIDiscoveryScanResultListParamsStatus = "FAILURE"
	DomainAPIDiscoveryScanResultListParamsStatusInProgress DomainAPIDiscoveryScanResultListParamsStatus = "IN_PROGRESS"
)

type DomainAPIDiscoveryScanResultListParamsType added in v0.3.0

type DomainAPIDiscoveryScanResultListParamsType string

The different types of scans that can be performed

const (
	DomainAPIDiscoveryScanResultListParamsTypeTrafficScan            DomainAPIDiscoveryScanResultListParamsType = "TRAFFIC_SCAN"
	DomainAPIDiscoveryScanResultListParamsTypeAPIDescriptionFileScan DomainAPIDiscoveryScanResultListParamsType = "API_DESCRIPTION_FILE_SCAN"
)

type DomainAPIDiscoveryScanResultListResponse added in v0.3.0

type DomainAPIDiscoveryScanResultListResponse struct {
	// The scan ID
	ID string `json:"id,required" format:"uuid"`
	// The date and time the scan ended
	EndTime time.Time `json:"end_time,required" format:"date-time"`
	// The message associated with the scan
	Message string `json:"message,required"`
	// The date and time the scan started
	StartTime time.Time `json:"start_time,required" format:"date-time"`
	// The different statuses a task result can have
	//
	// Any of "SUCCESS", "FAILURE", "IN_PROGRESS".
	Status DomainAPIDiscoveryScanResultListResponseStatus `json:"status,required"`
	// The different types of scans that can be performed
	//
	// Any of "TRAFFIC_SCAN", "API_DESCRIPTION_FILE_SCAN".
	Type DomainAPIDiscoveryScanResultListResponseType `json:"type,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		EndTime     respjson.Field
		Message     respjson.Field
		StartTime   respjson.Field
		Status      respjson.Field
		Type        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The result of a scan

func (DomainAPIDiscoveryScanResultListResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*DomainAPIDiscoveryScanResultListResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryScanResultListResponseStatus added in v0.3.0

type DomainAPIDiscoveryScanResultListResponseStatus string

The different statuses a task result can have

const (
	DomainAPIDiscoveryScanResultListResponseStatusSuccess    DomainAPIDiscoveryScanResultListResponseStatus = "SUCCESS"
	DomainAPIDiscoveryScanResultListResponseStatusFailure    DomainAPIDiscoveryScanResultListResponseStatus = "FAILURE"
	DomainAPIDiscoveryScanResultListResponseStatusInProgress DomainAPIDiscoveryScanResultListResponseStatus = "IN_PROGRESS"
)

type DomainAPIDiscoveryScanResultListResponseType added in v0.3.0

type DomainAPIDiscoveryScanResultListResponseType string

The different types of scans that can be performed

const (
	DomainAPIDiscoveryScanResultListResponseTypeTrafficScan            DomainAPIDiscoveryScanResultListResponseType = "TRAFFIC_SCAN"
	DomainAPIDiscoveryScanResultListResponseTypeAPIDescriptionFileScan DomainAPIDiscoveryScanResultListResponseType = "API_DESCRIPTION_FILE_SCAN"
)

type DomainAPIDiscoveryScanResultService added in v0.3.0

type DomainAPIDiscoveryScanResultService struct {
	Options []option.RequestOption
}

DomainAPIDiscoveryScanResultService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainAPIDiscoveryScanResultService method instead.

func NewDomainAPIDiscoveryScanResultService added in v0.3.0

func NewDomainAPIDiscoveryScanResultService(opts ...option.RequestOption) (r DomainAPIDiscoveryScanResultService)

NewDomainAPIDiscoveryScanResultService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainAPIDiscoveryScanResultService) Get added in v0.3.0

Get Scan Result

func (*DomainAPIDiscoveryScanResultService) List added in v0.3.0

Get Scan Results

func (*DomainAPIDiscoveryScanResultService) ListAutoPaging added in v0.3.0

Get Scan Results

type DomainAPIDiscoveryService added in v0.3.0

type DomainAPIDiscoveryService struct {
	Options     []option.RequestOption
	ScanResults DomainAPIDiscoveryScanResultService
}

DomainAPIDiscoveryService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainAPIDiscoveryService method instead.

func NewDomainAPIDiscoveryService added in v0.3.0

func NewDomainAPIDiscoveryService(opts ...option.RequestOption) (r DomainAPIDiscoveryService)

NewDomainAPIDiscoveryService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainAPIDiscoveryService) GetSettings added in v0.3.0

Retrieve the API discovery settings for a domain

func (*DomainAPIDiscoveryService) ScanOpenAPI added in v0.3.0

Scan an API description file hosted online. The file must be in YAML or JSON format and adhere to the OpenAPI specification. The location of the API description file should be specified in the API discovery settings.

func (*DomainAPIDiscoveryService) UpdateSettings added in v0.3.0

Update the API discovery settings for a domain

func (*DomainAPIDiscoveryService) UploadOpenAPI added in v0.3.0

An API description file must adhere to the OpenAPI specification and be written in YAML or JSON format. The file name should be provided as the value for the `file_name` parameter. The contents of the file must be base64 encoded and supplied as the value for the `file_data` parameter.

type DomainAPIDiscoveryUpdateSettingsParams added in v0.3.0

type DomainAPIDiscoveryUpdateSettingsParams struct {
	// The URL of the API description file. This will be periodically scanned if
	// `descriptionFileScanEnabled` is enabled. Supported formats are YAML and JSON,
	// and it must adhere to OpenAPI versions 2, 3, or 3.1.
	DescriptionFileLocation param.Opt[string] `json:"descriptionFileLocation,omitzero"`
	// Indicates if periodic scan of the description file is enabled
	DescriptionFileScanEnabled param.Opt[bool] `json:"descriptionFileScanEnabled,omitzero"`
	// The interval in hours for scanning the description file
	DescriptionFileScanIntervalHours param.Opt[int64] `json:"descriptionFileScanIntervalHours,omitzero"`
	// Indicates if traffic scan is enabled
	TrafficScanEnabled param.Opt[bool] `json:"trafficScanEnabled,omitzero"`
	// The interval in hours for scanning the traffic
	TrafficScanIntervalHours param.Opt[int64] `json:"trafficScanIntervalHours,omitzero"`
	// contains filtered or unexported fields
}

func (DomainAPIDiscoveryUpdateSettingsParams) MarshalJSON added in v0.3.0

func (r DomainAPIDiscoveryUpdateSettingsParams) MarshalJSON() (data []byte, err error)

func (*DomainAPIDiscoveryUpdateSettingsParams) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryUpdateSettingsResponse added in v0.3.0

type DomainAPIDiscoveryUpdateSettingsResponse struct {
	// The URL of the API description file. This will be periodically scanned if
	// `descriptionFileScanEnabled` is enabled. Supported formats are YAML and JSON,
	// and it must adhere to OpenAPI versions 2, 3, or 3.1.
	DescriptionFileLocation string `json:"descriptionFileLocation,nullable"`
	// Indicates if periodic scan of the description file is enabled
	DescriptionFileScanEnabled bool `json:"descriptionFileScanEnabled,nullable"`
	// The interval in hours for scanning the description file
	DescriptionFileScanIntervalHours int64 `json:"descriptionFileScanIntervalHours,nullable"`
	// Indicates if traffic scan is enabled. Traffic scan is used to discover
	// undocumented APIs
	TrafficScanEnabled bool `json:"trafficScanEnabled,nullable"`
	// The interval in hours for scanning the traffic
	TrafficScanIntervalHours int64 `json:"trafficScanIntervalHours,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		DescriptionFileLocation          respjson.Field
		DescriptionFileScanEnabled       respjson.Field
		DescriptionFileScanIntervalHours respjson.Field
		TrafficScanEnabled               respjson.Field
		TrafficScanIntervalHours         respjson.Field
		ExtraFields                      map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the API discovery settings

func (DomainAPIDiscoveryUpdateSettingsResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*DomainAPIDiscoveryUpdateSettingsResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryUploadOpenAPIParams added in v0.3.0

type DomainAPIDiscoveryUploadOpenAPIParams struct {
	// Base64 representation of the description file. Supported formats are YAML and
	// JSON, and it must adhere to OpenAPI versions 2, 3, or 3.1.
	FileData string `json:"file_data,required"`
	// The name of the file
	FileName string `json:"file_name,required"`
	// contains filtered or unexported fields
}

func (DomainAPIDiscoveryUploadOpenAPIParams) MarshalJSON added in v0.3.0

func (r DomainAPIDiscoveryUploadOpenAPIParams) MarshalJSON() (data []byte, err error)

func (*DomainAPIDiscoveryUploadOpenAPIParams) UnmarshalJSON added in v0.3.0

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

type DomainAPIDiscoveryUploadOpenAPIResponse added in v0.3.0

type DomainAPIDiscoveryUploadOpenAPIResponse struct {
	// The task ID
	ID string `json:"id,required" format:"uuid"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the task result ID

func (DomainAPIDiscoveryUploadOpenAPIResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*DomainAPIDiscoveryUploadOpenAPIResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIPathDeleteParams added in v0.3.0

type DomainAPIPathDeleteParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainAPIPathGetParams added in v0.3.0

type DomainAPIPathGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainAPIPathGetResponse added in v0.3.0

type DomainAPIPathGetResponse struct {
	// The path ID
	ID string `json:"id,required" format:"uuid"`
	// An array of api groups associated with the API path
	APIGroups []string `json:"api_groups,required"`
	// The API version
	APIVersion string `json:"api_version,required"`
	// The date and time in ISO 8601 format the API path was first detected.
	FirstDetected time.Time `json:"first_detected,required" format:"date-time"`
	// The different HTTP schemes an API path can have
	//
	// Any of "HTTP", "HTTPS".
	HTTPScheme DomainAPIPathGetResponseHTTPScheme `json:"http_scheme,required"`
	// The date and time in ISO 8601 format the API path was last detected.
	LastDetected time.Time `json:"last_detected,required" format:"date-time"`
	// The different methods an API path can have
	//
	// Any of "GET", "POST", "PUT", "PATCH", "DELETE", "TRACE", "HEAD", "OPTIONS".
	Method DomainAPIPathGetResponseMethod `json:"method,required"`
	// The API path, locations that are saved for resource IDs will be put in curly
	// brackets
	Path string `json:"path,required"`
	// The number of requests for this path in the last 24 hours
	RequestCount int64 `json:"request_count,required"`
	// The different sources an API path can have
	//
	// Any of "API_DESCRIPTION_FILE", "TRAFFIC_SCAN", "USER_DEFINED".
	Source DomainAPIPathGetResponseSource `json:"source,required"`
	// The different statuses an API path can have
	//
	// Any of "CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API".
	Status DomainAPIPathGetResponseStatus `json:"status,required"`
	// An array of tags associated with the API path
	Tags []string `json:"tags,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID            respjson.Field
		APIGroups     respjson.Field
		APIVersion    respjson.Field
		FirstDetected respjson.Field
		HTTPScheme    respjson.Field
		LastDetected  respjson.Field
		Method        respjson.Field
		Path          respjson.Field
		RequestCount  respjson.Field
		Source        respjson.Field
		Status        respjson.Field
		Tags          respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the API path

func (DomainAPIPathGetResponse) RawJSON added in v0.3.0

func (r DomainAPIPathGetResponse) RawJSON() string

Returns the unmodified JSON received from the API

func (*DomainAPIPathGetResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIPathGetResponseHTTPScheme added in v0.3.0

type DomainAPIPathGetResponseHTTPScheme string

The different HTTP schemes an API path can have

const (
	DomainAPIPathGetResponseHTTPSchemeHTTP  DomainAPIPathGetResponseHTTPScheme = "HTTP"
	DomainAPIPathGetResponseHTTPSchemeHTTPS DomainAPIPathGetResponseHTTPScheme = "HTTPS"
)

type DomainAPIPathGetResponseMethod added in v0.3.0

type DomainAPIPathGetResponseMethod string

The different methods an API path can have

const (
	DomainAPIPathGetResponseMethodGet     DomainAPIPathGetResponseMethod = "GET"
	DomainAPIPathGetResponseMethodPost    DomainAPIPathGetResponseMethod = "POST"
	DomainAPIPathGetResponseMethodPut     DomainAPIPathGetResponseMethod = "PUT"
	DomainAPIPathGetResponseMethodPatch   DomainAPIPathGetResponseMethod = "PATCH"
	DomainAPIPathGetResponseMethodDelete  DomainAPIPathGetResponseMethod = "DELETE"
	DomainAPIPathGetResponseMethodTrace   DomainAPIPathGetResponseMethod = "TRACE"
	DomainAPIPathGetResponseMethodHead    DomainAPIPathGetResponseMethod = "HEAD"
	DomainAPIPathGetResponseMethodOptions DomainAPIPathGetResponseMethod = "OPTIONS"
)

type DomainAPIPathGetResponseSource added in v0.3.0

type DomainAPIPathGetResponseSource string

The different sources an API path can have

const (
	DomainAPIPathGetResponseSourceAPIDescriptionFile DomainAPIPathGetResponseSource = "API_DESCRIPTION_FILE"
	DomainAPIPathGetResponseSourceTrafficScan        DomainAPIPathGetResponseSource = "TRAFFIC_SCAN"
	DomainAPIPathGetResponseSourceUserDefined        DomainAPIPathGetResponseSource = "USER_DEFINED"
)

type DomainAPIPathGetResponseStatus added in v0.3.0

type DomainAPIPathGetResponseStatus string

The different statuses an API path can have

const (
	DomainAPIPathGetResponseStatusConfirmedAPI DomainAPIPathGetResponseStatus = "CONFIRMED_API"
	DomainAPIPathGetResponseStatusPotentialAPI DomainAPIPathGetResponseStatus = "POTENTIAL_API"
	DomainAPIPathGetResponseStatusNotAPI       DomainAPIPathGetResponseStatus = "NOT_API"
	DomainAPIPathGetResponseStatusDelistedAPI  DomainAPIPathGetResponseStatus = "DELISTED_API"
)

type DomainAPIPathGroupListResponse added in v0.3.0

type DomainAPIPathGroupListResponse struct {
	// An array of api groups associated with the API path
	APIPathGroups []string `json:"api_path_groups,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		APIPathGroups respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the API path groups

func (DomainAPIPathGroupListResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*DomainAPIPathGroupListResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIPathGroupService added in v0.3.0

type DomainAPIPathGroupService struct {
	Options []option.RequestOption
}

DomainAPIPathGroupService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainAPIPathGroupService method instead.

func NewDomainAPIPathGroupService added in v0.3.0

func NewDomainAPIPathGroupService(opts ...option.RequestOption) (r DomainAPIPathGroupService)

NewDomainAPIPathGroupService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainAPIPathGroupService) List added in v0.3.0

Retrieve a list of API path groups for a specific domain

type DomainAPIPathListParams added in v0.3.0

type DomainAPIPathListParams struct {
	// Filter by the API group associated with the API path
	APIGroup param.Opt[string] `query:"api_group,omitzero" json:"-"`
	// Filter by the API version
	APIVersion param.Opt[string] `query:"api_version,omitzero" json:"-"`
	// Filter by the path. Supports '\*' as a wildcard character
	Path param.Opt[string] `query:"path,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// The different HTTP schemes an API path can have
	//
	// Any of "HTTP", "HTTPS".
	HTTPScheme DomainAPIPathListParamsHTTPScheme `query:"http_scheme,omitzero" json:"-"`
	// Filter by the path ID
	IDs []string `query:"ids,omitzero" format:"uuid" json:"-"`
	// The different methods an API path can have
	//
	// Any of "GET", "POST", "PUT", "PATCH", "DELETE", "TRACE", "HEAD", "OPTIONS".
	Method DomainAPIPathListParamsMethod `query:"method,omitzero" json:"-"`
	// The different sources an API path can have
	//
	// Any of "API_DESCRIPTION_FILE", "TRAFFIC_SCAN", "USER_DEFINED".
	Source DomainAPIPathListParamsSource `query:"source,omitzero" json:"-"`
	// Filter by the status of the discovered API path
	//
	// Any of "CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API".
	Status []string `query:"status,omitzero" json:"-"`
	// Sort the response by given field.
	//
	// Any of "id", "path", "method", "api_version", "http_scheme", "first_detected",
	// "last_detected", "status", "source", "-id", "-path", "-method", "-api_version",
	// "-http_scheme", "-first_detected", "-last_detected", "-status", "-source".
	Ordering DomainAPIPathListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAPIPathListParams) URLQuery added in v0.3.0

func (r DomainAPIPathListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainAPIPathListParams's query parameters as `url.Values`.

type DomainAPIPathListParamsHTTPScheme added in v0.3.0

type DomainAPIPathListParamsHTTPScheme string

The different HTTP schemes an API path can have

const (
	DomainAPIPathListParamsHTTPSchemeHTTP  DomainAPIPathListParamsHTTPScheme = "HTTP"
	DomainAPIPathListParamsHTTPSchemeHTTPS DomainAPIPathListParamsHTTPScheme = "HTTPS"
)

type DomainAPIPathListParamsMethod added in v0.3.0

type DomainAPIPathListParamsMethod string

The different methods an API path can have

const (
	DomainAPIPathListParamsMethodGet     DomainAPIPathListParamsMethod = "GET"
	DomainAPIPathListParamsMethodPost    DomainAPIPathListParamsMethod = "POST"
	DomainAPIPathListParamsMethodPut     DomainAPIPathListParamsMethod = "PUT"
	DomainAPIPathListParamsMethodPatch   DomainAPIPathListParamsMethod = "PATCH"
	DomainAPIPathListParamsMethodDelete  DomainAPIPathListParamsMethod = "DELETE"
	DomainAPIPathListParamsMethodTrace   DomainAPIPathListParamsMethod = "TRACE"
	DomainAPIPathListParamsMethodHead    DomainAPIPathListParamsMethod = "HEAD"
	DomainAPIPathListParamsMethodOptions DomainAPIPathListParamsMethod = "OPTIONS"
)

type DomainAPIPathListParamsOrdering added in v0.3.0

type DomainAPIPathListParamsOrdering string

Sort the response by given field.

const (
	DomainAPIPathListParamsOrderingID                 DomainAPIPathListParamsOrdering = "id"
	DomainAPIPathListParamsOrderingPath               DomainAPIPathListParamsOrdering = "path"
	DomainAPIPathListParamsOrderingMethod             DomainAPIPathListParamsOrdering = "method"
	DomainAPIPathListParamsOrderingAPIVersion         DomainAPIPathListParamsOrdering = "api_version"
	DomainAPIPathListParamsOrderingHTTPScheme         DomainAPIPathListParamsOrdering = "http_scheme"
	DomainAPIPathListParamsOrderingFirstDetected      DomainAPIPathListParamsOrdering = "first_detected"
	DomainAPIPathListParamsOrderingLastDetected       DomainAPIPathListParamsOrdering = "last_detected"
	DomainAPIPathListParamsOrderingStatus             DomainAPIPathListParamsOrdering = "status"
	DomainAPIPathListParamsOrderingSource             DomainAPIPathListParamsOrdering = "source"
	DomainAPIPathListParamsOrderingMinusID            DomainAPIPathListParamsOrdering = "-id"
	DomainAPIPathListParamsOrderingMinusPath          DomainAPIPathListParamsOrdering = "-path"
	DomainAPIPathListParamsOrderingMinusMethod        DomainAPIPathListParamsOrdering = "-method"
	DomainAPIPathListParamsOrderingMinusAPIVersion    DomainAPIPathListParamsOrdering = "-api_version"
	DomainAPIPathListParamsOrderingMinusHTTPScheme    DomainAPIPathListParamsOrdering = "-http_scheme"
	DomainAPIPathListParamsOrderingMinusFirstDetected DomainAPIPathListParamsOrdering = "-first_detected"
	DomainAPIPathListParamsOrderingMinusLastDetected  DomainAPIPathListParamsOrdering = "-last_detected"
	DomainAPIPathListParamsOrderingMinusStatus        DomainAPIPathListParamsOrdering = "-status"
	DomainAPIPathListParamsOrderingMinusSource        DomainAPIPathListParamsOrdering = "-source"
)

type DomainAPIPathListParamsSource added in v0.3.0

type DomainAPIPathListParamsSource string

The different sources an API path can have

const (
	DomainAPIPathListParamsSourceAPIDescriptionFile DomainAPIPathListParamsSource = "API_DESCRIPTION_FILE"
	DomainAPIPathListParamsSourceTrafficScan        DomainAPIPathListParamsSource = "TRAFFIC_SCAN"
	DomainAPIPathListParamsSourceUserDefined        DomainAPIPathListParamsSource = "USER_DEFINED"
)

type DomainAPIPathListResponse added in v0.3.0

type DomainAPIPathListResponse struct {
	// The path ID
	ID string `json:"id,required" format:"uuid"`
	// An array of api groups associated with the API path
	APIGroups []string `json:"api_groups,required"`
	// The API version
	APIVersion string `json:"api_version,required"`
	// The date and time in ISO 8601 format the API path was first detected.
	FirstDetected time.Time `json:"first_detected,required" format:"date-time"`
	// The different HTTP schemes an API path can have
	//
	// Any of "HTTP", "HTTPS".
	HTTPScheme DomainAPIPathListResponseHTTPScheme `json:"http_scheme,required"`
	// The date and time in ISO 8601 format the API path was last detected.
	LastDetected time.Time `json:"last_detected,required" format:"date-time"`
	// The different methods an API path can have
	//
	// Any of "GET", "POST", "PUT", "PATCH", "DELETE", "TRACE", "HEAD", "OPTIONS".
	Method DomainAPIPathListResponseMethod `json:"method,required"`
	// The API path, locations that are saved for resource IDs will be put in curly
	// brackets
	Path string `json:"path,required"`
	// The number of requests for this path in the last 24 hours
	RequestCount int64 `json:"request_count,required"`
	// The different sources an API path can have
	//
	// Any of "API_DESCRIPTION_FILE", "TRAFFIC_SCAN", "USER_DEFINED".
	Source DomainAPIPathListResponseSource `json:"source,required"`
	// The different statuses an API path can have
	//
	// Any of "CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API".
	Status DomainAPIPathListResponseStatus `json:"status,required"`
	// An array of tags associated with the API path
	Tags []string `json:"tags,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID            respjson.Field
		APIGroups     respjson.Field
		APIVersion    respjson.Field
		FirstDetected respjson.Field
		HTTPScheme    respjson.Field
		LastDetected  respjson.Field
		Method        respjson.Field
		Path          respjson.Field
		RequestCount  respjson.Field
		Source        respjson.Field
		Status        respjson.Field
		Tags          respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the API path

func (DomainAPIPathListResponse) RawJSON added in v0.3.0

func (r DomainAPIPathListResponse) RawJSON() string

Returns the unmodified JSON received from the API

func (*DomainAPIPathListResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIPathListResponseHTTPScheme added in v0.3.0

type DomainAPIPathListResponseHTTPScheme string

The different HTTP schemes an API path can have

const (
	DomainAPIPathListResponseHTTPSchemeHTTP  DomainAPIPathListResponseHTTPScheme = "HTTP"
	DomainAPIPathListResponseHTTPSchemeHTTPS DomainAPIPathListResponseHTTPScheme = "HTTPS"
)

type DomainAPIPathListResponseMethod added in v0.3.0

type DomainAPIPathListResponseMethod string

The different methods an API path can have

const (
	DomainAPIPathListResponseMethodGet     DomainAPIPathListResponseMethod = "GET"
	DomainAPIPathListResponseMethodPost    DomainAPIPathListResponseMethod = "POST"
	DomainAPIPathListResponseMethodPut     DomainAPIPathListResponseMethod = "PUT"
	DomainAPIPathListResponseMethodPatch   DomainAPIPathListResponseMethod = "PATCH"
	DomainAPIPathListResponseMethodDelete  DomainAPIPathListResponseMethod = "DELETE"
	DomainAPIPathListResponseMethodTrace   DomainAPIPathListResponseMethod = "TRACE"
	DomainAPIPathListResponseMethodHead    DomainAPIPathListResponseMethod = "HEAD"
	DomainAPIPathListResponseMethodOptions DomainAPIPathListResponseMethod = "OPTIONS"
)

type DomainAPIPathListResponseSource added in v0.3.0

type DomainAPIPathListResponseSource string

The different sources an API path can have

const (
	DomainAPIPathListResponseSourceAPIDescriptionFile DomainAPIPathListResponseSource = "API_DESCRIPTION_FILE"
	DomainAPIPathListResponseSourceTrafficScan        DomainAPIPathListResponseSource = "TRAFFIC_SCAN"
	DomainAPIPathListResponseSourceUserDefined        DomainAPIPathListResponseSource = "USER_DEFINED"
)

type DomainAPIPathListResponseStatus added in v0.3.0

type DomainAPIPathListResponseStatus string

The different statuses an API path can have

const (
	DomainAPIPathListResponseStatusConfirmedAPI DomainAPIPathListResponseStatus = "CONFIRMED_API"
	DomainAPIPathListResponseStatusPotentialAPI DomainAPIPathListResponseStatus = "POTENTIAL_API"
	DomainAPIPathListResponseStatusNotAPI       DomainAPIPathListResponseStatus = "NOT_API"
	DomainAPIPathListResponseStatusDelistedAPI  DomainAPIPathListResponseStatus = "DELISTED_API"
)

type DomainAPIPathNewParams added in v0.3.0

type DomainAPIPathNewParams struct {
	// The different HTTP schemes an API path can have
	//
	// Any of "HTTP", "HTTPS".
	HTTPScheme DomainAPIPathNewParamsHTTPScheme `json:"http_scheme,omitzero,required"`
	// The different methods an API path can have
	//
	// Any of "GET", "POST", "PUT", "PATCH", "DELETE", "TRACE", "HEAD", "OPTIONS".
	Method DomainAPIPathNewParamsMethod `json:"method,omitzero,required"`
	// The API path, locations that are saved for resource IDs will be put in curly
	// brackets
	Path string `json:"path,required"`
	// The API version
	APIVersion param.Opt[string] `json:"api_version,omitzero"`
	// An array of api groups associated with the API path
	APIGroups []string `json:"api_groups,omitzero"`
	// An array of tags associated with the API path
	Tags []string `json:"tags,omitzero"`
	// contains filtered or unexported fields
}

func (DomainAPIPathNewParams) MarshalJSON added in v0.3.0

func (r DomainAPIPathNewParams) MarshalJSON() (data []byte, err error)

func (*DomainAPIPathNewParams) UnmarshalJSON added in v0.3.0

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

type DomainAPIPathNewParamsHTTPScheme added in v0.3.0

type DomainAPIPathNewParamsHTTPScheme string

The different HTTP schemes an API path can have

const (
	DomainAPIPathNewParamsHTTPSchemeHTTP  DomainAPIPathNewParamsHTTPScheme = "HTTP"
	DomainAPIPathNewParamsHTTPSchemeHTTPS DomainAPIPathNewParamsHTTPScheme = "HTTPS"
)

type DomainAPIPathNewParamsMethod added in v0.3.0

type DomainAPIPathNewParamsMethod string

The different methods an API path can have

const (
	DomainAPIPathNewParamsMethodGet     DomainAPIPathNewParamsMethod = "GET"
	DomainAPIPathNewParamsMethodPost    DomainAPIPathNewParamsMethod = "POST"
	DomainAPIPathNewParamsMethodPut     DomainAPIPathNewParamsMethod = "PUT"
	DomainAPIPathNewParamsMethodPatch   DomainAPIPathNewParamsMethod = "PATCH"
	DomainAPIPathNewParamsMethodDelete  DomainAPIPathNewParamsMethod = "DELETE"
	DomainAPIPathNewParamsMethodTrace   DomainAPIPathNewParamsMethod = "TRACE"
	DomainAPIPathNewParamsMethodHead    DomainAPIPathNewParamsMethod = "HEAD"
	DomainAPIPathNewParamsMethodOptions DomainAPIPathNewParamsMethod = "OPTIONS"
)

type DomainAPIPathNewResponse added in v0.3.0

type DomainAPIPathNewResponse struct {
	// The path ID
	ID string `json:"id,required" format:"uuid"`
	// An array of api groups associated with the API path
	APIGroups []string `json:"api_groups,required"`
	// The API version
	APIVersion string `json:"api_version,required"`
	// The date and time in ISO 8601 format the API path was first detected.
	FirstDetected time.Time `json:"first_detected,required" format:"date-time"`
	// The different HTTP schemes an API path can have
	//
	// Any of "HTTP", "HTTPS".
	HTTPScheme DomainAPIPathNewResponseHTTPScheme `json:"http_scheme,required"`
	// The date and time in ISO 8601 format the API path was last detected.
	LastDetected time.Time `json:"last_detected,required" format:"date-time"`
	// The different methods an API path can have
	//
	// Any of "GET", "POST", "PUT", "PATCH", "DELETE", "TRACE", "HEAD", "OPTIONS".
	Method DomainAPIPathNewResponseMethod `json:"method,required"`
	// The API path, locations that are saved for resource IDs will be put in curly
	// brackets
	Path string `json:"path,required"`
	// The number of requests for this path in the last 24 hours
	RequestCount int64 `json:"request_count,required"`
	// The different sources an API path can have
	//
	// Any of "API_DESCRIPTION_FILE", "TRAFFIC_SCAN", "USER_DEFINED".
	Source DomainAPIPathNewResponseSource `json:"source,required"`
	// The different statuses an API path can have
	//
	// Any of "CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API".
	Status DomainAPIPathNewResponseStatus `json:"status,required"`
	// An array of tags associated with the API path
	Tags []string `json:"tags,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID            respjson.Field
		APIGroups     respjson.Field
		APIVersion    respjson.Field
		FirstDetected respjson.Field
		HTTPScheme    respjson.Field
		LastDetected  respjson.Field
		Method        respjson.Field
		Path          respjson.Field
		RequestCount  respjson.Field
		Source        respjson.Field
		Status        respjson.Field
		Tags          respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the API path

func (DomainAPIPathNewResponse) RawJSON added in v0.3.0

func (r DomainAPIPathNewResponse) RawJSON() string

Returns the unmodified JSON received from the API

func (*DomainAPIPathNewResponse) UnmarshalJSON added in v0.3.0

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

type DomainAPIPathNewResponseHTTPScheme added in v0.3.0

type DomainAPIPathNewResponseHTTPScheme string

The different HTTP schemes an API path can have

const (
	DomainAPIPathNewResponseHTTPSchemeHTTP  DomainAPIPathNewResponseHTTPScheme = "HTTP"
	DomainAPIPathNewResponseHTTPSchemeHTTPS DomainAPIPathNewResponseHTTPScheme = "HTTPS"
)

type DomainAPIPathNewResponseMethod added in v0.3.0

type DomainAPIPathNewResponseMethod string

The different methods an API path can have

const (
	DomainAPIPathNewResponseMethodGet     DomainAPIPathNewResponseMethod = "GET"
	DomainAPIPathNewResponseMethodPost    DomainAPIPathNewResponseMethod = "POST"
	DomainAPIPathNewResponseMethodPut     DomainAPIPathNewResponseMethod = "PUT"
	DomainAPIPathNewResponseMethodPatch   DomainAPIPathNewResponseMethod = "PATCH"
	DomainAPIPathNewResponseMethodDelete  DomainAPIPathNewResponseMethod = "DELETE"
	DomainAPIPathNewResponseMethodTrace   DomainAPIPathNewResponseMethod = "TRACE"
	DomainAPIPathNewResponseMethodHead    DomainAPIPathNewResponseMethod = "HEAD"
	DomainAPIPathNewResponseMethodOptions DomainAPIPathNewResponseMethod = "OPTIONS"
)

type DomainAPIPathNewResponseSource added in v0.3.0

type DomainAPIPathNewResponseSource string

The different sources an API path can have

const (
	DomainAPIPathNewResponseSourceAPIDescriptionFile DomainAPIPathNewResponseSource = "API_DESCRIPTION_FILE"
	DomainAPIPathNewResponseSourceTrafficScan        DomainAPIPathNewResponseSource = "TRAFFIC_SCAN"
	DomainAPIPathNewResponseSourceUserDefined        DomainAPIPathNewResponseSource = "USER_DEFINED"
)

type DomainAPIPathNewResponseStatus added in v0.3.0

type DomainAPIPathNewResponseStatus string

The different statuses an API path can have

const (
	DomainAPIPathNewResponseStatusConfirmedAPI DomainAPIPathNewResponseStatus = "CONFIRMED_API"
	DomainAPIPathNewResponseStatusPotentialAPI DomainAPIPathNewResponseStatus = "POTENTIAL_API"
	DomainAPIPathNewResponseStatusNotAPI       DomainAPIPathNewResponseStatus = "NOT_API"
	DomainAPIPathNewResponseStatusDelistedAPI  DomainAPIPathNewResponseStatus = "DELISTED_API"
)

type DomainAPIPathService added in v0.3.0

type DomainAPIPathService struct {
	Options []option.RequestOption
}

DomainAPIPathService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainAPIPathService method instead.

func NewDomainAPIPathService added in v0.3.0

func NewDomainAPIPathService(opts ...option.RequestOption) (r DomainAPIPathService)

NewDomainAPIPathService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainAPIPathService) Delete added in v0.3.0

func (r *DomainAPIPathService) Delete(ctx context.Context, pathID string, body DomainAPIPathDeleteParams, opts ...option.RequestOption) (err error)

Delete a specific API path for a domain

func (*DomainAPIPathService) Get added in v0.3.0

Retrieve a specific API path for a domain

func (*DomainAPIPathService) List added in v0.3.0

Retrieve a list of API paths for a specific domain

func (*DomainAPIPathService) ListAutoPaging added in v0.3.0

Retrieve a list of API paths for a specific domain

func (*DomainAPIPathService) New added in v0.3.0

Create an API path for a domain

func (*DomainAPIPathService) Update added in v0.3.0

func (r *DomainAPIPathService) Update(ctx context.Context, pathID string, params DomainAPIPathUpdateParams, opts ...option.RequestOption) (err error)

Update a specific API path for a domain

type DomainAPIPathUpdateParams added in v0.3.0

type DomainAPIPathUpdateParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The updated API path. When updating the path, variables can be renamed, path
	// parts can be converted to variables and vice versa.
	Path param.Opt[string] `json:"path,omitzero"`
	// An array of api groups associated with the API path
	APIGroups []string `json:"api_groups,omitzero"`
	// The different statuses an API path can have
	//
	// Any of "CONFIRMED_API", "POTENTIAL_API", "NOT_API", "DELISTED_API".
	Status DomainAPIPathUpdateParamsStatus `json:"status,omitzero"`
	// An array of tags associated with the API path
	Tags []string `json:"tags,omitzero"`
	// contains filtered or unexported fields
}

func (DomainAPIPathUpdateParams) MarshalJSON added in v0.3.0

func (r DomainAPIPathUpdateParams) MarshalJSON() (data []byte, err error)

func (*DomainAPIPathUpdateParams) UnmarshalJSON added in v0.3.0

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

type DomainAPIPathUpdateParamsStatus added in v0.3.0

type DomainAPIPathUpdateParamsStatus string

The different statuses an API path can have

const (
	DomainAPIPathUpdateParamsStatusConfirmedAPI DomainAPIPathUpdateParamsStatus = "CONFIRMED_API"
	DomainAPIPathUpdateParamsStatusPotentialAPI DomainAPIPathUpdateParamsStatus = "POTENTIAL_API"
	DomainAPIPathUpdateParamsStatusNotAPI       DomainAPIPathUpdateParamsStatus = "NOT_API"
	DomainAPIPathUpdateParamsStatusDelistedAPI  DomainAPIPathUpdateParamsStatus = "DELISTED_API"
)

type DomainAdvancedRuleDeleteParams added in v0.3.0

type DomainAdvancedRuleDeleteParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainAdvancedRuleGetParams added in v0.3.0

type DomainAdvancedRuleGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainAdvancedRuleListParams added in v0.3.0

type DomainAdvancedRuleListParams struct {
	// Filter rules based on their description. Supports '\*' as a wildcard character.
	Description param.Opt[string] `query:"description,omitzero" json:"-"`
	// Filter rules based on their active status
	Enabled param.Opt[bool] `query:"enabled,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Filter rules based on their name. Supports '\*' as a wildcard character.
	Name param.Opt[string] `query:"name,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Determine the field to order results by
	//
	// Any of "id", "name", "description", "enabled", "action", "phase", "-id",
	// "-name", "-description", "-enabled", "-action", "-phase".
	Ordering DomainAdvancedRuleListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// Filter to refine results by specific actions
	//
	// Any of "allow", "block", "captcha", "handshake", "monitor", "tag".
	Action WaapRuleActionType `query:"action,omitzero" json:"-"`
	// Filter rules based on the WAAP request/response phase for applying the rule. The
	// "access" phase is responsible for modifying the request before it is sent to the
	// origin server. The "`header_filter`" phase is responsible for modifying the HTTP
	// headers of a response before they are sent back to the client. The
	// "`body_filter`" phase is responsible for modifying the body of a response before
	// it is sent back to the client.
	//
	// Any of "access", "header_filter", "body_filter".
	Phase DomainAdvancedRuleListParamsPhase `query:"phase,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAdvancedRuleListParams) URLQuery added in v0.3.0

func (r DomainAdvancedRuleListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainAdvancedRuleListParams's query parameters as `url.Values`.

type DomainAdvancedRuleListParamsOrdering added in v0.3.0

type DomainAdvancedRuleListParamsOrdering string

Determine the field to order results by

const (
	DomainAdvancedRuleListParamsOrderingID               DomainAdvancedRuleListParamsOrdering = "id"
	DomainAdvancedRuleListParamsOrderingName             DomainAdvancedRuleListParamsOrdering = "name"
	DomainAdvancedRuleListParamsOrderingDescription      DomainAdvancedRuleListParamsOrdering = "description"
	DomainAdvancedRuleListParamsOrderingEnabled          DomainAdvancedRuleListParamsOrdering = "enabled"
	DomainAdvancedRuleListParamsOrderingAction           DomainAdvancedRuleListParamsOrdering = "action"
	DomainAdvancedRuleListParamsOrderingPhase            DomainAdvancedRuleListParamsOrdering = "phase"
	DomainAdvancedRuleListParamsOrderingMinusID          DomainAdvancedRuleListParamsOrdering = "-id"
	DomainAdvancedRuleListParamsOrderingMinusName        DomainAdvancedRuleListParamsOrdering = "-name"
	DomainAdvancedRuleListParamsOrderingMinusDescription DomainAdvancedRuleListParamsOrdering = "-description"
	DomainAdvancedRuleListParamsOrderingMinusEnabled     DomainAdvancedRuleListParamsOrdering = "-enabled"
	DomainAdvancedRuleListParamsOrderingMinusAction      DomainAdvancedRuleListParamsOrdering = "-action"
	DomainAdvancedRuleListParamsOrderingMinusPhase       DomainAdvancedRuleListParamsOrdering = "-phase"
)

type DomainAdvancedRuleListParamsPhase added in v0.3.0

type DomainAdvancedRuleListParamsPhase string

Filter rules based on the WAAP request/response phase for applying the rule. The "access" phase is responsible for modifying the request before it is sent to the origin server. The "`header_filter`" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client. The "`body_filter`" phase is responsible for modifying the body of a response before it is sent back to the client.

const (
	DomainAdvancedRuleListParamsPhaseAccess       DomainAdvancedRuleListParamsPhase = "access"
	DomainAdvancedRuleListParamsPhaseHeaderFilter DomainAdvancedRuleListParamsPhase = "header_filter"
	DomainAdvancedRuleListParamsPhaseBodyFilter   DomainAdvancedRuleListParamsPhase = "body_filter"
)

type DomainAdvancedRuleNewParams added in v0.3.0

type DomainAdvancedRuleNewParams struct {
	// The action that a WAAP rule takes when triggered
	Action DomainAdvancedRuleNewParamsAction `json:"action,omitzero,required"`
	// Whether or not the rule is enabled
	Enabled bool `json:"enabled,required"`
	// The name assigned to the rule
	Name string `json:"name,required"`
	// A CEL syntax expression that contains the rule's conditions. Allowed objects
	// are: request, whois, session, response, tags, `user_defined_tags`, `user_agent`,
	// `client_data`. More info can be found here:
	// https://gcore.com/docs/waap/waap-rules/advanced-rules
	Source string `json:"source,required"`
	// The description assigned to the rule
	Description param.Opt[string] `json:"description,omitzero"`
	// The WAAP request/response phase for applying the rule. Default is "access". The
	// "access" phase is responsible for modifying the request before it is sent to the
	// origin server. The "`header_filter`" phase is responsible for modifying the HTTP
	// headers of a response before they are sent back to the client. The
	// "`body_filter`" phase is responsible for modifying the body of a response before
	// it is sent back to the client.
	//
	// Any of "access", "header_filter", "body_filter".
	Phase DomainAdvancedRuleNewParamsPhase `json:"phase,omitzero"`
	// contains filtered or unexported fields
}

func (DomainAdvancedRuleNewParams) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleNewParams) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleNewParams) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleNewParamsAction added in v0.3.0

type DomainAdvancedRuleNewParamsAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,omitzero"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block DomainAdvancedRuleNewParamsActionBlock `json:"block,omitzero"`
	// The WAAP presented the user with a captcha
	Captcha any `json:"captcha,omitzero"`
	// The WAAP performed automatic browser validation
	Handshake any `json:"handshake,omitzero"`
	// The WAAP monitored the request but took no action
	Monitor any `json:"monitor,omitzero"`
	// WAAP tag action gets a list of tags to tag the request scope with
	Tag DomainAdvancedRuleNewParamsActionTag `json:"tag,omitzero"`
	// contains filtered or unexported fields
}

The action that a WAAP rule takes when triggered

func (DomainAdvancedRuleNewParamsAction) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleNewParamsAction) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleNewParamsAction) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleNewParamsActionBlock added in v0.3.0

type DomainAdvancedRuleNewParamsActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration param.Opt[string] `json:"action_duration,omitzero"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,omitzero"`
	// contains filtered or unexported fields
}

WAAP block action behavior could be configured with response status code and action duration.

func (DomainAdvancedRuleNewParamsActionBlock) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleNewParamsActionBlock) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleNewParamsActionBlock) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleNewParamsActionTag added in v0.3.0

type DomainAdvancedRuleNewParamsActionTag struct {
	// The list of user defined tags to tag the request with
	Tags []string `json:"tags,omitzero,required"`
	// contains filtered or unexported fields
}

WAAP tag action gets a list of tags to tag the request scope with

The property Tags is required.

func (DomainAdvancedRuleNewParamsActionTag) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleNewParamsActionTag) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleNewParamsActionTag) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleNewParamsPhase added in v0.3.0

type DomainAdvancedRuleNewParamsPhase string

The WAAP request/response phase for applying the rule. Default is "access". The "access" phase is responsible for modifying the request before it is sent to the origin server. The "`header_filter`" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client. The "`body_filter`" phase is responsible for modifying the body of a response before it is sent back to the client.

const (
	DomainAdvancedRuleNewParamsPhaseAccess       DomainAdvancedRuleNewParamsPhase = "access"
	DomainAdvancedRuleNewParamsPhaseHeaderFilter DomainAdvancedRuleNewParamsPhase = "header_filter"
	DomainAdvancedRuleNewParamsPhaseBodyFilter   DomainAdvancedRuleNewParamsPhase = "body_filter"
)

type DomainAdvancedRuleService added in v0.3.0

type DomainAdvancedRuleService struct {
	Options []option.RequestOption
}

DomainAdvancedRuleService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainAdvancedRuleService method instead.

func NewDomainAdvancedRuleService added in v0.3.0

func NewDomainAdvancedRuleService(opts ...option.RequestOption) (r DomainAdvancedRuleService)

NewDomainAdvancedRuleService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainAdvancedRuleService) Delete added in v0.3.0

Delete an advanced rule

func (*DomainAdvancedRuleService) Get added in v0.3.0

Retrieve a specific advanced rule assigned to a domain

func (*DomainAdvancedRuleService) List added in v0.3.0

Retrieve a list of advanced rules assigned to a domain, offering filter, ordering, and pagination capabilities

func (*DomainAdvancedRuleService) ListAutoPaging added in v0.3.0

Retrieve a list of advanced rules assigned to a domain, offering filter, ordering, and pagination capabilities

func (*DomainAdvancedRuleService) New added in v0.3.0

Create an advanced rule

func (*DomainAdvancedRuleService) Toggle added in v0.3.0

Toggle an advanced rule

func (*DomainAdvancedRuleService) Update added in v0.3.0

Only properties present in the request will be updated

type DomainAdvancedRuleToggleParams added in v0.3.0

type DomainAdvancedRuleToggleParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The advanced rule ID
	RuleID int64 `path:"rule_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainAdvancedRuleUpdateParams added in v0.3.0

type DomainAdvancedRuleUpdateParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The description assigned to the rule
	Description param.Opt[string] `json:"description,omitzero"`
	// Whether or not the rule is enabled
	Enabled param.Opt[bool] `json:"enabled,omitzero"`
	// The name assigned to the rule
	Name param.Opt[string] `json:"name,omitzero"`
	// A CEL syntax expression that contains the rule's conditions. Allowed objects
	// are: request, whois, session, response, tags, `user_defined_tags`, `user_agent`,
	// `client_data`. More info can be found here:
	// https://gcore.com/docs/waap/waap-rules/advanced-rules
	Source param.Opt[string] `json:"source,omitzero"`
	// The action that a WAAP rule takes when triggered
	Action DomainAdvancedRuleUpdateParamsAction `json:"action,omitzero"`
	// The WAAP request/response phase for applying the rule. The "access" phase is
	// responsible for modifying the request before it is sent to the origin server.
	// The "`header_filter`" phase is responsible for modifying the HTTP headers of a
	// response before they are sent back to the client. The "`body_filter`" phase is
	// responsible for modifying the body of a response before it is sent back to the
	// client.
	//
	// Any of "access", "header_filter", "body_filter".
	Phase DomainAdvancedRuleUpdateParamsPhase `json:"phase,omitzero"`
	// contains filtered or unexported fields
}

func (DomainAdvancedRuleUpdateParams) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleUpdateParams) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleUpdateParams) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleUpdateParamsAction added in v0.3.0

type DomainAdvancedRuleUpdateParamsAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,omitzero"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block DomainAdvancedRuleUpdateParamsActionBlock `json:"block,omitzero"`
	// The WAAP presented the user with a captcha
	Captcha any `json:"captcha,omitzero"`
	// The WAAP performed automatic browser validation
	Handshake any `json:"handshake,omitzero"`
	// The WAAP monitored the request but took no action
	Monitor any `json:"monitor,omitzero"`
	// WAAP tag action gets a list of tags to tag the request scope with
	Tag DomainAdvancedRuleUpdateParamsActionTag `json:"tag,omitzero"`
	// contains filtered or unexported fields
}

The action that a WAAP rule takes when triggered

func (DomainAdvancedRuleUpdateParamsAction) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleUpdateParamsAction) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleUpdateParamsAction) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleUpdateParamsActionBlock added in v0.3.0

type DomainAdvancedRuleUpdateParamsActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration param.Opt[string] `json:"action_duration,omitzero"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,omitzero"`
	// contains filtered or unexported fields
}

WAAP block action behavior could be configured with response status code and action duration.

func (DomainAdvancedRuleUpdateParamsActionBlock) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleUpdateParamsActionBlock) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleUpdateParamsActionBlock) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleUpdateParamsActionTag added in v0.3.0

type DomainAdvancedRuleUpdateParamsActionTag struct {
	// The list of user defined tags to tag the request with
	Tags []string `json:"tags,omitzero,required"`
	// contains filtered or unexported fields
}

WAAP tag action gets a list of tags to tag the request scope with

The property Tags is required.

func (DomainAdvancedRuleUpdateParamsActionTag) MarshalJSON added in v0.3.0

func (r DomainAdvancedRuleUpdateParamsActionTag) MarshalJSON() (data []byte, err error)

func (*DomainAdvancedRuleUpdateParamsActionTag) UnmarshalJSON added in v0.3.0

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

type DomainAdvancedRuleUpdateParamsPhase added in v0.3.0

type DomainAdvancedRuleUpdateParamsPhase string

The WAAP request/response phase for applying the rule. The "access" phase is responsible for modifying the request before it is sent to the origin server. The "`header_filter`" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client. The "`body_filter`" phase is responsible for modifying the body of a response before it is sent back to the client.

const (
	DomainAdvancedRuleUpdateParamsPhaseAccess       DomainAdvancedRuleUpdateParamsPhase = "access"
	DomainAdvancedRuleUpdateParamsPhaseHeaderFilter DomainAdvancedRuleUpdateParamsPhase = "header_filter"
	DomainAdvancedRuleUpdateParamsPhaseBodyFilter   DomainAdvancedRuleUpdateParamsPhase = "body_filter"
)

type DomainAnalyticsGetEventStatisticsParams added in v0.3.0

type DomainAnalyticsGetEventStatisticsParams struct {
	// Filter traffic starting from a specified date in ISO 8601 format
	Start time.Time `query:"start,required" format:"date-time" json:"-"`
	// Filter traffic up to a specified end date in ISO 8601 format. If not provided,
	// defaults to the current date and time.
	End param.Opt[time.Time] `query:"end,omitzero" format:"date-time" json:"-"`
	// A list of action names to filter on.
	//
	// Any of "block", "captcha", "handshake", "monitor".
	Action []string `query:"action,omitzero" json:"-"`
	// A list of IPs to filter event statistics.
	IP []string `query:"ip,omitzero" format:"ipvanyaddress" json:"-"`
	// A list of reference IDs to filter event statistics.
	ReferenceID []string `query:"reference_id,omitzero" json:"-"`
	// A list of results to filter event statistics.
	//
	// Any of "passed", "blocked", "monitored", "allowed".
	Result []string `query:"result,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAnalyticsGetEventStatisticsParams) URLQuery added in v0.3.0

URLQuery serializes DomainAnalyticsGetEventStatisticsParams's query parameters as `url.Values`.

type DomainAnalyticsListDDOSAttacksParams added in v0.3.0

type DomainAnalyticsListDDOSAttacksParams struct {
	// Filter attacks up to a specified end date in ISO 8601 format
	EndTime param.Opt[time.Time] `query:"end_time,omitzero" format:"date-time" json:"-"`
	// Filter attacks starting from a specified date in ISO 8601 format
	StartTime param.Opt[time.Time] `query:"start_time,omitzero" format:"date-time" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Sort the response by given field.
	//
	// Any of "start_time", "-start_time", "end_time", "-end_time".
	Ordering DomainAnalyticsListDDOSAttacksParamsOrdering `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAnalyticsListDDOSAttacksParams) URLQuery added in v0.3.0

func (r DomainAnalyticsListDDOSAttacksParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainAnalyticsListDDOSAttacksParams's query parameters as `url.Values`.

type DomainAnalyticsListDDOSAttacksParamsOrdering added in v0.3.0

type DomainAnalyticsListDDOSAttacksParamsOrdering string

Sort the response by given field.

const (
	DomainAnalyticsListDDOSAttacksParamsOrderingStartTime      DomainAnalyticsListDDOSAttacksParamsOrdering = "start_time"
	DomainAnalyticsListDDOSAttacksParamsOrderingMinusStartTime DomainAnalyticsListDDOSAttacksParamsOrdering = "-start_time"
	DomainAnalyticsListDDOSAttacksParamsOrderingEndTime        DomainAnalyticsListDDOSAttacksParamsOrdering = "end_time"
	DomainAnalyticsListDDOSAttacksParamsOrderingMinusEndTime   DomainAnalyticsListDDOSAttacksParamsOrdering = "-end_time"
)

type DomainAnalyticsListDDOSInfoParams added in v0.3.0

type DomainAnalyticsListDDOSInfoParams struct {
	// The identity of the requests to group by
	//
	// Any of "URL", "User-Agent", "IP".
	GroupBy DomainAnalyticsListDDOSInfoParamsGroupBy `query:"group_by,omitzero,required" json:"-"`
	// Filter traffic starting from a specified date in ISO 8601 format
	Start time.Time `query:"start,required" format:"date-time" json:"-"`
	// Filter traffic up to a specified end date in ISO 8601 format. If not provided,
	// defaults to the current date and time.
	End param.Opt[time.Time] `query:"end,omitzero" format:"date-time" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAnalyticsListDDOSInfoParams) URLQuery added in v0.3.0

func (r DomainAnalyticsListDDOSInfoParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainAnalyticsListDDOSInfoParams's query parameters as `url.Values`.

type DomainAnalyticsListDDOSInfoParamsGroupBy added in v0.3.0

type DomainAnalyticsListDDOSInfoParamsGroupBy string

The identity of the requests to group by

const (
	DomainAnalyticsListDDOSInfoParamsGroupByURL       DomainAnalyticsListDDOSInfoParamsGroupBy = "URL"
	DomainAnalyticsListDDOSInfoParamsGroupByUserAgent DomainAnalyticsListDDOSInfoParamsGroupBy = "User-Agent"
	DomainAnalyticsListDDOSInfoParamsGroupByIP        DomainAnalyticsListDDOSInfoParamsGroupBy = "IP"
)

type DomainAnalyticsListEventTrafficParams added in v0.3.0

type DomainAnalyticsListEventTrafficParams struct {
	// Specifies the granularity of the result data.
	//
	// Any of "daily", "hourly", "minutely".
	Resolution WaapResolution `query:"resolution,omitzero,required" json:"-"`
	// Filter traffic starting from a specified date in ISO 8601 format
	Start time.Time `query:"start,required" format:"date-time" json:"-"`
	// Filter traffic up to a specified end date in ISO 8601 format. If not provided,
	// defaults to the current date and time.
	End param.Opt[time.Time] `query:"end,omitzero" format:"date-time" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAnalyticsListEventTrafficParams) URLQuery added in v0.3.0

func (r DomainAnalyticsListEventTrafficParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainAnalyticsListEventTrafficParams's query parameters as `url.Values`.

type DomainAnalyticsRequestGetParams added in v0.3.0

type DomainAnalyticsRequestGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainAnalyticsRequestListParams added in v0.3.0

type DomainAnalyticsRequestListParams struct {
	// Filter traffic starting from a specified date in ISO 8601 format
	Start time.Time `query:"start,required" format:"date-time" json:"-"`
	// Filter traffic up to a specified end date in ISO 8601 format. If not provided,
	// defaults to the current date and time.
	End param.Opt[time.Time] `query:"end,omitzero" format:"date-time" json:"-"`
	// Filter the response by IP.
	IP param.Opt[string] `query:"ip,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Sort the response by given field.
	Ordering param.Opt[string] `query:"ordering,omitzero" json:"-"`
	// Filter the response by reference ID.
	ReferenceID param.Opt[string] `query:"reference_id,omitzero" json:"-"`
	// Filter the response by security rule name.
	SecurityRuleName param.Opt[string] `query:"security_rule_name,omitzero" json:"-"`
	// Filter the response by response code.
	StatusCode param.Opt[int64] `query:"status_code,omitzero" json:"-"`
	// Filter the response by actions.
	//
	// Any of "allow", "block", "captcha", "handshake".
	Actions []string `query:"actions,omitzero" json:"-"`
	// Filter the response by country codes in ISO 3166-1 alpha-2 format.
	Countries []string `query:"countries,omitzero" json:"-"`
	// Filter the response by traffic types.
	TrafficTypes []WaapTrafficType `query:"traffic_types,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainAnalyticsRequestListParams) URLQuery added in v0.3.0

func (r DomainAnalyticsRequestListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainAnalyticsRequestListParams's query parameters as `url.Values`.

type DomainAnalyticsRequestService added in v0.3.0

type DomainAnalyticsRequestService struct {
	Options []option.RequestOption
}

DomainAnalyticsRequestService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainAnalyticsRequestService method instead.

func NewDomainAnalyticsRequestService added in v0.3.0

func NewDomainAnalyticsRequestService(opts ...option.RequestOption) (r DomainAnalyticsRequestService)

NewDomainAnalyticsRequestService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainAnalyticsRequestService) Get added in v0.3.0

Retrieves all the available information for a request that matches a given request id

func (*DomainAnalyticsRequestService) List added in v0.3.0

Retrieve a domain's requests data.

func (*DomainAnalyticsRequestService) ListAutoPaging added in v0.3.0

Retrieve a domain's requests data.

type DomainAnalyticsService added in v0.3.0

type DomainAnalyticsService struct {
	Options  []option.RequestOption
	Requests DomainAnalyticsRequestService
}

DomainAnalyticsService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainAnalyticsService method instead.

func NewDomainAnalyticsService added in v0.3.0

func NewDomainAnalyticsService(opts ...option.RequestOption) (r DomainAnalyticsService)

NewDomainAnalyticsService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainAnalyticsService) GetEventStatistics added in v0.3.0

func (r *DomainAnalyticsService) GetEventStatistics(ctx context.Context, domainID int64, query DomainAnalyticsGetEventStatisticsParams, opts ...option.RequestOption) (res *WaapEventStatistics, err error)

Retrieve an domain's event statistics

func (*DomainAnalyticsService) ListDDOSAttacks added in v0.3.0

Retrieve a domain's DDoS attacks

func (*DomainAnalyticsService) ListDDOSAttacksAutoPaging added in v0.3.0

Retrieve a domain's DDoS attacks

func (*DomainAnalyticsService) ListDDOSInfo added in v0.3.0

Returns the top DDoS counts grouped by URL, User-Agent or IP

func (*DomainAnalyticsService) ListDDOSInfoAutoPaging added in v0.3.0

Returns the top DDoS counts grouped by URL, User-Agent or IP

func (*DomainAnalyticsService) ListEventTraffic added in v0.3.0

func (r *DomainAnalyticsService) ListEventTraffic(ctx context.Context, domainID int64, query DomainAnalyticsListEventTrafficParams, opts ...option.RequestOption) (res *[]WaapTrafficMetrics, err error)

Retrieves a comprehensive report on a domain's traffic statistics based on Clickhouse. The report includes details such as API requests, blocked events, error counts, and many more traffic-related metrics.

type DomainCustomRuleDeleteMultipleParams added in v0.3.0

type DomainCustomRuleDeleteMultipleParams struct {
	// The IDs of the rules to delete
	RuleIDs []int64 `json:"rule_ids,omitzero,required"`
	// contains filtered or unexported fields
}

func (DomainCustomRuleDeleteMultipleParams) MarshalJSON added in v0.3.0

func (r DomainCustomRuleDeleteMultipleParams) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleDeleteMultipleParams) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleDeleteParams added in v0.3.0

type DomainCustomRuleDeleteParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainCustomRuleGetParams added in v0.3.0

type DomainCustomRuleGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainCustomRuleListParams added in v0.3.0

type DomainCustomRuleListParams struct {
	// Filter rules based on their description. Supports '\*' as a wildcard character.
	Description param.Opt[string] `query:"description,omitzero" json:"-"`
	// Filter rules based on their active status
	Enabled param.Opt[bool] `query:"enabled,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Filter rules based on their name. Supports '\*' as a wildcard character.
	Name param.Opt[string] `query:"name,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Determine the field to order results by
	//
	// Any of "id", "name", "description", "enabled", "action", "-id", "-name",
	// "-description", "-enabled", "-action".
	Ordering DomainCustomRuleListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// Filter to refine results by specific actions
	//
	// Any of "allow", "block", "captcha", "handshake", "monitor", "tag".
	Action WaapRuleActionType `query:"action,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainCustomRuleListParams) URLQuery added in v0.3.0

func (r DomainCustomRuleListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainCustomRuleListParams's query parameters as `url.Values`.

type DomainCustomRuleListParamsOrdering added in v0.3.0

type DomainCustomRuleListParamsOrdering string

Determine the field to order results by

const (
	DomainCustomRuleListParamsOrderingID               DomainCustomRuleListParamsOrdering = "id"
	DomainCustomRuleListParamsOrderingName             DomainCustomRuleListParamsOrdering = "name"
	DomainCustomRuleListParamsOrderingDescription      DomainCustomRuleListParamsOrdering = "description"
	DomainCustomRuleListParamsOrderingEnabled          DomainCustomRuleListParamsOrdering = "enabled"
	DomainCustomRuleListParamsOrderingAction           DomainCustomRuleListParamsOrdering = "action"
	DomainCustomRuleListParamsOrderingMinusID          DomainCustomRuleListParamsOrdering = "-id"
	DomainCustomRuleListParamsOrderingMinusName        DomainCustomRuleListParamsOrdering = "-name"
	DomainCustomRuleListParamsOrderingMinusDescription DomainCustomRuleListParamsOrdering = "-description"
	DomainCustomRuleListParamsOrderingMinusEnabled     DomainCustomRuleListParamsOrdering = "-enabled"
	DomainCustomRuleListParamsOrderingMinusAction      DomainCustomRuleListParamsOrdering = "-action"
)

type DomainCustomRuleNewParams added in v0.3.0

type DomainCustomRuleNewParams struct {
	// The action that a WAAP rule takes when triggered
	Action DomainCustomRuleNewParamsAction `json:"action,omitzero,required"`
	// The conditions required for the WAAP engine to trigger the rule. Rules may have
	// between 1 and 5 conditions. All conditions must pass for the rule to trigger
	Conditions []DomainCustomRuleNewParamsCondition `json:"conditions,omitzero,required"`
	// Whether or not the rule is enabled
	Enabled bool `json:"enabled,required"`
	// The name assigned to the rule
	Name string `json:"name,required"`
	// The description assigned to the rule
	Description param.Opt[string] `json:"description,omitzero"`
	// contains filtered or unexported fields
}

func (DomainCustomRuleNewParams) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParams) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParams) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsAction added in v0.3.0

type DomainCustomRuleNewParamsAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,omitzero"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block DomainCustomRuleNewParamsActionBlock `json:"block,omitzero"`
	// The WAAP presented the user with a captcha
	Captcha any `json:"captcha,omitzero"`
	// The WAAP performed automatic browser validation
	Handshake any `json:"handshake,omitzero"`
	// The WAAP monitored the request but took no action
	Monitor any `json:"monitor,omitzero"`
	// WAAP tag action gets a list of tags to tag the request scope with
	Tag DomainCustomRuleNewParamsActionTag `json:"tag,omitzero"`
	// contains filtered or unexported fields
}

The action that a WAAP rule takes when triggered

func (DomainCustomRuleNewParamsAction) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsAction) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsAction) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsActionBlock added in v0.3.0

type DomainCustomRuleNewParamsActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration param.Opt[string] `json:"action_duration,omitzero"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,omitzero"`
	// contains filtered or unexported fields
}

WAAP block action behavior could be configured with response status code and action duration.

func (DomainCustomRuleNewParamsActionBlock) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsActionBlock) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsActionBlock) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsActionTag added in v0.3.0

type DomainCustomRuleNewParamsActionTag struct {
	// The list of user defined tags to tag the request with
	Tags []string `json:"tags,omitzero,required"`
	// contains filtered or unexported fields
}

WAAP tag action gets a list of tags to tag the request scope with

The property Tags is required.

func (DomainCustomRuleNewParamsActionTag) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsActionTag) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsActionTag) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsCondition added in v0.3.0

type DomainCustomRuleNewParamsCondition struct {
	// Match the requested Content-Type
	ContentType DomainCustomRuleNewParamsConditionContentType `json:"content_type,omitzero"`
	// Match the country that the request originated from
	Country DomainCustomRuleNewParamsConditionCountry `json:"country,omitzero"`
	// Match the incoming file extension
	FileExtension DomainCustomRuleNewParamsConditionFileExtension `json:"file_extension,omitzero"`
	// Match an incoming request header
	Header DomainCustomRuleNewParamsConditionHeader `json:"header,omitzero"`
	// Match when an incoming request header is present
	HeaderExists DomainCustomRuleNewParamsConditionHeaderExists `json:"header_exists,omitzero"`
	// Match the incoming HTTP method
	HTTPMethod DomainCustomRuleNewParamsConditionHTTPMethod `json:"http_method,omitzero"`
	// Match the incoming request against a single IP address
	IP DomainCustomRuleNewParamsConditionIP `json:"ip,omitzero"`
	// Match the incoming request against an IP range
	IPRange DomainCustomRuleNewParamsConditionIPRange `json:"ip_range,omitzero"`
	// Match the organization the request originated from, as determined by a WHOIS
	// lookup of the requesting IP
	Organization DomainCustomRuleNewParamsConditionOrganization `json:"organization,omitzero"`
	// Match the type of organization that owns the IP address making an incoming
	// request
	OwnerTypes DomainCustomRuleNewParamsConditionOwnerTypes `json:"owner_types,omitzero"`
	// Match the rate at which requests come in that match certain conditions
	RequestRate DomainCustomRuleNewParamsConditionRequestRate `json:"request_rate,omitzero"`
	// Match a response header
	ResponseHeader DomainCustomRuleNewParamsConditionResponseHeader `json:"response_header,omitzero"`
	// Match when a response header is present
	ResponseHeaderExists DomainCustomRuleNewParamsConditionResponseHeaderExists `json:"response_header_exists,omitzero"`
	// Match the number of dynamic page requests made in a WAAP session
	SessionRequestCount DomainCustomRuleNewParamsConditionSessionRequestCount `json:"session_request_count,omitzero"`
	// Matches requests based on specified tags
	Tags DomainCustomRuleNewParamsConditionTags `json:"tags,omitzero"`
	// Match the incoming request URL
	URL DomainCustomRuleNewParamsConditionURL `json:"url,omitzero"`
	// Match the user agent making the request
	UserAgent DomainCustomRuleNewParamsConditionUserAgent `json:"user_agent,omitzero"`
	// Matches requests based on user-defined tags
	UserDefinedTags DomainCustomRuleNewParamsConditionUserDefinedTags `json:"user_defined_tags,omitzero"`
	// contains filtered or unexported fields
}

The criteria of an incoming web request and the models of the various values those criteria can take

func (DomainCustomRuleNewParamsCondition) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsCondition) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsCondition) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionContentType added in v0.3.0

type DomainCustomRuleNewParamsConditionContentType struct {
	// The list of content types to match against
	ContentType []string `json:"content_type,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the requested Content-Type

The property ContentType is required.

func (DomainCustomRuleNewParamsConditionContentType) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionContentType) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionContentType) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionCountry added in v0.3.0

type DomainCustomRuleNewParamsConditionCountry struct {
	// A list of ISO 3166-1 alpha-2 formatted strings representing the countries to
	// match against
	CountryCode []string `json:"country_code,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the country that the request originated from

The property CountryCode is required.

func (DomainCustomRuleNewParamsConditionCountry) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionCountry) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionCountry) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionFileExtension added in v0.3.0

type DomainCustomRuleNewParamsConditionFileExtension struct {
	// The list of file extensions to match against
	FileExtension []string `json:"file_extension,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming file extension

The property FileExtension is required.

func (DomainCustomRuleNewParamsConditionFileExtension) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionFileExtension) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionFileExtension) UnmarshalJSON added in v0.3.0

type DomainCustomRuleNewParamsConditionHTTPMethod added in v0.3.0

type DomainCustomRuleNewParamsConditionHTTPMethod struct {
	// HTTP methods and descriptions Methods from the following RFCs are all observed:
	//
	// - RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
	// - RFC 5789: PATCH Method for HTTP
	//
	// Any of "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT",
	// "TRACE".
	HTTPMethod string `json:"http_method,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming HTTP method

The property HTTPMethod is required.

func (DomainCustomRuleNewParamsConditionHTTPMethod) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionHTTPMethod) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionHTTPMethod) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionHeader added in v0.3.0

type DomainCustomRuleNewParamsConditionHeader struct {
	// The request header name
	Header string `json:"header,required"`
	// The request header value
	Value string `json:"value,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition for header and value.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match an incoming request header

The properties Header, Value are required.

func (DomainCustomRuleNewParamsConditionHeader) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionHeader) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionHeader) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionHeaderExists added in v0.3.0

type DomainCustomRuleNewParamsConditionHeaderExists struct {
	// The request header name
	Header string `json:"header,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match when an incoming request header is present

The property Header is required.

func (DomainCustomRuleNewParamsConditionHeaderExists) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionHeaderExists) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionHeaderExists) UnmarshalJSON added in v0.3.0

type DomainCustomRuleNewParamsConditionIP added in v0.3.0

type DomainCustomRuleNewParamsConditionIP struct {
	// A single IPv4 or IPv6 address
	IPAddress string `json:"ip_address,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against a single IP address

The property IPAddress is required.

func (DomainCustomRuleNewParamsConditionIP) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionIP) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionIP) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionIPRange added in v0.3.0

type DomainCustomRuleNewParamsConditionIPRange struct {
	// The lower bound IPv4 or IPv6 address to match against
	LowerBound string `json:"lower_bound,required" format:"ipv4"`
	// The upper bound IPv4 or IPv6 address to match against
	UpperBound string `json:"upper_bound,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against an IP range

The properties LowerBound, UpperBound are required.

func (DomainCustomRuleNewParamsConditionIPRange) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionIPRange) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionIPRange) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionOrganization added in v0.3.0

type DomainCustomRuleNewParamsConditionOrganization struct {
	// The organization to match against
	Organization string `json:"organization,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the organization the request originated from, as determined by a WHOIS lookup of the requesting IP

The property Organization is required.

func (DomainCustomRuleNewParamsConditionOrganization) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionOrganization) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionOrganization) UnmarshalJSON added in v0.3.0

type DomainCustomRuleNewParamsConditionOwnerTypes added in v0.3.0

type DomainCustomRuleNewParamsConditionOwnerTypes struct {
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// Match the type of organization that owns the IP address making an incoming
	// request
	//
	// Any of "COMMERCIAL", "EDUCATIONAL", "GOVERNMENT", "HOSTING_SERVICES", "ISP",
	// "MOBILE_NETWORK", "NETWORK", "RESERVED".
	OwnerTypes []string `json:"owner_types,omitzero"`
	// contains filtered or unexported fields
}

Match the type of organization that owns the IP address making an incoming request

func (DomainCustomRuleNewParamsConditionOwnerTypes) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionOwnerTypes) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionOwnerTypes) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionRequestRate added in v0.3.0

type DomainCustomRuleNewParamsConditionRequestRate struct {
	// A regular expression matching the URL path of the incoming request
	PathPattern string `json:"path_pattern,required"`
	// The number of incoming requests over the given time that can trigger a request
	// rate condition
	Requests int64 `json:"requests,required"`
	// The number of seconds that the WAAP measures incoming requests over before
	// triggering a request rate condition
	Time int64 `json:"time,required"`
	// A user-defined tag that can be included in incoming requests and used to trigger
	// a request rate condition
	UserDefinedTag param.Opt[string] `json:"user_defined_tag,omitzero"`
	// Possible HTTP request methods that can trigger a request rate condition
	//
	// Any of "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT",
	// "TRACE".
	HTTPMethods []string `json:"http_methods,omitzero"`
	// A list of source IPs that can trigger a request rate condition
	IPs []string `json:"ips,omitzero" format:"ipv4"`
	// contains filtered or unexported fields
}

Match the rate at which requests come in that match certain conditions

The properties PathPattern, Requests, Time are required.

func (DomainCustomRuleNewParamsConditionRequestRate) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionRequestRate) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionRequestRate) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionResponseHeader added in v0.3.0

type DomainCustomRuleNewParamsConditionResponseHeader struct {
	// The response header name
	Header string `json:"header,required"`
	// The response header value
	Value string `json:"value,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition for header and value.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match a response header

The properties Header, Value are required.

func (DomainCustomRuleNewParamsConditionResponseHeader) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionResponseHeader) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionResponseHeader) UnmarshalJSON added in v0.3.0

type DomainCustomRuleNewParamsConditionResponseHeaderExists added in v0.3.0

type DomainCustomRuleNewParamsConditionResponseHeaderExists struct {
	// The response header name
	Header string `json:"header,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match when a response header is present

The property Header is required.

func (DomainCustomRuleNewParamsConditionResponseHeaderExists) MarshalJSON added in v0.3.0

func (*DomainCustomRuleNewParamsConditionResponseHeaderExists) UnmarshalJSON added in v0.3.0

type DomainCustomRuleNewParamsConditionSessionRequestCount added in v0.3.0

type DomainCustomRuleNewParamsConditionSessionRequestCount struct {
	// The number of dynamic requests in the session
	RequestCount int64 `json:"request_count,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the number of dynamic page requests made in a WAAP session

The property RequestCount is required.

func (DomainCustomRuleNewParamsConditionSessionRequestCount) MarshalJSON added in v0.3.0

func (*DomainCustomRuleNewParamsConditionSessionRequestCount) UnmarshalJSON added in v0.3.0

type DomainCustomRuleNewParamsConditionTags added in v0.3.0

type DomainCustomRuleNewParamsConditionTags struct {
	// A list of tags to match against the request tags
	Tags []string `json:"tags,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Matches requests based on specified tags

The property Tags is required.

func (DomainCustomRuleNewParamsConditionTags) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionTags) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionTags) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionURL added in v0.3.0

type DomainCustomRuleNewParamsConditionURL struct {
	// The pattern to match against the request URL. Constraints depend on
	// `match_type`:
	//
	//   - **Exact/Contains**: plain text matching (e.g., `/admin`, must comply with
	//     `^[\w!\$~:#\[\]@\(\)\\*\+,=\/\-\.\%]+$`).
	//   - **Regex**: a valid regular expression (e.g., `^/upload(/\d+)?/\w+`).
	//     Lookahead/lookbehind constructs are forbidden.
	URL string `json:"url,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition.
	//
	// Any of "Exact", "Contains", "Regex".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request URL

The property URL is required.

func (DomainCustomRuleNewParamsConditionURL) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionURL) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionURL) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionUserAgent added in v0.3.0

type DomainCustomRuleNewParamsConditionUserAgent struct {
	// The user agent value to match
	UserAgent string `json:"user_agent,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match the user agent making the request

The property UserAgent is required.

func (DomainCustomRuleNewParamsConditionUserAgent) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionUserAgent) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionUserAgent) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleNewParamsConditionUserDefinedTags added in v0.3.0

type DomainCustomRuleNewParamsConditionUserDefinedTags struct {
	// A list of user-defined tags to match against the request tags
	Tags []string `json:"tags,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Matches requests based on user-defined tags

The property Tags is required.

func (DomainCustomRuleNewParamsConditionUserDefinedTags) MarshalJSON added in v0.3.0

func (r DomainCustomRuleNewParamsConditionUserDefinedTags) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleNewParamsConditionUserDefinedTags) UnmarshalJSON added in v0.3.0

type DomainCustomRuleService added in v0.3.0

type DomainCustomRuleService struct {
	Options []option.RequestOption
}

DomainCustomRuleService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainCustomRuleService method instead.

func NewDomainCustomRuleService added in v0.3.0

func NewDomainCustomRuleService(opts ...option.RequestOption) (r DomainCustomRuleService)

NewDomainCustomRuleService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainCustomRuleService) Delete added in v0.3.0

Delete a custom rule

func (*DomainCustomRuleService) DeleteMultiple added in v0.3.0

func (r *DomainCustomRuleService) DeleteMultiple(ctx context.Context, domainID int64, body DomainCustomRuleDeleteMultipleParams, opts ...option.RequestOption) (err error)

Delete multiple WAAP rules

func (*DomainCustomRuleService) Get added in v0.3.0

Extracts a specific custom rule assigned to a domain

func (*DomainCustomRuleService) List added in v0.3.0

Extracts a list of custom rules assigned to a domain, offering filter, ordering, and pagination capabilities

func (*DomainCustomRuleService) ListAutoPaging added in v0.3.0

Extracts a list of custom rules assigned to a domain, offering filter, ordering, and pagination capabilities

func (*DomainCustomRuleService) New added in v0.3.0

Create a custom rule

func (*DomainCustomRuleService) Toggle added in v0.3.0

Toggle a custom rule

func (*DomainCustomRuleService) Update added in v0.3.0

Only properties present in the request will be updated

type DomainCustomRuleToggleParams added in v0.3.0

type DomainCustomRuleToggleParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The custom rule ID
	RuleID int64 `path:"rule_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainCustomRuleUpdateParams added in v0.3.0

type DomainCustomRuleUpdateParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The description assigned to the rule
	Description param.Opt[string] `json:"description,omitzero"`
	// Whether or not the rule is enabled
	Enabled param.Opt[bool] `json:"enabled,omitzero"`
	// The name assigned to the rule
	Name param.Opt[string] `json:"name,omitzero"`
	// The action that a WAAP rule takes when triggered
	Action DomainCustomRuleUpdateParamsAction `json:"action,omitzero"`
	// The conditions required for the WAAP engine to trigger the rule. Rules may have
	// between 1 and 5 conditions. All conditions must pass for the rule to trigger
	Conditions []DomainCustomRuleUpdateParamsCondition `json:"conditions,omitzero"`
	// contains filtered or unexported fields
}

func (DomainCustomRuleUpdateParams) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParams) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParams) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsAction added in v0.3.0

type DomainCustomRuleUpdateParamsAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,omitzero"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block DomainCustomRuleUpdateParamsActionBlock `json:"block,omitzero"`
	// The WAAP presented the user with a captcha
	Captcha any `json:"captcha,omitzero"`
	// The WAAP performed automatic browser validation
	Handshake any `json:"handshake,omitzero"`
	// The WAAP monitored the request but took no action
	Monitor any `json:"monitor,omitzero"`
	// WAAP tag action gets a list of tags to tag the request scope with
	Tag DomainCustomRuleUpdateParamsActionTag `json:"tag,omitzero"`
	// contains filtered or unexported fields
}

The action that a WAAP rule takes when triggered

func (DomainCustomRuleUpdateParamsAction) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsAction) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsAction) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsActionBlock added in v0.3.0

type DomainCustomRuleUpdateParamsActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration param.Opt[string] `json:"action_duration,omitzero"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,omitzero"`
	// contains filtered or unexported fields
}

WAAP block action behavior could be configured with response status code and action duration.

func (DomainCustomRuleUpdateParamsActionBlock) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsActionBlock) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsActionBlock) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsActionTag added in v0.3.0

type DomainCustomRuleUpdateParamsActionTag struct {
	// The list of user defined tags to tag the request with
	Tags []string `json:"tags,omitzero,required"`
	// contains filtered or unexported fields
}

WAAP tag action gets a list of tags to tag the request scope with

The property Tags is required.

func (DomainCustomRuleUpdateParamsActionTag) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsActionTag) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsActionTag) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsCondition added in v0.3.0

type DomainCustomRuleUpdateParamsCondition struct {
	// Match the requested Content-Type
	ContentType DomainCustomRuleUpdateParamsConditionContentType `json:"content_type,omitzero"`
	// Match the country that the request originated from
	Country DomainCustomRuleUpdateParamsConditionCountry `json:"country,omitzero"`
	// Match the incoming file extension
	FileExtension DomainCustomRuleUpdateParamsConditionFileExtension `json:"file_extension,omitzero"`
	// Match an incoming request header
	Header DomainCustomRuleUpdateParamsConditionHeader `json:"header,omitzero"`
	// Match when an incoming request header is present
	HeaderExists DomainCustomRuleUpdateParamsConditionHeaderExists `json:"header_exists,omitzero"`
	// Match the incoming HTTP method
	HTTPMethod DomainCustomRuleUpdateParamsConditionHTTPMethod `json:"http_method,omitzero"`
	// Match the incoming request against a single IP address
	IP DomainCustomRuleUpdateParamsConditionIP `json:"ip,omitzero"`
	// Match the incoming request against an IP range
	IPRange DomainCustomRuleUpdateParamsConditionIPRange `json:"ip_range,omitzero"`
	// Match the organization the request originated from, as determined by a WHOIS
	// lookup of the requesting IP
	Organization DomainCustomRuleUpdateParamsConditionOrganization `json:"organization,omitzero"`
	// Match the type of organization that owns the IP address making an incoming
	// request
	OwnerTypes DomainCustomRuleUpdateParamsConditionOwnerTypes `json:"owner_types,omitzero"`
	// Match the rate at which requests come in that match certain conditions
	RequestRate DomainCustomRuleUpdateParamsConditionRequestRate `json:"request_rate,omitzero"`
	// Match a response header
	ResponseHeader DomainCustomRuleUpdateParamsConditionResponseHeader `json:"response_header,omitzero"`
	// Match when a response header is present
	ResponseHeaderExists DomainCustomRuleUpdateParamsConditionResponseHeaderExists `json:"response_header_exists,omitzero"`
	// Match the number of dynamic page requests made in a WAAP session
	SessionRequestCount DomainCustomRuleUpdateParamsConditionSessionRequestCount `json:"session_request_count,omitzero"`
	// Matches requests based on specified tags
	Tags DomainCustomRuleUpdateParamsConditionTags `json:"tags,omitzero"`
	// Match the incoming request URL
	URL DomainCustomRuleUpdateParamsConditionURL `json:"url,omitzero"`
	// Match the user agent making the request
	UserAgent DomainCustomRuleUpdateParamsConditionUserAgent `json:"user_agent,omitzero"`
	// Matches requests based on user-defined tags
	UserDefinedTags DomainCustomRuleUpdateParamsConditionUserDefinedTags `json:"user_defined_tags,omitzero"`
	// contains filtered or unexported fields
}

The criteria of an incoming web request and the models of the various values those criteria can take

func (DomainCustomRuleUpdateParamsCondition) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsCondition) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsCondition) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsConditionContentType added in v0.3.0

type DomainCustomRuleUpdateParamsConditionContentType struct {
	// The list of content types to match against
	ContentType []string `json:"content_type,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the requested Content-Type

The property ContentType is required.

func (DomainCustomRuleUpdateParamsConditionContentType) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionContentType) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionContentType) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionCountry added in v0.3.0

type DomainCustomRuleUpdateParamsConditionCountry struct {
	// A list of ISO 3166-1 alpha-2 formatted strings representing the countries to
	// match against
	CountryCode []string `json:"country_code,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the country that the request originated from

The property CountryCode is required.

func (DomainCustomRuleUpdateParamsConditionCountry) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionCountry) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionCountry) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsConditionFileExtension added in v0.3.0

type DomainCustomRuleUpdateParamsConditionFileExtension struct {
	// The list of file extensions to match against
	FileExtension []string `json:"file_extension,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming file extension

The property FileExtension is required.

func (DomainCustomRuleUpdateParamsConditionFileExtension) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionFileExtension) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionFileExtension) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionHTTPMethod added in v0.3.0

type DomainCustomRuleUpdateParamsConditionHTTPMethod struct {
	// HTTP methods and descriptions Methods from the following RFCs are all observed:
	//
	// - RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
	// - RFC 5789: PATCH Method for HTTP
	//
	// Any of "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT",
	// "TRACE".
	HTTPMethod string `json:"http_method,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming HTTP method

The property HTTPMethod is required.

func (DomainCustomRuleUpdateParamsConditionHTTPMethod) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionHTTPMethod) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionHTTPMethod) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionHeader added in v0.3.0

type DomainCustomRuleUpdateParamsConditionHeader struct {
	// The request header name
	Header string `json:"header,required"`
	// The request header value
	Value string `json:"value,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition for header and value.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match an incoming request header

The properties Header, Value are required.

func (DomainCustomRuleUpdateParamsConditionHeader) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionHeader) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionHeader) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsConditionHeaderExists added in v0.3.0

type DomainCustomRuleUpdateParamsConditionHeaderExists struct {
	// The request header name
	Header string `json:"header,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match when an incoming request header is present

The property Header is required.

func (DomainCustomRuleUpdateParamsConditionHeaderExists) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionHeaderExists) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionHeaderExists) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionIP added in v0.3.0

type DomainCustomRuleUpdateParamsConditionIP struct {
	// A single IPv4 or IPv6 address
	IPAddress string `json:"ip_address,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against a single IP address

The property IPAddress is required.

func (DomainCustomRuleUpdateParamsConditionIP) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionIP) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionIP) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsConditionIPRange added in v0.3.0

type DomainCustomRuleUpdateParamsConditionIPRange struct {
	// The lower bound IPv4 or IPv6 address to match against
	LowerBound string `json:"lower_bound,required" format:"ipv4"`
	// The upper bound IPv4 or IPv6 address to match against
	UpperBound string `json:"upper_bound,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against an IP range

The properties LowerBound, UpperBound are required.

func (DomainCustomRuleUpdateParamsConditionIPRange) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionIPRange) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionIPRange) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsConditionOrganization added in v0.3.0

type DomainCustomRuleUpdateParamsConditionOrganization struct {
	// The organization to match against
	Organization string `json:"organization,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the organization the request originated from, as determined by a WHOIS lookup of the requesting IP

The property Organization is required.

func (DomainCustomRuleUpdateParamsConditionOrganization) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionOrganization) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionOrganization) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionOwnerTypes added in v0.3.0

type DomainCustomRuleUpdateParamsConditionOwnerTypes struct {
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// Match the type of organization that owns the IP address making an incoming
	// request
	//
	// Any of "COMMERCIAL", "EDUCATIONAL", "GOVERNMENT", "HOSTING_SERVICES", "ISP",
	// "MOBILE_NETWORK", "NETWORK", "RESERVED".
	OwnerTypes []string `json:"owner_types,omitzero"`
	// contains filtered or unexported fields
}

Match the type of organization that owns the IP address making an incoming request

func (DomainCustomRuleUpdateParamsConditionOwnerTypes) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionOwnerTypes) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionOwnerTypes) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionRequestRate added in v0.3.0

type DomainCustomRuleUpdateParamsConditionRequestRate struct {
	// A regular expression matching the URL path of the incoming request
	PathPattern string `json:"path_pattern,required"`
	// The number of incoming requests over the given time that can trigger a request
	// rate condition
	Requests int64 `json:"requests,required"`
	// The number of seconds that the WAAP measures incoming requests over before
	// triggering a request rate condition
	Time int64 `json:"time,required"`
	// A user-defined tag that can be included in incoming requests and used to trigger
	// a request rate condition
	UserDefinedTag param.Opt[string] `json:"user_defined_tag,omitzero"`
	// Possible HTTP request methods that can trigger a request rate condition
	//
	// Any of "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT",
	// "TRACE".
	HTTPMethods []string `json:"http_methods,omitzero"`
	// A list of source IPs that can trigger a request rate condition
	IPs []string `json:"ips,omitzero" format:"ipv4"`
	// contains filtered or unexported fields
}

Match the rate at which requests come in that match certain conditions

The properties PathPattern, Requests, Time are required.

func (DomainCustomRuleUpdateParamsConditionRequestRate) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionRequestRate) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionRequestRate) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionResponseHeader added in v0.3.0

type DomainCustomRuleUpdateParamsConditionResponseHeader struct {
	// The response header name
	Header string `json:"header,required"`
	// The response header value
	Value string `json:"value,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition for header and value.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match a response header

The properties Header, Value are required.

func (DomainCustomRuleUpdateParamsConditionResponseHeader) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionResponseHeader) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionResponseHeader) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionResponseHeaderExists added in v0.3.0

type DomainCustomRuleUpdateParamsConditionResponseHeaderExists struct {
	// The response header name
	Header string `json:"header,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match when a response header is present

The property Header is required.

func (DomainCustomRuleUpdateParamsConditionResponseHeaderExists) MarshalJSON added in v0.3.0

func (*DomainCustomRuleUpdateParamsConditionResponseHeaderExists) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionSessionRequestCount added in v0.3.0

type DomainCustomRuleUpdateParamsConditionSessionRequestCount struct {
	// The number of dynamic requests in the session
	RequestCount int64 `json:"request_count,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the number of dynamic page requests made in a WAAP session

The property RequestCount is required.

func (DomainCustomRuleUpdateParamsConditionSessionRequestCount) MarshalJSON added in v0.3.0

func (*DomainCustomRuleUpdateParamsConditionSessionRequestCount) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionTags added in v0.3.0

type DomainCustomRuleUpdateParamsConditionTags struct {
	// A list of tags to match against the request tags
	Tags []string `json:"tags,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Matches requests based on specified tags

The property Tags is required.

func (DomainCustomRuleUpdateParamsConditionTags) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionTags) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionTags) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsConditionURL added in v0.3.0

type DomainCustomRuleUpdateParamsConditionURL struct {
	// The pattern to match against the request URL. Constraints depend on
	// `match_type`:
	//
	//   - **Exact/Contains**: plain text matching (e.g., `/admin`, must comply with
	//     `^[\w!\$~:#\[\]@\(\)\\*\+,=\/\-\.\%]+$`).
	//   - **Regex**: a valid regular expression (e.g., `^/upload(/\d+)?/\w+`).
	//     Lookahead/lookbehind constructs are forbidden.
	URL string `json:"url,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition.
	//
	// Any of "Exact", "Contains", "Regex".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request URL

The property URL is required.

func (DomainCustomRuleUpdateParamsConditionURL) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionURL) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionURL) UnmarshalJSON added in v0.3.0

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

type DomainCustomRuleUpdateParamsConditionUserAgent added in v0.3.0

type DomainCustomRuleUpdateParamsConditionUserAgent struct {
	// The user agent value to match
	UserAgent string `json:"user_agent,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// The type of matching condition.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type,omitzero"`
	// contains filtered or unexported fields
}

Match the user agent making the request

The property UserAgent is required.

func (DomainCustomRuleUpdateParamsConditionUserAgent) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionUserAgent) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionUserAgent) UnmarshalJSON added in v0.3.0

type DomainCustomRuleUpdateParamsConditionUserDefinedTags added in v0.3.0

type DomainCustomRuleUpdateParamsConditionUserDefinedTags struct {
	// A list of user-defined tags to match against the request tags
	Tags []string `json:"tags,omitzero,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Matches requests based on user-defined tags

The property Tags is required.

func (DomainCustomRuleUpdateParamsConditionUserDefinedTags) MarshalJSON added in v0.3.0

func (r DomainCustomRuleUpdateParamsConditionUserDefinedTags) MarshalJSON() (data []byte, err error)

func (*DomainCustomRuleUpdateParamsConditionUserDefinedTags) UnmarshalJSON added in v0.3.0

type DomainFirewallRuleDeleteMultipleParams added in v0.3.0

type DomainFirewallRuleDeleteMultipleParams struct {
	// The IDs of the rules to delete
	RuleIDs []int64 `json:"rule_ids,omitzero,required"`
	// contains filtered or unexported fields
}

func (DomainFirewallRuleDeleteMultipleParams) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleDeleteMultipleParams) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleDeleteMultipleParams) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleDeleteParams added in v0.3.0

type DomainFirewallRuleDeleteParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainFirewallRuleGetParams added in v0.3.0

type DomainFirewallRuleGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainFirewallRuleListParams added in v0.3.0

type DomainFirewallRuleListParams struct {
	// Filter rules based on their description. Supports '\*' as a wildcard character.
	Description param.Opt[string] `query:"description,omitzero" json:"-"`
	// Filter rules based on their active status
	Enabled param.Opt[bool] `query:"enabled,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Filter rules based on their name. Supports '\*' as a wildcard character.
	Name param.Opt[string] `query:"name,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Determine the field to order results by
	//
	// Any of "id", "name", "description", "enabled", "action", "-id", "-name",
	// "-description", "-enabled", "-action".
	Ordering DomainFirewallRuleListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// Filter to refine results by specific firewall actions
	//
	// Any of "allow", "block".
	Action DomainFirewallRuleListParamsAction `query:"action,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainFirewallRuleListParams) URLQuery added in v0.3.0

func (r DomainFirewallRuleListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainFirewallRuleListParams's query parameters as `url.Values`.

type DomainFirewallRuleListParamsAction added in v0.3.0

type DomainFirewallRuleListParamsAction string

Filter to refine results by specific firewall actions

const (
	DomainFirewallRuleListParamsActionAllow DomainFirewallRuleListParamsAction = "allow"
	DomainFirewallRuleListParamsActionBlock DomainFirewallRuleListParamsAction = "block"
)

type DomainFirewallRuleListParamsOrdering added in v0.3.0

type DomainFirewallRuleListParamsOrdering string

Determine the field to order results by

const (
	DomainFirewallRuleListParamsOrderingID               DomainFirewallRuleListParamsOrdering = "id"
	DomainFirewallRuleListParamsOrderingName             DomainFirewallRuleListParamsOrdering = "name"
	DomainFirewallRuleListParamsOrderingDescription      DomainFirewallRuleListParamsOrdering = "description"
	DomainFirewallRuleListParamsOrderingEnabled          DomainFirewallRuleListParamsOrdering = "enabled"
	DomainFirewallRuleListParamsOrderingAction           DomainFirewallRuleListParamsOrdering = "action"
	DomainFirewallRuleListParamsOrderingMinusID          DomainFirewallRuleListParamsOrdering = "-id"
	DomainFirewallRuleListParamsOrderingMinusName        DomainFirewallRuleListParamsOrdering = "-name"
	DomainFirewallRuleListParamsOrderingMinusDescription DomainFirewallRuleListParamsOrdering = "-description"
	DomainFirewallRuleListParamsOrderingMinusEnabled     DomainFirewallRuleListParamsOrdering = "-enabled"
	DomainFirewallRuleListParamsOrderingMinusAction      DomainFirewallRuleListParamsOrdering = "-action"
)

type DomainFirewallRuleNewParams added in v0.3.0

type DomainFirewallRuleNewParams struct {
	// The action that a firewall rule takes when triggered
	Action DomainFirewallRuleNewParamsAction `json:"action,omitzero,required"`
	// The condition required for the WAAP engine to trigger the rule.
	Conditions []DomainFirewallRuleNewParamsCondition `json:"conditions,omitzero,required"`
	// Whether or not the rule is enabled
	Enabled bool `json:"enabled,required"`
	// The name assigned to the rule
	Name string `json:"name,required"`
	// The description assigned to the rule
	Description param.Opt[string] `json:"description,omitzero"`
	// contains filtered or unexported fields
}

func (DomainFirewallRuleNewParams) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleNewParams) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleNewParams) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleNewParamsAction added in v0.3.0

type DomainFirewallRuleNewParamsAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,omitzero"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block DomainFirewallRuleNewParamsActionBlock `json:"block,omitzero"`
	// contains filtered or unexported fields
}

The action that a firewall rule takes when triggered

func (DomainFirewallRuleNewParamsAction) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleNewParamsAction) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleNewParamsAction) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleNewParamsActionBlock added in v0.3.0

type DomainFirewallRuleNewParamsActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration param.Opt[string] `json:"action_duration,omitzero"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,omitzero"`
	// contains filtered or unexported fields
}

WAAP block action behavior could be configured with response status code and action duration.

func (DomainFirewallRuleNewParamsActionBlock) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleNewParamsActionBlock) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleNewParamsActionBlock) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleNewParamsCondition added in v0.3.0

type DomainFirewallRuleNewParamsCondition struct {
	// Match the incoming request against a single IP address
	IP DomainFirewallRuleNewParamsConditionIP `json:"ip,omitzero"`
	// Match the incoming request against an IP range
	IPRange DomainFirewallRuleNewParamsConditionIPRange `json:"ip_range,omitzero"`
	// contains filtered or unexported fields
}

The criteria of an incoming web request and the models of the various values those criteria can take

func (DomainFirewallRuleNewParamsCondition) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleNewParamsCondition) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleNewParamsCondition) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleNewParamsConditionIP added in v0.3.0

type DomainFirewallRuleNewParamsConditionIP struct {
	// A single IPv4 or IPv6 address
	IPAddress string `json:"ip_address,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against a single IP address

The property IPAddress is required.

func (DomainFirewallRuleNewParamsConditionIP) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleNewParamsConditionIP) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleNewParamsConditionIP) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleNewParamsConditionIPRange added in v0.3.0

type DomainFirewallRuleNewParamsConditionIPRange struct {
	// The lower bound IPv4 or IPv6 address to match against
	LowerBound string `json:"lower_bound,required" format:"ipv4"`
	// The upper bound IPv4 or IPv6 address to match against
	UpperBound string `json:"upper_bound,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against an IP range

The properties LowerBound, UpperBound are required.

func (DomainFirewallRuleNewParamsConditionIPRange) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleNewParamsConditionIPRange) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleNewParamsConditionIPRange) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleService added in v0.3.0

type DomainFirewallRuleService struct {
	Options []option.RequestOption
}

DomainFirewallRuleService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainFirewallRuleService method instead.

func NewDomainFirewallRuleService added in v0.3.0

func NewDomainFirewallRuleService(opts ...option.RequestOption) (r DomainFirewallRuleService)

NewDomainFirewallRuleService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainFirewallRuleService) Delete added in v0.3.0

Delete a firewall rule

func (*DomainFirewallRuleService) DeleteMultiple added in v0.3.0

Delete multiple WAAP rules

func (*DomainFirewallRuleService) Get added in v0.3.0

Extracts a specific firewall rule assigned to a domain

func (*DomainFirewallRuleService) List added in v0.3.0

Extracts a list of firewall rules assigned to a domain, offering filter, ordering, and pagination capabilities

func (*DomainFirewallRuleService) ListAutoPaging added in v0.3.0

Extracts a list of firewall rules assigned to a domain, offering filter, ordering, and pagination capabilities

func (*DomainFirewallRuleService) New added in v0.3.0

Create a firewall rule

func (*DomainFirewallRuleService) Toggle added in v0.3.0

Toggle a firewall rule

func (*DomainFirewallRuleService) Update added in v0.3.0

Only properties present in the request will be updated

type DomainFirewallRuleToggleParams added in v0.3.0

type DomainFirewallRuleToggleParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The firewall rule ID
	RuleID int64 `path:"rule_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainFirewallRuleUpdateParams added in v0.3.0

type DomainFirewallRuleUpdateParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The description assigned to the rule
	Description param.Opt[string] `json:"description,omitzero"`
	// Whether or not the rule is enabled
	Enabled param.Opt[bool] `json:"enabled,omitzero"`
	// The name assigned to the rule
	Name param.Opt[string] `json:"name,omitzero"`
	// The action that a firewall rule takes when triggered
	Action DomainFirewallRuleUpdateParamsAction `json:"action,omitzero"`
	// The condition required for the WAAP engine to trigger the rule.
	Conditions []DomainFirewallRuleUpdateParamsCondition `json:"conditions,omitzero"`
	// contains filtered or unexported fields
}

func (DomainFirewallRuleUpdateParams) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleUpdateParams) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleUpdateParams) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleUpdateParamsAction added in v0.3.0

type DomainFirewallRuleUpdateParamsAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,omitzero"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block DomainFirewallRuleUpdateParamsActionBlock `json:"block,omitzero"`
	// contains filtered or unexported fields
}

The action that a firewall rule takes when triggered

func (DomainFirewallRuleUpdateParamsAction) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleUpdateParamsAction) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleUpdateParamsAction) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleUpdateParamsActionBlock added in v0.3.0

type DomainFirewallRuleUpdateParamsActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration param.Opt[string] `json:"action_duration,omitzero"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,omitzero"`
	// contains filtered or unexported fields
}

WAAP block action behavior could be configured with response status code and action duration.

func (DomainFirewallRuleUpdateParamsActionBlock) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleUpdateParamsActionBlock) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleUpdateParamsActionBlock) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleUpdateParamsCondition added in v0.3.0

type DomainFirewallRuleUpdateParamsCondition struct {
	// Match the incoming request against a single IP address
	IP DomainFirewallRuleUpdateParamsConditionIP `json:"ip,omitzero"`
	// Match the incoming request against an IP range
	IPRange DomainFirewallRuleUpdateParamsConditionIPRange `json:"ip_range,omitzero"`
	// contains filtered or unexported fields
}

The criteria of an incoming web request and the models of the various values those criteria can take

func (DomainFirewallRuleUpdateParamsCondition) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleUpdateParamsCondition) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleUpdateParamsCondition) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleUpdateParamsConditionIP added in v0.3.0

type DomainFirewallRuleUpdateParamsConditionIP struct {
	// A single IPv4 or IPv6 address
	IPAddress string `json:"ip_address,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against a single IP address

The property IPAddress is required.

func (DomainFirewallRuleUpdateParamsConditionIP) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleUpdateParamsConditionIP) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleUpdateParamsConditionIP) UnmarshalJSON added in v0.3.0

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

type DomainFirewallRuleUpdateParamsConditionIPRange added in v0.3.0

type DomainFirewallRuleUpdateParamsConditionIPRange struct {
	// The lower bound IPv4 or IPv6 address to match against
	LowerBound string `json:"lower_bound,required" format:"ipv4"`
	// The upper bound IPv4 or IPv6 address to match against
	UpperBound string `json:"upper_bound,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation param.Opt[bool] `json:"negation,omitzero"`
	// contains filtered or unexported fields
}

Match the incoming request against an IP range

The properties LowerBound, UpperBound are required.

func (DomainFirewallRuleUpdateParamsConditionIPRange) MarshalJSON added in v0.3.0

func (r DomainFirewallRuleUpdateParamsConditionIPRange) MarshalJSON() (data []byte, err error)

func (*DomainFirewallRuleUpdateParamsConditionIPRange) UnmarshalJSON added in v0.3.0

type DomainInsightGetParams added in v0.3.0

type DomainInsightGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainInsightListParams added in v0.3.0

type DomainInsightListParams struct {
	// The description of the insight. Supports '\*' as a wildcard.
	Description param.Opt[string] `query:"description,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// The ID of the insight
	ID []string `query:"id,omitzero" format:"uuid" json:"-"`
	// The type of the insight
	InsightType []string `query:"insight_type,omitzero" json:"-"`
	// The status of the insight
	Status []WaapInsightStatus `query:"status,omitzero" json:"-"`
	// Sort the response by given field.
	//
	// Any of "id", "-id", "insight_type", "-insight_type", "first_seen",
	// "-first_seen", "last_seen", "-last_seen", "last_status_change",
	// "-last_status_change", "status", "-status".
	Ordering WaapInsightSortBy `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainInsightListParams) URLQuery added in v0.3.0

func (r DomainInsightListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainInsightListParams's query parameters as `url.Values`.

type DomainInsightReplaceParams added in v0.3.0

type DomainInsightReplaceParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The different statuses an insight can have
	//
	// Any of "OPEN", "ACKED", "CLOSED".
	Status WaapInsightStatus `json:"status,omitzero,required"`
	// contains filtered or unexported fields
}

func (DomainInsightReplaceParams) MarshalJSON added in v0.3.0

func (r DomainInsightReplaceParams) MarshalJSON() (data []byte, err error)

func (*DomainInsightReplaceParams) UnmarshalJSON added in v0.3.0

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

type DomainInsightService added in v0.3.0

type DomainInsightService struct {
	Options []option.RequestOption
}

DomainInsightService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainInsightService method instead.

func NewDomainInsightService added in v0.3.0

func NewDomainInsightService(opts ...option.RequestOption) (r DomainInsightService)

NewDomainInsightService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainInsightService) Get added in v0.3.0

func (r *DomainInsightService) Get(ctx context.Context, insightID string, query DomainInsightGetParams, opts ...option.RequestOption) (res *WaapInsight, err error)

Retrieve a specific insight for a specific domain.

func (*DomainInsightService) List added in v0.3.0

Retrieve a list of insights for a specific domain.

func (*DomainInsightService) ListAutoPaging added in v0.3.0

Retrieve a list of insights for a specific domain.

func (*DomainInsightService) Replace added in v0.3.0

func (r *DomainInsightService) Replace(ctx context.Context, insightID string, params DomainInsightReplaceParams, opts ...option.RequestOption) (res *WaapInsight, err error)

Update the status of an insight for a specific domain.

type DomainInsightSilenceDeleteParams added in v0.3.0

type DomainInsightSilenceDeleteParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainInsightSilenceGetParams added in v0.3.0

type DomainInsightSilenceGetParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainInsightSilenceListParams added in v0.3.0

type DomainInsightSilenceListParams struct {
	// The author of the insight silence
	Author param.Opt[string] `query:"author,omitzero" json:"-"`
	// The comment of the insight silence
	Comment param.Opt[string] `query:"comment,omitzero" json:"-"`
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// The ID of the insight silence
	ID []string `query:"id,omitzero" format:"uuid" json:"-"`
	// The type of the insight silence
	InsightType []string `query:"insight_type,omitzero" json:"-"`
	// Sort the response by given field.
	//
	// Any of "id", "-id", "insight_type", "-insight_type", "comment", "-comment",
	// "author", "-author", "expire_at", "-expire_at".
	Ordering WaapInsightSilenceSortBy `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainInsightSilenceListParams) URLQuery added in v0.3.0

func (r DomainInsightSilenceListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainInsightSilenceListParams's query parameters as `url.Values`.

type DomainInsightSilenceNewParams added in v0.3.0

type DomainInsightSilenceNewParams struct {
	// The author of the silence
	Author string `json:"author,required"`
	// A comment explaining the reason for the silence
	Comment string `json:"comment,required"`
	// The slug of the insight type
	InsightType string `json:"insight_type,required"`
	// A hash table of label names and values that apply to the insight silence
	Labels map[string]string `json:"labels,omitzero,required"`
	// The date and time the silence expires in ISO 8601 format
	ExpireAt param.Opt[time.Time] `json:"expire_at,omitzero" format:"date-time"`
	// contains filtered or unexported fields
}

func (DomainInsightSilenceNewParams) MarshalJSON added in v0.3.0

func (r DomainInsightSilenceNewParams) MarshalJSON() (data []byte, err error)

func (*DomainInsightSilenceNewParams) UnmarshalJSON added in v0.3.0

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

type DomainInsightSilenceService added in v0.3.0

type DomainInsightSilenceService struct {
	Options []option.RequestOption
}

DomainInsightSilenceService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainInsightSilenceService method instead.

func NewDomainInsightSilenceService added in v0.3.0

func NewDomainInsightSilenceService(opts ...option.RequestOption) (r DomainInsightSilenceService)

NewDomainInsightSilenceService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainInsightSilenceService) Delete added in v0.3.0

Delete an insight silence for a specific domain.

func (*DomainInsightSilenceService) Get added in v0.3.0

Retrieve a specific insight silence for a specific domain

func (*DomainInsightSilenceService) List added in v0.3.0

Retrieve a list of insight silences for a specific domain

func (*DomainInsightSilenceService) ListAutoPaging added in v0.3.0

Retrieve a list of insight silences for a specific domain

func (*DomainInsightSilenceService) New added in v0.3.0

Create a new insight silence for a specified domain. Insight silences help in temporarily disabling certain insights based on specific criteria.

func (*DomainInsightSilenceService) Update added in v0.3.0

Update an insight silence for a specific domain.

type DomainInsightSilenceUpdateParams added in v0.3.0

type DomainInsightSilenceUpdateParams struct {
	// The date and time the silence expires in ISO 8601 format
	ExpireAt param.Opt[time.Time] `json:"expire_at,omitzero,required" format:"date-time"`
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// The author of the silence
	Author string `json:"author,required"`
	// A comment explaining the reason for the silence
	Comment string `json:"comment,required"`
	// A hash table of label names and values that apply to the insight silence
	Labels map[string]string `json:"labels,omitzero"`
	// contains filtered or unexported fields
}

func (DomainInsightSilenceUpdateParams) MarshalJSON added in v0.3.0

func (r DomainInsightSilenceUpdateParams) MarshalJSON() (data []byte, err error)

func (*DomainInsightSilenceUpdateParams) UnmarshalJSON added in v0.3.0

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

type DomainListParams

type DomainListParams struct {
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Filter domains based on the domain name. Supports '\*' as a wildcard character
	Name param.Opt[string] `query:"name,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Filter domains based on their IDs
	IDs []int64 `query:"ids,omitzero" json:"-"`
	// Sort the response by given field.
	//
	// Any of "id", "name", "status", "created_at", "-id", "-name", "-status",
	// "-created_at".
	Ordering DomainListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// The different statuses a domain can have
	//
	// Any of "active", "bypass", "monitor", "locked".
	Status WaapDomainStatus `query:"status,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (DomainListParams) URLQuery

func (r DomainListParams) URLQuery() (v url.Values, err error)

URLQuery serializes DomainListParams's query parameters as `url.Values`.

type DomainListParamsOrdering

type DomainListParamsOrdering string

Sort the response by given field.

const (
	DomainListParamsOrderingID             DomainListParamsOrdering = "id"
	DomainListParamsOrderingName           DomainListParamsOrdering = "name"
	DomainListParamsOrderingStatus         DomainListParamsOrdering = "status"
	DomainListParamsOrderingCreatedAt      DomainListParamsOrdering = "created_at"
	DomainListParamsOrderingMinusID        DomainListParamsOrdering = "-id"
	DomainListParamsOrderingMinusName      DomainListParamsOrdering = "-name"
	DomainListParamsOrderingMinusStatus    DomainListParamsOrdering = "-status"
	DomainListParamsOrderingMinusCreatedAt DomainListParamsOrdering = "-created_at"
)

type DomainPolicyService added in v0.3.0

type DomainPolicyService struct {
	Options []option.RequestOption
}

DomainPolicyService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainPolicyService method instead.

func NewDomainPolicyService added in v0.3.0

func NewDomainPolicyService(opts ...option.RequestOption) (r DomainPolicyService)

NewDomainPolicyService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainPolicyService) Toggle added in v0.3.0

func (r *DomainPolicyService) Toggle(ctx context.Context, policyID string, body DomainPolicyToggleParams, opts ...option.RequestOption) (res *WaapPolicyMode, err error)

Modify the activation state of a policy associated with a domain

type DomainPolicyToggleParams added in v0.3.0

type DomainPolicyToggleParams struct {
	// The domain ID
	DomainID int64 `path:"domain_id,required" json:"-"`
	// contains filtered or unexported fields
}

type DomainService

type DomainService struct {
	Options         []option.RequestOption
	Settings        DomainSettingService
	APIPaths        DomainAPIPathService
	APIPathGroups   DomainAPIPathGroupService
	APIDiscovery    DomainAPIDiscoveryService
	Insights        DomainInsightService
	InsightSilences DomainInsightSilenceService
	Policies        DomainPolicyService
	Analytics       DomainAnalyticsService
	CustomRules     DomainCustomRuleService
	FirewallRules   DomainFirewallRuleService
	AdvancedRules   DomainAdvancedRuleService
}

DomainService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainService method instead.

func NewDomainService

func NewDomainService(opts ...option.RequestOption) (r DomainService)

NewDomainService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainService) Delete

func (r *DomainService) Delete(ctx context.Context, domainID int64, opts ...option.RequestOption) (err error)

Delete an inactive domain by ID. Only domains with status 'bypass' can be deleted.

func (*DomainService) Get

func (r *DomainService) Get(ctx context.Context, domainID int64, opts ...option.RequestOption) (res *WaapDetailedDomain, err error)

Retrieve detailed information about a specific domain

func (*DomainService) List

Retrieve a list of domains associated with the client

func (*DomainService) ListAutoPaging

Retrieve a list of domains associated with the client

func (*DomainService) ListRuleSets added in v0.3.0

func (r *DomainService) ListRuleSets(ctx context.Context, domainID int64, opts ...option.RequestOption) (res *[]WaapRuleSet, err error)

Retrieve all rule sets linked to a particular domain

func (*DomainService) Update

func (r *DomainService) Update(ctx context.Context, domainID int64, body DomainUpdateParams, opts ...option.RequestOption) (err error)

Update Domain

type DomainSettingService

type DomainSettingService struct {
	Options []option.RequestOption
}

DomainSettingService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDomainSettingService method instead.

func NewDomainSettingService

func NewDomainSettingService(opts ...option.RequestOption) (r DomainSettingService)

NewDomainSettingService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DomainSettingService) Get

func (r *DomainSettingService) Get(ctx context.Context, domainID int64, opts ...option.RequestOption) (res *WaapDomainSettingsModel, err error)

Retrieve settings for a specific domain

func (*DomainSettingService) Update

func (r *DomainSettingService) Update(ctx context.Context, domainID int64, body DomainSettingUpdateParams, opts ...option.RequestOption) (err error)

Update settings for a specific domain

type DomainSettingUpdateParams

type DomainSettingUpdateParams struct {
	// Editable API settings of a domain
	API DomainSettingUpdateParamsAPI `json:"api,omitzero"`
	// Editable DDoS settings for a domain.
	DDOS DomainSettingUpdateParamsDDOS `json:"ddos,omitzero"`
	// contains filtered or unexported fields
}

func (DomainSettingUpdateParams) MarshalJSON

func (r DomainSettingUpdateParams) MarshalJSON() (data []byte, err error)

func (*DomainSettingUpdateParams) UnmarshalJSON

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

type DomainSettingUpdateParamsAPI

type DomainSettingUpdateParamsAPI struct {
	// Indicates if the domain is an API domain. All requests to an API domain are
	// treated as API requests. If this is set to true then the `api_urls` field is
	// ignored.
	IsAPI param.Opt[bool] `json:"is_api,omitzero"`
	// The API URLs for a domain. If your domain has a common base URL for all API
	// paths, it can be set here
	APIURLs []string `json:"api_urls,omitzero"`
	// contains filtered or unexported fields
}

Editable API settings of a domain

func (DomainSettingUpdateParamsAPI) MarshalJSON

func (r DomainSettingUpdateParamsAPI) MarshalJSON() (data []byte, err error)

func (*DomainSettingUpdateParamsAPI) UnmarshalJSON

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

type DomainSettingUpdateParamsDDOS

type DomainSettingUpdateParamsDDOS struct {
	// The burst threshold detects sudden rises in traffic. If it is met and the number
	// of requests is at least five times the last 2-second interval, DDoS protection
	// will activate. Default is 1000.
	BurstThreshold param.Opt[int64] `json:"burst_threshold,omitzero"`
	// The global threshold is responsible for identifying DDoS attacks with a slow
	// rise in traffic. If the threshold is met and the current number of requests is
	// at least double that of the previous 10-second window, DDoS protection will
	// activate. Default is 5000.
	GlobalThreshold param.Opt[int64] `json:"global_threshold,omitzero"`
	// contains filtered or unexported fields
}

Editable DDoS settings for a domain.

func (DomainSettingUpdateParamsDDOS) MarshalJSON

func (r DomainSettingUpdateParamsDDOS) MarshalJSON() (data []byte, err error)

func (*DomainSettingUpdateParamsDDOS) UnmarshalJSON

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

type DomainUpdateParams

type DomainUpdateParams struct {
	// Domain statuses that can be used when updating a domain
	//
	// Any of "active", "monitor".
	Status DomainUpdateParamsStatus `json:"status,omitzero"`
	// contains filtered or unexported fields
}

func (DomainUpdateParams) MarshalJSON

func (r DomainUpdateParams) MarshalJSON() (data []byte, err error)

func (*DomainUpdateParams) UnmarshalJSON

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

type DomainUpdateParamsStatus

type DomainUpdateParamsStatus string

Domain statuses that can be used when updating a domain

const (
	DomainUpdateParamsStatusActive  DomainUpdateParamsStatus = "active"
	DomainUpdateParamsStatusMonitor DomainUpdateParamsStatus = "monitor"
)

type Error

type Error = apierror.Error

type IPInfoGetAttackTimeSeriesParams added in v0.3.0

type IPInfoGetAttackTimeSeriesParams struct {
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetAttackTimeSeriesParams) URLQuery added in v0.3.0

func (r IPInfoGetAttackTimeSeriesParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetAttackTimeSeriesParams's query parameters as `url.Values`.

type IPInfoGetBlockedRequestsParams added in v0.3.0

type IPInfoGetBlockedRequestsParams struct {
	// The identifier for a domain. When specified, the response will exclusively
	// contain data pertinent to the indicated domain, filtering out information from
	// other domains.
	DomainID int64 `query:"domain_id,required" json:"-"`
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetBlockedRequestsParams) URLQuery added in v0.3.0

func (r IPInfoGetBlockedRequestsParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetBlockedRequestsParams's query parameters as `url.Values`.

type IPInfoGetCountsParams added in v0.3.0

type IPInfoGetCountsParams struct {
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// The identifier for a domain. When specified, the response will exclusively
	// contain data pertinent to the indicated domain, filtering out information from
	// other domains.
	DomainID param.Opt[int64] `query:"domain_id,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetCountsParams) URLQuery added in v0.3.0

func (r IPInfoGetCountsParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetCountsParams's query parameters as `url.Values`.

type IPInfoGetDDOSAttackSeriesParams added in v0.3.0

type IPInfoGetDDOSAttackSeriesParams struct {
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetDDOSAttackSeriesParams) URLQuery added in v0.3.0

func (r IPInfoGetDDOSAttackSeriesParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetDDOSAttackSeriesParams's query parameters as `url.Values`.

type IPInfoGetParams added in v0.3.0

type IPInfoGetParams struct {
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetParams) URLQuery added in v0.3.0

func (r IPInfoGetParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetParams's query parameters as `url.Values`.

type IPInfoGetTopSessionsParams added in v0.3.0

type IPInfoGetTopSessionsParams struct {
	// The identifier for a domain. When specified, the response will exclusively
	// contain data pertinent to the indicated domain, filtering out information from
	// other domains.
	DomainID int64 `query:"domain_id,required" json:"-"`
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetTopSessionsParams) URLQuery added in v0.3.0

func (r IPInfoGetTopSessionsParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetTopSessionsParams's query parameters as `url.Values`.

type IPInfoGetTopURLsParams added in v0.3.0

type IPInfoGetTopURLsParams struct {
	// The identifier for a domain. When specified, the response will exclusively
	// contain data pertinent to the indicated domain, filtering out information from
	// other domains.
	DomainID int64 `query:"domain_id,required" json:"-"`
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetTopURLsParams) URLQuery added in v0.3.0

func (r IPInfoGetTopURLsParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetTopURLsParams's query parameters as `url.Values`.

type IPInfoGetTopUserAgentsParams added in v0.3.0

type IPInfoGetTopUserAgentsParams struct {
	// The identifier for a domain. When specified, the response will exclusively
	// contain data pertinent to the indicated domain, filtering out information from
	// other domains.
	DomainID int64 `query:"domain_id,required" json:"-"`
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoGetTopUserAgentsParams) URLQuery added in v0.3.0

func (r IPInfoGetTopUserAgentsParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoGetTopUserAgentsParams's query parameters as `url.Values`.

type IPInfoListAttackedCountriesParams added in v0.3.0

type IPInfoListAttackedCountriesParams struct {
	// The IP address to check
	IP string `query:"ip,required" format:"ipv4" json:"-"`
	// contains filtered or unexported fields
}

func (IPInfoListAttackedCountriesParams) URLQuery added in v0.3.0

func (r IPInfoListAttackedCountriesParams) URLQuery() (v url.Values, err error)

URLQuery serializes IPInfoListAttackedCountriesParams's query parameters as `url.Values`.

type IPInfoService added in v0.3.0

type IPInfoService struct {
	Options []option.RequestOption
}

IPInfoService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewIPInfoService method instead.

func NewIPInfoService added in v0.3.0

func NewIPInfoService(opts ...option.RequestOption) (r IPInfoService)

NewIPInfoService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*IPInfoService) Get added in v0.3.0

func (r *IPInfoService) Get(ctx context.Context, query IPInfoGetParams, opts ...option.RequestOption) (res *WaapIPInfo, err error)

Fetch details about a particular IP address, including WHOIS data, risk score, and additional tags.

func (*IPInfoService) GetAttackTimeSeries added in v0.3.0

func (r *IPInfoService) GetAttackTimeSeries(ctx context.Context, query IPInfoGetAttackTimeSeriesParams, opts ...option.RequestOption) (res *[]WaapTimeSeriesAttack, err error)

Retrieve a time-series of attacks originating from a specified IP address.

func (*IPInfoService) GetBlockedRequests added in v0.3.0

func (r *IPInfoService) GetBlockedRequests(ctx context.Context, query IPInfoGetBlockedRequestsParams, opts ...option.RequestOption) (res *[]WaapRuleBlockedRequests, err error)

Retrieve metrics, which enumerate blocked requests originating from a specific IP to a domain, grouped by rule name and taken action. Each metric provides insights into the request count blocked under a specific rule and the corresponding action that was executed.

func (*IPInfoService) GetCounts added in v0.3.0

func (r *IPInfoService) GetCounts(ctx context.Context, query IPInfoGetCountsParams, opts ...option.RequestOption) (res *WaapIPInfoCounts, err error)

Retrieve metrics encompassing the counts of total requests, blocked requests and unique sessions associated with a specified IP address. Metrics provide a statistical overview, aiding in analyzing the interaction and access patterns of the IP address in context.

func (*IPInfoService) GetDDOSAttackSeries added in v0.3.0

func (r *IPInfoService) GetDDOSAttackSeries(ctx context.Context, query IPInfoGetDDOSAttackSeriesParams, opts ...option.RequestOption) (res *WaapIPDDOSInfoModel, err error)

Fetch and analyze DDoS (Distributed Denial of Service) attack metrics for a specified IP address. The endpoint provides time-series data, enabling users to evaluate the frequency and intensity of attacks across various time intervals, and it returns metrics in Prometheus format to offer a systematic view of DDoS attack patterns.

func (*IPInfoService) GetTopSessions added in v0.3.0

func (r *IPInfoService) GetTopSessions(ctx context.Context, query IPInfoGetTopSessionsParams, opts ...option.RequestOption) (res *[]WaapTopSession, err error)

Obtain the top 10 user sessions interfacing with a particular domain, identified by IP.

func (*IPInfoService) GetTopURLs added in v0.3.0

func (r *IPInfoService) GetTopURLs(ctx context.Context, query IPInfoGetTopURLsParams, opts ...option.RequestOption) (res *[]WaapTopURL, err error)

Returns a list of the top 10 URLs accessed by a specified IP address within a specific domain. This data is vital to understand user navigation patterns, pinpoint high-traffic pages, and facilitate more targeted enhancements or security monitoring based on URL popularity.

func (*IPInfoService) GetTopUserAgents added in v0.3.0

func (r *IPInfoService) GetTopUserAgents(ctx context.Context, query IPInfoGetTopUserAgentsParams, opts ...option.RequestOption) (res *[]WaapTopUserAgent, err error)

Retrieve the top 10 user agents interacting with a specified domain, filtered by IP.

func (*IPInfoService) ListAttackedCountries added in v0.3.0

func (r *IPInfoService) ListAttackedCountries(ctx context.Context, query IPInfoListAttackedCountriesParams, opts ...option.RequestOption) (res *[]WaapIPCountryAttack, err error)

Retrieve a list of countries attacked by the specified IP address

type OrganizationListParams added in v0.3.0

type OrganizationListParams struct {
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Filter organizations by their name. Supports '\*' as a wildcard character.
	Name param.Opt[string] `query:"name,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Determine the field to order results by
	//
	// Any of "name", "id", "-name", "-id".
	Ordering OrganizationListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (OrganizationListParams) URLQuery added in v0.3.0

func (r OrganizationListParams) URLQuery() (v url.Values, err error)

URLQuery serializes OrganizationListParams's query parameters as `url.Values`.

type OrganizationListParamsOrdering added in v0.3.0

type OrganizationListParamsOrdering string

Determine the field to order results by

const (
	OrganizationListParamsOrderingName      OrganizationListParamsOrdering = "name"
	OrganizationListParamsOrderingID        OrganizationListParamsOrdering = "id"
	OrganizationListParamsOrderingMinusName OrganizationListParamsOrdering = "-name"
	OrganizationListParamsOrderingMinusID   OrganizationListParamsOrdering = "-id"
)

type OrganizationService added in v0.3.0

type OrganizationService struct {
	Options []option.RequestOption
}

OrganizationService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewOrganizationService method instead.

func NewOrganizationService added in v0.3.0

func NewOrganizationService(opts ...option.RequestOption) (r OrganizationService)

NewOrganizationService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*OrganizationService) List added in v0.3.0

This endpoint retrieves a list of network organizations that own IP ranges as identified by the Whois service.It supports pagination, filtering based on various parameters, and ordering of results.

func (*OrganizationService) ListAutoPaging added in v0.3.0

This endpoint retrieves a list of network organizations that own IP ranges as identified by the Whois service.It supports pagination, filtering based on various parameters, and ordering of results.

type StatisticGetUsageSeriesParams added in v0.3.0

type StatisticGetUsageSeriesParams struct {
	// Beginning of the requested time period (ISO 8601 format, UTC)
	From time.Time `query:"from,required" format:"date-time" json:"-"`
	// Duration of the time blocks into which the data will be divided.
	//
	// Any of "1h", "1d".
	Granularity StatisticGetUsageSeriesParamsGranularity `query:"granularity,omitzero,required" json:"-"`
	// List of metric types to retrieve statistics for.
	//
	// Any of "total_bytes", "total_requests".
	Metrics []string `query:"metrics,omitzero,required" json:"-"`
	// End of the requested time period (ISO 8601 format, UTC)
	To time.Time `query:"to,required" format:"date-time" json:"-"`
	// contains filtered or unexported fields
}

func (StatisticGetUsageSeriesParams) URLQuery added in v0.3.0

func (r StatisticGetUsageSeriesParams) URLQuery() (v url.Values, err error)

URLQuery serializes StatisticGetUsageSeriesParams's query parameters as `url.Values`.

type StatisticGetUsageSeriesParamsGranularity added in v0.3.0

type StatisticGetUsageSeriesParamsGranularity string

Duration of the time blocks into which the data will be divided.

const (
	StatisticGetUsageSeriesParamsGranularity1h StatisticGetUsageSeriesParamsGranularity = "1h"
	StatisticGetUsageSeriesParamsGranularity1d StatisticGetUsageSeriesParamsGranularity = "1d"
)

type StatisticService added in v0.3.0

type StatisticService struct {
	Options []option.RequestOption
}

StatisticService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewStatisticService method instead.

func NewStatisticService added in v0.3.0

func NewStatisticService(opts ...option.RequestOption) (r StatisticService)

NewStatisticService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*StatisticService) GetUsageSeries added in v0.3.0

Retrieve statistics data as a time series. The `from` and `to` parameters are rounded down and up according to the `granularity`. This means that if the `granularity` is set to `1h`, the `from` and `to` parameters will be rounded down and up to the nearest hour, respectively. If the `granularity` is set to `1d`, the `from` and `to` parameters will be rounded down and up to the nearest day, respectively. The response will include explicit 0 values for any missing data points.

type TagListParams added in v0.3.0

type TagListParams struct {
	// Number of items to return
	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
	// Filter tags by their name. Supports '\*' as a wildcard character.
	Name param.Opt[string] `query:"name,omitzero" json:"-"`
	// Number of items to skip
	Offset param.Opt[int64] `query:"offset,omitzero" json:"-"`
	// Filter tags by their readable name. Supports '\*' as a wildcard character.
	ReadableName param.Opt[string] `query:"readable_name,omitzero" json:"-"`
	// Filter to include only reserved tags.
	Reserved param.Opt[bool] `query:"reserved,omitzero" json:"-"`
	// Determine the field to order results by
	//
	// Any of "name", "readable_name", "reserved", "-name", "-readable_name",
	// "-reserved".
	Ordering TagListParamsOrdering `query:"ordering,omitzero" json:"-"`
	// contains filtered or unexported fields
}

func (TagListParams) URLQuery added in v0.3.0

func (r TagListParams) URLQuery() (v url.Values, err error)

URLQuery serializes TagListParams's query parameters as `url.Values`.

type TagListParamsOrdering added in v0.3.0

type TagListParamsOrdering string

Determine the field to order results by

const (
	TagListParamsOrderingName              TagListParamsOrdering = "name"
	TagListParamsOrderingReadableName      TagListParamsOrdering = "readable_name"
	TagListParamsOrderingReserved          TagListParamsOrdering = "reserved"
	TagListParamsOrderingMinusName         TagListParamsOrdering = "-name"
	TagListParamsOrderingMinusReadableName TagListParamsOrdering = "-readable_name"
	TagListParamsOrderingMinusReserved     TagListParamsOrdering = "-reserved"
)

type TagService added in v0.3.0

type TagService struct {
	Options []option.RequestOption
}

TagService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewTagService method instead.

func NewTagService added in v0.3.0

func NewTagService(opts ...option.RequestOption) (r TagService)

NewTagService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*TagService) List added in v0.3.0

func (r *TagService) List(ctx context.Context, query TagListParams, opts ...option.RequestOption) (res *pagination.OffsetPage[WaapTag], err error)

Tags are shortcuts for the rules used in WAAP policies for the creation of more complex WAAP rules

func (*TagService) ListAutoPaging added in v0.3.0

Tags are shortcuts for the rules used in WAAP policies for the creation of more complex WAAP rules

type WaapAdvancedRule added in v0.3.0

type WaapAdvancedRule struct {
	// The unique identifier for the rule
	ID int64 `json:"id,required"`
	// The action that a WAAP rule takes when triggered
	Action WaapAdvancedRuleAction `json:"action,required"`
	// Whether or not the rule is enabled
	Enabled bool `json:"enabled,required"`
	// The name assigned to the rule
	Name string `json:"name,required"`
	// A CEL syntax expression that contains the rule's conditions. Allowed objects
	// are: request, whois, session, response, tags, `user_defined_tags`, `user_agent`,
	// `client_data`. More info can be found here:
	// https://gcore.com/docs/waap/waap-rules/advanced-rules
	Source string `json:"source,required"`
	// The description assigned to the rule
	Description string `json:"description,nullable"`
	// The WAAP request/response phase for applying the rule. Default is "access". The
	// "access" phase is responsible for modifying the request before it is sent to the
	// origin server. The "`header_filter`" phase is responsible for modifying the HTTP
	// headers of a response before they are sent back to the client. The
	// "`body_filter`" phase is responsible for modifying the body of a response before
	// it is sent back to the client.
	//
	// Any of "access", "header_filter", "body_filter".
	Phase WaapAdvancedRulePhase `json:"phase,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Action      respjson.Field
		Enabled     respjson.Field
		Name        respjson.Field
		Source      respjson.Field
		Description respjson.Field
		Phase       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

An advanced WAAP rule applied to a domain

func (WaapAdvancedRule) RawJSON added in v0.3.0

func (r WaapAdvancedRule) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapAdvancedRule) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRuleAction added in v0.3.0

type WaapAdvancedRuleAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,nullable"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block WaapAdvancedRuleActionBlock `json:"block,nullable"`
	// The WAAP presented the user with a captcha
	Captcha any `json:"captcha,nullable"`
	// The WAAP performed automatic browser validation
	Handshake any `json:"handshake,nullable"`
	// The WAAP monitored the request but took no action
	Monitor any `json:"monitor,nullable"`
	// WAAP tag action gets a list of tags to tag the request scope with
	Tag WaapAdvancedRuleActionTag `json:"tag,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Allow       respjson.Field
		Block       respjson.Field
		Captcha     respjson.Field
		Handshake   respjson.Field
		Monitor     respjson.Field
		Tag         respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The action that a WAAP rule takes when triggered

func (WaapAdvancedRuleAction) RawJSON added in v0.3.0

func (r WaapAdvancedRuleAction) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapAdvancedRuleAction) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRuleActionBlock added in v0.3.0

type WaapAdvancedRuleActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration string `json:"action_duration,nullable"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ActionDuration respjson.Field
		StatusCode     respjson.Field
		ExtraFields    map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WAAP block action behavior could be configured with response status code and action duration.

func (WaapAdvancedRuleActionBlock) RawJSON added in v0.3.0

func (r WaapAdvancedRuleActionBlock) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapAdvancedRuleActionBlock) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRuleActionTag added in v0.3.0

type WaapAdvancedRuleActionTag struct {
	// The list of user defined tags to tag the request with
	Tags []string `json:"tags,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Tags        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WAAP tag action gets a list of tags to tag the request scope with

func (WaapAdvancedRuleActionTag) RawJSON added in v0.3.0

func (r WaapAdvancedRuleActionTag) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapAdvancedRuleActionTag) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRuleDescriptor added in v0.3.0

type WaapAdvancedRuleDescriptor struct {
	// The object's name
	Name string `json:"name,required"`
	// The object's type
	Type string `json:"type,required"`
	// The object's attributes list
	Attrs []WaapAdvancedRuleDescriptorAttr `json:"attrs,nullable"`
	// The object's description
	Description string `json:"description,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Name        respjson.Field
		Type        respjson.Field
		Attrs       respjson.Field
		Description respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Advanced rules descriptor object

func (WaapAdvancedRuleDescriptor) RawJSON added in v0.3.0

func (r WaapAdvancedRuleDescriptor) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapAdvancedRuleDescriptor) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRuleDescriptorAttr added in v0.3.0

type WaapAdvancedRuleDescriptorAttr struct {
	// The attribute's name
	Name string `json:"name,required"`
	// The attribute's type
	Type string `json:"type,required"`
	// A list of arguments for the attribute
	Args []WaapAdvancedRuleDescriptorAttrArg `json:"args,nullable"`
	// The attribute's description
	Description string `json:"description,nullable"`
	// The attribute's hint
	Hint string `json:"hint,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Name        respjson.Field
		Type        respjson.Field
		Args        respjson.Field
		Description respjson.Field
		Hint        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

An attribute of a descriptor's object

func (WaapAdvancedRuleDescriptorAttr) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapAdvancedRuleDescriptorAttr) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRuleDescriptorAttrArg added in v0.3.0

type WaapAdvancedRuleDescriptorAttrArg struct {
	// The argument's name
	Name string `json:"name,required"`
	// The argument's type
	Type string `json:"type,required"`
	// The argument's description
	Description string `json:"description,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Name        respjson.Field
		Type        respjson.Field
		Description respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

An argument of a descriptor's object

func (WaapAdvancedRuleDescriptorAttrArg) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapAdvancedRuleDescriptorAttrArg) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRuleDescriptorList added in v0.3.0

type WaapAdvancedRuleDescriptorList struct {
	// The descriptor's version
	Version string                       `json:"version,required"`
	Objects []WaapAdvancedRuleDescriptor `json:"objects,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Version     respjson.Field
		Objects     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

A response from a request to retrieve an advanced rules descriptor

func (WaapAdvancedRuleDescriptorList) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapAdvancedRuleDescriptorList) UnmarshalJSON added in v0.3.0

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

type WaapAdvancedRulePhase added in v0.3.0

type WaapAdvancedRulePhase string

The WAAP request/response phase for applying the rule. Default is "access". The "access" phase is responsible for modifying the request before it is sent to the origin server. The "`header_filter`" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client. The "`body_filter`" phase is responsible for modifying the body of a response before it is sent back to the client.

const (
	WaapAdvancedRulePhaseAccess       WaapAdvancedRulePhase = "access"
	WaapAdvancedRulePhaseHeaderFilter WaapAdvancedRulePhase = "header_filter"
	WaapAdvancedRulePhaseBodyFilter   WaapAdvancedRulePhase = "body_filter"
)

type WaapBlockCsrfPageData added in v0.3.0

type WaapBlockCsrfPageData struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header string `json:"header"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo string `json:"logo"`
	// The text to display in the body of the custom page
	Text string `json:"text"`
	// The text to display in the title of the custom page
	Title string `json:"title"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Enabled     respjson.Field
		Header      respjson.Field
		Logo        respjson.Field
		Text        respjson.Field
		Title       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapBlockCsrfPageData) RawJSON added in v0.3.0

func (r WaapBlockCsrfPageData) RawJSON() string

Returns the unmodified JSON received from the API

func (WaapBlockCsrfPageData) ToParam added in v0.3.0

ToParam converts this WaapBlockCsrfPageData to a WaapBlockCsrfPageDataParam.

Warning: the fields of the param type will not be present. ToParam should only be used at the last possible moment before sending a request. Test for this with WaapBlockCsrfPageDataParam.Overrides()

func (*WaapBlockCsrfPageData) UnmarshalJSON added in v0.3.0

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

type WaapBlockCsrfPageDataParam added in v0.3.0

type WaapBlockCsrfPageDataParam struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header param.Opt[string] `json:"header,omitzero"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo param.Opt[string] `json:"logo,omitzero"`
	// The text to display in the body of the custom page
	Text param.Opt[string] `json:"text,omitzero"`
	// The text to display in the title of the custom page
	Title param.Opt[string] `json:"title,omitzero"`
	// contains filtered or unexported fields
}

The property Enabled is required.

func (WaapBlockCsrfPageDataParam) MarshalJSON added in v0.3.0

func (r WaapBlockCsrfPageDataParam) MarshalJSON() (data []byte, err error)

func (*WaapBlockCsrfPageDataParam) UnmarshalJSON added in v0.3.0

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

type WaapBlockPageData added in v0.3.0

type WaapBlockPageData struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header string `json:"header"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo string `json:"logo"`
	// The text to display in the body of the custom page
	Text string `json:"text"`
	// The text to display in the title of the custom page
	Title string `json:"title"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Enabled     respjson.Field
		Header      respjson.Field
		Logo        respjson.Field
		Text        respjson.Field
		Title       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapBlockPageData) RawJSON added in v0.3.0

func (r WaapBlockPageData) RawJSON() string

Returns the unmodified JSON received from the API

func (WaapBlockPageData) ToParam added in v0.3.0

ToParam converts this WaapBlockPageData to a WaapBlockPageDataParam.

Warning: the fields of the param type will not be present. ToParam should only be used at the last possible moment before sending a request. Test for this with WaapBlockPageDataParam.Overrides()

func (*WaapBlockPageData) UnmarshalJSON added in v0.3.0

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

type WaapBlockPageDataParam added in v0.3.0

type WaapBlockPageDataParam struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header param.Opt[string] `json:"header,omitzero"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo param.Opt[string] `json:"logo,omitzero"`
	// The text to display in the body of the custom page
	Text param.Opt[string] `json:"text,omitzero"`
	// The text to display in the title of the custom page
	Title param.Opt[string] `json:"title,omitzero"`
	// contains filtered or unexported fields
}

The property Enabled is required.

func (WaapBlockPageDataParam) MarshalJSON added in v0.3.0

func (r WaapBlockPageDataParam) MarshalJSON() (data []byte, err error)

func (*WaapBlockPageDataParam) UnmarshalJSON added in v0.3.0

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

type WaapBlockedStatistics added in v0.3.0

type WaapBlockedStatistics struct {
	// A collection of event counts per action. The first item is the action's
	// abbreviation/full action name, and the second item is the number of events
	Action [][]WaapBlockedStatisticsActionUnion `json:"action,required"`
	// A collection of event counts per country of origin. The first item is the
	// country's ISO 3166-1 alpha-2, and the second item is the number of events
	Country [][]WaapBlockedStatisticsCountryUnion `json:"country,required"`
	// A collection of event counts per organization that owns the event's client IP.
	// The first item is the organization's name, and the second item is the number of
	// events
	Org [][]WaapBlockedStatisticsOrgUnion `json:"org,required"`
	// A collection of event counts per rule that triggered the event. The first item
	// is the rule's name, and the second item is the number of events
	RuleName [][]WaapBlockedStatisticsRuleNameUnion `json:"rule_name,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Action      respjson.Field
		Country     respjson.Field
		Org         respjson.Field
		RuleName    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

A collection of total numbers of events with blocked results per criteria

func (WaapBlockedStatistics) RawJSON added in v0.3.0

func (r WaapBlockedStatistics) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapBlockedStatistics) UnmarshalJSON added in v0.3.0

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

type WaapBlockedStatisticsActionUnion added in v0.3.0

type WaapBlockedStatisticsActionUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapBlockedStatisticsActionUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapBlockedStatisticsActionUnion) AsInt added in v0.3.0

func (WaapBlockedStatisticsActionUnion) AsString added in v0.3.0

func (u WaapBlockedStatisticsActionUnion) AsString() (v string)

func (WaapBlockedStatisticsActionUnion) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapBlockedStatisticsActionUnion) UnmarshalJSON added in v0.3.0

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

type WaapBlockedStatisticsCountryUnion added in v0.3.0

type WaapBlockedStatisticsCountryUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapBlockedStatisticsCountryUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapBlockedStatisticsCountryUnion) AsInt added in v0.3.0

func (WaapBlockedStatisticsCountryUnion) AsString added in v0.3.0

func (u WaapBlockedStatisticsCountryUnion) AsString() (v string)

func (WaapBlockedStatisticsCountryUnion) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapBlockedStatisticsCountryUnion) UnmarshalJSON added in v0.3.0

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

type WaapBlockedStatisticsOrgUnion added in v0.3.0

type WaapBlockedStatisticsOrgUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapBlockedStatisticsOrgUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapBlockedStatisticsOrgUnion) AsInt added in v0.3.0

func (u WaapBlockedStatisticsOrgUnion) AsInt() (v int64)

func (WaapBlockedStatisticsOrgUnion) AsString added in v0.3.0

func (u WaapBlockedStatisticsOrgUnion) AsString() (v string)

func (WaapBlockedStatisticsOrgUnion) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapBlockedStatisticsOrgUnion) UnmarshalJSON added in v0.3.0

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

type WaapBlockedStatisticsRuleNameUnion added in v0.3.0

type WaapBlockedStatisticsRuleNameUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapBlockedStatisticsRuleNameUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapBlockedStatisticsRuleNameUnion) AsInt added in v0.3.0

func (WaapBlockedStatisticsRuleNameUnion) AsString added in v0.3.0

func (u WaapBlockedStatisticsRuleNameUnion) AsString() (v string)

func (WaapBlockedStatisticsRuleNameUnion) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapBlockedStatisticsRuleNameUnion) UnmarshalJSON added in v0.3.0

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

type WaapCaptchaPageData added in v0.3.0

type WaapCaptchaPageData struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// Error message
	Error string `json:"error"`
	// The text to display in the header of the custom page
	Header string `json:"header"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo string `json:"logo"`
	// The text to display in the body of the custom page
	Text string `json:"text"`
	// The text to display in the title of the custom page
	Title string `json:"title"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Enabled     respjson.Field
		Error       respjson.Field
		Header      respjson.Field
		Logo        respjson.Field
		Text        respjson.Field
		Title       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapCaptchaPageData) RawJSON added in v0.3.0

func (r WaapCaptchaPageData) RawJSON() string

Returns the unmodified JSON received from the API

func (WaapCaptchaPageData) ToParam added in v0.3.0

ToParam converts this WaapCaptchaPageData to a WaapCaptchaPageDataParam.

Warning: the fields of the param type will not be present. ToParam should only be used at the last possible moment before sending a request. Test for this with WaapCaptchaPageDataParam.Overrides()

func (*WaapCaptchaPageData) UnmarshalJSON added in v0.3.0

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

type WaapCaptchaPageDataParam added in v0.3.0

type WaapCaptchaPageDataParam struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// Error message
	Error param.Opt[string] `json:"error,omitzero"`
	// The text to display in the header of the custom page
	Header param.Opt[string] `json:"header,omitzero"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo param.Opt[string] `json:"logo,omitzero"`
	// The text to display in the body of the custom page
	Text param.Opt[string] `json:"text,omitzero"`
	// The text to display in the title of the custom page
	Title param.Opt[string] `json:"title,omitzero"`
	// contains filtered or unexported fields
}

The property Enabled is required.

func (WaapCaptchaPageDataParam) MarshalJSON added in v0.3.0

func (r WaapCaptchaPageDataParam) MarshalJSON() (data []byte, err error)

func (*WaapCaptchaPageDataParam) UnmarshalJSON added in v0.3.0

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

type WaapCommonTag added in v0.3.0

type WaapCommonTag struct {
	// Tag description information
	Description string `json:"description,required"`
	// The tag's display name
	DisplayName string `json:"display_name,required"`
	// Tag name
	Tag string `json:"tag,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Description respjson.Field
		DisplayName respjson.Field
		Tag         respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Common tag details

func (WaapCommonTag) RawJSON added in v0.3.0

func (r WaapCommonTag) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCommonTag) UnmarshalJSON added in v0.3.0

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

type WaapCookieDisabledPageData added in v0.3.0

type WaapCookieDisabledPageData struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header string `json:"header"`
	// The text to display in the body of the custom page
	Text string `json:"text"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Enabled     respjson.Field
		Header      respjson.Field
		Text        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapCookieDisabledPageData) RawJSON added in v0.3.0

func (r WaapCookieDisabledPageData) RawJSON() string

Returns the unmodified JSON received from the API

func (WaapCookieDisabledPageData) ToParam added in v0.3.0

ToParam converts this WaapCookieDisabledPageData to a WaapCookieDisabledPageDataParam.

Warning: the fields of the param type will not be present. ToParam should only be used at the last possible moment before sending a request. Test for this with WaapCookieDisabledPageDataParam.Overrides()

func (*WaapCookieDisabledPageData) UnmarshalJSON added in v0.3.0

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

type WaapCookieDisabledPageDataParam added in v0.3.0

type WaapCookieDisabledPageDataParam struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header param.Opt[string] `json:"header,omitzero"`
	// The text to display in the body of the custom page
	Text param.Opt[string] `json:"text,omitzero"`
	// contains filtered or unexported fields
}

The property Enabled is required.

func (WaapCookieDisabledPageDataParam) MarshalJSON added in v0.3.0

func (r WaapCookieDisabledPageDataParam) MarshalJSON() (data []byte, err error)

func (*WaapCookieDisabledPageDataParam) UnmarshalJSON added in v0.3.0

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

type WaapCountStatistics added in v0.3.0

type WaapCountStatistics struct {
	// A collection of event counts per action. The first item is the action's
	// abbreviation/full action name, and the second item is the number of events
	Action [][]WaapCountStatisticsActionUnion `json:"action,required"`
	// A collection of event counts per country of origin. The first item is the
	// country's ISO 3166-1 alpha-2, and the second item is the number of events
	Country [][]WaapCountStatisticsCountryUnion `json:"country,required"`
	// A collection of event counts per organization that owns the event's client IP.
	// The first item is the organization's name, and the second item is the number of
	// events
	Org [][]WaapCountStatisticsOrgUnion `json:"org,required"`
	// A collection of event counts per rule that triggered the event. The first item
	// is the rule's name, and the second item is the number of events
	RuleName [][]WaapCountStatisticsRuleNameUnion `json:"rule_name,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Action      respjson.Field
		Country     respjson.Field
		Org         respjson.Field
		RuleName    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

A collection of total numbers of events per criteria

func (WaapCountStatistics) RawJSON added in v0.3.0

func (r WaapCountStatistics) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCountStatistics) UnmarshalJSON added in v0.3.0

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

type WaapCountStatisticsActionUnion added in v0.3.0

type WaapCountStatisticsActionUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapCountStatisticsActionUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapCountStatisticsActionUnion) AsInt added in v0.3.0

func (u WaapCountStatisticsActionUnion) AsInt() (v int64)

func (WaapCountStatisticsActionUnion) AsString added in v0.3.0

func (u WaapCountStatisticsActionUnion) AsString() (v string)

func (WaapCountStatisticsActionUnion) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCountStatisticsActionUnion) UnmarshalJSON added in v0.3.0

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

type WaapCountStatisticsCountryUnion added in v0.3.0

type WaapCountStatisticsCountryUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapCountStatisticsCountryUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapCountStatisticsCountryUnion) AsInt added in v0.3.0

func (u WaapCountStatisticsCountryUnion) AsInt() (v int64)

func (WaapCountStatisticsCountryUnion) AsString added in v0.3.0

func (u WaapCountStatisticsCountryUnion) AsString() (v string)

func (WaapCountStatisticsCountryUnion) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCountStatisticsCountryUnion) UnmarshalJSON added in v0.3.0

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

type WaapCountStatisticsOrgUnion added in v0.3.0

type WaapCountStatisticsOrgUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapCountStatisticsOrgUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapCountStatisticsOrgUnion) AsInt added in v0.3.0

func (u WaapCountStatisticsOrgUnion) AsInt() (v int64)

func (WaapCountStatisticsOrgUnion) AsString added in v0.3.0

func (u WaapCountStatisticsOrgUnion) AsString() (v string)

func (WaapCountStatisticsOrgUnion) RawJSON added in v0.3.0

func (u WaapCountStatisticsOrgUnion) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCountStatisticsOrgUnion) UnmarshalJSON added in v0.3.0

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

type WaapCountStatisticsRuleNameUnion added in v0.3.0

type WaapCountStatisticsRuleNameUnion struct {
	// This field will be present if the value is a [string] instead of an object.
	OfString string `json:",inline"`
	// This field will be present if the value is a [int64] instead of an object.
	OfInt int64 `json:",inline"`
	JSON  struct {
		OfString respjson.Field
		OfInt    respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WaapCountStatisticsRuleNameUnion contains all possible properties and values from [string], [int64].

Use the methods beginning with 'As' to cast the union to one of its variants.

If the underlying value is not a json object, one of the following properties will be valid: OfString OfInt]

func (WaapCountStatisticsRuleNameUnion) AsInt added in v0.3.0

func (WaapCountStatisticsRuleNameUnion) AsString added in v0.3.0

func (u WaapCountStatisticsRuleNameUnion) AsString() (v string)

func (WaapCountStatisticsRuleNameUnion) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCountStatisticsRuleNameUnion) UnmarshalJSON added in v0.3.0

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

type WaapCustomPagePreview added in v0.3.0

type WaapCustomPagePreview struct {
	// HTML content of the custom page
	HTML string `json:"html,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		HTML        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapCustomPagePreview) RawJSON added in v0.3.0

func (r WaapCustomPagePreview) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomPagePreview) UnmarshalJSON added in v0.3.0

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

type WaapCustomPageSet added in v0.3.0

type WaapCustomPageSet struct {
	// The ID of the custom page set
	ID int64 `json:"id,required"`
	// Name of the custom page set
	Name           string                     `json:"name,required"`
	Block          WaapBlockPageData          `json:"block,nullable"`
	BlockCsrf      WaapBlockCsrfPageData      `json:"block_csrf,nullable"`
	Captcha        WaapCaptchaPageData        `json:"captcha,nullable"`
	CookieDisabled WaapCookieDisabledPageData `json:"cookie_disabled,nullable"`
	// List of domain IDs that are associated with this page set
	Domains            []int64                        `json:"domains,nullable"`
	Handshake          WaapHandshakePageData          `json:"handshake,nullable"`
	JavascriptDisabled WaapJavascriptDisabledPageData `json:"javascript_disabled,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID                 respjson.Field
		Name               respjson.Field
		Block              respjson.Field
		BlockCsrf          respjson.Field
		Captcha            respjson.Field
		CookieDisabled     respjson.Field
		Domains            respjson.Field
		Handshake          respjson.Field
		JavascriptDisabled respjson.Field
		ExtraFields        map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapCustomPageSet) RawJSON added in v0.3.0

func (r WaapCustomPageSet) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomPageSet) UnmarshalJSON added in v0.3.0

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

type WaapCustomRule added in v0.3.0

type WaapCustomRule struct {
	// The unique identifier for the rule
	ID int64 `json:"id,required"`
	// The action that a WAAP rule takes when triggered
	Action WaapCustomRuleAction `json:"action,required"`
	// The conditions required for the WAAP engine to trigger the rule. Rules may have
	// between 1 and 5 conditions. All conditions must pass for the rule to trigger
	Conditions []WaapCustomRuleCondition `json:"conditions,required"`
	// Whether or not the rule is enabled
	Enabled bool `json:"enabled,required"`
	// The name assigned to the rule
	Name string `json:"name,required"`
	// The description assigned to the rule
	Description string `json:"description,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Action      respjson.Field
		Conditions  respjson.Field
		Enabled     respjson.Field
		Name        respjson.Field
		Description respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

An WAAP rule applied to a domain

func (WaapCustomRule) RawJSON added in v0.3.0

func (r WaapCustomRule) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRule) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleAction added in v0.3.0

type WaapCustomRuleAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,nullable"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block WaapCustomRuleActionBlock `json:"block,nullable"`
	// The WAAP presented the user with a captcha
	Captcha any `json:"captcha,nullable"`
	// The WAAP performed automatic browser validation
	Handshake any `json:"handshake,nullable"`
	// The WAAP monitored the request but took no action
	Monitor any `json:"monitor,nullable"`
	// WAAP tag action gets a list of tags to tag the request scope with
	Tag WaapCustomRuleActionTag `json:"tag,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Allow       respjson.Field
		Block       respjson.Field
		Captcha     respjson.Field
		Handshake   respjson.Field
		Monitor     respjson.Field
		Tag         respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The action that a WAAP rule takes when triggered

func (WaapCustomRuleAction) RawJSON added in v0.3.0

func (r WaapCustomRuleAction) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRuleAction) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleActionBlock added in v0.3.0

type WaapCustomRuleActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration string `json:"action_duration,nullable"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ActionDuration respjson.Field
		StatusCode     respjson.Field
		ExtraFields    map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WAAP block action behavior could be configured with response status code and action duration.

func (WaapCustomRuleActionBlock) RawJSON added in v0.3.0

func (r WaapCustomRuleActionBlock) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRuleActionBlock) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleActionTag added in v0.3.0

type WaapCustomRuleActionTag struct {
	// The list of user defined tags to tag the request with
	Tags []string `json:"tags,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Tags        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WAAP tag action gets a list of tags to tag the request scope with

func (WaapCustomRuleActionTag) RawJSON added in v0.3.0

func (r WaapCustomRuleActionTag) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRuleActionTag) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleCondition added in v0.3.0

type WaapCustomRuleCondition struct {
	// Match the requested Content-Type
	ContentType WaapCustomRuleConditionContentType `json:"content_type,nullable"`
	// Match the country that the request originated from
	Country WaapCustomRuleConditionCountry `json:"country,nullable"`
	// Match the incoming file extension
	FileExtension WaapCustomRuleConditionFileExtension `json:"file_extension,nullable"`
	// Match an incoming request header
	Header WaapCustomRuleConditionHeader `json:"header,nullable"`
	// Match when an incoming request header is present
	HeaderExists WaapCustomRuleConditionHeaderExists `json:"header_exists,nullable"`
	// Match the incoming HTTP method
	HTTPMethod WaapCustomRuleConditionHTTPMethod `json:"http_method,nullable"`
	// Match the incoming request against a single IP address
	IP WaapCustomRuleConditionIP `json:"ip,nullable"`
	// Match the incoming request against an IP range
	IPRange WaapCustomRuleConditionIPRange `json:"ip_range,nullable"`
	// Match the organization the request originated from, as determined by a WHOIS
	// lookup of the requesting IP
	Organization WaapCustomRuleConditionOrganization `json:"organization,nullable"`
	// Match the type of organization that owns the IP address making an incoming
	// request
	OwnerTypes WaapCustomRuleConditionOwnerTypes `json:"owner_types,nullable"`
	// Match the rate at which requests come in that match certain conditions
	RequestRate WaapCustomRuleConditionRequestRate `json:"request_rate,nullable"`
	// Match a response header
	ResponseHeader WaapCustomRuleConditionResponseHeader `json:"response_header,nullable"`
	// Match when a response header is present
	ResponseHeaderExists WaapCustomRuleConditionResponseHeaderExists `json:"response_header_exists,nullable"`
	// Match the number of dynamic page requests made in a WAAP session
	SessionRequestCount WaapCustomRuleConditionSessionRequestCount `json:"session_request_count,nullable"`
	// Matches requests based on specified tags
	Tags WaapCustomRuleConditionTags `json:"tags,nullable"`
	// Match the incoming request URL
	URL WaapCustomRuleConditionURL `json:"url,nullable"`
	// Match the user agent making the request
	UserAgent WaapCustomRuleConditionUserAgent `json:"user_agent,nullable"`
	// Matches requests based on user-defined tags
	UserDefinedTags WaapCustomRuleConditionUserDefinedTags `json:"user_defined_tags,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ContentType          respjson.Field
		Country              respjson.Field
		FileExtension        respjson.Field
		Header               respjson.Field
		HeaderExists         respjson.Field
		HTTPMethod           respjson.Field
		IP                   respjson.Field
		IPRange              respjson.Field
		Organization         respjson.Field
		OwnerTypes           respjson.Field
		RequestRate          respjson.Field
		ResponseHeader       respjson.Field
		ResponseHeaderExists respjson.Field
		SessionRequestCount  respjson.Field
		Tags                 respjson.Field
		URL                  respjson.Field
		UserAgent            respjson.Field
		UserDefinedTags      respjson.Field
		ExtraFields          map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The criteria of an incoming web request and the models of the various values those criteria can take

func (WaapCustomRuleCondition) RawJSON added in v0.3.0

func (r WaapCustomRuleCondition) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRuleCondition) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionContentType added in v0.3.0

type WaapCustomRuleConditionContentType struct {
	// The list of content types to match against
	ContentType []string `json:"content_type,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ContentType respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the requested Content-Type

func (WaapCustomRuleConditionContentType) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionContentType) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionCountry added in v0.3.0

type WaapCustomRuleConditionCountry struct {
	// A list of ISO 3166-1 alpha-2 formatted strings representing the countries to
	// match against
	CountryCode []string `json:"country_code,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		CountryCode respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the country that the request originated from

func (WaapCustomRuleConditionCountry) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionCountry) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionFileExtension added in v0.3.0

type WaapCustomRuleConditionFileExtension struct {
	// The list of file extensions to match against
	FileExtension []string `json:"file_extension,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		FileExtension respjson.Field
		Negation      respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the incoming file extension

func (WaapCustomRuleConditionFileExtension) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionFileExtension) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionHTTPMethod added in v0.3.0

type WaapCustomRuleConditionHTTPMethod struct {
	// HTTP methods and descriptions Methods from the following RFCs are all observed:
	//
	// - RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
	// - RFC 5789: PATCH Method for HTTP
	//
	// Any of "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT",
	// "TRACE".
	HTTPMethod string `json:"http_method,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		HTTPMethod  respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the incoming HTTP method

func (WaapCustomRuleConditionHTTPMethod) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionHTTPMethod) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionHeader added in v0.3.0

type WaapCustomRuleConditionHeader struct {
	// The request header name
	Header string `json:"header,required"`
	// The request header value
	Value string `json:"value,required"`
	// The type of matching condition for header and value.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Header      respjson.Field
		Value       respjson.Field
		MatchType   respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match an incoming request header

func (WaapCustomRuleConditionHeader) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionHeader) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionHeaderExists added in v0.3.0

type WaapCustomRuleConditionHeaderExists struct {
	// The request header name
	Header string `json:"header,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Header      respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match when an incoming request header is present

func (WaapCustomRuleConditionHeaderExists) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionHeaderExists) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionIP added in v0.3.0

type WaapCustomRuleConditionIP struct {
	// A single IPv4 or IPv6 address
	IPAddress string `json:"ip_address,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		IPAddress   respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the incoming request against a single IP address

func (WaapCustomRuleConditionIP) RawJSON added in v0.3.0

func (r WaapCustomRuleConditionIP) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionIP) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionIPRange added in v0.3.0

type WaapCustomRuleConditionIPRange struct {
	// The lower bound IPv4 or IPv6 address to match against
	LowerBound string `json:"lower_bound,required" format:"ipv4"`
	// The upper bound IPv4 or IPv6 address to match against
	UpperBound string `json:"upper_bound,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		LowerBound  respjson.Field
		UpperBound  respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the incoming request against an IP range

func (WaapCustomRuleConditionIPRange) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionIPRange) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionOrganization added in v0.3.0

type WaapCustomRuleConditionOrganization struct {
	// The organization to match against
	Organization string `json:"organization,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Organization respjson.Field
		Negation     respjson.Field
		ExtraFields  map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the organization the request originated from, as determined by a WHOIS lookup of the requesting IP

func (WaapCustomRuleConditionOrganization) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionOrganization) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionOwnerTypes added in v0.3.0

type WaapCustomRuleConditionOwnerTypes struct {
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// Match the type of organization that owns the IP address making an incoming
	// request
	//
	// Any of "COMMERCIAL", "EDUCATIONAL", "GOVERNMENT", "HOSTING_SERVICES", "ISP",
	// "MOBILE_NETWORK", "NETWORK", "RESERVED".
	OwnerTypes []string `json:"owner_types"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Negation    respjson.Field
		OwnerTypes  respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the type of organization that owns the IP address making an incoming request

func (WaapCustomRuleConditionOwnerTypes) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionOwnerTypes) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionRequestRate added in v0.3.0

type WaapCustomRuleConditionRequestRate struct {
	// A regular expression matching the URL path of the incoming request
	PathPattern string `json:"path_pattern,required"`
	// The number of incoming requests over the given time that can trigger a request
	// rate condition
	Requests int64 `json:"requests,required"`
	// The number of seconds that the WAAP measures incoming requests over before
	// triggering a request rate condition
	Time int64 `json:"time,required"`
	// Possible HTTP request methods that can trigger a request rate condition
	//
	// Any of "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT",
	// "TRACE".
	HTTPMethods []string `json:"http_methods,nullable"`
	// A list of source IPs that can trigger a request rate condition
	IPs []string `json:"ips,nullable" format:"ipv4"`
	// A user-defined tag that can be included in incoming requests and used to trigger
	// a request rate condition
	UserDefinedTag string `json:"user_defined_tag,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		PathPattern    respjson.Field
		Requests       respjson.Field
		Time           respjson.Field
		HTTPMethods    respjson.Field
		IPs            respjson.Field
		UserDefinedTag respjson.Field
		ExtraFields    map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the rate at which requests come in that match certain conditions

func (WaapCustomRuleConditionRequestRate) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionRequestRate) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionResponseHeader added in v0.3.0

type WaapCustomRuleConditionResponseHeader struct {
	// The response header name
	Header string `json:"header,required"`
	// The response header value
	Value string `json:"value,required"`
	// The type of matching condition for header and value.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Header      respjson.Field
		Value       respjson.Field
		MatchType   respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match a response header

func (WaapCustomRuleConditionResponseHeader) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionResponseHeader) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionResponseHeaderExists added in v0.3.0

type WaapCustomRuleConditionResponseHeaderExists struct {
	// The response header name
	Header string `json:"header,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Header      respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match when a response header is present

func (WaapCustomRuleConditionResponseHeaderExists) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionResponseHeaderExists) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionSessionRequestCount added in v0.3.0

type WaapCustomRuleConditionSessionRequestCount struct {
	// The number of dynamic requests in the session
	RequestCount int64 `json:"request_count,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		RequestCount respjson.Field
		Negation     respjson.Field
		ExtraFields  map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the number of dynamic page requests made in a WAAP session

func (WaapCustomRuleConditionSessionRequestCount) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionSessionRequestCount) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionTags added in v0.3.0

type WaapCustomRuleConditionTags struct {
	// A list of tags to match against the request tags
	Tags []string `json:"tags,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Tags        respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Matches requests based on specified tags

func (WaapCustomRuleConditionTags) RawJSON added in v0.3.0

func (r WaapCustomRuleConditionTags) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionTags) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionURL added in v0.3.0

type WaapCustomRuleConditionURL struct {
	// The pattern to match against the request URL. Constraints depend on
	// `match_type`:
	//
	//   - **Exact/Contains**: plain text matching (e.g., `/admin`, must comply with
	//     `^[\w!\$~:#\[\]@\(\)\\*\+,=\/\-\.\%]+$`).
	//   - **Regex**: a valid regular expression (e.g., `^/upload(/\d+)?/\w+`).
	//     Lookahead/lookbehind constructs are forbidden.
	URL string `json:"url,required"`
	// The type of matching condition.
	//
	// Any of "Exact", "Contains", "Regex".
	MatchType string `json:"match_type"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		URL         respjson.Field
		MatchType   respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the incoming request URL

func (WaapCustomRuleConditionURL) RawJSON added in v0.3.0

func (r WaapCustomRuleConditionURL) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionURL) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionUserAgent added in v0.3.0

type WaapCustomRuleConditionUserAgent struct {
	// The user agent value to match
	UserAgent string `json:"user_agent,required"`
	// The type of matching condition.
	//
	// Any of "Exact", "Contains".
	MatchType string `json:"match_type"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		UserAgent   respjson.Field
		MatchType   respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the user agent making the request

func (WaapCustomRuleConditionUserAgent) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionUserAgent) UnmarshalJSON added in v0.3.0

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

type WaapCustomRuleConditionUserDefinedTags added in v0.3.0

type WaapCustomRuleConditionUserDefinedTags struct {
	// A list of user-defined tags to match against the request tags
	Tags []string `json:"tags,required"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Tags        respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Matches requests based on user-defined tags

func (WaapCustomRuleConditionUserDefinedTags) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapCustomRuleConditionUserDefinedTags) UnmarshalJSON added in v0.3.0

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

type WaapCustomerRuleState added in v0.3.0

type WaapCustomerRuleState string
const (
	WaapCustomerRuleStateEnable  WaapCustomerRuleState = "enable"
	WaapCustomerRuleStateDisable WaapCustomerRuleState = "disable"
)

type WaapDDOSAttack added in v0.3.0

type WaapDDOSAttack struct {
	// End time of DDoS attack
	EndTime time.Time `json:"end_time,nullable" format:"date-time"`
	// Start time of DDoS attack
	StartTime time.Time `json:"start_time" format:"date-time"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		EndTime     respjson.Field
		StartTime   respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapDDOSAttack) RawJSON added in v0.3.0

func (r WaapDDOSAttack) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDDOSAttack) UnmarshalJSON added in v0.3.0

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

type WaapDDOSInfo added in v0.3.0

type WaapDDOSInfo struct {
	// The number of requests made
	Count int64 `json:"count,required"`
	// The value for the grouped by type
	Identity string `json:"identity,required"`
	// Any of "URL", "IP", "User-Agent".
	Type WaapDDOSInfoType `json:"type,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Identity    respjson.Field
		Type        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapDDOSInfo) RawJSON added in v0.3.0

func (r WaapDDOSInfo) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDDOSInfo) UnmarshalJSON added in v0.3.0

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

type WaapDDOSInfoType added in v0.3.0

type WaapDDOSInfoType string
const (
	WaapDDOSInfoTypeURL       WaapDDOSInfoType = "URL"
	WaapDDOSInfoTypeIP        WaapDDOSInfoType = "IP"
	WaapDDOSInfoTypeUserAgent WaapDDOSInfoType = "User-Agent"
)

type WaapDetailedDomain

type WaapDetailedDomain struct {
	// The domain ID
	ID int64 `json:"id,required"`
	// The date and time the domain was created in ISO 8601 format
	CreatedAt time.Time `json:"created_at,required" format:"date-time"`
	// The ID of the custom page set
	CustomPageSet int64 `json:"custom_page_set,required"`
	// The domain name
	Name string `json:"name,required"`
	// The different statuses a domain can have
	//
	// Any of "active", "bypass", "monitor", "locked".
	Status WaapDomainStatus `json:"status,required"`
	// Domain level quotas
	Quotas map[string]WaapDetailedDomainQuota `json:"quotas,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID            respjson.Field
		CreatedAt     respjson.Field
		CustomPageSet respjson.Field
		Name          respjson.Field
		Status        respjson.Field
		Quotas        respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents a WAAP domain, serving as a singular unit within the WAAP service. Each domain functions autonomously, possessing its own set of rules and configurations to manage web application firewall settings and behaviors.

func (WaapDetailedDomain) RawJSON

func (r WaapDetailedDomain) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDetailedDomain) UnmarshalJSON

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

type WaapDetailedDomainQuota

type WaapDetailedDomainQuota struct {
	// The maximum allowed number of this resource
	Allowed int64 `json:"allowed,required"`
	// The current number of this resource
	Current int64 `json:"current,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Allowed     respjson.Field
		Current     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapDetailedDomainQuota) RawJSON

func (r WaapDetailedDomainQuota) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDetailedDomainQuota) UnmarshalJSON

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

type WaapDomainAPISettings added in v0.3.0

type WaapDomainAPISettings struct {
	// The API URLs for a domain. If your domain has a common base URL for all API
	// paths, it can be set here
	APIURLs []string `json:"api_urls"`
	// Indicates if the domain is an API domain. All requests to an API domain are
	// treated as API requests. If this is set to true then the `api_urls` field is
	// ignored.
	IsAPI bool `json:"is_api"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		APIURLs     respjson.Field
		IsAPI       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

API settings of a domain

func (WaapDomainAPISettings) RawJSON added in v0.3.0

func (r WaapDomainAPISettings) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDomainAPISettings) UnmarshalJSON added in v0.3.0

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

type WaapDomainDDOSSettings

type WaapDomainDDOSSettings struct {
	// The burst threshold detects sudden rises in traffic. If it is met and the number
	// of requests is at least five times the last 2-second interval, DDoS protection
	// will activate. Default is 1000.
	BurstThreshold int64 `json:"burst_threshold"`
	// The global threshold is responsible for identifying DDoS attacks with a slow
	// rise in traffic. If the threshold is met and the current number of requests is
	// at least double that of the previous 10-second window, DDoS protection will
	// activate. Default is 5000.
	GlobalThreshold int64 `json:"global_threshold"`
	// The sub-second threshold protects WAAP servers against attacks from traffic
	// bursts. When this threshold is reached, the DDoS mode will activate on the
	// affected WAAP server, not the whole WAAP cluster. Default is 50.
	SubSecondThreshold int64 `json:"sub_second_threshold"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		BurstThreshold     respjson.Field
		GlobalThreshold    respjson.Field
		SubSecondThreshold respjson.Field
		ExtraFields        map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

DDoS settings for a domain.

func (WaapDomainDDOSSettings) RawJSON

func (r WaapDomainDDOSSettings) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDomainDDOSSettings) UnmarshalJSON

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

type WaapDomainPolicy added in v0.3.0

type WaapDomainPolicy struct {
	// Unique identifier for the security rule
	ID string `json:"id,required"`
	// The action taken by the WAAP upon rule activation.
	//
	// Any of "Allow", "Block", "Captcha", "Gateway", "Handshake", "Monitor",
	// "Composite".
	Action WaapPolicyAction `json:"action,required"`
	// Detailed description of the security rule
	Description string `json:"description,required"`
	// The rule set group name to which the rule belongs
	Group string `json:"group,required"`
	// Indicates if the security rule is active
	Mode bool `json:"mode,required"`
	// Name of the security rule
	Name string `json:"name,required"`
	// Identifier of the rule set to which the rule belongs
	RuleSetID int64 `json:"rule_set_id,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Action      respjson.Field
		Description respjson.Field
		Group       respjson.Field
		Mode        respjson.Field
		Name        respjson.Field
		RuleSetID   respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents a configurable WAAP security rule, also known as a policy.

func (WaapDomainPolicy) RawJSON added in v0.3.0

func (r WaapDomainPolicy) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDomainPolicy) UnmarshalJSON added in v0.3.0

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

type WaapDomainSettingsModel added in v0.3.0

type WaapDomainSettingsModel struct {
	// API settings of a domain
	API WaapDomainAPISettings `json:"api,required"`
	// DDoS settings for a domain.
	DDOS WaapDomainDDOSSettings `json:"ddos,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		API         respjson.Field
		DDOS        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Settings for a domain.

func (WaapDomainSettingsModel) RawJSON added in v0.3.0

func (r WaapDomainSettingsModel) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapDomainSettingsModel) UnmarshalJSON added in v0.3.0

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

type WaapDomainStatus

type WaapDomainStatus string

The different statuses a domain can have

const (
	WaapDomainStatusActive  WaapDomainStatus = "active"
	WaapDomainStatusBypass  WaapDomainStatus = "bypass"
	WaapDomainStatusMonitor WaapDomainStatus = "monitor"
	WaapDomainStatusLocked  WaapDomainStatus = "locked"
)

type WaapEventStatistics added in v0.3.0

type WaapEventStatistics struct {
	// A collection of total numbers of events with blocked results per criteria
	Blocked WaapBlockedStatistics `json:"blocked,required"`
	// A collection of total numbers of events per criteria
	Count WaapCountStatistics `json:"count,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Blocked     respjson.Field
		Count       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

A collection of event metrics over a time span

func (WaapEventStatistics) RawJSON added in v0.3.0

func (r WaapEventStatistics) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapEventStatistics) UnmarshalJSON added in v0.3.0

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

type WaapFirewallRule added in v0.3.0

type WaapFirewallRule struct {
	// The unique identifier of the rule
	ID int64 `json:"id,required"`
	// The action that a firewall rule takes when triggered
	Action WaapFirewallRuleAction `json:"action,required"`
	// The condition required for the WAAP engine to trigger the rule.
	Conditions []WaapFirewallRuleCondition `json:"conditions,required"`
	// Whether or not the rule is enabled
	Enabled bool `json:"enabled,required"`
	// The name assigned to the rule
	Name string `json:"name,required"`
	// The description assigned to the rule
	Description string `json:"description,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Action      respjson.Field
		Conditions  respjson.Field
		Enabled     respjson.Field
		Name        respjson.Field
		Description respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapFirewallRule) RawJSON added in v0.3.0

func (r WaapFirewallRule) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapFirewallRule) UnmarshalJSON added in v0.3.0

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

type WaapFirewallRuleAction added in v0.3.0

type WaapFirewallRuleAction struct {
	// The WAAP allowed the request
	Allow any `json:"allow,nullable"`
	// WAAP block action behavior could be configured with response status code and
	// action duration.
	Block WaapFirewallRuleActionBlock `json:"block,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Allow       respjson.Field
		Block       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The action that a firewall rule takes when triggered

func (WaapFirewallRuleAction) RawJSON added in v0.3.0

func (r WaapFirewallRuleAction) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapFirewallRuleAction) UnmarshalJSON added in v0.3.0

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

type WaapFirewallRuleActionBlock added in v0.3.0

type WaapFirewallRuleActionBlock struct {
	// How long a rule's block action will apply to subsequent requests. Can be
	// specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to
	// represent time format (seconds, minutes, hours, or days)
	ActionDuration string `json:"action_duration,nullable"`
	// Designates the HTTP status code to deliver when a request is blocked.
	//
	// Any of 403, 405, 418, 429.
	StatusCode int64 `json:"status_code,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ActionDuration respjson.Field
		StatusCode     respjson.Field
		ExtraFields    map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

WAAP block action behavior could be configured with response status code and action duration.

func (WaapFirewallRuleActionBlock) RawJSON added in v0.3.0

func (r WaapFirewallRuleActionBlock) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapFirewallRuleActionBlock) UnmarshalJSON added in v0.3.0

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

type WaapFirewallRuleCondition added in v0.3.0

type WaapFirewallRuleCondition struct {
	// Match the incoming request against a single IP address
	IP WaapFirewallRuleConditionIP `json:"ip,nullable"`
	// Match the incoming request against an IP range
	IPRange WaapFirewallRuleConditionIPRange `json:"ip_range,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		IP          respjson.Field
		IPRange     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The criteria of an incoming web request and the models of the various values those criteria can take

func (WaapFirewallRuleCondition) RawJSON added in v0.3.0

func (r WaapFirewallRuleCondition) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapFirewallRuleCondition) UnmarshalJSON added in v0.3.0

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

type WaapFirewallRuleConditionIP added in v0.3.0

type WaapFirewallRuleConditionIP struct {
	// A single IPv4 or IPv6 address
	IPAddress string `json:"ip_address,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		IPAddress   respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the incoming request against a single IP address

func (WaapFirewallRuleConditionIP) RawJSON added in v0.3.0

func (r WaapFirewallRuleConditionIP) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapFirewallRuleConditionIP) UnmarshalJSON added in v0.3.0

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

type WaapFirewallRuleConditionIPRange added in v0.3.0

type WaapFirewallRuleConditionIPRange struct {
	// The lower bound IPv4 or IPv6 address to match against
	LowerBound string `json:"lower_bound,required" format:"ipv4"`
	// The upper bound IPv4 or IPv6 address to match against
	UpperBound string `json:"upper_bound,required" format:"ipv4"`
	// Whether or not to apply a boolean NOT operation to the rule's condition
	Negation bool `json:"negation"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		LowerBound  respjson.Field
		UpperBound  respjson.Field
		Negation    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Match the incoming request against an IP range

func (WaapFirewallRuleConditionIPRange) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapFirewallRuleConditionIPRange) UnmarshalJSON added in v0.3.0

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

type WaapGetAccountOverviewResponse added in v0.3.0

type WaapGetAccountOverviewResponse struct {
	// The client ID
	ID int64 `json:"id,required"`
	// List of enabled features
	Features []string `json:"features,required"`
	// Quotas for the client
	Quotas map[string]WaapGetAccountOverviewResponseQuota `json:"quotas,required"`
	// Information about the WAAP service status
	Service WaapGetAccountOverviewResponseService `json:"service,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Features    respjson.Field
		Quotas      respjson.Field
		Service     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents the WAAP service information for a client

func (WaapGetAccountOverviewResponse) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapGetAccountOverviewResponse) UnmarshalJSON added in v0.3.0

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

type WaapGetAccountOverviewResponseQuota added in v0.3.0

type WaapGetAccountOverviewResponseQuota struct {
	// The maximum allowed number of this resource
	Allowed int64 `json:"allowed,required"`
	// The current number of this resource
	Current int64 `json:"current,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Allowed     respjson.Field
		Current     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapGetAccountOverviewResponseQuota) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapGetAccountOverviewResponseQuota) UnmarshalJSON added in v0.3.0

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

type WaapGetAccountOverviewResponseService added in v0.3.0

type WaapGetAccountOverviewResponseService struct {
	// Whether the service is enabled
	Enabled bool `json:"enabled,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Enabled     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Information about the WAAP service status

func (WaapGetAccountOverviewResponseService) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (*WaapGetAccountOverviewResponseService) UnmarshalJSON added in v0.3.0

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

type WaapHandshakePageData added in v0.3.0

type WaapHandshakePageData struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header string `json:"header"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo string `json:"logo"`
	// The text to display in the title of the custom page
	Title string `json:"title"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Enabled     respjson.Field
		Header      respjson.Field
		Logo        respjson.Field
		Title       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapHandshakePageData) RawJSON added in v0.3.0

func (r WaapHandshakePageData) RawJSON() string

Returns the unmodified JSON received from the API

func (WaapHandshakePageData) ToParam added in v0.3.0

ToParam converts this WaapHandshakePageData to a WaapHandshakePageDataParam.

Warning: the fields of the param type will not be present. ToParam should only be used at the last possible moment before sending a request. Test for this with WaapHandshakePageDataParam.Overrides()

func (*WaapHandshakePageData) UnmarshalJSON added in v0.3.0

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

type WaapHandshakePageDataParam added in v0.3.0

type WaapHandshakePageDataParam struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header param.Opt[string] `json:"header,omitzero"`
	// height 130px. This should be a base 64 encoding of the full HTML img tag
	// compatible image, with the header included.
	Logo param.Opt[string] `json:"logo,omitzero"`
	// The text to display in the title of the custom page
	Title param.Opt[string] `json:"title,omitzero"`
	// contains filtered or unexported fields
}

The property Enabled is required.

func (WaapHandshakePageDataParam) MarshalJSON added in v0.3.0

func (r WaapHandshakePageDataParam) MarshalJSON() (data []byte, err error)

func (*WaapHandshakePageDataParam) UnmarshalJSON added in v0.3.0

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

type WaapIPCountryAttack added in v0.3.0

type WaapIPCountryAttack struct {
	// The number of attacks from the specified IP address to the country
	Count int64 `json:"count,required"`
	// An ISO 3166-1 alpha-2 formatted string representing the country that was
	// attacked
	Country string `json:"country,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Country     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapIPCountryAttack) RawJSON added in v0.3.0

func (r WaapIPCountryAttack) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapIPCountryAttack) UnmarshalJSON added in v0.3.0

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

type WaapIPDDOSInfoModel added in v0.3.0

type WaapIPDDOSInfoModel struct {
	// Indicates if the IP is tagged as a botnet client
	BotnetClient bool `json:"botnet_client,required"`
	// The time series data for the DDoS attacks from the IP address
	TimeSeries []WaapIPDDOSInfoModelTimeSery `json:"time_series,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		BotnetClient respjson.Field
		TimeSeries   respjson.Field
		ExtraFields  map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapIPDDOSInfoModel) RawJSON added in v0.3.0

func (r WaapIPDDOSInfoModel) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapIPDDOSInfoModel) UnmarshalJSON added in v0.3.0

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

type WaapIPDDOSInfoModelTimeSery added in v0.3.0

type WaapIPDDOSInfoModelTimeSery struct {
	// The number of attacks
	Count int64 `json:"count,required"`
	// The timestamp of the time series item as a POSIX timestamp
	Timestamp int64 `json:"timestamp,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Timestamp   respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapIPDDOSInfoModelTimeSery) RawJSON added in v0.3.0

func (r WaapIPDDOSInfoModelTimeSery) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapIPDDOSInfoModelTimeSery) UnmarshalJSON added in v0.3.0

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

type WaapIPInfo added in v0.3.0

type WaapIPInfo struct {
	// The risk score of the IP address
	//
	// Any of "NO_RISK", "LOW", "MEDIUM", "HIGH", "EXTREME", "NOT_ENOUGH_DATA".
	RiskScore WaapIPInfoRiskScore `json:"risk_score,required"`
	// The tags associated with the IP address that affect the risk score
	Tags []string `json:"tags,required"`
	// The WHOIS information for the IP address
	Whois WaapIPInfoWhois `json:"whois,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		RiskScore   respjson.Field
		Tags        respjson.Field
		Whois       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapIPInfo) RawJSON added in v0.3.0

func (r WaapIPInfo) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapIPInfo) UnmarshalJSON added in v0.3.0

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

type WaapIPInfoCounts added in v0.3.0

type WaapIPInfoCounts struct {
	// The number of requests from the IP address that were blocked
	BlockedRequests int64 `json:"blocked_requests,required"`
	// The total number of requests made by the IP address
	TotalRequests int64 `json:"total_requests,required"`
	// The number of unique sessions from the IP address
	UniqueSessions int64 `json:"unique_sessions,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		BlockedRequests respjson.Field
		TotalRequests   respjson.Field
		UniqueSessions  respjson.Field
		ExtraFields     map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapIPInfoCounts) RawJSON added in v0.3.0

func (r WaapIPInfoCounts) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapIPInfoCounts) UnmarshalJSON added in v0.3.0

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

type WaapIPInfoRiskScore added in v0.3.0

type WaapIPInfoRiskScore string

The risk score of the IP address

const (
	WaapIPInfoRiskScoreNoRisk        WaapIPInfoRiskScore = "NO_RISK"
	WaapIPInfoRiskScoreLow           WaapIPInfoRiskScore = "LOW"
	WaapIPInfoRiskScoreMedium        WaapIPInfoRiskScore = "MEDIUM"
	WaapIPInfoRiskScoreHigh          WaapIPInfoRiskScore = "HIGH"
	WaapIPInfoRiskScoreExtreme       WaapIPInfoRiskScore = "EXTREME"
	WaapIPInfoRiskScoreNotEnoughData WaapIPInfoRiskScore = "NOT_ENOUGH_DATA"
)

type WaapIPInfoWhois added in v0.3.0

type WaapIPInfoWhois struct {
	// The abuse mail
	AbuseMail string `json:"abuse_mail,nullable"`
	// The CIDR
	Cidr int64 `json:"cidr,nullable"`
	// The country
	Country string `json:"country,nullable"`
	// The network description
	NetDescription string `json:"net_description,nullable"`
	// The network name
	NetName string `json:"net_name,nullable"`
	// The network range
	NetRange string `json:"net_range,nullable"`
	// The network type
	NetType string `json:"net_type,nullable"`
	// The organization ID
	OrgID string `json:"org_id,nullable"`
	// The organization name
	OrgName string `json:"org_name,nullable"`
	// The owner type
	OwnerType string `json:"owner_type,nullable"`
	// The RIR
	Rir string `json:"rir,nullable"`
	// The state
	State string `json:"state,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		AbuseMail      respjson.Field
		Cidr           respjson.Field
		Country        respjson.Field
		NetDescription respjson.Field
		NetName        respjson.Field
		NetRange       respjson.Field
		NetType        respjson.Field
		OrgID          respjson.Field
		OrgName        respjson.Field
		OwnerType      respjson.Field
		Rir            respjson.Field
		State          respjson.Field
		ExtraFields    map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

The WHOIS information for the IP address

func (WaapIPInfoWhois) RawJSON added in v0.3.0

func (r WaapIPInfoWhois) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapIPInfoWhois) UnmarshalJSON added in v0.3.0

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

type WaapInsight added in v0.3.0

type WaapInsight struct {
	// A generated unique identifier for the insight
	ID string `json:"id,required" format:"uuid"`
	// The description of the insight
	Description string `json:"description,required"`
	// The date and time the insight was first seen in ISO 8601 format
	FirstSeen time.Time `json:"first_seen,required" format:"date-time"`
	// The type of the insight represented as a slug
	InsightType string `json:"insight_type,required"`
	// A hash table of label names and values that apply to the insight
	Labels map[string]string `json:"labels,required"`
	// The date and time the insight was last seen in ISO 8601 format
	LastSeen time.Time `json:"last_seen,required" format:"date-time"`
	// The date and time the insight was last seen in ISO 8601 format
	LastStatusChange time.Time `json:"last_status_change,required" format:"date-time"`
	// The recommended action to perform to resolve the insight
	Recommendation string `json:"recommendation,required"`
	// The different statuses an insight can have
	//
	// Any of "OPEN", "ACKED", "CLOSED".
	Status WaapInsightStatus `json:"status,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID               respjson.Field
		Description      respjson.Field
		FirstSeen        respjson.Field
		InsightType      respjson.Field
		Labels           respjson.Field
		LastSeen         respjson.Field
		LastStatusChange respjson.Field
		Recommendation   respjson.Field
		Status           respjson.Field
		ExtraFields      map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapInsight) RawJSON added in v0.3.0

func (r WaapInsight) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapInsight) UnmarshalJSON added in v0.3.0

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

type WaapInsightSilence added in v0.3.0

type WaapInsightSilence struct {
	// A generated unique identifier for the silence
	ID string `json:"id,required" format:"uuid"`
	// The author of the silence
	Author string `json:"author,required"`
	// A comment explaining the reason for the silence
	Comment string `json:"comment,required"`
	// The date and time the silence expires in ISO 8601 format
	ExpireAt time.Time `json:"expire_at,required" format:"date-time"`
	// The slug of the insight type
	InsightType string `json:"insight_type,required"`
	// A hash table of label names and values that apply to the insight silence
	Labels map[string]string `json:"labels,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Author      respjson.Field
		Comment     respjson.Field
		ExpireAt    respjson.Field
		InsightType respjson.Field
		Labels      respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapInsightSilence) RawJSON added in v0.3.0

func (r WaapInsightSilence) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapInsightSilence) UnmarshalJSON added in v0.3.0

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

type WaapInsightSilenceSortBy added in v0.3.0

type WaapInsightSilenceSortBy string
const (
	WaapInsightSilenceSortByID               WaapInsightSilenceSortBy = "id"
	WaapInsightSilenceSortByMinusID          WaapInsightSilenceSortBy = "-id"
	WaapInsightSilenceSortByInsightType      WaapInsightSilenceSortBy = "insight_type"
	WaapInsightSilenceSortByMinusInsightType WaapInsightSilenceSortBy = "-insight_type"
	WaapInsightSilenceSortByComment          WaapInsightSilenceSortBy = "comment"
	WaapInsightSilenceSortByMinusComment     WaapInsightSilenceSortBy = "-comment"
	WaapInsightSilenceSortByAuthor           WaapInsightSilenceSortBy = "author"
	WaapInsightSilenceSortByMinusAuthor      WaapInsightSilenceSortBy = "-author"
	WaapInsightSilenceSortByExpireAt         WaapInsightSilenceSortBy = "expire_at"
	WaapInsightSilenceSortByMinusExpireAt    WaapInsightSilenceSortBy = "-expire_at"
)

type WaapInsightSortBy added in v0.3.0

type WaapInsightSortBy string
const (
	WaapInsightSortByID                    WaapInsightSortBy = "id"
	WaapInsightSortByMinusID               WaapInsightSortBy = "-id"
	WaapInsightSortByInsightType           WaapInsightSortBy = "insight_type"
	WaapInsightSortByMinusInsightType      WaapInsightSortBy = "-insight_type"
	WaapInsightSortByFirstSeen             WaapInsightSortBy = "first_seen"
	WaapInsightSortByMinusFirstSeen        WaapInsightSortBy = "-first_seen"
	WaapInsightSortByLastSeen              WaapInsightSortBy = "last_seen"
	WaapInsightSortByMinusLastSeen         WaapInsightSortBy = "-last_seen"
	WaapInsightSortByLastStatusChange      WaapInsightSortBy = "last_status_change"
	WaapInsightSortByMinusLastStatusChange WaapInsightSortBy = "-last_status_change"
	WaapInsightSortByStatus                WaapInsightSortBy = "status"
	WaapInsightSortByMinusStatus           WaapInsightSortBy = "-status"
)

type WaapInsightStatus added in v0.3.0

type WaapInsightStatus string

The different statuses an insight can have

const (
	WaapInsightStatusOpen   WaapInsightStatus = "OPEN"
	WaapInsightStatusAcked  WaapInsightStatus = "ACKED"
	WaapInsightStatusClosed WaapInsightStatus = "CLOSED"
)

type WaapJavascriptDisabledPageData added in v0.3.0

type WaapJavascriptDisabledPageData struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header string `json:"header"`
	// The text to display in the body of the custom page
	Text string `json:"text"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Enabled     respjson.Field
		Header      respjson.Field
		Text        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapJavascriptDisabledPageData) RawJSON added in v0.3.0

Returns the unmodified JSON received from the API

func (WaapJavascriptDisabledPageData) ToParam added in v0.3.0

ToParam converts this WaapJavascriptDisabledPageData to a WaapJavascriptDisabledPageDataParam.

Warning: the fields of the param type will not be present. ToParam should only be used at the last possible moment before sending a request. Test for this with WaapJavascriptDisabledPageDataParam.Overrides()

func (*WaapJavascriptDisabledPageData) UnmarshalJSON added in v0.3.0

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

type WaapJavascriptDisabledPageDataParam added in v0.3.0

type WaapJavascriptDisabledPageDataParam struct {
	// Indicates whether the custom custom page is active or inactive
	Enabled bool `json:"enabled,required"`
	// The text to display in the header of the custom page
	Header param.Opt[string] `json:"header,omitzero"`
	// The text to display in the body of the custom page
	Text param.Opt[string] `json:"text,omitzero"`
	// contains filtered or unexported fields
}

The property Enabled is required.

func (WaapJavascriptDisabledPageDataParam) MarshalJSON added in v0.3.0

func (r WaapJavascriptDisabledPageDataParam) MarshalJSON() (data []byte, err error)

func (*WaapJavascriptDisabledPageDataParam) UnmarshalJSON added in v0.3.0

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

type WaapNetworkDetails added in v0.3.0

type WaapNetworkDetails struct {
	// Client IP
	ClientIP string `json:"client_ip,required"`
	// Country code
	Country string `json:"country,required"`
	// Organization details
	Organization WaapRequestOrganization `json:"organization,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ClientIP     respjson.Field
		Country      respjson.Field
		Organization respjson.Field
		ExtraFields  map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Network details

func (WaapNetworkDetails) RawJSON added in v0.3.0

func (r WaapNetworkDetails) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapNetworkDetails) UnmarshalJSON added in v0.3.0

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

type WaapOrganization added in v0.3.0

type WaapOrganization struct {
	// The ID of an organization
	ID int64 `json:"id,required"`
	// The name of an organization
	Name string `json:"name,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Name        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents an IP range owner organization

func (WaapOrganization) RawJSON added in v0.3.0

func (r WaapOrganization) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapOrganization) UnmarshalJSON added in v0.3.0

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

type WaapPageType added in v0.3.0

type WaapPageType string

The type of the custom page

const (
	WaapPageTypeBlockHTML              WaapPageType = "block.html"
	WaapPageTypeBlockCsrfHTML          WaapPageType = "block_csrf.html"
	WaapPageTypeCaptchaHTML            WaapPageType = "captcha.html"
	WaapPageTypeCookieDisabledHTML     WaapPageType = "cookieDisabled.html"
	WaapPageTypeHandshakeHTML          WaapPageType = "handshake.html"
	WaapPageTypeJavascriptDisabledHTML WaapPageType = "javascriptDisabled.html"
)

type WaapPaginatedCustomPageSet added in v0.3.0

type WaapPaginatedCustomPageSet struct {
	// Number of items contain in the response
	Count int64 `json:"count,required"`
	// Number of items requested in the response
	Limit int64 `json:"limit,required"`
	// Items response offset used
	Offset int64 `json:"offset,required"`
	// List of items returned in the response following given criteria
	Results []WaapCustomPageSet `json:"results,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Limit       respjson.Field
		Offset      respjson.Field
		Results     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapPaginatedCustomPageSet) RawJSON added in v0.3.0

func (r WaapPaginatedCustomPageSet) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapPaginatedCustomPageSet) UnmarshalJSON added in v0.3.0

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

type WaapPaginatedDDOSAttack added in v0.3.0

type WaapPaginatedDDOSAttack struct {
	// Number of items contain in the response
	Count int64 `json:"count,required"`
	// Number of items requested in the response
	Limit int64 `json:"limit,required"`
	// Items response offset used
	Offset int64 `json:"offset,required"`
	// List of items returned in the response following given criteria
	Results []WaapDDOSAttack `json:"results,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Limit       respjson.Field
		Offset      respjson.Field
		Results     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapPaginatedDDOSAttack) RawJSON added in v0.3.0

func (r WaapPaginatedDDOSAttack) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapPaginatedDDOSAttack) UnmarshalJSON added in v0.3.0

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

type WaapPaginatedDDOSInfo added in v0.3.0

type WaapPaginatedDDOSInfo struct {
	// Number of items contain in the response
	Count int64 `json:"count,required"`
	// Number of items requested in the response
	Limit int64 `json:"limit,required"`
	// Items response offset used
	Offset int64 `json:"offset,required"`
	// List of items returned in the response following given criteria
	Results []WaapDDOSInfo `json:"results,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Limit       respjson.Field
		Offset      respjson.Field
		Results     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapPaginatedDDOSInfo) RawJSON added in v0.3.0

func (r WaapPaginatedDDOSInfo) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapPaginatedDDOSInfo) UnmarshalJSON added in v0.3.0

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

type WaapPaginatedRequestSummary added in v0.3.0

type WaapPaginatedRequestSummary struct {
	// Number of items contain in the response
	Count int64 `json:"count,required"`
	// Number of items requested in the response
	Limit int64 `json:"limit,required"`
	// Items response offset used
	Offset int64 `json:"offset,required"`
	// List of items returned in the response following given criteria
	Results []WaapRequestSummary `json:"results,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Limit       respjson.Field
		Offset      respjson.Field
		Results     respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapPaginatedRequestSummary) RawJSON added in v0.3.0

func (r WaapPaginatedRequestSummary) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapPaginatedRequestSummary) UnmarshalJSON added in v0.3.0

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

type WaapPatternMatchedTag added in v0.3.0

type WaapPatternMatchedTag struct {
	// Tag description information
	Description string `json:"description,required"`
	// The tag's display name
	DisplayName string `json:"display_name,required"`
	// The phase in which the tag was triggered: access -> Request, `header_filter` ->
	// `response_header`, `body_filter` -> `response_body`
	ExecutionPhase string `json:"execution_phase,required"`
	// The entity to which the variable that triggered the tag belong to. For example:
	// `request_headers`, uri, cookies etc.
	Field string `json:"field,required"`
	// The name of the variable which holds the value that triggered the tag
	FieldName string `json:"field_name,required"`
	// The name of the detected regexp pattern
	PatternName string `json:"pattern_name,required"`
	// The pattern which triggered the tag
	PatternValue string `json:"pattern_value,required"`
	// Tag name
	Tag string `json:"tag,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Description    respjson.Field
		DisplayName    respjson.Field
		ExecutionPhase respjson.Field
		Field          respjson.Field
		FieldName      respjson.Field
		PatternName    respjson.Field
		PatternValue   respjson.Field
		Tag            respjson.Field
		ExtraFields    map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Pattern matched tag details

func (WaapPatternMatchedTag) RawJSON added in v0.3.0

func (r WaapPatternMatchedTag) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapPatternMatchedTag) UnmarshalJSON added in v0.3.0

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

type WaapPolicyAction added in v0.3.0

type WaapPolicyAction string

The action taken by the WAAP upon rule activation.

const (
	WaapPolicyActionAllow     WaapPolicyAction = "Allow"
	WaapPolicyActionBlock     WaapPolicyAction = "Block"
	WaapPolicyActionCaptcha   WaapPolicyAction = "Captcha"
	WaapPolicyActionGateway   WaapPolicyAction = "Gateway"
	WaapPolicyActionHandshake WaapPolicyAction = "Handshake"
	WaapPolicyActionMonitor   WaapPolicyAction = "Monitor"
	WaapPolicyActionComposite WaapPolicyAction = "Composite"
)

type WaapPolicyMode added in v0.3.0

type WaapPolicyMode struct {
	// Indicates if the security rule is active
	Mode bool `json:"mode,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Mode        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents the mode of a security rule.

func (WaapPolicyMode) RawJSON added in v0.3.0

func (r WaapPolicyMode) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapPolicyMode) UnmarshalJSON added in v0.3.0

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

type WaapRequestDetails added in v0.3.0

type WaapRequestDetails struct {
	// Request ID
	ID string `json:"id,required"`
	// Request action
	Action string `json:"action,required"`
	// List of common tags
	CommonTags []WaapCommonTag `json:"common_tags,required"`
	// Content type of request
	ContentType string `json:"content_type,required"`
	// Domain name
	Domain string `json:"domain,required"`
	// Status code for http request
	HTTPStatusCode int64 `json:"http_status_code,required"`
	// HTTP version of request
	HTTPVersion string `json:"http_version,required"`
	// ID of challenge that was generated
	IncidentID string `json:"incident_id,required"`
	// Request method
	Method string `json:"method,required"`
	// Network details
	Network WaapNetworkDetails `json:"network,required"`
	// Request path
	Path string `json:"path,required"`
	// List of shield tags
	PatternMatchedTags []WaapPatternMatchedTag `json:"pattern_matched_tags,required"`
	// The query string of the request
	QueryString string `json:"query_string,required"`
	// Reference ID to identify user sanction
	ReferenceID string `json:"reference_id,required"`
	// HTTP request headers
	RequestHeaders any `json:"request_headers,required"`
	// The time of the request
	RequestTime string `json:"request_time,required"`
	// The type of the request that generated an event
	RequestType string `json:"request_type,required"`
	// The real domain name
	RequestedDomain string `json:"requested_domain,required"`
	// Time took to process all request
	ResponseTime string `json:"response_time,required"`
	// The result of a request
	//
	// Any of "passed", "blocked", "suppressed", "".
	Result WaapRequestDetailsResult `json:"result,required"`
	// ID of the triggered rule
	RuleID string `json:"rule_id,required"`
	// Name of the triggered rule
	RuleName string `json:"rule_name,required"`
	// The HTTP scheme of the request that generated an event
	Scheme string `json:"scheme,required"`
	// The number requests in session
	SessionRequestCount string `json:"session_request_count,required"`
	// List of traffic types
	TrafficTypes []string `json:"traffic_types,required"`
	// User agent details
	UserAgent WaapUserAgentDetails `json:"user_agent,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID                  respjson.Field
		Action              respjson.Field
		CommonTags          respjson.Field
		ContentType         respjson.Field
		Domain              respjson.Field
		HTTPStatusCode      respjson.Field
		HTTPVersion         respjson.Field
		IncidentID          respjson.Field
		Method              respjson.Field
		Network             respjson.Field
		Path                respjson.Field
		PatternMatchedTags  respjson.Field
		QueryString         respjson.Field
		ReferenceID         respjson.Field
		RequestHeaders      respjson.Field
		RequestTime         respjson.Field
		RequestType         respjson.Field
		RequestedDomain     respjson.Field
		ResponseTime        respjson.Field
		Result              respjson.Field
		RuleID              respjson.Field
		RuleName            respjson.Field
		Scheme              respjson.Field
		SessionRequestCount respjson.Field
		TrafficTypes        respjson.Field
		UserAgent           respjson.Field
		ExtraFields         map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Request's details used when displaying a single request.

func (WaapRequestDetails) RawJSON added in v0.3.0

func (r WaapRequestDetails) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapRequestDetails) UnmarshalJSON added in v0.3.0

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

type WaapRequestDetailsResult added in v0.3.0

type WaapRequestDetailsResult string

The result of a request

const (
	WaapRequestDetailsResultPassed     WaapRequestDetailsResult = "passed"
	WaapRequestDetailsResultBlocked    WaapRequestDetailsResult = "blocked"
	WaapRequestDetailsResultSuppressed WaapRequestDetailsResult = "suppressed"
	WaapRequestDetailsResultEmpty      WaapRequestDetailsResult = ""
)

type WaapRequestOrganization added in v0.3.0

type WaapRequestOrganization struct {
	// Organization name
	Name string `json:"name,required"`
	// Network range
	Subnet string `json:"subnet,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Name        respjson.Field
		Subnet      respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Organization details

func (WaapRequestOrganization) RawJSON added in v0.3.0

func (r WaapRequestOrganization) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapRequestOrganization) UnmarshalJSON added in v0.3.0

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

type WaapRequestSummary added in v0.3.0

type WaapRequestSummary struct {
	// Request's unique id
	ID string `json:"id,required"`
	// Action of the triggered rule
	Action string `json:"action,required"`
	// Client's IP address.
	ClientIP string `json:"client_ip,required"`
	// Country code
	Country string `json:"country,required"`
	// Domain name
	Domain string `json:"domain,required"`
	// HTTP method
	Method string `json:"method,required"`
	// Organization
	Organization string `json:"organization,required"`
	// Request path
	Path string `json:"path,required"`
	// The reference ID to a sanction that was given to a user.
	ReferenceID string `json:"reference_id,required"`
	// The UNIX timestamp in ms of the date a set of traffic counters was recorded
	RequestTime int64 `json:"request_time,required"`
	// Any of "passed", "blocked", "suppressed", "".
	Result WaapRequestSummaryResult `json:"result,required"`
	// The ID of the triggered rule.
	RuleID string `json:"rule_id,required"`
	// Name of the triggered rule
	RuleName string `json:"rule_name,required"`
	// Status code for http request
	StatusCode int64 `json:"status_code,required"`
	// Comma separated list of traffic types.
	TrafficTypes string `json:"traffic_types,required"`
	// User agent
	UserAgent string `json:"user_agent,required"`
	// Client from parsed User agent header
	UserAgentClient string `json:"user_agent_client,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID              respjson.Field
		Action          respjson.Field
		ClientIP        respjson.Field
		Country         respjson.Field
		Domain          respjson.Field
		Method          respjson.Field
		Organization    respjson.Field
		Path            respjson.Field
		ReferenceID     respjson.Field
		RequestTime     respjson.Field
		Result          respjson.Field
		RuleID          respjson.Field
		RuleName        respjson.Field
		StatusCode      respjson.Field
		TrafficTypes    respjson.Field
		UserAgent       respjson.Field
		UserAgentClient respjson.Field
		ExtraFields     map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Request summary used when displaying a list of requests

func (WaapRequestSummary) RawJSON added in v0.3.0

func (r WaapRequestSummary) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapRequestSummary) UnmarshalJSON added in v0.3.0

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

type WaapRequestSummaryResult added in v0.3.0

type WaapRequestSummaryResult string
const (
	WaapRequestSummaryResultPassed     WaapRequestSummaryResult = "passed"
	WaapRequestSummaryResultBlocked    WaapRequestSummaryResult = "blocked"
	WaapRequestSummaryResultSuppressed WaapRequestSummaryResult = "suppressed"
	WaapRequestSummaryResultEmpty      WaapRequestSummaryResult = ""
)

type WaapResolution added in v0.3.0

type WaapResolution string

Specifies the granularity of the result data.

const (
	WaapResolutionDaily    WaapResolution = "daily"
	WaapResolutionHourly   WaapResolution = "hourly"
	WaapResolutionMinutely WaapResolution = "minutely"
)

type WaapRuleActionType added in v0.3.0

type WaapRuleActionType string
const (
	WaapRuleActionTypeAllow     WaapRuleActionType = "allow"
	WaapRuleActionTypeBlock     WaapRuleActionType = "block"
	WaapRuleActionTypeCaptcha   WaapRuleActionType = "captcha"
	WaapRuleActionTypeHandshake WaapRuleActionType = "handshake"
	WaapRuleActionTypeMonitor   WaapRuleActionType = "monitor"
	WaapRuleActionTypeTag       WaapRuleActionType = "tag"
)

type WaapRuleBlockedRequests added in v0.3.0

type WaapRuleBlockedRequests struct {
	// The action taken by the rule
	Action string `json:"action,required"`
	// The number of requests blocked by the rule
	Count int64 `json:"count,required"`
	// The name of the rule that blocked the request
	RuleName string `json:"rule_name,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Action      respjson.Field
		Count       respjson.Field
		RuleName    respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapRuleBlockedRequests) RawJSON added in v0.3.0

func (r WaapRuleBlockedRequests) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapRuleBlockedRequests) UnmarshalJSON added in v0.3.0

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

type WaapRuleSet added in v0.3.0

type WaapRuleSet struct {
	// Identifier of the rule set.
	ID int64 `json:"id,required"`
	// Detailed description of the rule set.
	Description string `json:"description,required"`
	// Indicates if the rule set is currently active.
	IsActive bool `json:"is_active,required"`
	// Name of the rule set.
	Name string `json:"name,required"`
	// Collection of tags associated with the rule set.
	Tags []WaapRuleSetTag `json:"tags,required"`
	// The resource slug associated with the rule set.
	ResourceSlug string             `json:"resource_slug,nullable"`
	Rules        []WaapDomainPolicy `json:"rules"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID           respjson.Field
		Description  respjson.Field
		IsActive     respjson.Field
		Name         respjson.Field
		Tags         respjson.Field
		ResourceSlug respjson.Field
		Rules        respjson.Field
		ExtraFields  map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents a custom rule set.

func (WaapRuleSet) RawJSON added in v0.3.0

func (r WaapRuleSet) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapRuleSet) UnmarshalJSON added in v0.3.0

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

type WaapRuleSetTag added in v0.3.0

type WaapRuleSetTag struct {
	// Identifier of the tag.
	ID int64 `json:"id,required"`
	// Detailed description of the tag.
	Description string `json:"description,required"`
	// Name of the tag.
	Name string `json:"name,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID          respjson.Field
		Description respjson.Field
		Name        respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

A single tag associated with a rule set.

func (WaapRuleSetTag) RawJSON added in v0.3.0

func (r WaapRuleSetTag) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapRuleSetTag) UnmarshalJSON added in v0.3.0

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

type WaapService

type WaapService struct {
	Options        []option.RequestOption
	Statistics     StatisticService
	Domains        DomainService
	CustomPageSets CustomPageSetService
	AdvancedRules  AdvancedRuleService
	Tags           TagService
	Organizations  OrganizationService
	IPInfo         IPInfoService
}

WaapService contains methods and other services that help with interacting with the gcore API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewWaapService method instead.

func NewWaapService

func NewWaapService(opts ...option.RequestOption) (r WaapService)

NewWaapService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*WaapService) GetAccountOverview added in v0.3.0

func (r *WaapService) GetAccountOverview(ctx context.Context, opts ...option.RequestOption) (res *WaapGetAccountOverviewResponse, err error)

Get information about WAAP service for the client

type WaapStatisticItem added in v0.3.0

type WaapStatisticItem struct {
	// The date and time for the statistic in ISO 8601 format
	DateTime time.Time `json:"date_time,required" format:"date-time"`
	// The value for the statistic. If there is no data for the given time, the value
	// will be 0.
	Value int64 `json:"value,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		DateTime    respjson.Field
		Value       respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the statistics item

func (WaapStatisticItem) RawJSON added in v0.3.0

func (r WaapStatisticItem) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapStatisticItem) UnmarshalJSON added in v0.3.0

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

type WaapStatisticsSeries added in v0.3.0

type WaapStatisticsSeries struct {
	// Will be returned if `total_bytes` is requested in the metrics parameter
	TotalBytes []WaapStatisticItem `json:"total_bytes,nullable"`
	// Will be included if `total_requests` is requested in the metrics parameter
	TotalRequests []WaapStatisticItem `json:"total_requests,nullable"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		TotalBytes    respjson.Field
		TotalRequests respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Response model for the statistics series

func (WaapStatisticsSeries) RawJSON added in v0.3.0

func (r WaapStatisticsSeries) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapStatisticsSeries) UnmarshalJSON added in v0.3.0

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

type WaapSummaryDomain

type WaapSummaryDomain struct {
	// The domain ID
	ID int64 `json:"id,required"`
	// The date and time the domain was created in ISO 8601 format
	CreatedAt time.Time `json:"created_at,required" format:"date-time"`
	// The ID of the custom page set
	CustomPageSet int64 `json:"custom_page_set,required"`
	// The domain name
	Name string `json:"name,required"`
	// The different statuses a domain can have
	//
	// Any of "active", "bypass", "monitor", "locked".
	Status WaapDomainStatus `json:"status,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		ID            respjson.Field
		CreatedAt     respjson.Field
		CustomPageSet respjson.Field
		Name          respjson.Field
		Status        respjson.Field
		ExtraFields   map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents a WAAP domain when getting a list of domains.

func (WaapSummaryDomain) RawJSON

func (r WaapSummaryDomain) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapSummaryDomain) UnmarshalJSON

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

type WaapTag added in v0.3.0

type WaapTag struct {
	// A tag's human readable description
	Description string `json:"description,required"`
	// The name of a tag that should be used in a WAAP rule condition
	Name string `json:"name,required"`
	// The display name of the tag
	ReadableName string `json:"readable_name,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Description  respjson.Field
		Name         respjson.Field
		ReadableName respjson.Field
		ExtraFields  map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Tags provide shortcuts for the rules used in WAAP policies for the creation of more complex WAAP rules.

func (WaapTag) RawJSON added in v0.3.0

func (r WaapTag) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapTag) UnmarshalJSON added in v0.3.0

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

type WaapTimeSeriesAttack added in v0.3.0

type WaapTimeSeriesAttack struct {
	// The type of attack
	AttackType string `json:"attack_type,required"`
	// The time series data
	Values []WaapTimeSeriesAttackValue `json:"values,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		AttackType  respjson.Field
		Values      respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapTimeSeriesAttack) RawJSON added in v0.3.0

func (r WaapTimeSeriesAttack) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapTimeSeriesAttack) UnmarshalJSON added in v0.3.0

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

type WaapTimeSeriesAttackValue added in v0.3.0

type WaapTimeSeriesAttackValue struct {
	// The number of attacks
	Count int64 `json:"count,required"`
	// The timestamp of the time series item as a POSIX timestamp
	Timestamp int64 `json:"timestamp,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		Timestamp   respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapTimeSeriesAttackValue) RawJSON added in v0.3.0

func (r WaapTimeSeriesAttackValue) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapTimeSeriesAttackValue) UnmarshalJSON added in v0.3.0

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

type WaapTopSession added in v0.3.0

type WaapTopSession struct {
	// The number of blocked requests in the session
	Blocked int64 `json:"blocked,required"`
	// The duration of the session in seconds
	Duration float64 `json:"duration,required"`
	// The number of requests in the session
	Requests int64 `json:"requests,required"`
	// The session ID
	SessionID string `json:"session_id,required" format:"uuid"`
	// The start time of the session as a POSIX timestamp
	StartTime time.Time `json:"start_time,required" format:"date-time"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Blocked     respjson.Field
		Duration    respjson.Field
		Requests    respjson.Field
		SessionID   respjson.Field
		StartTime   respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapTopSession) RawJSON added in v0.3.0

func (r WaapTopSession) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapTopSession) UnmarshalJSON added in v0.3.0

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

type WaapTopURL added in v0.3.0

type WaapTopURL struct {
	// The number of attacks to the URL
	Count int64 `json:"count,required"`
	// The URL that was attacked
	URL string `json:"url,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		URL         respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapTopURL) RawJSON added in v0.3.0

func (r WaapTopURL) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapTopURL) UnmarshalJSON added in v0.3.0

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

type WaapTopUserAgent added in v0.3.0

type WaapTopUserAgent struct {
	// The number of requests made with the user agent
	Count int64 `json:"count,required"`
	// The user agent that was used
	UserAgent string `json:"user_agent,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Count       respjson.Field
		UserAgent   respjson.Field
		ExtraFields map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

func (WaapTopUserAgent) RawJSON added in v0.3.0

func (r WaapTopUserAgent) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapTopUserAgent) UnmarshalJSON added in v0.3.0

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

type WaapTrafficMetrics added in v0.3.0

type WaapTrafficMetrics struct {
	// UNIX timestamp indicating when the traffic data was recorded
	Timestamp int64 `json:"timestamp,required"`
	// Number of AJAX requests made
	Ajax int64 `json:"ajax"`
	// Number of API requests made
	API int64 `json:"api"`
	// Number of requests allowed through custom rules
	CustomAllowed int64 `json:"customAllowed"`
	// Number of requests blocked due to custom rules
	CustomBlocked int64 `json:"customBlocked"`
	// Number of DDoS attack attempts successfully blocked
	DDOSBlocked int64 `json:"ddosBlocked"`
	// Number of requests triggering monitoring actions
	Monitored int64 `json:"monitored"`
	// Number of successful HTTP 2xx responses from the origin server
	Origin2xx int64 `json:"origin2xx"`
	// Number of HTTP 3xx redirects issued by the origin server
	Origin3xx int64 `json:"origin3xx"`
	// Number of HTTP 4xx errors from the origin server
	OriginError4xx int64 `json:"originError4xx"`
	// Number of HTTP 5xx errors from the origin server
	OriginError5xx int64 `json:"originError5xx"`
	// Number of timeouts experienced at the origin server
	OriginTimeout int64 `json:"originTimeout"`
	// Number of requests served directly by the origin server
	PassedToOrigin int64 `json:"passedToOrigin"`
	// Number of requests allowed by security policies
	PolicyAllowed int64 `json:"policyAllowed"`
	// Number of requests blocked by security policies
	PolicyBlocked int64 `json:"policyBlocked"`
	// Average origin server response time in milliseconds
	ResponseTime int64 `json:"responseTime"`
	// Number of static asset requests
	Static int64 `json:"static"`
	// Total number of requests
	Total int64 `json:"total"`
	// Requests resulting in neither blocks nor sanctions
	Uncategorized int64 `json:"uncategorized"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		Timestamp      respjson.Field
		Ajax           respjson.Field
		API            respjson.Field
		CustomAllowed  respjson.Field
		CustomBlocked  respjson.Field
		DDOSBlocked    respjson.Field
		Monitored      respjson.Field
		Origin2xx      respjson.Field
		Origin3xx      respjson.Field
		OriginError4xx respjson.Field
		OriginError5xx respjson.Field
		OriginTimeout  respjson.Field
		PassedToOrigin respjson.Field
		PolicyAllowed  respjson.Field
		PolicyBlocked  respjson.Field
		ResponseTime   respjson.Field
		Static         respjson.Field
		Total          respjson.Field
		Uncategorized  respjson.Field
		ExtraFields    map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

Represents the traffic metrics for a domain at a given time window

func (WaapTrafficMetrics) RawJSON added in v0.3.0

func (r WaapTrafficMetrics) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapTrafficMetrics) UnmarshalJSON added in v0.3.0

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

type WaapTrafficType added in v0.3.0

type WaapTrafficType string
const (
	WaapTrafficTypePolicyAllowed     WaapTrafficType = "policy_allowed"
	WaapTrafficTypePolicyBlocked     WaapTrafficType = "policy_blocked"
	WaapTrafficTypeCustomRuleAllowed WaapTrafficType = "custom_rule_allowed"
	WaapTrafficTypeCustomBlocked     WaapTrafficType = "custom_blocked"
	WaapTrafficTypeLegitRequests     WaapTrafficType = "legit_requests"
	WaapTrafficTypeSanctioned        WaapTrafficType = "sanctioned"
	WaapTrafficTypeDynamic           WaapTrafficType = "dynamic"
	WaapTrafficTypeAPI               WaapTrafficType = "api"
	WaapTrafficTypeStatic            WaapTrafficType = "static"
	WaapTrafficTypeAjax              WaapTrafficType = "ajax"
	WaapTrafficTypeRedirects         WaapTrafficType = "redirects"
	WaapTrafficTypeMonitor           WaapTrafficType = "monitor"
	WaapTrafficTypeErr40x            WaapTrafficType = "err_40x"
	WaapTrafficTypeErr50x            WaapTrafficType = "err_50x"
	WaapTrafficTypePassedToOrigin    WaapTrafficType = "passed_to_origin"
	WaapTrafficTypeTimeout           WaapTrafficType = "timeout"
	WaapTrafficTypeOther             WaapTrafficType = "other"
	WaapTrafficTypeDDOS              WaapTrafficType = "ddos"
	WaapTrafficTypeLegit             WaapTrafficType = "legit"
	WaapTrafficTypeMonitored         WaapTrafficType = "monitored"
)

type WaapUserAgentDetails added in v0.3.0

type WaapUserAgentDetails struct {
	// User agent browser
	BaseBrowser string `json:"base_browser,required"`
	// User agent browser version
	BaseBrowserVersion string `json:"base_browser_version,required"`
	// Client from User agent header
	Client string `json:"client,required"`
	// User agent client type
	ClientType string `json:"client_type,required"`
	// User agent client version
	ClientVersion string `json:"client_version,required"`
	// User agent cpu
	CPU string `json:"cpu,required"`
	// User agent device
	Device string `json:"device,required"`
	// User agent device type
	DeviceType string `json:"device_type,required"`
	// User agent
	FullString string `json:"full_string,required"`
	// User agent os
	Os string `json:"os,required"`
	// User agent engine
	RenderingEngine string `json:"rendering_engine,required"`
	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
	JSON struct {
		BaseBrowser        respjson.Field
		BaseBrowserVersion respjson.Field
		Client             respjson.Field
		ClientType         respjson.Field
		ClientVersion      respjson.Field
		CPU                respjson.Field
		Device             respjson.Field
		DeviceType         respjson.Field
		FullString         respjson.Field
		Os                 respjson.Field
		RenderingEngine    respjson.Field
		ExtraFields        map[string]respjson.Field
		// contains filtered or unexported fields
	} `json:"-"`
}

User agent details

func (WaapUserAgentDetails) RawJSON added in v0.3.0

func (r WaapUserAgentDetails) RawJSON() string

Returns the unmodified JSON received from the API

func (*WaapUserAgentDetails) UnmarshalJSON added in v0.3.0

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

Jump to

Keyboard shortcuts

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