appsec

package
v2.0.2 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2020 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Overview

Package appsec provides access to the Akamai Application Security APIs

Index

Constants

View Source
const (
	// ActivationTypeActivate Activation.ActivationType value ACTIVATE
	ActivationTypeActivate ActivationValue = "ACTIVATE"
	// ActivationTypeDeactivate Activation.ActivationType value DEACTIVATE
	ActivationTypeDeactivate ActivationValue = "DEACTIVATE"

	// NetworkProduction Activation.Network value PRODUCTION
	NetworkProduction NetworkValue = "PRODUCTION"
	// NetworkStaging Activation.Network value STAGING
	NetworkStaging NetworkValue = "STAGING"

	// StatusActive Activation.Status value ACTIVE
	StatusActive StatusValue = "ACTIVATED"
	// StatusInactive Activation.Status value INACTIVE
	StatusInactive StatusValue = "INACTIVE"
	// StatusPending Activation.Status value RECEIVED
	StatusPending StatusValue = "RECEIVED"
	// StatusAborted Activation.Status value ABORTED
	StatusAborted StatusValue = "ABORTED"
	// StatusFailed Activation.Status value FAILED
	StatusFailed StatusValue = "FAILED"
	// StatusDeactivated Activation.Status value DEACTIVATED
	StatusDeactivated StatusValue = "DEACTIVATED"
	// StatusPendingDeactivation Activation.Status value PENDING_DEACTIVATION
	StatusPendingDeactivation StatusValue = "PENDING_DEACTIVATION"
	// StatusNew Activation.Status value NEW
	StatusNew StatusValue = "NEW"
)

Variables

View Source
var (
	// ErrBadRequest is returned when a required parameter is missing
	ErrBadRequest = errors.New("missing argument")
)
View Source
var (
	// ErrStructValidation is returned returned when given struct validation failed
	ErrStructValidation = errors.New("struct validation")
)

Functions

This section is empty.

Types

type ActivationConfigs

type ActivationConfigs struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
}

type ActivationValue

type ActivationValue string

ActivationValue is used to create an "enum" of possible Activation.ActivationType values

type Activations

type Activations interface {
	//GetActivationss(ctx context.Context, params GetActivationssRequest) (*GetActivationssResponse, error)
	GetActivations(ctx context.Context, params GetActivationsRequest) (*GetActivationsResponse, error)
	CreateActivations(ctx context.Context, params CreateActivationsRequest, acknowledgeWarnings bool) (*CreateActivationsResponse, error)
	RemoveActivations(ctx context.Context, params RemoveActivationsRequest) (*RemoveActivationsResponse, error)
}

Activations contains operations available on Activations resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getactivations

type ActivationsPost

type ActivationsPost struct {
	Action             string   `json:"action"`
	Network            string   `json:"network"`
	Note               string   `json:"note"`
	NotificationEmails []string `json:"notificationEmails"`
	ActivationConfigs  []struct {
		ConfigID      int `json:"configId"`
		ConfigVersion int `json:"configVersion"`
	} `json:"activationConfigs"`
}

type BypassNetworkList

type BypassNetworkList struct {
	Name string `json:"name"`
	ID   string `json:"id"`
}

BypassNetworkList ...

type ClientFunc

type ClientFunc func(sess session.Session, opts ...Option) APPSEC

ClientFunc is a appsec client new method, this can used for mocking

type Configuration

type Configuration interface {
	GetConfigurations(ctx context.Context, params GetConfigurationsRequest) (*GetConfigurationsResponse, error)
}

Configuration contains operations available on Configuration resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getconfiguration

type ConfigurationClone

type ConfigurationClone interface {
	GetConfigurationClone(ctx context.Context, params GetConfigurationCloneRequest) (*GetConfigurationCloneResponse, error)
	CreateConfigurationClone(ctx context.Context, params CreateConfigurationCloneRequest) (*CreateConfigurationCloneResponse, error)
}

ConfigurationClone contains operations available on ConfigurationClone resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getconfigurationclone

type ConfigurationVersion

type ConfigurationVersion interface {
	GetConfigurationVersions(ctx context.Context, params GetConfigurationVersionsRequest) (*GetConfigurationVersionsResponse, error)
}

ConfigurationVersion contains operations available on ConfigurationVersion resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getconfigurationversion

type CreateActivationsRequest

type CreateActivationsRequest struct {
	Action             string   `json:"action"`
	Network            string   `json:"network"`
	Note               string   `json:"note"`
	NotificationEmails []string `json:"notificationEmails"`
	ActivationConfigs  []struct {
		ConfigID      int `json:"configId"`
		ConfigVersion int `json:"configVersion"`
	} `json:"activationConfigs"`
}

type CreateActivationsResponse

type CreateActivationsResponse struct {
	DispatchCount     int          `json:"dispatchCount"`
	ActivationID      int          `json:"activationId"`
	Action            string       `json:"action"`
	Status            StatusValue  `json:"status"`
	Network           NetworkValue `json:"network"`
	Estimate          string       `json:"estimate"`
	CreatedBy         string       `json:"createdBy"`
	CreateDate        time.Time    `json:"createDate"`
	ActivationConfigs []struct {
		ConfigID              int    `json:"configId"`
		ConfigName            string `json:"configName"`
		ConfigVersion         int    `json:"configVersion"`
		PreviousConfigVersion int    `json:"previousConfigVersion"`
	} `json:"activationConfigs"`
}

type CreateConfigurationCloneRequest

type CreateConfigurationCloneRequest struct {
	ConfigID          int  `json:"-"`
	CreateFromVersion int  `json:"createFromVersion"`
	RuleUpdate        bool `json:"ruleUpdate"`
}

func (CreateConfigurationCloneRequest) Validate

Validate validates GetConfigurationCloneRequest

type CreateConfigurationCloneResponse

type CreateConfigurationCloneResponse struct {
	ConfigID     int       `json:"configId"`
	ConfigName   string    `json:"configName"`
	Version      int       `json:"version"`
	VersionNotes string    `json:"versionNotes"`
	CreateDate   time.Time `json:"createDate"`
	CreatedBy    string    `json:"createdBy"`
	BasedOn      int       `json:"basedOn"`
	Production   struct {
		Status string    `json:"status"`
		Time   time.Time `json:"time"`
	} `json:"production"`
	Staging struct {
		Status string `json:"status"`
	} `json:"staging"`
}

type CreateCustomRuleRequest

type CreateCustomRuleRequest struct {
	ConfigID int `json:"configid,omitempty"`
	//ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

func (CreateCustomRuleRequest) Validate

func (v CreateCustomRuleRequest) Validate() error

Validate validates CreateCustomRuleRequest

type CreateCustomRuleResponse

type CreateCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type CreateMatchTargetRequest

type CreateMatchTargetRequest struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	FileExtensions               []string `json:"fileExtensions"`
	FilePaths                    []string `json:"filePaths"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

CreateMatchTargetRequest is the argument for GetProperties

func (CreateMatchTargetRequest) Validate

func (v CreateMatchTargetRequest) Validate() error

Validate validates CreateMatchTargetRequest

type CreateMatchTargetResponse

type CreateMatchTargetResponse struct {
	MType                     string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

CreateMatchTargetResponse is the argument for GetProperties

type CreateRatePolicyRequest

type CreateRatePolicyRequest struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

func (CreateRatePolicyRequest) Validate

func (v CreateRatePolicyRequest) Validate() error

Validate validates CreateRatePolicyRequest

type CreateRatePolicyResponse

type CreateRatePolicyResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type CreateSecurityPolicyClonePost

type CreateSecurityPolicyClonePost struct {
	CreateFromSecurityPolicy string `json:"createFromSecurityPolicy"`
	PolicyName               string `json:"policyName"`
	PolicyPrefix             string `json:"policyPrefix"`
}

type CreateSecurityPolicyClonePostResponse

type CreateSecurityPolicyClonePostResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"policySecurityControls"`
	Version int `json:"version"`
}

type CreateSecurityPolicyCloneRequest

type CreateSecurityPolicyCloneRequest struct {
	ConfigID                 int    `json:"configId"`
	Version                  int    `json:"version"`
	CreateFromSecurityPolicy string `json:"createFromSecurityPolicy"`
	PolicyName               string `json:"policyName"`
	PolicyPrefix             string `json:"policyPrefix"`
}

func (CreateSecurityPolicyCloneRequest) Validate

Validate validates CreateSecurityPolicyCloneRequest

type CreateSecurityPolicyCloneResponse

type CreateSecurityPolicyCloneResponse struct {
	HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
	PolicyID                string `json:"policyId"`
	PolicyName              string `json:"policyName"`
	PolicySecurityControls  struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	}
}

type CustomRule

type CustomRule interface {
	GetCustomRules(ctx context.Context, params GetCustomRulesRequest) (*GetCustomRulesResponse, error)
	GetCustomRule(ctx context.Context, params GetCustomRuleRequest) (*GetCustomRuleResponse, error)
	CreateCustomRule(ctx context.Context, params CreateCustomRuleRequest) (*CreateCustomRuleResponse, error)
	UpdateCustomRule(ctx context.Context, params UpdateCustomRuleRequest) (*UpdateCustomRuleResponse, error)
	RemoveCustomRule(ctx context.Context, params RemoveCustomRuleRequest) (*RemoveCustomRuleResponse, error)
}

CustomRule contains operations available on CustomRule resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getcustomrule

type CustomRuleAction

type CustomRuleAction interface {
	GetCustomRuleActions(ctx context.Context, params GetCustomRuleActionsRequest) (*GetCustomRuleActionsResponse, error)
	GetCustomRuleAction(ctx context.Context, params GetCustomRuleActionRequest) (*GetCustomRuleActionResponse, error)
	UpdateCustomRuleAction(ctx context.Context, params UpdateCustomRuleActionRequest) (*UpdateCustomRuleActionResponse, error)
}

CustomRuleAction contains operations available on CustomRuleAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getcustomruleaction

type CustomRuleResponse

type CustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type CustomRulesResponse

type CustomRulesResponse struct {
	CustomRules []struct {
		ID      int    `json:"id"`
		Link    string `json:"link"`
		Name    string `json:"name"`
		Status  string `json:"status"`
		Version int    `json:"version"`
	} `json:"customRules"`
}

type Error

type Error struct {
	Type          string `json:"type"`
	Title         string `json:"title"`
	Detail        string `json:"detail"`
	Instance      string `json:"instance,omitempty"`
	BehaviorName  string `json:"behaviorName,omitempty"`
	ErrorLocation string `json:"errorLocation,omitempty"`
	StatusCode    int    `json:"-"`
}

Error is a appsec error interface

func (*Error) Error

func (e *Error) Error() string

func (*Error) Is

func (e *Error) Is(target error) bool

Is handles error comparisons

type ExportConfiguration

type ExportConfiguration interface {
	GetExportConfigurations(ctx context.Context, params GetExportConfigurationsRequest) (*GetExportConfigurationsResponse, error)
}

ExportConfiguration contains operations available on ExportConfiguration resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getexportconfiguration

type GetActivationsRequest

type GetActivationsRequest struct {
	ActivationID int `json:"activationId"`
}

func (GetActivationsRequest) Validate

func (v GetActivationsRequest) Validate() error

Validate validates GetActivationsRequest

type GetActivationsResponse

type GetActivationsResponse struct {
	DispatchCount     int          `json:"dispatchCount"`
	ActivationID      int          `json:"activationId"`
	Action            string       `json:"action"`
	Status            StatusValue  `json:"status"`
	Network           NetworkValue `json:"network"`
	Estimate          string       `json:"estimate"`
	CreatedBy         string       `json:"createdBy"`
	CreateDate        time.Time    `json:"createDate"`
	ActivationConfigs []struct {
		ConfigID              int    `json:"configId"`
		ConfigName            string `json:"configName"`
		ConfigVersion         int    `json:"configVersion"`
		PreviousConfigVersion int    `json:"previousConfigVersion"`
	} `json:"activationConfigs"`
}

type GetConfigurationCloneRequest

type GetConfigurationCloneRequest struct {
	ConfigID     int       `json:"configId"`
	ConfigName   string    `json:"configName"`
	Version      int       `json:"version"`
	VersionNotes string    `json:"versionNotes"`
	CreateDate   time.Time `json:"createDate"`
	CreatedBy    string    `json:"createdBy"`
	BasedOn      int       `json:"basedOn"`
	Production   struct {
		Status string    `json:"status"`
		Time   time.Time `json:"time"`
	} `json:"production"`
	Staging struct {
		Status string `json:"status"`
	} `json:"staging"`
}

func (GetConfigurationCloneRequest) Validate

func (v GetConfigurationCloneRequest) Validate() error

Validate validates GetConfigurationCloneRequest

type GetConfigurationCloneResponse

type GetConfigurationCloneResponse struct {
	ConfigID     int       `json:"configId"`
	ConfigName   string    `json:"configName"`
	Version      int       `json:"version"`
	VersionNotes string    `json:"versionNotes"`
	CreateDate   time.Time `json:"createDate"`
	CreatedBy    string    `json:"createdBy"`
	BasedOn      int       `json:"basedOn"`
	Production   struct {
		Status string    `json:"status"`
		Time   time.Time `json:"time"`
	} `json:"production"`
	Staging struct {
		Status string `json:"status"`
	} `json:"staging"`
}

type GetConfigurationVersionsRequest

type GetConfigurationVersionsRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
}

type GetConfigurationVersionsResponse

type GetConfigurationVersionsResponse struct {
	ConfigID           int    `json:"configId"`
	ConfigName         string `json:"configName"`
	LastCreatedVersion int    `json:"lastCreatedVersion"`
	Page               int    `json:"page"`
	PageSize           int    `json:"pageSize"`
	TotalSize          int    `json:"totalSize"`
	VersionList        []struct {
		ConfigID   int `json:"configId"`
		Production struct {
			Status string `json:"status"`
		} `json:"production"`
		Staging struct {
			Status string `json:"status"`
		} `json:"staging"`
		Version int `json:"version"`
		BasedOn int `json:"basedOn,omitempty"`
	} `json:"versionList"`
}

type GetConfigurationsRequest

type GetConfigurationsRequest struct {
	ConfigID int `json:"configId"`
}

type GetConfigurationsResponse

type GetConfigurationsResponse struct {
	Configurations []struct {
		Description         string   `json:"description,omitempty"`
		FileType            string   `json:"fileType"`
		ID                  int      `json:"id"`
		LatestVersion       int      `json:"latestVersion"`
		Name                string   `json:"name,omitempty"`
		StagingVersion      int      `json:"stagingVersion,omitempty"`
		TargetProduct       string   `json:"targetProduct"`
		ProductionHostnames []string `json:"productionHostnames,omitempty"`
		ProductionVersion   int      `json:"productionVersion,omitempty"`
	} `json:"configurations"`
}

type GetCustomRuleActionRequest

type GetCustomRuleActionRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
	RuleID   int    `json:"ruleId"`
}

func (GetCustomRuleActionRequest) Validate

func (v GetCustomRuleActionRequest) Validate() error

Validate validates GetCustomRuleActionRequest

type GetCustomRuleActionResponse

type GetCustomRuleActionResponse struct {
	Action                string `json:"action"`
	CanUseAdvancedActions bool   `json:"canUseAdvancedActions"`
	Link                  string `json:"link"`
	Name                  string `json:"name"`
	RuleID                int    `json:"ruleId"`
}

type GetCustomRuleActionsRequest

type GetCustomRuleActionsRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
}

func (GetCustomRuleActionsRequest) Validate

func (v GetCustomRuleActionsRequest) Validate() error

Validate validates GetCustomRuleActionsRequest

type GetCustomRuleActionsResponse

type GetCustomRuleActionsResponse []struct {
	Action                string `json:"action"`
	CanUseAdvancedActions bool   `json:"canUseAdvancedActions"`
	Link                  string `json:"link"`
	Name                  string `json:"name"`
	RuleID                int    `json:"ruleId"`
}

type GetCustomRuleRequest

type GetCustomRuleRequest struct {
	ConfigID int `json:"configid,omitempty"`
	ID       int `json:"id,omitempty"`
}

func (GetCustomRuleRequest) Validate

func (v GetCustomRuleRequest) Validate() error

Validate validates GetCustomRuleRequest

type GetCustomRuleResponse

type GetCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type GetCustomRulesRequest

type GetCustomRulesRequest struct {
	ConfigID int `json:"configid,omitempty"`
}

func (GetCustomRulesRequest) Validate

func (v GetCustomRulesRequest) Validate() error

Validate validates GetCustomRulesRequest

type GetCustomRulesResponse

type GetCustomRulesResponse struct {
	CustomRules []struct {
		ID      int    `json:"id"`
		Link    string `json:"link"`
		Name    string `json:"name"`
		Status  string `json:"status"`
		Version int    `json:"version"`
	} `json:"customRules"`
}

type GetExportConfigurationsRequest

type GetExportConfigurationsRequest struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
}

type GetExportConfigurationsResponse

type GetExportConfigurationsResponse struct {
	ConfigID   int    `json:"configId"`
	ConfigName string `json:"configName"`
	Version    int    `json:"version"`
	BasedOn    int    `json:"basedOn"`
	Staging    struct {
		Status string `json:"status"`
	} `json:"staging"`
	Production struct {
		Status string `json:"status"`
	} `json:"production"`
	CreateDate      time.Time `json:"createDate"`
	CreatedBy       string    `json:"createdBy"`
	SelectedHosts   []string  `json:"selectedHosts"`
	SelectableHosts []string  `json:"selectableHosts"`
	RatePolicies    []struct {
		AdditionalMatchOptions []struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Type          string   `json:"type"`
			Values        []string `json:"values"`
		} `json:"additionalMatchOptions"`
		AllTraffic       bool      `json:"allTraffic"`
		AverageThreshold int       `json:"averageThreshold"`
		BurstThreshold   int       `json:"burstThreshold"`
		ClientIdentifier string    `json:"clientIdentifier"`
		CreateDate       time.Time `json:"createDate"`
		Description      string    `json:"description"`
		FileExtensions   struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Values        []string `json:"values"`
		} `json:"fileExtensions"`
		ID        int    `json:"id"`
		MatchType string `json:"matchType"`
		Name      string `json:"name"`
		Path      struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Values        []string `json:"values"`
		} `json:"path"`
		PathMatchType        string `json:"pathMatchType"`
		PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
		QueryParameters      []struct {
			Name          string   `json:"name"`
			PositiveMatch bool     `json:"positiveMatch"`
			ValueInRange  bool     `json:"valueInRange"`
			Values        []string `json:"values"`
		} `json:"queryParameters"`
		RequestType           string    `json:"requestType"`
		SameActionOnIpv6      bool      `json:"sameActionOnIpv6"`
		Type                  string    `json:"type"`
		UpdateDate            time.Time `json:"updateDate"`
		UseXForwardForHeaders bool      `json:"useXForwardForHeaders"`
		Used                  bool      `json:"used"`
	} `json:"ratePolicies"`
	ReputationProfiles []struct {
		Context         string `json:"context"`
		ContextReadable string `json:"contextReadable"`
		Enabled         bool   `json:"enabled"`
		ID              int    `json:"id"`
		Name            string `json:"name"`
		Threshold       int    `json:"threshold"`
	} `json:"reputationProfiles"`
	CustomRules []struct {
		Conditions []struct {
			Type          string   `json:"type"`
			PositiveMatch bool     `json:"positiveMatch"`
			Value         []string `json:"value"`
			ValueCase     bool     `json:"valueCase,omitempty"`
			ValueWildcard bool     `json:"valueWildcard,omitempty"`
		} `json:"conditions"`
		Description   string   `json:"description"`
		ID            int      `json:"id"`
		Name          string   `json:"name"`
		RuleActivated bool     `json:"ruleActivated"`
		Structured    bool     `json:"structured"`
		Tag           []string `json:"tag"`
		Version       int      `json:"version"`
	} `json:"customRules"`
	Rulesets []struct {
		ID               int       `json:"id"`
		RulesetVersionID int       `json:"rulesetVersionId"`
		Type             string    `json:"type"`
		ReleaseDate      time.Time `json:"releaseDate"`
		Rules            []struct {
			ID                  int    `json:"id"`
			InspectRequestBody  bool   `json:"inspectRequestBody"`
			InspectResponseBody bool   `json:"inspectResponseBody"`
			Outdated            bool   `json:"outdated"`
			RuleVersion         int    `json:"ruleVersion"`
			Score               int    `json:"score"`
			Tag                 string `json:"tag"`
			Title               string `json:"title"`
		} `json:"rules"`
	} `json:"rulesets"`
	MatchTargets struct {
		WebsiteTargets []struct {
			Type                      string `json:"type"`
			DefaultFile               string `json:"defaultFile"`
			EffectiveSecurityControls struct {
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			FilePaths                    []string `json:"filePaths"`
			ID                           int      `json:"id"`
			IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
			SecurityPolicy               struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Sequence int `json:"sequence"`
		} `json:"websiteTargets"`
	} `json:"matchTargets"`
	SecurityPolicies []struct {
		ID                      string `json:"id"`
		Name                    string `json:"name"`
		HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
		SecurityControls        struct {
			ApplyAPIConstraints           bool `json:"applyApiConstraints"`
			ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
			ApplyBotmanControls           bool `json:"applyBotmanControls"`
			ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
			ApplyRateControls             bool `json:"applyRateControls"`
			ApplyReputationControls       bool `json:"applyReputationControls"`
			ApplySlowPostControls         bool `json:"applySlowPostControls"`
		} `json:"securityControls"`
		WebApplicationFirewall struct {
			RuleActions []struct {
				Action           string `json:"action"`
				ID               int    `json:"id"`
				RulesetVersionID int    `json:"rulesetVersionId"`
			} `json:"ruleActions"`
		} `json:"webApplicationFirewall"`
		CustomRuleActions []struct {
			Action string `json:"action"`
			ID     int    `json:"id"`
		} `json:"customRuleActions"`
		APIRequestConstraints struct {
			Action string `json:"action"`
		} `json:"apiRequestConstraints"`
		RatePolicyActions []struct {
			ID         int    `json:"id"`
			Ipv4Action string `json:"ipv4Action"`
			Ipv6Action string `json:"ipv6Action"`
		} `json:"ratePolicyActions"`
		IPGeoFirewall struct {
			Block string `json:"block"`
		} `json:"ipGeoFirewall"`
		SlowPost struct {
			Action            string `json:"action"`
			SlowRateThreshold struct {
				Period int `json:"period"`
				Rate   int `json:"rate"`
			} `json:"slowRateThreshold"`
			DurationThreshold struct {
				Timeout int `json:"timeout"`
			} `json:"durationThreshold"`
		} `json:"slowPost"`
	} `json:"securityPolicies"`
	AdvancedOptions struct {
		Logging struct {
			AllowSampling bool `json:"allowSampling"`
			Cookies       struct {
				Type string `json:"type"`
			} `json:"cookies"`
			CustomHeaders struct {
				Type string `json:"type"`
			} `json:"customHeaders"`
			StandardHeaders struct {
				Type string `json:"type"`
			} `json:"standardHeaders"`
		} `json:"logging"`
		Prefetch struct {
			AllExtensions      bool     `json:"allExtensions"`
			EnableAppLayer     bool     `json:"enableAppLayer"`
			EnableRateControls bool     `json:"enableRateControls"`
			Extensions         []string `json:"extensions"`
		} `json:"prefetch"`
	} `json:"advancedOptions"`
}

type GetMatchTargetRequest

type GetMatchTargetRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	TargetID      int `json:"targetId"`
}

GetMatchTargetRequest is the argument for GetProperties

func (GetMatchTargetRequest) Validate

func (v GetMatchTargetRequest) Validate() error

Validate validates GetMatchTargetRequest

type GetMatchTargetResponse

type GetMatchTargetResponse struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

GetMatchTargetResponse ...

type GetMatchTargetSequenceRequest

type GetMatchTargetSequenceRequest struct {
	ConfigID      int    `json:"configId"`
	ConfigVersion int    `json:"configVersion"`
	Type          string `json:"type"`
}

GetMatchTargetSequence is the argument for GetProperties

func (GetMatchTargetSequenceRequest) Validate

func (v GetMatchTargetSequenceRequest) Validate() error

Validate validates GetMatchTargetSequenceRequest

type GetMatchTargetSequenceResponse

type GetMatchTargetSequenceResponse struct {
	MatchTargets struct {
		APITargets []struct {
			ConfigID                  int    `json:"configId"`
			ConfigVersion             int    `json:"configVersion"`
			Sequence                  int    `json:"sequence"`
			TargetID                  int    `json:"targetId"`
			Type                      string `json:"type"`
			EffectiveSecurityControls struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Apis []struct {
				ID   int    `json:"id"`
				Name string `json:"name"`
			} `json:"apis"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"apiTargets"`
		WebsiteTargets []struct {
			ConfigID                     int           `json:"configId"`
			ConfigVersion                int           `json:"configVersion"`
			DefaultFile                  string        `json:"defaultFile"`
			IsNegativeFileExtensionMatch bool          `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool          `json:"isNegativePathMatch"`
			Sequence                     int           `json:"sequence"`
			TargetID                     int           `json:"targetId"`
			Type                         string        `json:"type"`
			FileExtensions               []string      `json:"fileExtensions"`
			FilePaths                    []string      `json:"filePaths"`
			Hostnames                    []interface{} `json:"hostnames"`
			EffectiveSecurityControls    struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"websiteTargets"`
	} `json:"matchTargets"`
}

GetMatchTargetResponse ...

type GetMatchTargetSequencesRequest

type GetMatchTargetSequencesRequest struct {
	ConfigID      int    `json:"configId"`
	ConfigVersion int    `json:"configVersion"`
	Type          string `json:"type"`
}

GetMatchTargetsRequest is the argument for GetProperties

func (GetMatchTargetSequencesRequest) Validate

Validate validates GetMatchTargetSequencesRequest

type GetMatchTargetSequencesResponse

type GetMatchTargetSequencesResponse struct {
	MatchTargets struct {
		APITargets []struct {
			ConfigID                  int    `json:"configId"`
			ConfigVersion             int    `json:"configVersion"`
			Sequence                  int    `json:"sequence"`
			TargetID                  int    `json:"targetId"`
			Type                      string `json:"type"`
			EffectiveSecurityControls struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Apis []struct {
				ID   int    `json:"id"`
				Name string `json:"name"`
			} `json:"apis"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"apiTargets"`
		WebsiteTargets []struct {
			ConfigID                     int           `json:"configId"`
			ConfigVersion                int           `json:"configVersion"`
			DefaultFile                  string        `json:"defaultFile"`
			IsNegativeFileExtensionMatch bool          `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool          `json:"isNegativePathMatch"`
			Sequence                     int           `json:"sequence"`
			TargetID                     int           `json:"targetId"`
			Type                         string        `json:"type"`
			FileExtensions               []string      `json:"fileExtensions"`
			FilePaths                    []string      `json:"filePaths"`
			Hostnames                    []interface{} `json:"hostnames"`
			EffectiveSecurityControls    struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"websiteTargets"`
	} `json:"matchTargets"`
}

GetMatchTargetResponse ...

type GetMatchTargetsRequest

type GetMatchTargetsRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
}

GetMatchTargetsRequest is the argument for GetProperties

func (GetMatchTargetsRequest) Validate

func (v GetMatchTargetsRequest) Validate() error

Validate validates GetMatchTargetsRequest

type GetMatchTargetsResponse

type GetMatchTargetsResponse struct {
	MatchTargets struct {
		APITargets []struct {
			ConfigID                  int    `json:"configId"`
			ConfigVersion             int    `json:"configVersion"`
			Sequence                  int    `json:"sequence"`
			TargetID                  int    `json:"targetId"`
			Type                      string `json:"type"`
			EffectiveSecurityControls struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			Apis []struct {
				ID   int    `json:"id"`
				Name string `json:"name"`
			} `json:"apis"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"apiTargets"`
		WebsiteTargets []struct {
			ConfigID                     int           `json:"configId"`
			ConfigVersion                int           `json:"configVersion"`
			DefaultFile                  string        `json:"defaultFile"`
			IsNegativeFileExtensionMatch bool          `json:"isNegativeFileExtensionMatch"`
			IsNegativePathMatch          bool          `json:"isNegativePathMatch"`
			Sequence                     int           `json:"sequence"`
			TargetID                     int           `json:"targetId"`
			Type                         string        `json:"type"`
			FileExtensions               []string      `json:"fileExtensions"`
			FilePaths                    []string      `json:"filePaths"`
			Hostnames                    []interface{} `json:"hostnames"`
			EffectiveSecurityControls    struct {
				ApplyAPIConstraints           bool `json:"applyApiConstraints"`
				ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
				ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
				ApplyRateControls             bool `json:"applyRateControls"`
				ApplyReputationControls       bool `json:"applyReputationControls"`
				ApplySlowPostControls         bool `json:"applySlowPostControls"`
			} `json:"effectiveSecurityControls"`
			SecurityPolicy struct {
				PolicyID string `json:"policyId"`
			} `json:"securityPolicy"`
			BypassNetworkLists []struct {
				Name string `json:"name"`
				ID   string `json:"id"`
			} `json:"bypassNetworkLists"`
		} `json:"websiteTargets"`
	} `json:"matchTargets"`
}

GetMatchTargetResponse ...

type GetMatchTargetsSequenceRequest

type GetMatchTargetsSequenceRequest struct {
	ConfigID      int    `json:"configId"`
	ConfigVersion int    `json:"configVersion"`
	Type          string `json:"type"`
}

GetMatchTargetsSequenceRequest is the argument for GetMatchTargetsSequenceRequest

type GetPenaltyBoxRequest

type GetPenaltyBoxRequest struct {
	ConfigID             int    `json:"-"`
	Version              int    `json:"-"`
	PolicyID             string `json:"-"`
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

func (GetPenaltyBoxRequest) Validate

func (v GetPenaltyBoxRequest) Validate() error

Validate validates GetPenaltyBoxRequest

type GetPenaltyBoxResponse

type GetPenaltyBoxResponse struct {
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

type GetPenaltyBoxesRequest

type GetPenaltyBoxesRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetPenaltyBoxesRequest) Validate

func (v GetPenaltyBoxesRequest) Validate() error

Validate validates GetPenaltyBoxsRequest

type GetPenaltyBoxesResponse

type GetPenaltyBoxesResponse struct {
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

type GetRatePoliciesRequest

type GetRatePoliciesRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
}

func (GetRatePoliciesRequest) Validate

func (v GetRatePoliciesRequest) Validate() error

Validate validates GetRatePolicysRequest

type GetRatePoliciesResponse

type GetRatePoliciesResponse struct {
	RatePolicies []struct {
		ID                    int    `json:"id"`
		ConfigID              int    `json:"configId"`
		ConfigVersion         int    `json:"configVersion"`
		MatchType             string `json:"matchType"`
		Type                  string `json:"type"`
		Name                  string `json:"name"`
		Description           string `json:"description"`
		AverageThreshold      int    `json:"averageThreshold"`
		BurstThreshold        int    `json:"burstThreshold"`
		ClientIdentifier      string `json:"clientIdentifier"`
		UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
		RequestType           string `json:"requestType"`
		SameActionOnIpv6      bool   `json:"sameActionOnIpv6,omitempty"`
		Path                  struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Values        []string `json:"values"`
		} `json:"path,omitempty"`
		PathMatchType        string `json:"pathMatchType,omitempty"`
		PathURIPositiveMatch bool   `json:"pathUriPositiveMatch,omitempty"`
		FileExtensions       struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Values        []string `json:"values"`
		} `json:"fileExtensions"`
		Hostnames              []string `json:"hostnames"`
		AdditionalMatchOptions []struct {
			PositiveMatch bool     `json:"positiveMatch"`
			Type          string   `json:"type"`
			Values        []string `json:"values"`
		} `json:"additionalMatchOptions"`
		QueryParameters []struct {
			Name          string   `json:"name"`
			Values        []string `json:"values"`
			PositiveMatch bool     `json:"positiveMatch"`
			ValueInRange  bool     `json:"valueInRange"`
		} `json:"queryParameters"`
		CreateDate      string `json:"createDate"`
		UpdateDate      string `json:"updateDate"`
		EnableActions   bool   `json:"enableActions,omitempty"`
		Used            bool   `json:"used"`
		SameActionOnIpv bool   `json:"sameActionOnIpv,omitempty"`
		APISelectors    []struct {
			APIDefinitionID int   `json:"apiDefinitionId"`
			ResourceIds     []int `json:"resourceIds"`
		} `json:"apiSelectors,omitempty"`
		BodyParameters []struct {
			Name          string   `json:"name"`
			Values        []string `json:"values"`
			PositiveMatch bool     `json:"positiveMatch"`
			ValueInRange  bool     `json:"valueInRange"`
		} `json:"bodyParameters,omitempty"`
	} `json:"ratePolicies"`
}

type GetRatePolicyActionRequest

type GetRatePolicyActionRequest struct {
	ConfigID   int    `json:"configId"`
	Version    int    `json:"version"`
	PolicyID   string `json:"policyId"`
	ID         int    `json:"id"`
	Ipv4Action string `json:"ipv4Action"`
	Ipv6Action string `json:"ipv6Action"`
}

func (GetRatePolicyActionRequest) Validate

func (v GetRatePolicyActionRequest) Validate() error

Validate validates GetRatePolicyActionRequest

type GetRatePolicyActionResponse

type GetRatePolicyActionResponse struct {
	RatePolicyActions []struct {
		ID         int    `json:"id"`
		Ipv4Action string `json:"ipv4Action"`
		Ipv6Action string `json:"ipv6Action"`
	} `json:"ratePolicyActions"`
}

type GetRatePolicyActionsRequest

type GetRatePolicyActionsRequest struct {
	ConfigID     int    `json:"configId"`
	Version      int    `json:"version"`
	PolicyID     string `json:"policyId"`
	RatePolicyID int    `json:"id"`
	Ipv4Action   string `json:"ipv4Action"`
	Ipv6Action   string `json:"ipv6Action"`
}

func (GetRatePolicyActionsRequest) Validate

func (v GetRatePolicyActionsRequest) Validate() error

Validate validates GetRatePolicyActionsRequest

type GetRatePolicyActionsResponse

type GetRatePolicyActionsResponse struct {
	RatePolicyActions []struct {
		ID         int    `json:"id"`
		Ipv4Action string `json:"ipv4Action"`
		Ipv6Action string `json:"ipv6Action"`
	} `json:"ratePolicyActions"`
}

type GetRatePolicyRequest

type GetRatePolicyRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	RatePolicyID  int `json:"ratePolicyId"`
}

func (GetRatePolicyRequest) Validate

func (v GetRatePolicyRequest) Validate() error

Validate validates GetRatePolicyRequest

type GetRatePolicyResponse

type GetRatePolicyResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type GetSecurityPoliciesRequest

type GetSecurityPoliciesRequest struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
}

type GetSecurityPoliciesResponse

type GetSecurityPoliciesResponse struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
	Policies []struct {
		PolicyID                string `json:"policyId"`
		PolicyName              string `json:"policyName"`
		HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
		PolicySecurityControls  struct {
			ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
			ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
			ApplyRateControls             bool `json:"applyRateControls"`
			ApplyReputationControls       bool `json:"applyReputationControls"`
			ApplyBotmanControls           bool `json:"applyBotmanControls"`
			ApplyAPIConstraints           bool `json:"applyApiConstraints"`
			ApplySlowPostControls         bool `json:"applySlowPostControls"`
		} `json:"policySecurityControls"`
	} `json:"policies"`
}

type GetSecurityPolicyCloneRequest

type GetSecurityPolicyCloneRequest struct {
	ConfigID int    `json:"configId"`
	Version  int    `json:"version"`
	PolicyID string `json:"policyId"`
}

func (GetSecurityPolicyCloneRequest) Validate

func (v GetSecurityPolicyCloneRequest) Validate() error

Validate validates GetSecurityPolicyCloneRequest

type GetSecurityPolicyCloneResponse

type GetSecurityPolicyCloneResponse struct {
	ConfigID               int    `json:"configId"`
	PolicyID               string `json:"policyId"`
	PolicyName             string `json:"policyName"`
	PolicySecurityControls struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"policySecurityControls"`
	Version int `json:"version"`
}

type GetSecurityPolicyClonesRequest

type GetSecurityPolicyClonesRequest struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
}

func (GetSecurityPolicyClonesRequest) Validate

Validate validates GetSecurityPolicyClonesRequest

type GetSecurityPolicyClonesResponse

type GetSecurityPolicyClonesResponse struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
	Policies []struct {
		PolicyID                string `json:"policyId"`
		PolicyName              string `json:"policyName"`
		HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
		PolicySecurityControls  struct {
			ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
			ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
			ApplyRateControls             bool `json:"applyRateControls"`
			ApplyReputationControls       bool `json:"applyReputationControls"`
			ApplyBotmanControls           bool `json:"applyBotmanControls"`
			ApplyAPIConstraints           bool `json:"applyApiConstraints"`
			ApplySlowPostControls         bool `json:"applySlowPostControls"`
		} `json:"policySecurityControls"`
	} `json:"policies"`
}

type GetSelectableHostnamesRequest

type GetSelectableHostnamesRequest struct {
	ConfigID int `json:"configId"`
	Version  int `json:"version"`
}

type GetSelectableHostnamesResponse

type GetSelectableHostnamesResponse struct {
	AvailableSet []struct {
		ActiveInProduction     bool   `json:"activeInProduction"`
		ActiveInStaging        bool   `json:"activeInStaging"`
		ArlInclusion           bool   `json:"arlInclusion"`
		Hostname               string `json:"hostname"`
		ConfigIDInProduction   int    `json:"configIdInProduction,omitempty"`
		ConfigNameInProduction string `json:"configNameInProduction,omitempty"`
	} `json:"availableSet"`
	ConfigID                int  `json:"configId"`
	ConfigVersion           int  `json:"configVersion"`
	ProtectARLInclusionHost bool `json:"protectARLInclusionHost"`
}

type GetSelectedHostnameRequest

type GetSelectedHostnameRequest struct {
	ConfigID     int        `json:"configId"`
	Version      int        `json:"version"`
	HostnameList []Hostname `json:"hostnameList"`
}

func (GetSelectedHostnameRequest) Validate

func (v GetSelectedHostnameRequest) Validate() error

Validate validates GetSelectedHostnameRequest

type GetSelectedHostnameResponse

type GetSelectedHostnameResponse struct {
	HostnameList []Hostname `json:"hostnameList"`
}

type GetSelectedHostnamesRequest

type GetSelectedHostnamesRequest struct {
	ConfigID     int        `json:"configId"`
	Version      int        `json:"version"`
	HostnameList []Hostname `json:"hostnameList"`
}

func (GetSelectedHostnamesRequest) Validate

func (v GetSelectedHostnamesRequest) Validate() error

Validate validates GetSelectedHostnamesRequest

type GetSelectedHostnamesResponse

type GetSelectedHostnamesResponse struct {
	HostnameList []Hostname `json:"hostnameList"`
}

type GetSlowPostProtectionSettingRequest

type GetSlowPostProtectionSettingRequest struct {
	ConfigID          int    `json:"configId"`
	Version           int    `json:"version"`
	PolicyID          string `json:"policyId"`
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

func (GetSlowPostProtectionSettingRequest) Validate

Validate validates GetSlowPostProtectionSettingRequest

type GetSlowPostProtectionSettingResponse

type GetSlowPostProtectionSettingResponse struct {
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

type GetSlowPostProtectionSettingsRequest

type GetSlowPostProtectionSettingsRequest struct {
	ConfigID          int    `json:"configId"`
	Version           int    `json:"version"`
	PolicyID          string `json:"policyId"`
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

func (GetSlowPostProtectionSettingsRequest) Validate

Validate validates GetSlowPostProtectionSettingsRequest

type GetSlowPostProtectionSettingsResponse

type GetSlowPostProtectionSettingsResponse struct {
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

type GetWAFModeRequest

type GetWAFModeRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetWAFModeRequest) Validate

func (v GetWAFModeRequest) Validate() error

Validate validates GetWAFModeRequest

type GetWAFModeResponse

type GetWAFModeResponse struct {
	Current string `json:"current"`
	Mode    string `json:"mode"`
	Eval    string `json:"eval"`
}

type GetWAFModesRequest

type GetWAFModesRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"current"`
	Mode     string `json:"mode"`
	Eval     string `json:"eval"`
}

func (GetWAFModesRequest) Validate

func (v GetWAFModesRequest) Validate() error

Validate validates GetWAFModesRequest

type GetWAFModesResponse

type GetWAFModesResponse struct {
	Current string `json:"current"`
	Mode    string `json:"mode"`
	Eval    string `json:"eval"`
}

type GetWAFProtectionRequest

type GetWAFProtectionRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
}

func (GetWAFProtectionRequest) Validate

func (v GetWAFProtectionRequest) Validate() error

Validate validates GetWAFProtectionRequest

type GetWAFProtectionResponse

type GetWAFProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type GetWAFProtectionsRequest

type GetWAFProtectionsRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
}

func (GetWAFProtectionsRequest) Validate

func (v GetWAFProtectionsRequest) Validate() error

Validate validates GetWAFProtectionsRequest

type GetWAFProtectionsResponse

type GetWAFProtectionsResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type Hostname

type Hostname struct {
	Hostname string `json:"hostname"`
}

type Hostnames

type Hostnames struct {
	Hostnames string `json:"hostnames"`
}

type MatchTarget

type MatchTarget interface {
	GetMatchTargets(ctx context.Context, params GetMatchTargetsRequest) (*GetMatchTargetsResponse, error)
	GetMatchTarget(ctx context.Context, params GetMatchTargetRequest) (*GetMatchTargetResponse, error)
	CreateMatchTarget(ctx context.Context, params CreateMatchTargetRequest) (*CreateMatchTargetResponse, error)
	UpdateMatchTarget(ctx context.Context, params UpdateMatchTargetRequest) (*UpdateMatchTargetResponse, error)
	RemoveMatchTarget(ctx context.Context, params RemoveMatchTargetRequest) (*RemoveMatchTargetResponse, error)
}

MatchTarget contains operations available on MatchTarget resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getmatchtarget

type MatchTargetSequence

type MatchTargetSequence interface {
	GetMatchTargetSequences(ctx context.Context, params GetMatchTargetSequencesRequest) (*GetMatchTargetSequencesResponse, error)
	GetMatchTargetSequence(ctx context.Context, params GetMatchTargetSequenceRequest) (*GetMatchTargetSequenceResponse, error)
	UpdateMatchTargetSequence(ctx context.Context, params UpdateMatchTargetSequenceRequest) (*UpdateMatchTargetSequenceResponse, error)
}

MatchTargetSequence contains operations available on MatchTargetSequence resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getmatchtargetsequence

type NetworkValue

type NetworkValue string

NetworkValue is used to create an "enum" of possible Activation.Network values

type Option

type Option func(*appsec)

Option defines a PAPI option

type PenaltyBox

type PenaltyBox interface {
	GetPenaltyBoxes(ctx context.Context, params GetPenaltyBoxesRequest) (*GetPenaltyBoxesResponse, error)
	GetPenaltyBox(ctx context.Context, params GetPenaltyBoxRequest) (*GetPenaltyBoxResponse, error)
	UpdatePenaltyBox(ctx context.Context, params UpdatePenaltyBoxRequest) (*UpdatePenaltyBoxResponse, error)
}

PenaltyBox contains operations available on PenaltyBox resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getpenaltybox

type Policies

type Policies struct {
	HasRatePolicyWithAPIKey bool   `json:"hasRatePolicyWithApiKey"`
	PolicyID                string `json:"policyId"`
	PolicyName              string `json:"policyName"`
	PolicySecurityControls  struct {
		ApplyAPIConstraints           bool `json:"applyApiConstraints"`
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	}
}

type RatePolicy

type RatePolicy interface {
	GetRatePolicies(ctx context.Context, params GetRatePoliciesRequest) (*GetRatePoliciesResponse, error)
	GetRatePolicy(ctx context.Context, params GetRatePolicyRequest) (*GetRatePolicyResponse, error)
	CreateRatePolicy(ctx context.Context, params CreateRatePolicyRequest) (*CreateRatePolicyResponse, error)
	UpdateRatePolicy(ctx context.Context, params UpdateRatePolicyRequest) (*UpdateRatePolicyResponse, error)
	RemoveRatePolicy(ctx context.Context, params RemoveRatePolicyRequest) (*RemoveRatePolicyResponse, error)
}

RatePolicy contains operations available on RatePolicy resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getratepolicy

type RatePolicyAction

type RatePolicyAction interface {
	GetRatePolicyActions(ctx context.Context, params GetRatePolicyActionsRequest) (*GetRatePolicyActionsResponse, error)
	GetRatePolicyAction(ctx context.Context, params GetRatePolicyActionRequest) (*GetRatePolicyActionResponse, error)
	UpdateRatePolicyAction(ctx context.Context, params UpdateRatePolicyActionRequest) (*UpdateRatePolicyActionResponse, error)
}

RatePolicyAction contains operations available on RatePolicyAction resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getratepolicyaction

type RatePolicyActionPost

type RatePolicyActionPost struct {
	ID         int    `json:"id"`
	Ipv4Action string `json:"ipv4Action"`
	Ipv6Action string `json:"ipv6Action"`
}

type RemoveActivationsRequest

type RemoveActivationsRequest struct {
	ActivationID       int      `json:"-"`
	Action             string   `json:"action"`
	Network            string   `json:"network"`
	Note               string   `json:"note"`
	NotificationEmails []string `json:"notificationEmails"`
	ActivationConfigs  []struct {
		ConfigID      int `json:"configId"`
		ConfigVersion int `json:"configVersion"`
	} `json:"activationConfigs"`
}

type RemoveActivationsResponse

type RemoveActivationsResponse struct {
	DispatchCount     int          `json:"dispatchCount"`
	ActivationID      int          `json:"activationId"`
	Action            string       `json:"action"`
	Status            StatusValue  `json:"status"`
	Network           NetworkValue `json:"network"`
	Estimate          string       `json:"estimate"`
	CreatedBy         string       `json:"createdBy"`
	CreateDate        time.Time    `json:"createDate"`
	ActivationConfigs []struct {
		ConfigID              int    `json:"configId"`
		ConfigName            string `json:"configName"`
		ConfigVersion         int    `json:"configVersion"`
		PreviousConfigVersion int    `json:"previousConfigVersion"`
	} `json:"activationConfigs"`
}

type RemoveCustomRuleRequest

type RemoveCustomRuleRequest struct {
	ConfigID int `json:"configid,omitempty"`
	ID       int `json:"id,omitempty"`
}

func (RemoveCustomRuleRequest) Validate

func (v RemoveCustomRuleRequest) Validate() error

Validate validates RemoveCustomRuleRequest

type RemoveCustomRuleResponse

type RemoveCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type RemoveMatchTargetRequest

type RemoveMatchTargetRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	TargetID      int `json:"targetId"`
}

RemoveMatchTargetRequest is the argument for GetProperties

func (RemoveMatchTargetRequest) Validate

func (v RemoveMatchTargetRequest) Validate() error

Validate validates RemoveMatchTargetRequest

type RemoveMatchTargetResponse

type RemoveMatchTargetResponse struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

RemoveMatchTargetResponse ...

type RemoveRatePolicyRequest

type RemoveRatePolicyRequest struct {
	ConfigID      int `json:"configId"`
	ConfigVersion int `json:"configVersion"`
	RatePolicyID  int `json:"ratePolicyId"`
}

func (RemoveRatePolicyRequest) Validate

func (v RemoveRatePolicyRequest) Validate() error

Validate validates RemoveRatePolicyRequest

type RemoveRatePolicyResponse

type RemoveRatePolicyResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type SecurityPolicy

type SecurityPolicy interface {
	GetSecurityPolicies(ctx context.Context, params GetSecurityPoliciesRequest) (*GetSecurityPoliciesResponse, error)
}

SecurityPolicy contains operations available on SecurityPolicy resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getsecuritypolicy

type SecurityPolicyClone

type SecurityPolicyClone interface {
	GetSecurityPolicyClones(ctx context.Context, params GetSecurityPolicyClonesRequest) (*GetSecurityPolicyClonesResponse, error)
	GetSecurityPolicyClone(ctx context.Context, params GetSecurityPolicyCloneRequest) (*GetSecurityPolicyCloneResponse, error)
	CreateSecurityPolicyClone(ctx context.Context, params CreateSecurityPolicyCloneRequest) (*CreateSecurityPolicyCloneResponse, error)
}

SecurityPolicyClone contains operations available on SecurityPolicyClone resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getsecuritypolicyclone

type SecurityPolicyCloneResponse

type SecurityPolicyCloneResponse struct {
	ConfigID int        `json:"configId"`
	Policies []Policies `json:"policies"`
	Version  int        `json:"version"`
}

type SelectableHostnames

type SelectableHostnames interface {
	GetSelectableHostnames(ctx context.Context, params GetSelectableHostnamesRequest) (*GetSelectableHostnamesResponse, error)
}

SelectableHostnames contains operations available on SelectableHostnames resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getselectablehostnames

type SelectedHostname

type SelectedHostname interface {
	GetSelectedHostnames(ctx context.Context, params GetSelectedHostnamesRequest) (*GetSelectedHostnamesResponse, error)
	GetSelectedHostname(ctx context.Context, params GetSelectedHostnameRequest) (*GetSelectedHostnameResponse, error)
	UpdateSelectedHostname(ctx context.Context, params UpdateSelectedHostnameRequest) (*UpdateSelectedHostnameResponse, error)
}

SelectedHostname contains operations available on SelectedHostname resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getselectedhostname

type SlowPostProtectionSetting

type SlowPostProtectionSetting interface {
	GetSlowPostProtectionSettings(ctx context.Context, params GetSlowPostProtectionSettingsRequest) (*GetSlowPostProtectionSettingsResponse, error)
	GetSlowPostProtectionSetting(ctx context.Context, params GetSlowPostProtectionSettingRequest) (*GetSlowPostProtectionSettingResponse, error)
	UpdateSlowPostProtectionSetting(ctx context.Context, params UpdateSlowPostProtectionSettingRequest) (*UpdateSlowPostProtectionSettingResponse, error)
}

SlowPostProtectionSetting contains operations available on SlowPostProtectionSetting resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getslowpostprotectionsetting

type StatusValue

type StatusValue string

StatusValue is used to create an "enum" of possible Activation.Status values

type TargetSequence

type TargetSequence struct {
	TargetID int `json:"targetId"`
	Sequence int `json:"sequence"`
}

BypassNetworkList ...

type UpdateCustomRuleActionRequest

type UpdateCustomRuleActionRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	RuleID   int    `json:"-"`
	Action   string `json:"action"`
}

func (UpdateCustomRuleActionRequest) Validate

func (v UpdateCustomRuleActionRequest) Validate() error

Validate validates UpdateCustomRuleActionRequest

type UpdateCustomRuleActionResponse

type UpdateCustomRuleActionResponse struct {
	Action                string `json:"action"`
	CanUseAdvancedActions bool   `json:"canUseAdvancedActions"`
	Link                  string `json:"link"`
	Name                  string `json:"name"`
	RuleID                int    `json:"ruleId"`
}

type UpdateCustomRuleRequest

type UpdateCustomRuleRequest struct {
	ConfigID      int      `json:"configid,omitempty"`
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

func (UpdateCustomRuleRequest) Validate

func (v UpdateCustomRuleRequest) Validate() error

Validate validates UpdateCustomRuleRequest

type UpdateCustomRuleResponse

type UpdateCustomRuleResponse struct {
	ID            int      `json:"id,omitempty"`
	Name          string   `json:"name"`
	Description   string   `json:"description"`
	Version       int      `json:"version,omitempty"`
	RuleActivated bool     `json:"ruleActivated"`
	Tag           []string `json:"tag"`
	Conditions    []struct {
		Type          string   `json:"type"`
		PositiveMatch bool     `json:"positiveMatch"`
		Value         []string `json:"value,omitempty"`
		ValueWildcard bool     `json:"valueWildcard,omitempty"`
		ValueCase     bool     `json:"valueCase,omitempty"`
		NameWildcard  bool     `json:"nameWildcard,omitempty"`
		Name          []string `json:"name,omitempty"`
		NameCase      bool     `json:"nameCase,omitempty"`
	} `json:"conditions"`
}

type UpdateMatchTargetRequest

type UpdateMatchTargetRequest struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

UpdateMatchTargetRequest is the argument for GetProperties

func (UpdateMatchTargetRequest) Validate

func (v UpdateMatchTargetRequest) Validate() error

Validate validates UpdateMatchTargetRequest

type UpdateMatchTargetResponse

type UpdateMatchTargetResponse struct {
	Type                      string `json:"type"`
	ConfigID                  int    `json:"configId"`
	ConfigVersion             int    `json:"configVersion"`
	DefaultFile               string `json:"defaultFile"`
	EffectiveSecurityControls struct {
		ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
		ApplyBotmanControls           bool `json:"applyBotmanControls"`
		ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
		ApplyRateControls             bool `json:"applyRateControls"`
		ApplyReputationControls       bool `json:"applyReputationControls"`
		ApplySlowPostControls         bool `json:"applySlowPostControls"`
	} `json:"effectiveSecurityControls"`
	Hostnames                    []string `json:"hostnames"`
	IsNegativeFileExtensionMatch bool     `json:"isNegativeFileExtensionMatch"`
	IsNegativePathMatch          bool     `json:"isNegativePathMatch"`
	FilePaths                    []string `json:"filePaths"`
	FileExtensions               []string `json:"fileExtensions"`
	SecurityPolicy               struct {
		PolicyID string `json:"policyId"`
	} `json:"securityPolicy"`
	Sequence           int `json:"sequence"`
	TargetID           int `json:"targetId"`
	BypassNetworkLists []struct {
		Name string `json:"name"`
		ID   string `json:"id"`
	} `json:"bypassNetworkLists"`
}

UpdateMatchTargetResponse ...

type UpdateMatchTargetSequenceRequest

type UpdateMatchTargetSequenceRequest struct {
	ConfigID       int    `json:"-"`
	ConfigVersion  int    `json:"-"`
	Type           string `json:"type"`
	TargetSequence []struct {
		TargetID int `json:"targetId"`
		Sequence int `json:"sequence"`
	} `json:"targetSequence"`
}

UpdateMatchTargetRequest is the argument for GetProperties

func (UpdateMatchTargetSequenceRequest) Validate

Validate validates UpdateMatchTargetSequenceRequest

type UpdateMatchTargetSequenceResponse

type UpdateMatchTargetSequenceResponse struct {
	Type           string `json:"type"`
	TargetSequence []struct {
		TargetID int `json:"targetId"`
		Sequence int `json:"sequence"`
	} `json:"targetSequence"`
}

UpdateMatchTargetResponse ...

type UpdatePenaltyBoxRequest

type UpdatePenaltyBoxRequest struct {
	ConfigID             int    `json:"-"`
	Version              int    `json:"-"`
	PolicyID             string `json:"-"`
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

func (UpdatePenaltyBoxRequest) Validate

func (v UpdatePenaltyBoxRequest) Validate() error

Validate validates UpdatePenaltyBoxRequest

type UpdatePenaltyBoxResponse

type UpdatePenaltyBoxResponse struct {
	Action               string `json:"action"`
	PenaltyBoxProtection bool   `json:"penaltyBoxProtection"`
}

type UpdateRatePolicyActionRequest

type UpdateRatePolicyActionRequest struct {
	ConfigID     int    `json:"-"`
	Version      int    `json:"-"`
	PolicyID     string `json:"-"`
	RatePolicyID int    `json:"-"`
	Ipv4Action   string `json:"ipv4Action"`
	Ipv6Action   string `json:"ipv6Action"`
}

func (UpdateRatePolicyActionRequest) Validate

func (v UpdateRatePolicyActionRequest) Validate() error

Validate validates UpdateRatePolicyActionRequest

type UpdateRatePolicyActionResponse

type UpdateRatePolicyActionResponse struct {
	ID         int    `json:"id"`
	Ipv4Action string `json:"ipv4Action"`
	Ipv6Action string `json:"ipv6Action"`
}

type UpdateRatePolicyRequest

type UpdateRatePolicyRequest struct {
	RatePolicyID          int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

func (UpdateRatePolicyRequest) Validate

func (v UpdateRatePolicyRequest) Validate() error

Validate validates UpdateRatePolicyRequest

type UpdateRatePolicyResponse

type UpdateRatePolicyResponse struct {
	ID                    int    `json:"id"`
	PolicyID              int    `json:"policyId"`
	ConfigID              int    `json:"configId"`
	ConfigVersion         int    `json:"configVersion"`
	MatchType             string `json:"matchType"`
	Type                  string `json:"type"`
	Name                  string `json:"name"`
	Description           string `json:"description"`
	AverageThreshold      int    `json:"averageThreshold"`
	BurstThreshold        int    `json:"burstThreshold"`
	ClientIdentifier      string `json:"clientIdentifier"`
	UseXForwardForHeaders bool   `json:"useXForwardForHeaders"`
	RequestType           string `json:"requestType"`
	SameActionOnIpv6      bool   `json:"sameActionOnIpv6"`
	Path                  struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"path"`
	PathMatchType        string `json:"pathMatchType"`
	PathURIPositiveMatch bool   `json:"pathUriPositiveMatch"`
	FileExtensions       struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Values        []string `json:"values"`
	} `json:"fileExtensions"`
	Hostnames              []string `json:"hostNames"`
	AdditionalMatchOptions []struct {
		PositiveMatch bool     `json:"positiveMatch"`
		Type          string   `json:"type"`
		Values        []string `json:"values"`
	} `json:"additionalMatchOptions"`
	QueryParameters []struct {
		Name          string   `json:"name"`
		Values        []string `json:"values"`
		PositiveMatch bool     `json:"positiveMatch"`
		ValueInRange  bool     `json:"valueInRange"`
	} `json:"queryParameters"`
	CreateDate string `json:"createDate"`
	UpdateDate string `json:"updateDate"`
	Used       bool   `json:"used"`
}

type UpdateSelectedHostnameRequest

type UpdateSelectedHostnameRequest struct {
	ConfigID     int        `json:"configId"`
	Version      int        `json:"version"`
	HostnameList []Hostname `json:"hostnameList"`
}

func (UpdateSelectedHostnameRequest) Validate

func (v UpdateSelectedHostnameRequest) Validate() error

Validate validates UpdateSelectedHostnameRequest

type UpdateSelectedHostnameResponse

type UpdateSelectedHostnameResponse struct {
	HostnameList []Hostname `json:"hostnameList"`
}

type UpdateSlowPostProtectionSettingRequest

type UpdateSlowPostProtectionSettingRequest struct {
	ConfigID          int    `json:"configId"`
	Version           int    `json:"version"`
	PolicyID          string `json:"policyId"`
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

func (UpdateSlowPostProtectionSettingRequest) Validate

Validate validates UpdateSlowPostProtectionSettingRequest

type UpdateSlowPostProtectionSettingResponse

type UpdateSlowPostProtectionSettingResponse struct {
	Action            string `json:"action"`
	SlowRateThreshold struct {
		Rate   int `json:"rate"`
		Period int `json:"period"`
	} `json:"slowRateThreshold"`
	DurationThreshold struct {
		Timeout int `json:"timeout"`
	} `json:"durationThreshold"`
}

type UpdateWAFModeRequest

type UpdateWAFModeRequest struct {
	ConfigID int    `json:"-"`
	Version  int    `json:"-"`
	PolicyID string `json:"-"`
	Current  string `json:"-"`
	Mode     string `json:"mode"`
	Eval     string `json:"-"`
}

func (UpdateWAFModeRequest) Validate

func (v UpdateWAFModeRequest) Validate() error

Validate validates UpdateWAFModeRequest

type UpdateWAFModeResponse

type UpdateWAFModeResponse struct {
	Current string `json:"current"`
	Mode    string `json:"mode"`
}

type UpdateWAFProtectionRequest

type UpdateWAFProtectionRequest struct {
	ConfigID                      int    `json:"-"`
	Version                       int    `json:"-"`
	PolicyID                      string `json:"-"`
	ApplyApplicationLayerControls bool   `json:"applyApplicationLayerControls"`
}

func (UpdateWAFProtectionRequest) Validate

func (v UpdateWAFProtectionRequest) Validate() error

Validate validates UpdateWAFProtectionRequest

type UpdateWAFProtectionResponse

type UpdateWAFProtectionResponse struct {
	ApplyAPIConstraints           bool `json:"applyApiConstraints"`
	ApplyApplicationLayerControls bool `json:"applyApplicationLayerControls"`
	ApplyBotmanControls           bool `json:"applyBotmanControls"`
	ApplyNetworkLayerControls     bool `json:"applyNetworkLayerControls"`
	ApplyRateControls             bool `json:"applyRateControls"`
	ApplyReputationControls       bool `json:"applyReputationControls"`
	ApplySlowPostControls         bool `json:"applySlowPostControls"`
}

type WAFMode

type WAFMode interface {
	GetWAFModes(ctx context.Context, params GetWAFModesRequest) (*GetWAFModesResponse, error)
	GetWAFMode(ctx context.Context, params GetWAFModeRequest) (*GetWAFModeResponse, error)
	UpdateWAFMode(ctx context.Context, params UpdateWAFModeRequest) (*UpdateWAFModeResponse, error)
}

WAFMode contains operations available on WAFMode resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getwafmode

type WAFProtection

type WAFProtection interface {
	GetWAFProtections(ctx context.Context, params GetWAFProtectionsRequest) (*GetWAFProtectionsResponse, error)
	GetWAFProtection(ctx context.Context, params GetWAFProtectionRequest) (*GetWAFProtectionResponse, error)
	UpdateWAFProtection(ctx context.Context, params UpdateWAFProtectionRequest) (*UpdateWAFProtectionResponse, error)
}

WAFProtection contains operations available on WAFProtection resource See: // appsec v1

https://developer.akamai.com/api/cloud_security/application_security/v1.html#getwafprotection

Jump to

Keyboard shortcuts

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