scdn

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2025 License: MIT Imports: 11 Imported by: 0

README

SCDN Service

This package provides Terraform resources and data sources for managing ByteShield SCDN (Security CDN) domains and related configurations.

Resources

byteshield_scdn_domain

Manages SCDN domains with origin server configurations.

Arguments
Name Type Required Description
domain string Yes The domain name to be added to SCDN
group_id number No The ID of the domain group
exclusive_resource_id number No The ID of the exclusive resource package
remark string No The remark for the domain
tpl_id number No The template ID to be applied to the domain
protect_status string No The edge node type. Valid values: back_source, scdn, exclusive (default: scdn)
tpl_recommend string No The template recommendation status
app_type string No The application type
origins list(object) Yes The origin server configuration
Origins Block
Name Type Required Description
protocol number Yes The origin protocol. Valid values: 0 (HTTP), 1 (HTTPS)
listen_ports list(number) Yes The listening ports of the origin server
origin_protocol number Yes The origin protocol. Valid values: 0 (HTTP), 1 (HTTPS), 2 (Follow)
load_balance number Yes The load balancing method. Valid values: 0 (IP hash), 1 (Round robin), 2 (Cookie)
origin_type number Yes The origin type. Valid values: 0 (IP), 1 (Domain)
records list(object) Yes The origin records
Records Block
Name Type Required Description
view string Yes The view of the record
value string Yes The value of the record (IP address or domain)
port number Yes The port of the record
priority number Yes The priority of the record
Attributes
Name Type Description
id number The ID of the domain
access_progress string The access progress status
access_mode string The access mode (ns or cname)
ei_forward_status string The explicit/implicit forwarding status
cname object The CNAME information
use_my_cname number The CNAME resolution status
use_my_dns number The DNS hosting status
ca_status string The certificate binding status
access_progress_desc string The description of the access progress status
has_origin bool Whether the domain has origin configuration
ca_id number The certificate ID
created_at string The creation timestamp
updated_at string The last update timestamp
pri_domain string The primary domain
Example
resource "byteshield_scdn_domain" "example" {
  domain        = "example.com"
  group_id      = 123
  remark        = "Example SCDN domain"
  protect_status = "scdn"
  
  origins {
    protocol        = 0
    listen_ports    = [80, 443]
    origin_protocol = 0
    load_balance    = 1
    origin_type     = 0
    
    records {
      view     = "default"
      value    = "1.1.1.1"
      port     = 80
      priority = 10
    }
  }
}
byteshield_scdn_origin

Manages individual origin servers for SCDN domains.

Arguments
Name Type Required Description
domain_id number Yes The ID of the domain to add origins to
protocol number Yes The origin protocol. Valid values: 0 (HTTP), 1 (HTTPS)
listen_ports list(number) Yes The listening ports of the origin server
origin_protocol number Yes The origin protocol. Valid values: 0 (HTTP), 1 (HTTPS), 2 (Follow)
load_balance number Yes The load balancing method. Valid values: 0 (IP hash), 1 (Round robin), 2 (Cookie)
origin_type number Yes The origin type. Valid values: 0 (IP), 1 (Domain)
records list(object) Yes The origin records
Attributes
Name Type Description
id number The ID of the origin
listen_port number The listening port of the origin server (single port from API)
byteshield_scdn_cert_binding

Manages certificate bindings for SCDN domains.

Arguments
Name Type Required Description
domain_id number Yes The ID of the domain to bind the certificate to
ca_id number Yes The ID of the certificate to bind
Attributes
Name Type Description
id string The unique identifier for this certificate binding

Data Sources

byteshield_scdn_domain

Retrieves information about a specific SCDN domain.

Arguments
Name Type Required Description
domain string Yes The domain name to query
result_output_file string No Used to save results to a file
Attributes

All attributes from the byteshield_scdn_domain resource are available as computed attributes.

byteshield_scdn_domains

Retrieves a list of SCDN domains with optional filtering.

Arguments
Name Type Required Description
page number No The page number for pagination (default: 1)
page_size number No The page size for pagination (default: 100)
access_progress string No Filter by access progress status
group_id number No Filter by domain group ID
domain string No Filter by domain name (fuzzy search)
remark string No Filter by remark (fuzzy search)
origin_ip string No Filter by origin IP
ca_status string No Filter by certificate binding status
access_mode string No Filter by access mode
protect_status string No Filter by edge node type
exclusive_resource_id number No Filter by exclusive resource package ID
result_output_file string No Used to save results to a file
Attributes
Name Type Description
total number The total number of domains
domains list(object) The list of domains
byteshield_scdn_origin

Retrieves information about a specific SCDN origin.

Arguments
Name Type Required Description
origin_id number Yes The ID of the origin to query
domain_id number Yes The ID of the domain that owns the origin
result_output_file string No Used to save results to a file
Attributes

All attributes from the byteshield_scdn_origin resource are available as computed attributes.

byteshield_scdn_origins

Retrieves a list of SCDN origins for a specific domain.

Arguments
Name Type Required Description
domain_id number Yes The ID of the domain to query origins for
result_output_file string No Used to save results to a file
Attributes
Name Type Description
total number The total number of origins
origins list(object) The list of origins

API Endpoints

This service implements the following ByteShield SCDN API v5 endpoints:

  • GET /api/v5/domains - List domains
  • GET /api/v5/domains/simple - List simple domains
  • POST /api/v5/domains - Create domain
  • PUT /api/v5/domains - Update domain
  • POST /api/v5/domains/bind_cert - Bind certificate to domain
  • POST /api/v5/domains/unbind_cert - Unbind certificate from domain
  • DELETE /api/v5/domains - Delete domain
  • POST /api/v5/domains_disable - Disable domain
  • POST /api/v5/domains_enable - Enable domain
  • POST /api/v5/domains/access_refresh - Refresh domain access status
  • POST /api/v5/domains/domains_export - Export domains
  • POST /api/v5/domains/origins - Add origins
  • PUT /api/v5/domains/origins - Update origins
  • DELETE /api/v5/domains/origins - Delete origins
  • GET /api/v5/domains/origins - List origins
  • POST /api/v5/domains/nodes_switch - Switch domain nodes
  • POST /api/v5/domains/access_switch - Switch domain access mode
  • GET /api/v5/domains/access_progress - Get access progress status
  • PUT /api/v5/domains/base_settings - Update domain base settings
  • GET /api/v5/domains/base_settings - Get domain base settings
  • POST /api/v5/brief_domains - List brief domains
  • GET /api/v5/domains/templates - Get domain templates
  • POST /api/v5/domains/access_info_download - Download access information

Error Handling

The service includes comprehensive error handling for common scenarios:

  • Not Found Errors: When resources don't exist
  • Rate Limit Errors: When API rate limits are exceeded
  • Authentication Errors: When API credentials are invalid
  • Validation Errors: When required parameters are missing or invalid

Testing

The package includes comprehensive unit tests covering:

  • Service layer functionality
  • Resource and data source schemas
  • API request/response handling
  • Error scenarios
  • Data validation

Run tests with:

go test ./src/services/scdn/...

Examples

Complete SCDN Setup
# Create SCDN domain
resource "byteshield_scdn_domain" "main" {
  domain        = "cdn.example.com"
  group_id      = 123
  remark        = "Main CDN domain"
  protect_status = "scdn"
  
  origins {
    protocol        = 0
    listen_ports    = [80, 443]
    origin_protocol = 0
    load_balance    = 1
    origin_type     = 0
    
    records {
      view     = "default"
      value    = "1.1.1.1"
      port     = 80
      priority = 10
    }
    
    records {
      view     = "default"
      value    = "2.2.2.2"
      port     = 80
      priority = 20
    }
  }
}

# Add additional origin
resource "byteshield_scdn_origin" "backup" {
  domain_id      = byteshield_scdn_domain.main.id
  protocol       = 1
  listen_ports   = [443]
  origin_protocol = 1
  load_balance   = 1
  origin_type    = 1
  
  records {
    view     = "default"
    value    = "backup.example.com"
    port     = 443
    priority = 10
  }
}

# Bind SSL certificate
resource "byteshield_scdn_cert_binding" "ssl" {
  domain_id = byteshield_scdn_domain.main.id
  ca_id     = 456
}

# Query domain information
data "byteshield_scdn_domain" "info" {
  domain = "cdn.example.com"
}

# Query all domains
data "byteshield_scdn_domains" "all" {
  access_progress = "enabled"
  protect_status  = "scdn"
}
Using Data Sources
# Get specific domain
data "byteshield_scdn_domain" "example" {
  domain = "example.com"
}

# Get all domains with filters
data "byteshield_scdn_domains" "filtered" {
  page            = 1
  page_size       = 50
  access_progress = "enabled"
  protect_status  = "scdn"
}

# Get origins for a domain
data "byteshield_scdn_origins" "domain_origins" {
  domain_id = 123
}

# Get specific origin
data "byteshield_scdn_origin" "specific" {
  origin_id = 456
  domain_id = 123
}

Documentation

Index

Constants

View Source
const (
	MethodGET    = "GET"
	MethodPOST   = "POST"
	MethodPUT    = "PUT"
	MethodDELETE = "DELETE"
)

HTTP Methods

View Source
const (

	// ============================================================================
	// Domain Management API Endpoints
	// ============================================================================
	// Domain CRUD operations
	EndpointDomains        = "/api/v5/domains"         // GET, POST, PUT, DELETE
	EndpointDomainsSimple  = "/api/v5/domains/simple"  // GET
	EndpointDomainsDisable = "/api/v5/domains_disable" // POST
	EndpointDomainsEnable  = "/api/v5/domains_enable"  // POST

	// Domain certificate operations
	EndpointDomainsBindCert   = "/api/v5/domains/bind_cert"   // POST
	EndpointDomainsUnbindCert = "/api/v5/domains/unbind_cert" // POST

	// Domain access operations
	EndpointDomainsAccessRefresh      = "/api/v5/domains/access_refresh"       // POST
	EndpointDomainsAccessSwitch       = "/api/v5/domains/access_switch"        // POST
	EndpointDomainsAccessProgress     = "/api/v5/domains/access_progress"      // GET
	EndpointDomainsAccessInfoDownload = "/api/v5/domains/access_info_download" // POST

	// Domain export
	EndpointDomainsExport = "/api/v5/domains/domains_export" // POST

	// Domain node operations
	EndpointDomainsNodesSwitch = "/api/v5/domains/nodes_switch" // POST

	// Domain base settings
	EndpointDomainsBaseSettings = "/api/v5/domains/base_settings" // GET, PUT

	// Domain templates
	EndpointDomainsTemplates = "/api/v5/domains/templates" // GET

	// Domain origins
	EndpointDomainsOrigins = "/api/v5/domains/origins" // GET, POST, PUT, DELETE

	// Brief domains
	EndpointBriefDomains = "/api/v5/brief_domains" // POST

	// ============================================================================
	// Certificate Management API Endpoints
	// ============================================================================
	// Certificate CRUD operations
	EndpointCASelfAdd     = "/api/v5/Web.ca.self.add"          // POST - Upload certificate
	EndpointCATextSave    = "/api/v5/Web.ca.text.save"         // POST - Add/Update certificate (text)
	EndpointCAInfoEdit    = "/api/v5/Web.ca.info.edit"         // POST - Edit certificate
	EndpointCASelfList    = "/api/v5/Web.ca.self.list"         // GET - List certificates
	EndpointCASelf        = "/api/v5/Web.ca.self"              // GET - Get certificate detail
	EndpointCASelfExport  = "/api/v5/Web.ca.self.export"       // GET - Export certificate
	EndpointCASelfDel     = "/api/v5/Web.ca.self.del"          // DELETE - Delete certificate
	EndpointCAEditName    = "/api/v5/Web.ca.self.editcaname"   // POST - Edit certificate name
	EndpointCABatchList   = "/api/v5/Web.Domain.batch.ca.list" // POST - List certificates by domains
	EndpointCAApplyAdd    = "/api/v5/Web.ca.apply.add"         // POST - Apply for certificate
	EndpointCABatchOperat = "/api/v5/Web.ca.batch.operat"      // POST - Batch certificate operations

	// ============================================================================
	// Rule Template Management API Endpoints
	// ============================================================================
	// Rule template CRUD operations
	EndpointRuleTemplates        = "/api/v5/ruletpls"               // GET, POST, PUT, DELETE
	EndpointRuleTemplatesBind    = "/api/v5/ruletpls/bind_domain"   // PUT - Bind domain to template
	EndpointRuleTemplatesUnbind  = "/api/v5/ruletpls/unbind_domain" // PUT - Unbind domain from template
	EndpointRuleTemplatesDomains = "/api/v5/ruletpls/domains"       // GET - List domains bound to template

	// ============================================================================
	// Network Speed Management API Endpoints
	// ============================================================================
	EndpointNetworkSpeedGetConfig    = "/api/v5/ruletpl/network_speed/get_conf"  // POST - Get template config
	EndpointNetworkSpeedUpdateConfig = "/api/v5/ruletpl/network_speed/conf"      // PUT - Update template config
	EndpointNetworkSpeedRules        = "/api/v5/ruletpl/network_speed/rules"     // GET - Get rules list, POST - Create rule
	EndpointNetworkSpeedRule         = "/api/v5/ruletpl/network_speed/rule"      // DELETE - Delete rule, POST - Update rule
	EndpointNetworkSpeedRuleSort     = "/api/v5/ruletpl/network_speed/rule_sort" // PUT - Sort rules

	// ============================================================================
	// Cache Rule Management API Endpoints
	// ============================================================================
	EndpointCacheRules      = "/api/v5/ruletpl/cache/rules"       // GET - Get rules list, POST - Create rule
	EndpointCacheRule       = "/api/v5/ruletpl/cache/rule"        // PUT - Update rule name/remark, DELETE - Delete rule
	EndpointCacheRuleConf   = "/api/v5/ruletpl/cache/rule/conf"   // PUT - Update rule configuration
	EndpointCacheRuleStatus = "/api/v5/ruletpl/cache/rule_status" // PUT - Update rule status (enable/disable)
	EndpointCacheRuleSort   = "/api/v5/ruletpl/cache/rule_sort"   // PUT - Sort rules
	EndpointCacheGlobalConf = "/api/v5/ruletpl/cache/global/conf" // GET - Get global cache config

	// ============================================================================
	// Security Protection API Endpoints
	// ============================================================================
	// DDoS Protection
	EndpointSecurityProtectionDdosConfigs = "/api/v5/security_protection/ddos/configs" // GET - Get DDoS config, PUT - Update DDoS config

	// WAF Rule Config
	EndpointSecurityProtectionWafRules = "/api/v5/security_protection/waf/rules" // GET - Get WAF config, PUT - Update WAF config

	// Security Protection Template
	EndpointSecurityProtectionTemplateMemberGlobal        = "/api/v5/security_protection/template/member/global"         // GET - Get member global template
	EndpointSecurityProtectionTemplate                    = "/api/v5/security_protection/template"                       // POST - Create template, PUT - Edit template, DELETE - Delete template
	EndpointSecurityProtectionTemplateDomain              = "/api/v5/security_protection/template/domain"                // POST - Create domain template
	EndpointSecurityProtectionTemplateSearch              = "/api/v5/security_protection/template/search"                // POST - Get template list
	EndpointSecurityProtectionTemplateDomainBindSearch    = "/api/v5/security_protection/template/domain/bind/search"    // POST - Get template bind domain list
	EndpointSecurityProtectionTemplateDomainBind          = "/api/v5/security_protection/template/domain/bind"           // POST - Bind template domain
	EndpointSecurityProtectionTemplateBatchConfig         = "/api/v5/security_protection/template/batch/config"          // POST - Batch config template
	EndpointSecurityProtectionTemplateDomainUnboundSearch = "/api/v5/security_protection/template/domain/unbound/search" // POST - Get unbound template domain list

	// Security Protection Iota
	EndpointSecurityProtectionIota = "/api/v5/security_protection/template/iota" // GET - Get iota enum values

	// ============================================================================
	// Origin Group Management API Endpoints
	// ============================================================================
	EndpointOriginGroups            = "/api/v5/origin_groups"                     // GET - List origin groups, POST - Create origin group, PUT - Update origin group, DELETE - Delete origin groups
	EndpointOriginGroupsDetail      = "/api/v5/origin_groups/detail"              // GET - Get origin group detail
	EndpointOriginGroupsBindDomains = "/api/v5/origin_groups/domains_bind"        // POST - Bind origin group to domains
	EndpointOriginGroupsAll         = "/api/v5/origin_groups/all"                 // GET - Get all origin groups
	EndpointOriginGroupsCopy        = "/api/v5/origin_groups/copy"                // POST - Copy origin group to domain
	EndpointOriginGroupsBindHistory = "/api/v5/origin_groups/bind_history/latest" // GET - Get latest bind history

	// ============================================================================
	// Cache Clean and Preheat API Endpoints
	// ============================================================================
	// Cache clean operations
	EndpointCacheCleanGetConfig  = "/api/v5/Web.Domain.DashBoard.getCache"           // GET - Get cache clean config list
	EndpointCacheCleanSave       = "/api/v5/Web.Domain.DashBoard.saveCache"          // PUT - Submit cache clean task
	EndpointCacheCleanTaskList   = "/api/v5/Web.Domain.DashBoard.cache.clean.list"   // GET - Get cache clean task list
	EndpointCacheCleanTaskDetail = "/api/v5/Web.Domain.DashBoard.cache.clean.detail" // GET - Get cache clean task detail

	// Cache preheat operations
	EndpointCachePreheatTaskList = "/api/v5/Web.Domain.DashBoard.get.preheat.cache.new.list" // POST - Get preheat task list (new API)
	EndpointCachePreheatSave     = "/api/v5/Web.Domain.DashBoard.save.preheat.cache"         // POST - Submit preheat task

	// ============================================================================
	// Log Download API Endpoints
	// ============================================================================
	// Log download task operations
	EndpointLogDownloadTaskList        = "/api/v5/soc.log.download.task.list"         // GET/POST - List log download tasks
	EndpointLogDownloadTaskAdd         = "/api/v5/soc.log.download.task.add"          // POST - Add log download task
	EndpointLogDownloadTaskCancel      = "/api/v5/soc.log.download.task.cancel"       // POST - Cancel log download task
	EndpointLogDownloadTaskBatchCancel = "/api/v5/soc.log.download.task.batch.cancel" // DELETE - Batch cancel log download tasks
	EndpointLogDownloadTaskDelete      = "/api/v5/soc.log.download.task.del"          // POST - Delete log download task
	EndpointLogDownloadTaskBatchDelete = "/api/v5/soc.log.download.task.batch.del"    // DELETE - Batch delete log download tasks
	EndpointLogDownloadTaskRegenerate  = "/api/v5/soc.log.download.task.regenerate"   // POST - Regenerate log download task

	// Log download fields
	EndpointLogDownloadFields = "/api/v5/soc.log.download.fields" // GET - Get log download fields

	// Log download template operations
	EndpointLogDownloadTemplateList              = "/api/v5/soc.log.download.template.list"                // GET/POST - List log download templates
	EndpointLogDownloadTemplateDomainList        = "/api/v5/soc.log.download.template.domain.list"         // GET - List template domains
	EndpointLogDownloadTemplateAdd               = "/api/v5/soc.log.download.template.add"                 // POST - Add log download template
	EndpointLogDownloadTemplateSave              = "/api/v5/soc.log.download.template.save"                // POST - Save (update) log download template
	EndpointLogDownloadTemplateDelete            = "/api/v5/soc.log.download.template.del"                 // DELETE - Delete log download template
	EndpointLogDownloadTemplateBatchDelete       = "/api/v5/soc.log.download.template.batch.del"           // DELETE - Batch delete log download templates
	EndpointLogDownloadTemplateChangeStatus      = "/api/v5/soc.log.download.template.change.status"       // POST - Change template status
	EndpointLogDownloadTemplateBatchChangeStatus = "/api/v5/soc.log.download.template.batch.change.status" // POST - Batch change template status
	EndpointLogDownloadTemplateAll               = "/api/v5/soc.log.download.template.all"                 // GET/POST - Get all templates (for adding tasks)
	EndpointLogDownloadTemplateGroupAll          = "/api/v5/soc.log.download.template.group.all"           // GET/POST - Get all template groups
)

API Endpoints - Domain Management

Variables

This section is empty.

Functions

func TestNewScdnService

func TestNewScdnService(t *testing.T)

Types

type AccessInfoDownloadData

type AccessInfoDownloadData struct {
	Hash    string `json:"hash"`
	Key     string `json:"key"`
	RealURL string `json:"real_url"`
}

AccessInfoDownloadData access info download data

type AccessInfoDownloadRequest

type AccessInfoDownloadRequest struct {
	DomainInfos []DomainInfoItem `json:"domain_infos"`
}

AccessInfoDownloadRequest access info download request

type AccessInfoDownloadResponse

type AccessInfoDownloadResponse struct {
	Status Status                 `json:"status"`
	Data   AccessInfoDownloadData `json:"data"`
}

AccessInfoDownloadResponse access info download response

type AccessProgressData

type AccessProgressData struct {
	Progress []ProgressInfo `json:"progress"`
}

AccessProgressData access progress data

type AccessProgressResponse

type AccessProgressResponse struct {
	Status Status             `json:"status"`
	Data   AccessProgressData `json:"data"`
}

AccessProgressResponse access progress response

type ApplicationDdosProtection

type ApplicationDdosProtection struct {
	ID                  int    `json:"id,omitempty"`
	Status              string `json:"status"`                // on, off, keep
	AICCStatus          string `json:"ai_cc_status"`          // on, off
	Type                string `json:"type"`                  // default, normal, strict, captcha, keep
	NeedAttackDetection int    `json:"need_attack_detection"` // 0 or 1
	AIStatus            string `json:"ai_status"`             // on, off
}

ApplicationDdosProtection application layer DDoS protection config

type BatchUpdateCSRFProtectionConfig

type BatchUpdateCSRFProtectionConfig struct {
	ID               int      `json:"id,omitempty"`
	Status           string   `json:"status"`                       // on, off, keep
	Action           string   `json:"action"`                       // deny, watch, keep
	PathAction       string   `json:"path_action,omitempty"`        // add, cover
	Path             []string `json:"path"`                         // Path list
	IgnorePath       []string `json:"ignore_path"`                  // Ignore path list
	IgnorePathAction string   `json:"ignore_path_action,omitempty"` // add, cover
}

BatchUpdateCSRFProtectionConfig batch update CSRF protection config

type BatchUpdateReplayAttackProtectionConfig

type BatchUpdateReplayAttackProtectionConfig struct {
	ID               int      `json:"id,omitempty"`
	Status           string   `json:"status"`                       // on, off, keep
	Action           string   `json:"action"`                       // captcha, deny, watch, keep
	Path             []string `json:"path"`                         // Path list
	PathAction       string   `json:"path_action,omitempty"`        // add, cover
	IgnorePath       []string `json:"ignore_path"`                  // Ignore path list
	IgnorePathAction string   `json:"ignore_path_action,omitempty"` // add, cover
	ValidityPeriod   int      `json:"validity_period,omitempty"`    // Validity period
}

BatchUpdateReplayAttackProtectionConfig batch update replay attack protection config

type BatchUpdateWafRuleConfigRequest

type BatchUpdateWafRuleConfigRequest struct {
	WafRuleConfig          *WafRuleConfig                           `json:"waf_rule_config,omitempty"`
	WafInterceptPage       *WafInterceptPage                        `json:"waf_intercept_page,omitempty"`
	ReplayAttackProtection *BatchUpdateReplayAttackProtectionConfig `json:"replay_attack_protection,omitempty"`
	CsrfProtection         *BatchUpdateCSRFProtectionConfig         `json:"csrf_protection,omitempty"`
	WebShellProtection     *WebShellProtectionConfig                `json:"web_shell_protection,omitempty"`
}

BatchUpdateWafRuleConfigRequest batch update WAF rule config request

type BindedTemplateInfo

type BindedTemplateInfo struct {
	BusinessID   int    `json:"business_id"`
	BusinessType string `json:"business_type"`
	AppType      string `json:"app_type"`
	Name         string `json:"name"`
}

BindedTemplateInfo binded template information

type BriefDomainInfo

type BriefDomainInfo struct {
	ID     int    `json:"id"`
	Domain string `json:"domain"`
}

BriefDomainInfo brief domain information

type BriefDomainListData

type BriefDomainListData struct {
	Total int               `json:"total"`
	List  []BriefDomainInfo `json:"list"`
}

BriefDomainListData brief domain list data

type BriefDomainListRequest

type BriefDomainListRequest struct {
	IDs []int `json:"ids,omitempty"`
}

BriefDomainListRequest brief domain list request

type BriefDomainListResponse

type BriefDomainListResponse struct {
	Status Status              `json:"status"`
	Data   BriefDomainListData `json:"data"`
}

BriefDomainListResponse brief domain list response

type BrowserCacheRule

type BrowserCacheRule struct {
	CacheTime       int  `json:"cachetime"`         // Cache time
	IgnoreCacheTime bool `json:"ignore_cache_time"` // Ignore source cache time (cache-control)
	NoCache         bool `json:"nocache"`           // Whether to cache
}

BrowserCacheRule browser cache configuration

type CAApplyAddData

type CAApplyAddData struct {
	CAIDDomains map[string]string `json:"ca_id_domains"` // domain_id: domain
	CAIDNames   map[string]string `json:"ca_id_names"`   // ca_id: ca_name
}

CAApplyAddData certificate apply data

type CAApplyAddRequest

type CAApplyAddRequest struct {
	Domain []string `json:"domain"`
}

CAApplyAddRequest certificate apply request

type CAApplyAddResponse

type CAApplyAddResponse struct {
	Status Status         `json:"status"`
	Data   CAApplyAddData `json:"data"`
}

CAApplyAddResponse certificate apply response

type CABatchListRequest

type CABatchListRequest struct {
	Domains []string `json:"domains"`
}

CABatchListRequest batch certificate list by domains request

type CABatchListResponse

type CABatchListResponse struct {
	Status Status            `json:"status"`
	Data   []CertificateInfo `json:"data"`
}

CABatchListResponse batch certificate list response

type CAEditNameData

type CAEditNameData struct {
	Info string `json:"info"`
}

CAEditNameData certificate edit name data

type CAEditNameRequest

type CAEditNameRequest struct {
	ID          int    `json:"id"`
	CAName      string `json:"ca_name"`
	ProductFlag string `json:"product_flag,omitempty"`
}

CAEditNameRequest certificate edit name request

type CAEditNameResponse

type CAEditNameResponse struct {
	Status Status         `json:"status"`
	Data   CAEditNameData `json:"data"`
}

CAEditNameResponse certificate edit name response

type CASelfDeleteData

type CASelfDeleteData struct {
	Info string `json:"info"`
}

CASelfDeleteData certificate delete data

type CASelfDeleteRequest

type CASelfDeleteRequest struct {
	IDs         string `json:"ids"` // Certificate IDs, comma separated
	ProductFlag string `json:"product_flag,omitempty"`
}

CASelfDeleteRequest certificate delete request

type CASelfDeleteResponse

type CASelfDeleteResponse struct {
	Status Status           `json:"status"`
	Data   CASelfDeleteData `json:"data"`
}

CASelfDeleteResponse certificate delete response

type CASelfDetailRequest

type CASelfDetailRequest struct {
	ID int `json:"id"` // Certificate ID
}

CASelfDetailRequest certificate detail request

type CASelfDetailResponse

type CASelfDetailResponse struct {
	Status Status                `json:"status"`
	Data   CertificateDetailInfo `json:"data"`
}

CASelfDetailResponse certificate detail response

type CASelfExportData

type CASelfExportData struct {
	Hash    string `json:"hash"`
	Key     string `json:"key"`
	RealURL string `json:"real_url"`
}

CASelfExportData certificate export data

type CASelfExportRequest

type CASelfExportRequest struct {
	ID          interface{} `json:"id"` // Certificate ID(s), can be string or array
	ProductFlag string      `json:"product_flag,omitempty"`
}

CASelfExportRequest certificate export request

type CASelfExportResponse

type CASelfExportResponse struct {
	Status Status             `json:"status"`
	Data   []CASelfExportData `json:"data"`
}

CASelfExportResponse certificate export response

type CASelfListData

type CASelfListData struct {
	Total      string            `json:"total"`
	IssuerList []string          `json:"issuer_list"`
	List       []CertificateInfo `json:"list"`
}

CASelfListData certificate list data

type CASelfListRequest

type CASelfListRequest struct {
	Page          int    `json:"page,omitempty"`
	PerPage       int    `json:"per_page,omitempty"`
	Domain        string `json:"domain,omitempty"`
	ProductFlag   string `json:"product_flag,omitempty"`
	CAName        string `json:"ca_name,omitempty"`
	Binded        string `json:"binded,omitempty"`       // true/false
	ApplyStatus   string `json:"apply_status,omitempty"` // 1-申请中,2-已颁发,3-审核失败,4-上传托管
	Issuer        string `json:"issuer,omitempty"`
	ExpiryTime    string `json:"expiry_time,omitempty"`     // true/false/inno
	IsExactSearch string `json:"is_exact_search,omitempty"` // on/off
}

CASelfListRequest certificate list request

type CASelfListResponse

type CASelfListResponse struct {
	Status Status         `json:"status"`
	Data   CASelfListData `json:"data"`
}

CASelfListResponse certificate list response

type CATextSaveData

type CATextSaveData struct {
	ID   string `json:"id"`    // Certificate ID
	CASN string `json:"ca_sn"` // Certificate serial number
}

CATextSaveData certificate text save data

type CATextSaveRequest

type CATextSaveRequest struct {
	ID          int    `json:"id,omitempty"`           // Certificate ID, omit for new certificate
	CAName      string `json:"ca_name"`                // Certificate name
	CACert      string `json:"ca_cert"`                // Certificate public key
	CAKey       string `json:"ca_key"`                 // Certificate private key
	ProductFlag string `json:"product_flag,omitempty"` // Product flag
}

CATextSaveRequest certificate text save request (add/update)

type CATextSaveResponse

type CATextSaveResponse struct {
	Status Status         `json:"status"`
	Data   CATextSaveData `json:"data"`
}

CATextSaveResponse certificate text save response

type CSRFProtectionConfig

type CSRFProtectionConfig struct {
	ID         int      `json:"id,omitempty"`
	Status     string   `json:"status"`      // on, off, keep
	Action     string   `json:"action"`      // deny, watch, keep
	Path       []string `json:"path"`        // Path list
	IgnorePath []string `json:"ignore_path"` // Ignore path list
}

CSRFProtectionConfig CSRF protection config

type CacheCleanGetConfigData

type CacheCleanGetConfigData struct {
	ID         string   `json:"id"`         // Config ID
	Wholesite  []string `json:"wholesite"`  // Whole site config
	Specialurl []string `json:"specialurl"` // Special URL config
	Specialdir []string `json:"specialdir"` // Special directory config
}

CacheCleanGetConfigData cache clean config data

type CacheCleanGetConfigRequest

type CacheCleanGetConfigRequest struct {
}

CacheCleanGetConfigRequest get cache clean config request

type CacheCleanGetConfigResponse

type CacheCleanGetConfigResponse struct {
	Status Status                  `json:"status"`
	Data   CacheCleanGetConfigData `json:"data"`
}

CacheCleanGetConfigResponse get cache clean config response

type CacheCleanSaveData

type CacheCleanSaveData struct {
	Wholesite  []string `json:"wholesite"`  // Whole site config
	Specialurl []string `json:"specialurl"` // Special URL config
	Specialdir []string `json:"specialdir"` // Special directory config
}

CacheCleanSaveData cache clean save data

type CacheCleanSaveRequest

type CacheCleanSaveRequest struct {
	GroupID    int      `json:"group_id,omitempty"`   // Group ID, can refresh cache by group
	Protocol   string   `json:"protocol,omitempty"`   // Protocol: http/https; only valid when refreshing by group
	Port       string   `json:"port,omitempty"`       // Website port, only needed for special ports; only valid when refreshing by group
	Wholesite  []string `json:"wholesite,omitempty"`  // Whole site
	Specialurl []string `json:"specialurl,omitempty"` // Special URL
	Specialdir []string `json:"specialdir,omitempty"` // Special directory
}

CacheCleanSaveRequest save cache clean task request

type CacheCleanSaveResponse

type CacheCleanSaveResponse struct {
	Status Status             `json:"status"`
	Data   CacheCleanSaveData `json:"data"`
}

CacheCleanSaveResponse save cache clean task response

type CacheCleanTaskDetailData

type CacheCleanTaskDetailData struct {
	Total FlexibleString             `json:"total"` // Total number of tasks
	List  []CacheCleanTaskDetailInfo `json:"list"`  // Task list
}

CacheCleanTaskDetailData cache clean task detail data

type CacheCleanTaskDetailInfo

type CacheCleanTaskDetailInfo struct {
	Result    string `json:"result"`              // Execution result: 成功/失败/执行中
	Message   string `json:"message"`             // Execution message
	CreatedAt string `json:"created_at"`          // Creation time, format: YYYY-MM-DD HH:II:SS
	UpdatedAt string `json:"updated_at"`          // Update time, format: YYYY-MM-DD HH:II:SS
	Directory string `json:"directory,omitempty"` // Directory, present when this task type
	Subdomain string `json:"subdomain,omitempty"` // Subdomain, present when this task type
	URL       string `json:"url,omitempty"`       // URL, present when this task type
}

CacheCleanTaskDetailInfo cache clean task detail information

type CacheCleanTaskDetailRequest

type CacheCleanTaskDetailRequest struct {
	TaskID  int `json:"task_id,omitempty"`  // Task ID
	Page    int `json:"page,omitempty"`     // Page number
	PerPage int `json:"per_page,omitempty"` // Items per page
	Result  int `json:"result,omitempty"`   // Result: 1-success, 2-failed, 3-executing
}

CacheCleanTaskDetailRequest get cache clean task detail request

type CacheCleanTaskDetailResponse

type CacheCleanTaskDetailResponse struct {
	Status Status                   `json:"status"`
	Data   CacheCleanTaskDetailData `json:"data"`
}

CacheCleanTaskDetailResponse get cache clean task detail response

type CacheCleanTaskInfo

type CacheCleanTaskInfo struct {
	UserID           int            `json:"user_id"`            // User ID
	SubUserID        int            `json:"sub_user_id"`        // Sub user ID
	Status           *string        `json:"status"`             // Task status (can be null): "Failed", "Finished", etc.
	TaskID           int            `json:"task_id"`            // Task ID
	SubType          string         `json:"sub_type"`           // Task type: "Directory", "SubDomain", "URL"
	Total            FlexibleString `json:"total"`              // Total number of nodes
	Succeed          FlexibleString `json:"succeed"`            // Number of successful nodes
	Failed           FlexibleString `json:"failed"`             // Number of failed nodes
	Ongoing          FlexibleString `json:"ongoing"`            // Number of executing nodes
	CreatedAt        string         `json:"created_at"`         // Creation time, ISO 8601 format: "2025-09-04T02:12:22Z"
	OperatorUserName string         `json:"operator_user_name"` // Operator user name
}

CacheCleanTaskInfo cache clean task information

type CacheCleanTaskListData

type CacheCleanTaskListData struct {
	Total FlexibleString       `json:"total"` // Total number of tasks
	List  []CacheCleanTaskInfo `json:"list"`  // Task list
}

CacheCleanTaskListData cache clean task list data

type CacheCleanTaskListRequest

type CacheCleanTaskListRequest struct {
	Page      int    `json:"page,omitempty"`       // Page number
	PerPage   int    `json:"per_page,omitempty"`   // Items per page
	StartTime string `json:"start_time,omitempty"` // Start time, format: YYYY-MM-DD HH:II:SS
	EndTime   string `json:"end_time,omitempty"`   // End time, format: YYYY-MM-DD HH:II:SS
	Status    string `json:"status,omitempty"`     // Status: 1-executing, 2-completed
}

CacheCleanTaskListRequest get cache clean task list request

type CacheCleanTaskListResponse

type CacheCleanTaskListResponse struct {
	Status Status                 `json:"status"`
	Data   CacheCleanTaskListData `json:"data"`
}

CacheCleanTaskListResponse get cache clean task list response

type CacheErrStatus

type CacheErrStatus struct {
	CacheTime int   `json:"cachetime"`  // Status code cache time
	ErrStatus []int `json:"err_status"` // Status code array
}

CacheErrStatus status code cache configuration

type CacheGlobalConfigGetData

type CacheGlobalConfigGetData struct {
	ID   int            `json:"id"`   // Rule ID
	Name string         `json:"name"` // Rule name
	Conf *CacheRuleConf `json:"conf"` // Cache configuration
}

CacheGlobalConfigGetData get global cache config data

type CacheGlobalConfigGetResponse

type CacheGlobalConfigGetResponse struct {
	Status Status                   `json:"status"`
	Data   CacheGlobalConfigGetData `json:"data"`
}

CacheGlobalConfigGetResponse get global cache config response

type CachePreheatSaveData

type CachePreheatSaveData struct {
	ErrorURL interface{} `json:"error_url"` // List of URLs with preheat errors (can be array, object, or null)
}

CachePreheatSaveData preheat save data

func (*CachePreheatSaveData) GetErrorURLs

func (d *CachePreheatSaveData) GetErrorURLs() []string

GetErrorURLs extracts error URLs from the ErrorURL field

type CachePreheatSaveRequest

type CachePreheatSaveRequest struct {
	GroupID    int      `json:"group_id,omitempty"`    // Group ID, can refresh cache by group
	Protocol   string   `json:"protocol,omitempty"`    // Protocol: http/https; only valid when refreshing by group
	Port       string   `json:"port,omitempty"`        // Website port, only needed for special ports; only valid when refreshing by group
	PreheatURL []string `json:"preheat_url,omitempty"` // Preheat URLs
}

CachePreheatSaveRequest save preheat task request

type CachePreheatSaveResponse

type CachePreheatSaveResponse struct {
	Status Status               `json:"status"`
	Data   CachePreheatSaveData `json:"data"`
}

CachePreheatSaveResponse save preheat task response

type CachePreheatTaskInfo

type CachePreheatTaskInfo struct {
	ID               int    `json:"id"`                 // Task ID
	UserID           int    `json:"user_id"`            // User ID
	TimeCreate       string `json:"time_create"`        // Creation time: "2025-09-18 19:02:42"
	TimeUpdate       string `json:"time_update"`        // Update time: "2025-09-18 19:02:42"
	TaskID           int    `json:"task_id"`            // Task ID
	DomainID         int    `json:"domain_id"`          // Domain ID
	URL              string `json:"url"`                // URL
	Status           int    `json:"status"`             // Status: 1-Prefetch waiting, 2-Prefetch pending, 3-Prefetch successful, 4-Prefetch failed
	Total            int    `json:"total"`              // Total
	Weight           int    `json:"weight"`             // Weight
	SubUserID        int    `json:"sub_user_id"`        // Sub user ID
	UserName         string `json:"user_name"`          // User name
	StrategyID       int    `json:"strategy_id"`        // Strategy ID
	Strategy         string `json:"strategy"`           // Strategy
	OperatorUserName string `json:"operator_user_name"` // Operator user name
}

CachePreheatTaskInfo preheat task information

type CachePreheatTaskListData

type CachePreheatTaskListData struct {
	Total     FlexibleString         `json:"total"`      // Total number of tasks
	StatusMap map[string]string      `json:"status_map"` // Status map: "1": "Prefetch waiting", etc.
	List      []CachePreheatTaskInfo `json:"list"`       // Task list
}

CachePreheatTaskListData preheat task list data

type CachePreheatTaskListRequest

type CachePreheatTaskListRequest struct {
	Page     int    `json:"page,omitempty"`      // Page number
	PerPage  int    `json:"per_page,omitempty"`  // Items per page
	PageSize int    `json:"page_size,omitempty"` // Page size (alternative to per_page)
	Pagesize int    `json:"pagesize,omitempty"`  // Page size (alternative to per_page)
	Size     int    `json:"size,omitempty"`      // Size (alternative to per_page)
	Status   string `json:"status,omitempty"`    // Status filter
	URL      string `json:"url,omitempty"`       // URL filter
}

CachePreheatTaskListRequest get preheat task list request

type CachePreheatTaskListResponse

type CachePreheatTaskListResponse struct {
	Status Status                   `json:"status"`
	Data   CachePreheatTaskListData `json:"data"`
}

CachePreheatTaskListResponse get preheat task list response

type CacheRule

type CacheRule struct {
	CacheTime           int    `json:"cachetime"`                       // Cache time
	IgnoreCacheTime     bool   `json:"ignore_cache_time,omitempty"`     // Ignore source cache time
	IgnoreNoCacheHeader bool   `json:"ignore_nocache_header,omitempty"` // Ignore no-cache header
	NoCacheControlOp    string `json:"no_cache_control_op,omitempty"`   // No cache control operation
	Action              string `json:"action,omitempty"`                // Cache action: "default", "nocache", "cachetime", "force"
}

CacheRule edge TTL cache configuration

type CacheRuleConf

type CacheRuleConf struct {
	NoCache          bool              `json:"nocache"`                      // Cache eligibility (true: bypass cache, false: cache)
	CacheRule        *CacheRule        `json:"cache_rule,omitempty"`         // Edge TTL cache
	BrowserCacheRule *BrowserCacheRule `json:"browser_cache_rule,omitempty"` // Browser cache
	CacheErrStatus   []CacheErrStatus  `json:"cache_errstatus,omitempty"`    // Status code cache config
	CacheURLRewrite  *CacheURLRewrite  `json:"cache_url_rewrite,omitempty"`  // Custom cache key
	CacheShare       *CacheShare       `json:"cache_share,omitempty"`        // Cache sharing
}

CacheRuleConf cache rule configuration

type CacheRuleCreateData

type CacheRuleCreateData struct {
	ID int `json:"id"` // Rule ID
}

CacheRuleCreateData create cache rule data

type CacheRuleCreateRequest

type CacheRuleCreateRequest struct {
	BusinessID   int            `json:"business_id"`      // Business ID
	BusinessType string         `json:"business_type"`    // Business type: "domain" or "tpl"
	Name         string         `json:"name"`             // Rule name
	Expr         string         `json:"expr"`             // Wirefilter rule
	Remark       string         `json:"remark,omitempty"` // Rule remark
	Conf         *CacheRuleConf `json:"conf"`             // Configuration
}

CacheRuleCreateRequest create cache rule request

type CacheRuleCreateResponse

type CacheRuleCreateResponse struct {
	Status Status              `json:"status"`
	Data   CacheRuleCreateData `json:"data"`
}

CacheRuleCreateResponse create cache rule response

type CacheRuleDeleteData

type CacheRuleDeleteData struct {
	IDs []int `json:"ids"` // Deleted rule IDs
}

CacheRuleDeleteData delete cache rule data

type CacheRuleDeleteRequest

type CacheRuleDeleteRequest struct {
	BusinessID   int    `json:"business_id"`   // Business ID
	BusinessType string `json:"business_type"` // Business type: "domain" or "tpl"
	IDs          []int  `json:"ids"`           // Rule IDs to delete
}

CacheRuleDeleteRequest delete cache rule request

type CacheRuleDeleteResponse

type CacheRuleDeleteResponse struct {
	Status Status              `json:"status"`
	Data   CacheRuleDeleteData `json:"data"`
}

CacheRuleDeleteResponse delete cache rule response

type CacheRuleGetRulesData

type CacheRuleGetRulesData struct {
	Page     int             `json:"page"`      // Current page
	PageSize int             `json:"page_size"` // Page size
	Total    int             `json:"total"`     // Total records
	List     []CacheRuleInfo `json:"list"`      // Rule list
}

CacheRuleGetRulesData get cache rules data

type CacheRuleGetRulesRequest

type CacheRuleGetRulesRequest struct {
	BusinessID   int    `json:"business_id"`         // Business ID
	BusinessType string `json:"business_type"`       // Business type: "domain" or "tpl"
	Page         int    `json:"page,omitempty"`      // Page number
	PageSize     int    `json:"page_size,omitempty"` // Page size
	ID           int    `json:"id,omitempty"`        // Rule ID (optional, converted to id query parameter)
}

CacheRuleGetRulesRequest get cache rules request

type CacheRuleGetRulesResponse

type CacheRuleGetRulesResponse struct {
	Status Status                `json:"status"`
	Data   CacheRuleGetRulesData `json:"data"`
}

CacheRuleGetRulesResponse get cache rules response

type CacheRuleInfo

type CacheRuleInfo struct {
	ID     int            `json:"id"`     // Rule ID
	Name   string         `json:"name"`   // Rule name
	Remark string         `json:"remark"` // Remark
	Status int            `json:"status"` // Status (1: enabled, 2: disabled)
	Weight int            `json:"weight"` // Weight
	Mode   int            `json:"mode"`   // Mode (can be ignored)
	Expr   string         `json:"expr"`   // Wirefilter rule
	Type   string         `json:"type"`   // Type: "domain", "tpl", or "global"
	Conf   *CacheRuleConf `json:"conf"`   // Cache configuration
}

CacheRuleInfo cache rule information

type CacheRuleSortData

type CacheRuleSortData struct {
	IDs []int `json:"ids"` // Sorted rule IDs
}

CacheRuleSortData sort cache rules data

type CacheRuleSortRequest

type CacheRuleSortRequest struct {
	BusinessID   int    `json:"business_id"`   // Business ID
	BusinessType string `json:"business_type"` // Business type: "domain" or "tpl"
	IDs          []int  `json:"ids"`           // Sorted rule IDs array
}

CacheRuleSortRequest sort cache rules request

type CacheRuleSortResponse

type CacheRuleSortResponse struct {
	Status Status            `json:"status"`
	Data   CacheRuleSortData `json:"data"`
}

CacheRuleSortResponse sort cache rules response

type CacheRuleUpdateConfigData

type CacheRuleUpdateConfigData struct {
	ID int `json:"id"` // Rule ID
}

CacheRuleUpdateConfigData update cache rule configuration data

type CacheRuleUpdateConfigRequest

type CacheRuleUpdateConfigRequest struct {
	ID           int            `json:"id"`               // Rule ID
	Name         string         `json:"name,omitempty"`   // Rule name
	Remark       string         `json:"remark,omitempty"` // Rule remark
	Expr         string         `json:"expr,omitempty"`   // Wirefilter rule
	Conf         *CacheRuleConf `json:"conf"`             // Configuration
	BusinessID   int            `json:"business_id"`      // Business ID
	BusinessType string         `json:"business_type"`    // Business type
}

CacheRuleUpdateConfigRequest update cache rule configuration request

type CacheRuleUpdateConfigResponse

type CacheRuleUpdateConfigResponse struct {
	Status Status                    `json:"status"`
	Data   CacheRuleUpdateConfigData `json:"data"`
}

CacheRuleUpdateConfigResponse update cache rule configuration response

type CacheRuleUpdateData

type CacheRuleUpdateData struct {
	ID int `json:"id"` // Rule ID
}

CacheRuleUpdateData update cache rule data

type CacheRuleUpdateRequest

type CacheRuleUpdateRequest struct {
	ID     int    `json:"id"`               // Rule ID
	Name   string `json:"name,omitempty"`   // Rule name
	Remark string `json:"remark,omitempty"` // Rule remark
}

CacheRuleUpdateRequest update cache rule (name/remark) request

type CacheRuleUpdateResponse

type CacheRuleUpdateResponse struct {
	Status Status              `json:"status"`
	Data   CacheRuleUpdateData `json:"data"`
}

CacheRuleUpdateResponse update cache rule response

type CacheRuleUpdateStatusData

type CacheRuleUpdateStatusData struct {
	IDs []int `json:"ids"` // Rule IDs that were updated
}

CacheRuleUpdateStatusData update cache rule status data

type CacheRuleUpdateStatusRequest

type CacheRuleUpdateStatusRequest struct {
	BusinessID   int    `json:"business_id"`   // Business ID
	BusinessType string `json:"business_type"` // Business type: "domain" or "tpl"
	IDs          []int  `json:"ids"`           // Rule IDs array
	Status       int    `json:"status"`        // Status: 1 (enabled) or 2 (disabled)
}

CacheRuleUpdateStatusRequest update cache rule status request

type CacheRuleUpdateStatusResponse

type CacheRuleUpdateStatusResponse struct {
	Status Status                    `json:"status"`
	Data   CacheRuleUpdateStatusData `json:"data"`
}

CacheRuleUpdateStatusResponse update cache rule status response

type CacheShare

type CacheShare struct {
	Scheme string `json:"scheme"` // HTTP/HTTPS cache sharing method: "http" or "https"
}

CacheShare cache sharing configuration

type CacheURLRewrite

type CacheURLRewrite struct {
	SortArgs   bool                    `json:"sort_args"`         // Parameter sorting
	IgnoreCase bool                    `json:"ignore_case"`       // Ignore case
	Queries    *CacheURLRewriteQueries `json:"queries,omitempty"` // Query string processing
	Cookies    *CacheURLRewriteCookies `json:"cookies,omitempty"` // Cookie processing
}

CacheURLRewrite custom cache key configuration

type CacheURLRewriteCookies

type CacheURLRewriteCookies struct {
	ArgsMethod string   `json:"args_method"` // Action: "SAVE", "DEL", "IGNORE", "CUT"
	Items      []string `json:"items"`       // Cookie keys
}

CacheURLRewriteCookies cookie processing

type CacheURLRewriteQueries

type CacheURLRewriteQueries struct {
	ArgsMethod string   `json:"args_method"` // Action: "SAVE", "DEL", "IGNORE", "CUT"
	Items      []string `json:"items"`       // Parameter keys
}

CacheURLRewriteQueries query string processing

type CertificateDetailInfo

type CertificateDetailInfo struct {
	ID                              string   `json:"id"`
	CAID                            string   `json:"ca_id"`
	MemberID                        string   `json:"member_id"`
	CAName                          string   `json:"ca_name"`
	Issuer                          string   `json:"issuer"`
	IssuerStartTime                 string   `json:"issuer_start_time"`
	IssuerExpiryTime                string   `json:"issuer_expiry_time"`
	IssuerExpiryTimeDesc            string   `json:"issuer_expiry_time_desc"`
	IssuerExpiryTimeAutoRenewStatus int      `json:"issuer_expiry_time_auto_renew_status"`
	RenewStatus                     string   `json:"renew_status"`
	Binded                          bool     `json:"binded"`
	CADomain                        []string `json:"ca_domain"`
	ApplyStatus                     string   `json:"apply_status"`
	CAType                          string   `json:"ca_type"`
	CATypeDomain                    string   `json:"ca_type_domain"`
	Code                            string   `json:"code"`
	Msg                             string   `json:"msg"`
	CreatedAt                       string   `json:"created_at"`
	UpdatedAt                       string   `json:"updated_at"`
	IssuerOrganization              string   `json:"issuer_organization"`
	IssuerOrganizationElement       string   `json:"issuer_organization_element"`
	SerialNumber                    string   `json:"serial_number"`
	IssuerObject                    string   `json:"issuer_object"`
	UseOrganization                 string   `json:"use_organization"`
	UseOrganizationElement          string   `json:"use_organization_element"`
	City                            string   `json:"city"`
	Province                        string   `json:"province"`
	Country                         string   `json:"country"`
	AuthenticationUsableDomain      string   `json:"authentication_usable_domain"`
}

CertificateDetailInfo certificate detail information

type CertificateInfo

type CertificateInfo struct {
	ID                              string      `json:"id"`
	MemberID                        string      `json:"member_id"`
	CAName                          string      `json:"ca_name"`
	Issuer                          string      `json:"issuer"`
	IssuerStartTime                 string      `json:"issuer_start_time"`
	IssuerExpiryTime                string      `json:"issuer_expiry_time"`
	IssuerExpiryTimeDesc            string      `json:"issuer_expiry_time_desc"`
	IssuerExpiryTimeAutoRenewStatus int         `json:"issuer_expiry_time_auto_renew_status"`
	RenewStatus                     string      `json:"renew_status"` // 1-默认, 2-续签中,3-续签失败, 4-续签成功
	Binded                          bool        `json:"binded"`
	CADomain                        []string    `json:"ca_domain"`
	ApplyStatus                     interface{} `json:"apply_status"`   // 1-申请中,2-已颁发,3-审核失败,4-上传托管
	CAType                          string      `json:"ca_type"`        // 1-上传,2-lets申购
	CATypeDomain                    string      `json:"ca_type_domain"` // 1-单域名,2-多域名,3-泛域名
	Code                            string      `json:"code"`
	Msg                             string      `json:"msg"`
}

CertificateInfo certificate information

type CnameInfo

type CnameInfo struct {
	Master string   `json:"master"`
	Slaves []string `json:"slaves"`
}

CnameInfo CNAME information

type CustomPage

type CustomPage struct {
	Status string `json:"status"` // "on" or "off"
}

CustomPage custom page configuration

type CustomPageRule

type CustomPageRule struct {
	StatusCode  int    `json:"status_code"`  // Status code
	PageType    string `json:"page_type"`    // Page type
	PageContent string `json:"page_content"` // Page content
}

CustomPageRule custom page rule

type CustomizedReqHeaders

type CustomizedReqHeaders struct {
	Status string `json:"status"` // "on" or "off"
}

CustomizedReqHeaders customized request headers configuration

type CustomizedReqHeadersRule

type CustomizedReqHeadersRule struct {
	Type    string `json:"type"`    // Type
	Content string `json:"content"` // Content
	Remark  string `json:"remark"`  // Remark
}

CustomizedReqHeadersRule customized request headers rule

type DdosProtectionGetConfigData

type DdosProtectionGetConfigData struct {
	ApplicationDdosProtection *ApplicationDdosProtection `json:"application_ddos_protection,omitempty"`
	VisitorAuthentication     *VisitorAuthentication     `json:"visitor_authentication,omitempty"`
}

DdosProtectionGetConfigData get DDoS protection config data

type DdosProtectionGetConfigRequest

type DdosProtectionGetConfigRequest struct {
	BusinessID int      `json:"business_id"`    // Business ID
	Keys       []string `json:"keys,omitempty"` // Specify config keys
}

DdosProtectionGetConfigRequest get DDoS protection config request

type DdosProtectionGetConfigResponse

type DdosProtectionGetConfigResponse struct {
	Status Status                      `json:"status"`
	Data   DdosProtectionGetConfigData `json:"data"`
}

DdosProtectionGetConfigResponse get DDoS protection config response

type DdosProtectionUpdateConfigRequest

type DdosProtectionUpdateConfigRequest struct {
	BusinessID                int                        `json:"business_id"` // Business ID
	ApplicationDdosProtection *ApplicationDdosProtection `json:"application_ddos_protection,omitempty"`
	VisitorAuthentication     *VisitorAuthentication     `json:"visitor_authentication,omitempty"`
}

DdosProtectionUpdateConfigRequest update DDoS protection config request

type DdosProtectionUpdateConfigResponse

type DdosProtectionUpdateConfigResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

DdosProtectionUpdateConfigResponse update DDoS protection config response

type DomainAccessModeSwitchData

type DomainAccessModeSwitchData struct {
	DomainID int `json:"domain_id"`
}

DomainAccessModeSwitchData domain access mode switch data

type DomainAccessModeSwitchRequest

type DomainAccessModeSwitchRequest struct {
	DomainID   int    `json:"domain_id"`
	AccessMode string `json:"access_mode"`
}

DomainAccessModeSwitchRequest domain access mode switch request

type DomainAccessModeSwitchResponse

type DomainAccessModeSwitchResponse struct {
	Status Status                     `json:"status"`
	Data   DomainAccessModeSwitchData `json:"data"`
}

DomainAccessModeSwitchResponse domain access mode switch response

type DomainAccessRefreshData

type DomainAccessRefreshData struct {
	DomainIDs []int `json:"domain_ids"`
}

DomainAccessRefreshData domain access refresh data

type DomainAccessRefreshRequest

type DomainAccessRefreshRequest struct {
	DomainIDs []int `json:"domain_ids"`
}

DomainAccessRefreshRequest domain access refresh request

type DomainAccessRefreshResponse

type DomainAccessRefreshResponse struct {
	Status Status                  `json:"status"`
	Data   DomainAccessRefreshData `json:"data"`
}

DomainAccessRefreshResponse domain access refresh response

type DomainBaseSettingsGetData

type DomainBaseSettingsGetData struct {
	DomainID       int                  `json:"domain_id"`
	ProxyHost      ProxyHostConfig      `json:"proxy_host"`
	ProxySNI       ProxySNIConfig       `json:"proxy_sni"`
	DomainRedirect DomainRedirectConfig `json:"domain_redirect"`
}

DomainBaseSettingsGetData domain base settings get data

type DomainBaseSettingsGetRequest

type DomainBaseSettingsGetRequest struct {
	DomainID int `json:"domain_id"`
}

DomainBaseSettingsGetRequest domain base settings get request

type DomainBaseSettingsGetResponse

type DomainBaseSettingsGetResponse struct {
	Status Status                    `json:"status"`
	Data   DomainBaseSettingsGetData `json:"data"`
}

DomainBaseSettingsGetResponse domain base settings get response

type DomainBaseSettingsUpdateData

type DomainBaseSettingsUpdateData struct {
	DomainID int `json:"domain_id"`
}

DomainBaseSettingsUpdateData domain base settings update data

type DomainBaseSettingsUpdateRequest

type DomainBaseSettingsUpdateRequest struct {
	DomainID int                     `json:"domain_id"`
	Value    DomainBaseSettingsValue `json:"value"`
}

DomainBaseSettingsUpdateRequest domain base settings update request

type DomainBaseSettingsUpdateResponse

type DomainBaseSettingsUpdateResponse struct {
	Status Status                       `json:"status"`
	Data   DomainBaseSettingsUpdateData `json:"data"`
}

DomainBaseSettingsUpdateResponse domain base settings update response

type DomainBaseSettingsValue

type DomainBaseSettingsValue struct {
	ProxyHost      *ProxyHostConfig      `json:"proxy_host,omitempty"`
	ProxySNI       *ProxySNIConfig       `json:"proxy_sni,omitempty"`
	DomainRedirect *DomainRedirectConfig `json:"domain_redirect,omitempty"`
}

DomainBaseSettingsValue domain base settings value

type DomainCertBindData

type DomainCertBindData struct {
	CAID int `json:"ca_id"`
}

DomainCertBindData domain certificate bind data

type DomainCertBindRequest

type DomainCertBindRequest struct {
	DomainID int `json:"domain_id"`
	CAID     int `json:"ca_id"`
}

DomainCertBindRequest domain certificate bind request

type DomainCertBindResponse

type DomainCertBindResponse struct {
	Status Status             `json:"status"`
	Data   DomainCertBindData `json:"data"`
}

DomainCertBindResponse domain certificate bind response

type DomainCertUnbindData

type DomainCertUnbindData struct {
	CAID int `json:"ca_id"`
}

DomainCertUnbindData domain certificate unbind data

type DomainCertUnbindRequest

type DomainCertUnbindRequest struct {
	DomainID int `json:"domain_id"`
	CAID     int `json:"ca_id"`
}

DomainCertUnbindRequest domain certificate unbind request

type DomainCertUnbindResponse

type DomainCertUnbindResponse struct {
	Status Status               `json:"status"`
	Data   DomainCertUnbindData `json:"data"`
}

DomainCertUnbindResponse domain certificate unbind response

type DomainCreateData

type DomainCreateData struct {
	ID         int    `json:"id"`
	Record     string `json:"record"`
	Cname      string `json:"cname"`
	RecordType string `json:"record_type"`
	Domain     string `json:"domain"`
	PriDomain  string `json:"pri_domain"`
}

DomainCreateData domain creation data

type DomainCreateRequest

type DomainCreateRequest struct {
	Domain              string   `json:"domain"`
	GroupID             int      `json:"group_id,omitempty"`
	ExclusiveResourceID int      `json:"exclusive_resource_id,omitempty"`
	Remark              string   `json:"remark,omitempty"`
	TplID               int      `json:"tpl_id,omitempty"`
	Origins             []Origin `json:"origins"`
	ProtectStatus       string   `json:"protect_status,omitempty"`
	TplRecommend        string   `json:"tpl_recommend,omitempty"`
	AppType             string   `json:"app_type,omitempty"`
}

DomainCreateRequest domain creation request

type DomainCreateResponse

type DomainCreateResponse struct {
	Status Status           `json:"status"`
	Data   DomainCreateData `json:"data"`
}

DomainCreateResponse domain creation response

type DomainDeleteData

type DomainDeleteData struct {
	IDs []int `json:"ids"`
}

DomainDeleteData domain delete data

type DomainDeleteRequest

type DomainDeleteRequest struct {
	IDs []int `json:"ids"`
}

DomainDeleteRequest domain delete request

type DomainDeleteResponse

type DomainDeleteResponse struct {
	Status Status           `json:"status"`
	Data   DomainDeleteData `json:"data"`
}

DomainDeleteResponse domain delete response

type DomainDisableData

type DomainDisableData struct {
	DomainIDs []int `json:"domain_ids"`
}

DomainDisableData domain disable data

type DomainDisableRequest

type DomainDisableRequest struct {
	DomainIDs []int `json:"domain_ids"`
}

DomainDisableRequest domain disable request

type DomainDisableResponse

type DomainDisableResponse struct {
	Status Status            `json:"status"`
	Data   DomainDisableData `json:"data"`
}

DomainDisableResponse domain disable response

type DomainEnableData

type DomainEnableData struct {
	DomainIDs []int `json:"domain_ids"`
}

DomainEnableData domain enable data

type DomainEnableRequest

type DomainEnableRequest struct {
	DomainIDs []int `json:"domain_ids"`
}

DomainEnableRequest domain enable request

type DomainEnableResponse

type DomainEnableResponse struct {
	Status Status           `json:"status"`
	Data   DomainEnableData `json:"data"`
}

DomainEnableResponse domain enable response

type DomainExportData

type DomainExportData struct {
	Hash    string `json:"hash"`
	Key     string `json:"key"`
	RealURL string `json:"real_url"`
}

DomainExportData domain export data

type DomainExportRequest

type DomainExportRequest struct {
	DomainIDs           []int  `json:"domain_ids,omitempty"`
	AccessProgress      string `json:"access_progress,omitempty"`
	GroupID             int    `json:"group_id,omitempty"`
	Domain              string `json:"domain,omitempty"`
	Remark              string `json:"remark,omitempty"`
	OriginIP            string `json:"origin_ip,omitempty"`
	CAStatus            string `json:"ca_status,omitempty"`
	AccessMode          string `json:"access_mode,omitempty"`
	ProtectStatus       string `json:"protect_status,omitempty"`
	ExclusiveResourceID int    `json:"exclusive_resource_id,omitempty"`
}

DomainExportRequest domain export request

type DomainExportResponse

type DomainExportResponse struct {
	Status Status           `json:"status"`
	Data   DomainExportData `json:"data"`
}

DomainExportResponse domain export response

type DomainGrayRequest

type DomainGrayRequest struct {
	DomainID int `json:"domain_id"` // Domain ID
	MemberID int `json:"member_id"` // Member ID
}

DomainGrayRequest domain gray request

type DomainGrayResponse

type DomainGrayResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

DomainGrayResponse domain gray response

type DomainInfo

type DomainInfo struct {
	ID                  int       `json:"id"`
	Domain              string    `json:"domain"`
	Remark              string    `json:"remark"`
	AccessProgress      string    `json:"access_progress"`
	AccessMode          string    `json:"access_mode"`
	ProtectStatus       string    `json:"protect_status"`
	EIForwardStatus     string    `json:"ei_forward_status"`
	Cname               CnameInfo `json:"cname"`
	UseMyCname          int       `json:"use_my_cname"`
	UseMyDNS            int       `json:"use_my_dns"`
	CAStatus            string    `json:"ca_status"`
	ExclusiveResourceID int       `json:"exclusive_resource_id"`
	AccessProgressDesc  string    `json:"access_progress_desc"`
	HasOrigin           bool      `json:"has_origin"`
	CAID                int       `json:"ca_id"`
	CreatedAt           string    `json:"created_at"`
	UpdatedAt           string    `json:"updated_at"`
	PriDomain           string    `json:"pri_domain"`
}

DomainInfo domain information

type DomainInfoItem

type DomainInfoItem struct {
	Domain     string `json:"domain"`
	DataKey    string `json:"data_key"`
	BizMainKey string `json:"biz_main_key"`
}

DomainInfoItem domain info item

type DomainListData

type DomainListData struct {
	Total int          `json:"total"`
	List  []DomainInfo `json:"list"`
}

DomainListData domain list data

type DomainListRequest

type DomainListRequest struct {
	Page                int    `json:"page,omitempty"`
	PageSize            int    `json:"page_size,omitempty"`
	ID                  int    `json:"id,omitempty"`
	AccessProgress      string `json:"access_progress,omitempty"`
	GroupID             int    `json:"group_id,omitempty"`
	Domain              string `json:"domain,omitempty"`
	Remark              string `json:"remark,omitempty"`
	OriginIP            string `json:"origin_ip,omitempty"`
	CAStatus            string `json:"ca_status,omitempty"`
	AccessMode          string `json:"access_mode,omitempty"`
	ProtectStatus       string `json:"protect_status,omitempty"`
	ExclusiveResourceID int    `json:"exclusive_resource_id,omitempty"`
}

DomainListRequest domain list request

type DomainListResponse

type DomainListResponse struct {
	Status Status         `json:"status"`
	Data   DomainListData `json:"data"`
}

DomainListResponse domain list response

type DomainNodeSwitchData

type DomainNodeSwitchData struct {
	DomainID int `json:"domain_id"`
}

DomainNodeSwitchData domain node switch data

type DomainNodeSwitchRequest

type DomainNodeSwitchRequest struct {
	DomainID            int    `json:"domain_id"`
	ProtectStatus       string `json:"protect_status"`
	ExclusiveResourceID int    `json:"exclusive_resource_id,omitempty"`
}

DomainNodeSwitchRequest domain node switch request

type DomainNodeSwitchResponse

type DomainNodeSwitchResponse struct {
	Status Status               `json:"status"`
	Data   DomainNodeSwitchData `json:"data"`
}

DomainNodeSwitchResponse domain node switch response

type DomainProxyConf

type DomainProxyConf struct {
	ProxyConnectTimeout int `json:"proxy_connect_timeout"` // Connection timeout
	FailsTimeout        int `json:"fails_timeout"`         // Failure timeout
	KeepNewSrcTime      int `json:"keep_new_src_time"`     // Keep new source time
	MaxFails            int `json:"max_fails"`             // Max failures
	ProxyKeepalive      int `json:"proxy_keepalive"`       // Keepalive (0 or 1)
}

DomainProxyConf domain proxy configuration

type DomainRedirectConfig

type DomainRedirectConfig struct {
	Status   string `json:"status,omitempty"`
	JumpTo   string `json:"jump_to,omitempty"`
	JumpType string `json:"jump_type,omitempty"`
}

DomainRedirectConfig domain redirect configuration

type DomainSimpleInfo

type DomainSimpleInfo struct {
	ID       int    `json:"id"`
	Domain   string `json:"domain"`
	MemberID int    `json:"member_id"`
}

DomainSimpleInfo simple domain information

type DomainSimpleListData

type DomainSimpleListData struct {
	Total int                `json:"total"`
	List  []DomainSimpleInfo `json:"list"`
}

DomainSimpleListData simple domain list data

type DomainSimpleListRequest

type DomainSimpleListRequest struct {
	Domain  string `json:"domain,omitempty"`
	Page    int    `json:"page,omitempty"`
	PerPage int    `json:"per_page,omitempty"`
}

DomainSimpleListRequest simple domain list request

type DomainSimpleListResponse

type DomainSimpleListResponse struct {
	Status Status               `json:"status"`
	Data   DomainSimpleListData `json:"data"`
}

DomainSimpleListResponse simple domain list response

type DomainTemplatesData

type DomainTemplatesData struct {
	DomainID        int                  `json:"domain_id"`
	BindedTemplates []BindedTemplateInfo `json:"binded_templates"`
}

DomainTemplatesData domain templates data

type DomainTemplatesRequest

type DomainTemplatesRequest struct {
	DomainID int `json:"domain_id"`
}

DomainTemplatesRequest domain templates request

type DomainTemplatesResponse

type DomainTemplatesResponse struct {
	Status Status              `json:"status"`
	Data   DomainTemplatesData `json:"data"`
}

DomainTemplatesResponse domain templates response

type DomainUpdateData

type DomainUpdateData struct {
	DomainID int `json:"domain_id"`
}

DomainUpdateData domain update data

type DomainUpdateRequest

type DomainUpdateRequest struct {
	DomainID int    `json:"domain_id"`
	Remark   string `json:"remark,omitempty"`
}

DomainUpdateRequest domain update request

type DomainUpdateResponse

type DomainUpdateResponse struct {
	Status Status           `json:"status"`
	Data   DomainUpdateData `json:"data"`
}

DomainUpdateResponse domain update response

type EditOrigin

type EditOrigin struct {
	Id             int            `json:"id,omitempty"`
	Protocol       int            `json:"protocol"`
	ListenPort     int            `json:"listen_port"`
	OriginProtocol int            `json:"origin_protocol"`
	LoadBalance    int            `json:"load_balance"`
	OriginType     int            `json:"origin_type"`
	Records        []OriginRecord `json:"records"`
}

EditOrigin origin server configuration for editing

type FlexibleString

type FlexibleString string

FlexibleString is a type that can unmarshal from both string and number

func (FlexibleString) String

func (fs FlexibleString) String() string

String returns the string value

func (*FlexibleString) UnmarshalJSON

func (fs *FlexibleString) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type LogDownloadFieldConfig

type LogDownloadFieldConfig struct {
	Name           string   `json:"name"`            // Data source name
	DownloadFields []string `json:"download_fields"` // Available download fields
	SearchTerms    []string `json:"search_terms"`    // Available search terms
}

LogDownloadFieldConfig log download field configuration for a data source

type LogDownloadFieldsResponse

type LogDownloadFieldsResponse struct {
	Status Status                            `json:"status"`
	Data   map[string]LogDownloadFieldConfig `json:"data"`
}

LogDownloadFieldsResponse log download fields response

type LogDownloadSearchTerm

type LogDownloadSearchTerm struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

LogDownloadSearchTerm search term for log download

type LogDownloadTaskAddData

type LogDownloadTaskAddData struct {
	TaskID int `json:"task_id"`
}

LogDownloadTaskAddData log download task add data

type LogDownloadTaskAddRequest

type LogDownloadTaskAddRequest struct {
	TaskName       string            `json:"task_name"`             // Task name
	IsUseTemplate  int               `json:"is_use_template"`       // Whether to use template: 0-no, 1-yes
	TemplateID     int               `json:"template_id,omitempty"` // Template ID
	DataSource     string            `json:"data_source"`           // Data source: ng, cc, waf
	DownloadFields []string          `json:"download_fields"`       // Download fields
	SearchTerms    map[string]string `json:"search_terms"`          // Search conditions (map format: key -> value)
	FileType       string            `json:"file_type"`             // File type: xls, csv, json
	StartTime      string            `json:"start_time"`            // Start time
	EndTime        string            `json:"end_time"`              // End time
	Lang           string            `json:"lang,omitempty"`        // Language: zh_CN, en_US, default: zh_CN
}

LogDownloadTaskAddRequest log download task add request

type LogDownloadTaskAddResponse

type LogDownloadTaskAddResponse struct {
	Status Status                 `json:"status"`
	Data   LogDownloadTaskAddData `json:"data"`
}

LogDownloadTaskAddResponse log download task add response

type LogDownloadTaskBatchCancelRequest

type LogDownloadTaskBatchCancelRequest struct {
	TaskIDs []int `json:"task_ids"` // Task IDs
}

LogDownloadTaskBatchCancelRequest log download task batch cancel request

type LogDownloadTaskBatchCancelResponse

type LogDownloadTaskBatchCancelResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTaskBatchCancelResponse log download task batch cancel response

type LogDownloadTaskBatchDeleteRequest

type LogDownloadTaskBatchDeleteRequest struct {
	TaskIDs []int `json:"task_ids"` // Task IDs
}

LogDownloadTaskBatchDeleteRequest log download task batch delete request

type LogDownloadTaskBatchDeleteResponse

type LogDownloadTaskBatchDeleteResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTaskBatchDeleteResponse log download task batch delete response

type LogDownloadTaskCancelRequest

type LogDownloadTaskCancelRequest struct {
	TaskID int `json:"task_id"` // Task ID
}

LogDownloadTaskCancelRequest log download task cancel request

type LogDownloadTaskCancelResponse

type LogDownloadTaskCancelResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTaskCancelResponse log download task cancel response

type LogDownloadTaskDeleteRequest

type LogDownloadTaskDeleteRequest struct {
	TaskID int `json:"task_id"` // Task ID
}

LogDownloadTaskDeleteRequest log download task delete request

type LogDownloadTaskDeleteResponse

type LogDownloadTaskDeleteResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTaskDeleteResponse log download task delete response

type LogDownloadTaskInfo

type LogDownloadTaskInfo struct {
	MemberID         string      `json:"member_id"`
	SubUserID        string      `json:"sub_user_id,omitempty"`
	TaskName         string      `json:"task_name"`
	IsUseTemplate    string      `json:"is_use_template"`
	TemplateID       int         `json:"template_id"`
	DataSource       string      `json:"data_source"`
	DownloadFields   []string    `json:"download_fields"`
	SearchTerms      interface{} `json:"search_terms"` // Can be map[string][]string (response) or []LogDownloadSearchTerm (request)
	StartTime        string      `json:"start_time"`
	EndTime          string      `json:"end_time"`
	FileType         string      `json:"file_type"`
	Lang             string      `json:"lang,omitempty"`
	Status           interface{} `json:"status"` // Can be string or int
	Progress         int         `json:"progress,omitempty"`
	Result           interface{} `json:"result"`
	DownloadURL      interface{} `json:"download_url"`
	ResetDownloadURL string      `json:"reset_download_url,omitempty"`
	TaskStartTime    interface{} `json:"task_start_time"`
	TaskEndTime      interface{} `json:"task_end_time"`
	CreatedAt        string      `json:"created_at"`
	UpdatedAt        string      `json:"updated_at"`
	DataSourceName   string      `json:"data_source_name,omitempty"`
	TaskID           int         `json:"task_id"`
	TaskExpireDesc   string      `json:"task_expire_desc,omitempty"`
	UTCStartTime     string      `json:"utc_start_time,omitempty"`
	UTCEndTime       string      `json:"utc_end_time,omitempty"`
	UTCTaskStartTime string      `json:"utc_task_start_time,omitempty"`
	UTCTaskEndTime   string      `json:"utc_task_end_time,omitempty"`
	TemplateName     string      `json:"template_name,omitempty"`
}

LogDownloadTaskInfo log download task information

type LogDownloadTaskListData

type LogDownloadTaskListData struct {
	Total interface{}           `json:"total"` // Can be string or number
	List  []LogDownloadTaskInfo `json:"list"`
}

LogDownloadTaskListData log download task list data

type LogDownloadTaskListRequest

type LogDownloadTaskListRequest struct {
	Status     int    `json:"status,omitempty"`      // Task status: 0-not started, 1-in progress, 2-completed, 3-failed, 4-cancelled
	TaskName   string `json:"task_name,omitempty"`   // Task name
	FileType   string `json:"file_type,omitempty"`   // File type: xls, csv, json
	DataSource string `json:"data_source,omitempty"` // Data source: ng, cc, waf
	Page       int    `json:"page,omitempty"`        // Page number, default: 1
	PerPage    int    `json:"per_page,omitempty"`    // Page size, default: 20
}

LogDownloadTaskListRequest log download task list request

type LogDownloadTaskListResponse

type LogDownloadTaskListResponse struct {
	Status Status                  `json:"status"`
	Data   LogDownloadTaskListData `json:"data"`
}

LogDownloadTaskListResponse log download task list response

type LogDownloadTaskRegenerateRequest

type LogDownloadTaskRegenerateRequest struct {
	TaskID int `json:"task_id"` // Task ID
}

LogDownloadTaskRegenerateRequest log download task regenerate request

type LogDownloadTaskRegenerateResponse

type LogDownloadTaskRegenerateResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTaskRegenerateResponse log download task regenerate response

type LogDownloadTemplateAddRequest

type LogDownloadTemplateAddRequest struct {
	TemplateName     string            `json:"template_name"`      // Template name
	GroupName        string            `json:"group_name"`         // Group name
	GroupID          int               `json:"group_id"`           // Group ID
	DataSource       string            `json:"data_source"`        // Data source: ng, cc, waf
	Status           int               `json:"status"`             // Status: 1-enabled, 0-disabled, default: 1 (always included)
	DownloadFields   []string          `json:"download_fields"`    // Download fields
	SearchTerms      map[string]string `json:"search_terms"`       // Search conditions (map format: key -> value)
	DomainSelectType int               `json:"domain_select_type"` // Domain select type: 0-partial, 1-all
}

LogDownloadTemplateAddRequest log download template add request

type LogDownloadTemplateAddResponse

type LogDownloadTemplateAddResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTemplateAddResponse log download template add response

type LogDownloadTemplateAllResponse

type LogDownloadTemplateAllResponse struct {
	Status Status                              `json:"status"`
	Data   map[string]LogDownloadTemplateGroup `json:"data"`
}

LogDownloadTemplateAllResponse log download template all response (for adding tasks)

type LogDownloadTemplateBatchChangeStatusRequest

type LogDownloadTemplateBatchChangeStatusRequest struct {
	TemplateIDs []int `json:"template_ids"` // Template IDs
	Status      int   `json:"status"`       // Status: 1-enabled, 0-disabled
}

LogDownloadTemplateBatchChangeStatusRequest log download template batch change status request

type LogDownloadTemplateBatchChangeStatusResponse

type LogDownloadTemplateBatchChangeStatusResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTemplateBatchChangeStatusResponse log download template batch change status response

type LogDownloadTemplateBatchDeleteRequest

type LogDownloadTemplateBatchDeleteRequest struct {
	TemplateIDs []int `json:"template_ids"` // Template IDs
}

LogDownloadTemplateBatchDeleteRequest log download template batch delete request

type LogDownloadTemplateBatchDeleteResponse

type LogDownloadTemplateBatchDeleteResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTemplateBatchDeleteResponse log download template batch delete response

type LogDownloadTemplateChangeStatusRequest

type LogDownloadTemplateChangeStatusRequest struct {
	TemplateID int `json:"template_id"` // Template ID
	Status     int `json:"status"`      // Status: 1-enabled, 0-disabled
}

LogDownloadTemplateChangeStatusRequest log download template change status request

type LogDownloadTemplateChangeStatusResponse

type LogDownloadTemplateChangeStatusResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTemplateChangeStatusResponse log download template change status response

type LogDownloadTemplateDeleteRequest

type LogDownloadTemplateDeleteRequest struct {
	TemplateID int `json:"template_id"` // Template ID
}

LogDownloadTemplateDeleteRequest log download template delete request

type LogDownloadTemplateDeleteResponse

type LogDownloadTemplateDeleteResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTemplateDeleteResponse log download template delete response

type LogDownloadTemplateDomainListRequest

type LogDownloadTemplateDomainListRequest struct {
	Domain string `json:"domain,omitempty"` // Domain name
}

LogDownloadTemplateDomainListRequest log download template domain list request

type LogDownloadTemplateDomainListResponse

type LogDownloadTemplateDomainListResponse struct {
	Status Status   `json:"status"`
	Total  int      `json:"total"`
	Data   []string `json:"data"`
}

LogDownloadTemplateDomainListResponse log download template domain list response

type LogDownloadTemplateGroup

type LogDownloadTemplateGroup struct {
	GroupID   int                         `json:"group_id"`
	GroupName string                      `json:"group_name"`
	Templates []LogDownloadTemplateSimple `json:"templates"`
}

LogDownloadTemplateGroup template group information

type LogDownloadTemplateGroupAllResponse

type LogDownloadTemplateGroupAllResponse struct {
	Status Status                         `json:"status"`
	Data   []LogDownloadTemplateGroupInfo `json:"data"`
}

LogDownloadTemplateGroupAllResponse log download template group all response

type LogDownloadTemplateGroupInfo

type LogDownloadTemplateGroupInfo struct {
	GroupID   string `json:"group_id"`
	GroupName string `json:"group_name"`
}

LogDownloadTemplateGroupInfo template group information

type LogDownloadTemplateInfo

type LogDownloadTemplateInfo struct {
	ID             string      `json:"id"`
	TemplateName   string      `json:"template_name"`
	MemberID       string      `json:"member_id"`
	GroupID        string      `json:"group_id"`
	DataSource     string      `json:"data_source"`
	Status         int         `json:"status"`
	DownloadFields []string    `json:"download_fields"`
	SearchTerms    interface{} `json:"search_terms"` // Can be map[string]string (response) or []LogDownloadSearchTerm (request)
	CreatedAt      string      `json:"created_at"`
	UpdatedAt      string      `json:"updated_at"`
	TemplateID     int         `json:"template_id"`
	GroupName      string      `json:"group_name"`
}

LogDownloadTemplateInfo log download template information

type LogDownloadTemplateListData

type LogDownloadTemplateListData struct {
	Total interface{}               `json:"total"` // Can be string or number
	List  []LogDownloadTemplateInfo `json:"list"`
}

LogDownloadTemplateListData log download template list data

type LogDownloadTemplateListRequest

type LogDownloadTemplateListRequest struct {
	Status       int    `json:"status,omitempty"`        // Status: 1-enabled, 0-disabled
	GroupID      int    `json:"group_id,omitempty"`      // Group ID
	TemplateName string `json:"template_name,omitempty"` // Template name
	DataSource   string `json:"data_source,omitempty"`   // Data source: ng, cc, waf
	Page         int    `json:"page,omitempty"`          // Page number, default: 1
	PerPage      int    `json:"per_page,omitempty"`      // Page size, default: 20
}

LogDownloadTemplateListRequest log download template list request

type LogDownloadTemplateListResponse

type LogDownloadTemplateListResponse struct {
	Status Status                      `json:"status"`
	Data   LogDownloadTemplateListData `json:"data"`
}

LogDownloadTemplateListResponse log download template list response

type LogDownloadTemplateSaveRequest

type LogDownloadTemplateSaveRequest struct {
	TemplateID       int               `json:"template_id"`                  // Template ID
	TemplateName     string            `json:"template_name"`                // Template name
	GroupName        string            `json:"group_name"`                   // Group name
	GroupID          int               `json:"group_id"`                     // Group ID
	DataSource       string            `json:"data_source"`                  // Data source: ng, cc, waf
	Status           int               `json:"status"`                       // Status: 1-enabled, 0-disabled, default: 1
	DownloadFields   []string          `json:"download_fields"`              // Download fields
	SearchTerms      map[string]string `json:"search_terms"`                 // Search conditions (map format: key -> value)
	DomainSelectType int               `json:"domain_select_type,omitempty"` // Domain select type: 0-partial, 1-all
}

LogDownloadTemplateSaveRequest log download template save (update) request

type LogDownloadTemplateSaveResponse

type LogDownloadTemplateSaveResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

LogDownloadTemplateSaveResponse log download template save response

type LogDownloadTemplateSimple

type LogDownloadTemplateSimple struct {
	TemplateID     int         `json:"template_id"`
	TemplateName   string      `json:"template_name"`
	DownloadFields []string    `json:"download_fields"`
	SearchTerms    interface{} `json:"search_terms"` // Can be map[string]string (response) or []LogDownloadSearchTerm (request)
}

LogDownloadTemplateSimple simple template information

type MemberPackageChangeRequest

type MemberPackageChangeRequest struct {
	MemberID    int    `json:"member_id"`     // Member ID
	NewMealFlag string `json:"new_meal_flag"` // New meal flag: YD-WEBAQJS-TY, YD-WEBAQJS-SY, YD-WEBAQJS-GJ, YD-WEBAQJS-QJ
}

MemberPackageChangeRequest member package change request

type MemberPackageChangeResponse

type MemberPackageChangeResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

MemberPackageChangeResponse member package change response

type MobileJump

type MobileJump struct {
	Status  string `json:"status"`   // "on" or "off"
	JumpURL string `json:"jump_url"` // Jump URL
}

MobileJump mobile jump configuration

type NetworkSpeedCreateRuleData

type NetworkSpeedCreateRuleData struct {
	ID int `json:"id"` // Rule ID
}

NetworkSpeedCreateRuleData create rule data

type NetworkSpeedCreateRuleRequest

type NetworkSpeedCreateRuleRequest struct {
	BusinessID               int                       `json:"business_id"`   // Business ID
	BusinessType             string                    `json:"business_type"` // Business type
	ConfigGroup              string                    `json:"config_group"`  // Rule group
	CustomPage               *CustomPageRule           `json:"custom_page,omitempty"`
	UpstreamURIChangeRule    *UpstreamURIChangeRule    `json:"upstream_uri_change_rule,omitempty"`
	RespHeadersRule          *RespHeadersRule          `json:"resp_headers_rule,omitempty"`
	CustomizedReqHeadersRule *CustomizedReqHeadersRule `json:"customized_req_headers_rule,omitempty"`
}

NetworkSpeedCreateRuleRequest create rule request

type NetworkSpeedCreateRuleResponse

type NetworkSpeedCreateRuleResponse struct {
	Status Status                     `json:"status"`
	Data   NetworkSpeedCreateRuleData `json:"data"`
}

NetworkSpeedCreateRuleResponse create rule response

type NetworkSpeedDeleteRuleData

type NetworkSpeedDeleteRuleData struct {
	IDs []int `json:"ids"` // Deleted rule IDs
}

NetworkSpeedDeleteRuleData delete rule data

type NetworkSpeedDeleteRuleRequest

type NetworkSpeedDeleteRuleRequest struct {
	BusinessID   int    `json:"business_id"`   // Business ID
	BusinessType string `json:"business_type"` // Business type
	ConfigGroup  string `json:"config_group"`  // Rule group
	IDs          []int  `json:"ids"`           // Rule IDs to delete
}

NetworkSpeedDeleteRuleRequest delete rule request

type NetworkSpeedDeleteRuleResponse

type NetworkSpeedDeleteRuleResponse struct {
	Status Status                     `json:"status"`
	Data   NetworkSpeedDeleteRuleData `json:"data"`
}

NetworkSpeedDeleteRuleResponse delete rule response

type NetworkSpeedGetConfigData

type NetworkSpeedGetConfigData struct {
	BusinessType         string                `json:"business_type"`
	BusinessID           int                   `json:"business_id"`
	DomainProxyConf      *DomainProxyConf      `json:"domain_proxy_conf,omitempty"`
	UpstreamRedirect     *UpstreamRedirect     `json:"upstream_redirect,omitempty"`
	CustomizedReqHeaders *CustomizedReqHeaders `json:"customized_req_headers,omitempty"`
	RespHeaders          *RespHeaders          `json:"resp_headers,omitempty"`
	UpstreamURIChange    *UpstreamURIChange    `json:"upstream_uri_change,omitempty"`
	SourceSiteProtect    *SourceSiteProtect    `json:"source_site_protect,omitempty"`
	Slice                *Slice                `json:"slice,omitempty"`
	HTTPS                *NetworkSpeedHTTPS    `json:"https,omitempty"`
	PageGzip             *PageGzip             `json:"page_gzip,omitempty"`
	WebP                 *WebP                 `json:"webp,omitempty"`
	UploadFile           *UploadFile           `json:"upload_file,omitempty"`
	WebSocket            *WebSocket            `json:"websocket,omitempty"`
	MobileJump           *MobileJump           `json:"mobile_jump,omitempty"`
	CustomPage           *CustomPage           `json:"custom_page,omitempty"`
	UpstreamCheck        *UpstreamCheck        `json:"upstream_check,omitempty"`
}

NetworkSpeedGetConfigData get template config data

type NetworkSpeedGetConfigRequest

type NetworkSpeedGetConfigRequest struct {
	BusinessID   int      `json:"business_id"`   // Business ID
	BusinessType string   `json:"business_type"` // Business type: "tpl" (template) or "global"
	ConfigGroups []string `json:"config_groups"` // Configuration groups to retrieve
}

NetworkSpeedGetConfigRequest get template config request

type NetworkSpeedGetConfigResponse

type NetworkSpeedGetConfigResponse struct {
	Status Status                    `json:"status"`
	Data   NetworkSpeedGetConfigData `json:"data"`
}

NetworkSpeedGetConfigResponse get template config response

type NetworkSpeedGetRulesData

type NetworkSpeedGetRulesData struct {
	Page     int                    `json:"page"`
	PageSize int                    `json:"page_size"`
	Total    int                    `json:"total"`
	List     []NetworkSpeedRuleInfo `json:"list"`
}

NetworkSpeedGetRulesData get rules data

type NetworkSpeedGetRulesRequest

type NetworkSpeedGetRulesRequest struct {
	BusinessID   int    `json:"business_id"`   // Business ID
	BusinessType string `json:"business_type"` // Business type
	ConfigGroup  string `json:"config_group"`  // Rule group: "custom_page", "upstream_uri_change_rule", "resp_headers_rule", "customized_req_headers_rule"
}

NetworkSpeedGetRulesRequest get rules request

type NetworkSpeedGetRulesResponse

type NetworkSpeedGetRulesResponse struct {
	Status Status                   `json:"status"`
	Data   NetworkSpeedGetRulesData `json:"data"`
}

NetworkSpeedGetRulesResponse get rules response

type NetworkSpeedHTTPS

type NetworkSpeedHTTPS struct {
	Status                 string   `json:"status"`                   // "on" or "off"
	HTTP2HTTPS             string   `json:"http2https"`               // "off", "all", or "special"
	HTTP2HTTPSPort         int      `json:"http2https_port"`          // Redirect port
	HTTP2                  string   `json:"http2"`                    // "on" or "off"
	HSTS                   string   `json:"hsts"`                     // "on" or "off"
	OCSPStapling           string   `json:"ocsp_stapling"`            // "on" or "off"
	MinVersion             string   `json:"min_version"`              // "SSLv3", "TLSv1.0", "TLSv1.1", "TLSv1.2", "TLSv1.3"
	CiphersPreset          string   `json:"ciphers_preset"`           // "default", "strong", or "custom"
	CustomEncryptAlgorithm []string `json:"custom_encrypt_algorithm"` // Custom encryption algorithms
}

NetworkSpeedHTTPS HTTPS configuration

type NetworkSpeedRuleInfo

type NetworkSpeedRuleInfo struct {
	ID                       int                       `json:"id"`
	BusinessType             string                    `json:"business_type"`
	BusinessID               int                       `json:"business_id"`
	ConfigGroup              string                    `json:"config_group"`
	CustomPage               *CustomPageRule           `json:"custom_page,omitempty"`
	UpstreamURIChangeRule    *UpstreamURIChangeRule    `json:"upstream_uri_change_rule,omitempty"`
	RespHeadersRule          *RespHeadersRule          `json:"resp_headers_rule,omitempty"`
	CustomizedReqHeadersRule *CustomizedReqHeadersRule `json:"customized_req_headers_rule,omitempty"`
}

NetworkSpeedRuleInfo rule information

type NetworkSpeedSortRulesData

type NetworkSpeedSortRulesData struct {
	IDs []int `json:"ids"` // Sorted rule IDs
}

NetworkSpeedSortRulesData sort rules data

type NetworkSpeedSortRulesRequest

type NetworkSpeedSortRulesRequest struct {
	BusinessID   int    `json:"business_id"`   // Business ID
	BusinessType string `json:"business_type"` // Business type
	ConfigGroup  string `json:"config_group"`  // Rule group
	IDs          []int  `json:"ids"`           // Sorted rule IDs
}

NetworkSpeedSortRulesRequest sort rules request

type NetworkSpeedSortRulesResponse

type NetworkSpeedSortRulesResponse struct {
	Status Status                    `json:"status"`
	Data   NetworkSpeedSortRulesData `json:"data"`
}

NetworkSpeedSortRulesResponse sort rules response

type NetworkSpeedUpdateConfigData

type NetworkSpeedUpdateConfigData struct {
	BusinessID   int    `json:"business_id"`
	BusinessType string `json:"business_type"`
	Updates      int    `json:"updates"` // Number of updated configs
	Adds         int    `json:"adds"`    // Number of added configs
}

NetworkSpeedUpdateConfigData update template config data

type NetworkSpeedUpdateConfigRequest

type NetworkSpeedUpdateConfigRequest struct {
	BusinessID           int                   `json:"business_id"`   // Business ID
	BusinessType         string                `json:"business_type"` // Business type: "tpl" or "global"
	DomainProxyConf      *DomainProxyConf      `json:"domain_proxy_conf,omitempty"`
	UpstreamRedirect     *UpstreamRedirect     `json:"upstream_redirect,omitempty"`
	CustomizedReqHeaders *CustomizedReqHeaders `json:"customized_req_headers,omitempty"`
	RespHeaders          *RespHeaders          `json:"resp_headers,omitempty"`
	UpstreamURIChange    *UpstreamURIChange    `json:"upstream_uri_change,omitempty"`
	SourceSiteProtect    *SourceSiteProtect    `json:"source_site_protect,omitempty"`
	Slice                *Slice                `json:"slice,omitempty"`
	HTTPS                *NetworkSpeedHTTPS    `json:"https,omitempty"`
	PageGzip             *PageGzip             `json:"page_gzip,omitempty"`
	WebP                 *WebP                 `json:"webp,omitempty"`
	UploadFile           *UploadFile           `json:"upload_file,omitempty"`
	WebSocket            *WebSocket            `json:"websocket,omitempty"`
	MobileJump           *MobileJump           `json:"mobile_jump,omitempty"`
	CustomPage           *CustomPage           `json:"custom_page,omitempty"`
	UpstreamCheck        *UpstreamCheck        `json:"upstream_check,omitempty"`
}

NetworkSpeedUpdateConfigRequest update template config request

type NetworkSpeedUpdateConfigResponse

type NetworkSpeedUpdateConfigResponse struct {
	Status Status                       `json:"status"`
	Data   NetworkSpeedUpdateConfigData `json:"data"`
}

NetworkSpeedUpdateConfigResponse update template config response

type NetworkSpeedUpdateRuleData

type NetworkSpeedUpdateRuleData struct {
	ID int `json:"id"` // Rule ID
}

NetworkSpeedUpdateRuleData update rule data

type NetworkSpeedUpdateRuleRequest

type NetworkSpeedUpdateRuleRequest struct {
	ID                       int                       `json:"id"`           // Rule ID
	ConfigGroup              string                    `json:"config_group"` // Rule group
	CustomPage               *CustomPageRule           `json:"custom_page,omitempty"`
	UpstreamURIChangeRule    *UpstreamURIChangeRule    `json:"upstream_uri_change_rule,omitempty"`
	RespHeadersRule          *RespHeadersRule          `json:"resp_headers_rule,omitempty"`
	CustomizedReqHeadersRule *CustomizedReqHeadersRule `json:"customized_req_headers_rule,omitempty"`
}

NetworkSpeedUpdateRuleRequest update rule request

type NetworkSpeedUpdateRuleResponse

type NetworkSpeedUpdateRuleResponse struct {
	Status Status                     `json:"status"`
	Data   NetworkSpeedUpdateRuleData `json:"data"`
}

NetworkSpeedUpdateRuleResponse update rule response

type Origin

type Origin struct {
	Id             int            `json:"id,omitempty"`
	Protocol       int            `json:"protocol"`
	ListenPorts    []int          `json:"listen_ports"`
	OriginProtocol int            `json:"origin_protocol"`
	LoadBalance    int            `json:"load_balance"`
	OriginType     int            `json:"origin_type"`
	Records        []OriginRecord `json:"records"`
}

Origin origin server configuration

type OriginAddData

type OriginAddData struct {
	IDs []int `json:"ids"`
}

OriginAddData origin add data

type OriginAddRequest

type OriginAddRequest struct {
	DomainID int      `json:"domain_id"`
	Origins  []Origin `json:"origins"`
}

OriginAddRequest origin add request

type OriginAddResponse

type OriginAddResponse struct {
	Status Status        `json:"status"`
	Data   OriginAddData `json:"data"`
}

OriginAddResponse origin add response

type OriginDeleteData

type OriginDeleteData struct {
	IDs []int `json:"ids"`
}

OriginDeleteData origin delete data

type OriginDeleteRequest

type OriginDeleteRequest struct {
	IDs      []int `json:"ids"`
	DomainID int   `json:"domain_id"`
}

OriginDeleteRequest origin delete request

type OriginDeleteResponse

type OriginDeleteResponse struct {
	Status Status           `json:"status"`
	Data   OriginDeleteData `json:"data"`
}

OriginDeleteResponse origin delete response

type OriginGroupAllRequest

type OriginGroupAllRequest struct {
	ProtectStatus string `json:"protect_status"` // Protection status: scdn-shared nodes, exclusive-dedicated nodes
}

OriginGroupAllRequest get all origin groups request

type OriginGroupAllResponse

type OriginGroupAllResponse struct {
	Status Status              `json:"status"`
	Data   OriginGroupListData `json:"data"`
}

OriginGroupAllResponse get all origin groups response

type OriginGroupBindDomainsData

type OriginGroupBindDomainsData struct {
	JobID string `json:"job_id"` // Batch job ID
}

OriginGroupBindDomainsData bind origin group to domains data

type OriginGroupBindDomainsRequest

type OriginGroupBindDomainsRequest struct {
	OriginGroupID  int      `json:"origin_group_id"`            // Origin group ID
	DomainIDs      []int    `json:"domain_ids,omitempty"`       // Domain ID array
	DomainGroupIDs []int    `json:"domain_group_ids,omitempty"` // Domain group ID array
	Domains        []string `json:"domains,omitempty"`          // Domain array
}

OriginGroupBindDomainsRequest bind origin group to domains request

type OriginGroupBindDomainsResponse

type OriginGroupBindDomainsResponse struct {
	Status Status                     `json:"status"`
	Data   OriginGroupBindDomainsData `json:"data"`
}

OriginGroupBindDomainsResponse bind origin group to domains response

type OriginGroupBindHistory

type OriginGroupBindHistory struct {
	ID            int                            `json:"id"`              // History record ID
	OriginGroupID int                            `json:"origin_group_id"` // Origin group ID
	MemberID      int                            `json:"member_id"`       // Member ID
	Domains       []OriginGroupBindHistoryDomain `json:"domains"`         // Bound domain list
	CreatedAt     string                         `json:"created_at"`      // Creation time
	UpdatedAt     string                         `json:"updated_at"`      // Update time
}

OriginGroupBindHistory bind history record

type OriginGroupBindHistoryData

type OriginGroupBindHistoryData struct {
	History OriginGroupBindHistory `json:"history"` // Bind history record
}

OriginGroupBindHistoryData bind history data

type OriginGroupBindHistoryDomain

type OriginGroupBindHistoryDomain struct {
	DomainID   int    `json:"domain_id"`   // Domain ID
	DomainName string `json:"domain_name"` // Domain name
}

OriginGroupBindHistoryDomain bound domain in history

type OriginGroupBindHistoryRequest

type OriginGroupBindHistoryRequest struct {
	OriginGroupID int `json:"origin_group_id"` // Origin group ID
}

OriginGroupBindHistoryRequest get latest bind history request

type OriginGroupBindHistoryResponse

type OriginGroupBindHistoryResponse struct {
	Status Status                     `json:"status"`
	Data   OriginGroupBindHistoryData `json:"data"`
}

OriginGroupBindHistoryResponse get latest bind history response

type OriginGroupCopyRequest

type OriginGroupCopyRequest struct {
	OriginGroupID int `json:"origin_group_id"` // Origin group ID
	DomainID      int `json:"domain_id"`       // Domain ID
}

OriginGroupCopyRequest copy origin group to domain request

type OriginGroupCopyResponse

type OriginGroupCopyResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

OriginGroupCopyResponse copy origin group to domain response

type OriginGroupCreateData

type OriginGroupCreateData struct {
	ID int `json:"id"` // Created origin group ID
}

OriginGroupCreateData origin group create data

type OriginGroupCreateRequest

type OriginGroupCreateRequest struct {
	Name    string              `json:"name"`             // Origin group name (2-16 characters)
	Remark  string              `json:"remark,omitempty"` // Remark (2-64 characters)
	Origins []OriginGroupOrigin `json:"origins"`          // Origin list (at least 1)
}

OriginGroupCreateRequest origin group create request

type OriginGroupCreateResponse

type OriginGroupCreateResponse struct {
	Status Status                `json:"status"`
	Data   OriginGroupCreateData `json:"data"`
}

OriginGroupCreateResponse origin group create response

type OriginGroupDeleteRequest

type OriginGroupDeleteRequest struct {
	IDs []int `json:"ids"` // Origin group ID array (at least 1)
}

OriginGroupDeleteRequest origin group delete request

type OriginGroupDeleteResponse

type OriginGroupDeleteResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

OriginGroupDeleteResponse origin group delete response

type OriginGroupDetailData

type OriginGroupDetailData struct {
	OriginGroup OriginGroupInfo `json:"origin_group"` // Origin group information
}

OriginGroupDetailData origin group detail data

type OriginGroupDetailRequest

type OriginGroupDetailRequest struct {
	ID int `json:"id"` // Origin group ID
}

OriginGroupDetailRequest origin group detail request

type OriginGroupDetailResponse

type OriginGroupDetailResponse struct {
	Status Status                `json:"status"`
	Data   OriginGroupDetailData `json:"data"`
}

OriginGroupDetailResponse origin group detail response

type OriginGroupInfo

type OriginGroupInfo struct {
	ID        int                 `json:"id"`         // Origin group ID
	Name      string              `json:"name"`       // Origin group name
	Remark    string              `json:"remark"`     // Remark
	MemberID  int                 `json:"member_id"`  // Member ID
	Username  string              `json:"username"`   // Username
	Origins   []OriginGroupOrigin `json:"origins"`    // Origin list
	CreatedAt string              `json:"created_at"` // Creation time
	UpdatedAt string              `json:"updated_at"` // Update time
}

OriginGroupInfo origin group information

type OriginGroupListData

type OriginGroupListData struct {
	Total int               `json:"total"` // Total number of origin groups
	List  []OriginGroupInfo `json:"list"`  // List of origin groups
}

OriginGroupListData origin group list data

type OriginGroupListRequest

type OriginGroupListRequest struct {
	Page     int    `json:"page,omitempty"`      // Page number
	PageSize int    `json:"page_size,omitempty"` // Page size
	Name     string `json:"name,omitempty"`      // Origin group name filter
}

OriginGroupListRequest origin group list request

type OriginGroupListResponse

type OriginGroupListResponse struct {
	Status Status              `json:"status"`
	Data   OriginGroupListData `json:"data"`
}

OriginGroupListResponse origin group list response

type OriginGroupOrigin

type OriginGroupOrigin struct {
	ID             int                       `json:"id,omitempty"`    // Origin ID (0 for new, >0 for update)
	OriginType     int                       `json:"origin_type"`     // Origin type: 0-IP, 1-domain
	Records        []OriginGroupRecord       `json:"records"`         // Origin record list (at least 1)
	ProtocolPorts  []OriginGroupProtocolPort `json:"protocol_ports"`  // Protocol port mapping (at least 1)
	OriginProtocol int                       `json:"origin_protocol"` // Origin protocol: 0-http, 1-https, 2-follow
	LoadBalance    int                       `json:"load_balance"`    // Load balance strategy: 0-ip_hash, 1-round_robin, 2-cookie
}

OriginGroupOrigin origin configuration

type OriginGroupProtocolPort

type OriginGroupProtocolPort struct {
	Protocol    int   `json:"protocol"`     // Protocol: 0-http, 1-https
	ListenPorts []int `json:"listen_ports"` // Listen port list
}

OriginGroupProtocolPort protocol port mapping

type OriginGroupRecord

type OriginGroupRecord struct {
	Value    string `json:"value"`          // Origin address
	Port     int    `json:"port"`           // Origin port (1-65535)
	Priority int    `json:"priority"`       // Weight (1-100)
	View     string `json:"view"`           // Origin type: primary-backup, backup-backup
	Host     string `json:"host,omitempty"` // Origin Host
}

OriginGroupRecord origin record

type OriginGroupUpdateRequest

type OriginGroupUpdateRequest struct {
	ID      int                 `json:"id"`               // Origin group ID
	Name    string              `json:"name"`             // Origin group name (2-16 characters)
	Remark  string              `json:"remark,omitempty"` // Remark (2-64 characters)
	Origins []OriginGroupOrigin `json:"origins"`          // Origin list (at least 1)
}

OriginGroupUpdateRequest origin group update request

type OriginGroupUpdateResponse

type OriginGroupUpdateResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

OriginGroupUpdateResponse origin group update response

type OriginInfo

type OriginInfo struct {
	ID             int            `json:"id"`
	DomainID       int            `json:"domain_id"`
	Protocol       int            `json:"protocol"`
	ListenPort     int            `json:"listen_port"`
	OriginProtocol int            `json:"origin_protocol"`
	LoadBalance    int            `json:"load_balance"`
	OriginType     int            `json:"origin_type"`
	Records        []OriginRecord `json:"records"`
}

OriginInfo origin information

type OriginListData

type OriginListData struct {
	Total int          `json:"total"`
	List  []OriginInfo `json:"list"`
}

OriginListData origin list data

type OriginListRequest

type OriginListRequest struct {
	DomainID int `json:"domain_id,omitempty"`
}

OriginListRequest origin list request

type OriginListResponse

type OriginListResponse struct {
	Status Status         `json:"status"`
	Data   OriginListData `json:"data"`
}

OriginListResponse origin list response

type OriginRecord

type OriginRecord struct {
	View     string `json:"view"`
	Value    string `json:"value"`
	Port     int    `json:"port"`
	Priority int    `json:"priority"`
	Host     string `json:"host,omitempty"`
}

OriginRecord origin record

type OriginUpdateData

type OriginUpdateData struct {
	ID int `json:"id"`
}

OriginUpdateData origin update data

type OriginUpdateRequest

type OriginUpdateRequest struct {
	DomainID int          `json:"domain_id"`
	Origins  []EditOrigin `json:"origins"`
}

OriginUpdateRequest origin update request

type OriginUpdateResponse

type OriginUpdateResponse struct {
	Status Status           `json:"status"`
	Data   OriginUpdateData `json:"data"`
}

OriginUpdateResponse origin update response

type PageGzip

type PageGzip struct {
	Status string `json:"status"` // "on" or "off"
}

PageGzip page gzip configuration

type PreciseAccessControlPolicy

type PreciseAccessControlPolicy struct {
	Type       string                   `json:"type"`        // Policy type
	Action     string                   `json:"action"`      // Policy action
	ActionData map[string]interface{}   `json:"action_data"` // Action data
	Rules      []map[string]interface{} `json:"rules"`       // Rules list
	From       string                   `json:"from"`        // From source
	Status     int                      `json:"status"`      // Status
}

PreciseAccessControlPolicy precise access control policy

type ProgressInfo

type ProgressInfo struct {
	Key  string `json:"key"`
	Name string `json:"name"`
}

ProgressInfo progress information

type ProxyHostConfig

type ProxyHostConfig struct {
	ProxyHost     string `json:"proxy_host,omitempty"`
	ProxyHostType string `json:"proxy_host_type,omitempty"`
}

ProxyHostConfig proxy host configuration

type ProxySNIConfig

type ProxySNIConfig struct {
	ProxySNI string `json:"proxy_sni,omitempty"`
	Status   string `json:"status,omitempty"`
}

ProxySNIConfig proxy SNI configuration

type ReplayAttackProtectionConfig

type ReplayAttackProtectionConfig struct {
	ID             int      `json:"id,omitempty"`
	Status         string   `json:"status"`                    // on, off, keep
	Action         string   `json:"action"`                    // captcha, deny, watch, keep
	Path           []string `json:"path"`                      // Path list
	IgnorePath     []string `json:"ignore_path"`               // Ignore path list
	ValidityPeriod int      `json:"validity_period,omitempty"` // Validity period
}

ReplayAttackProtectionConfig replay attack protection config

type RespHeaders

type RespHeaders struct {
	Status string `json:"status"` // "on" or "off"
}

RespHeaders response headers configuration

type RespHeadersRule

type RespHeadersRule struct {
	Type    string `json:"type"`    // Type
	Content string `json:"content"` // Content
	Remark  string `json:"remark"`  // Remark
}

RespHeadersRule response headers rule

type RuleTemplateBindDomain

type RuleTemplateBindDomain struct {
	AllDomain      bool     `json:"all_domain"`                 // If true, bind to all domains
	DomainIDs      []int    `json:"domain_ids,omitempty"`       // List of domain IDs to bind
	DomainGroupIDs []int    `json:"domain_group_ids,omitempty"` // List of domain group IDs to bind
	Domains        []string `json:"domains,omitempty"`          // List of domain names to bind
	IsBind         bool     `json:"is_bind"`                    // Whether to bind domains
}

RuleTemplateBindDomain domain binding information for template

type RuleTemplateBindDomainData

type RuleTemplateBindDomainData struct {
	ID int `json:"id"` // Rule template ID
}

RuleTemplateBindDomainData rule template bind domain data

type RuleTemplateBindDomainInfo

type RuleTemplateBindDomainInfo struct {
	DomainID  int    `json:"domain_id"`  // Bound domain ID
	Domain    string `json:"domain"`     // Bound domain name
	CreatedAt string `json:"created_at"` // Domain binding timestamp
}

RuleTemplateBindDomainInfo domain binding information

type RuleTemplateBindDomainRequest

type RuleTemplateBindDomainRequest struct {
	ID        int   `json:"id"`         // Rule template ID
	DomainIDs []int `json:"domain_ids"` // List of domain IDs to bind to template
}

RuleTemplateBindDomainRequest rule template bind domain request

type RuleTemplateBindDomainResponse

type RuleTemplateBindDomainResponse struct {
	Status Status                     `json:"status"`
	Data   RuleTemplateBindDomainData `json:"data"`
}

RuleTemplateBindDomainResponse rule template bind domain response

type RuleTemplateCreateData

type RuleTemplateCreateData struct {
	ID int `json:"id"` // Newly created rule template ID
}

RuleTemplateCreateData rule template creation data

type RuleTemplateCreateRequest

type RuleTemplateCreateRequest struct {
	Name        string                  `json:"name"`                  // Template name
	Description string                  `json:"description,omitempty"` // Template description
	AppType     string                  `json:"app_type"`              // Application type (e.g., "network_speed")
	TplType     string                  `json:"tpl_type,omitempty"`    // Template type
	FromTplID   int                     `json:"from_tpl_id,omitempty"` // Existing template ID to copy from
	BindDomain  *RuleTemplateBindDomain `json:"bind_domain,omitempty"` // Domain binding information
}

RuleTemplateCreateRequest rule template creation request

type RuleTemplateCreateResponse

type RuleTemplateCreateResponse struct {
	Status Status                 `json:"status"`
	Data   RuleTemplateCreateData `json:"data"`
}

RuleTemplateCreateResponse rule template creation response

type RuleTemplateDeleteData

type RuleTemplateDeleteData struct {
	ID int `json:"id"` // Deleted rule template ID
}

RuleTemplateDeleteData rule template delete data

type RuleTemplateDeleteRequest

type RuleTemplateDeleteRequest struct {
	ID int `json:"id"` // Rule template ID to delete
}

RuleTemplateDeleteRequest rule template delete request

type RuleTemplateDeleteResponse

type RuleTemplateDeleteResponse struct {
	Status Status                 `json:"status"`
	Data   RuleTemplateDeleteData `json:"data"`
}

RuleTemplateDeleteResponse rule template delete response

type RuleTemplateDomainInfo

type RuleTemplateDomainInfo struct {
	ID        int    `json:"id"`         // Domain ID
	Domain    string `json:"domain"`     // Domain name
	CreatedAt string `json:"created_at"` // Domain binding timestamp
}

RuleTemplateDomainInfo domain information bound to template

type RuleTemplateInfo

type RuleTemplateInfo struct {
	ID          int                          `json:"id"`           // Rule template ID
	Name        string                       `json:"name"`         // Rule template name
	Description string                       `json:"description"`  // Rule template description
	AppType     string                       `json:"app_type"`     // Application type
	BindDomains []RuleTemplateBindDomainInfo `json:"bind_domains"` // List of domains bound to this template
	CreatedAt   string                       `json:"created_at"`   // Template creation timestamp
}

RuleTemplateInfo rule template information

type RuleTemplateListData

type RuleTemplateListData struct {
	Total int                `json:"total"` // Total number of rule templates
	List  []RuleTemplateInfo `json:"list"`  // List of rule templates
}

RuleTemplateListData rule template list data

type RuleTemplateListDomainsData

type RuleTemplateListDomainsData struct {
	Total int                      `json:"total"` // Total number of domains bound to template
	List  []RuleTemplateDomainInfo `json:"list"`  // List of domain information
}

RuleTemplateListDomainsData rule template list domains data

type RuleTemplateListDomainsRequest

type RuleTemplateListDomainsRequest struct {
	ID       int    `json:"id"`                  // Rule template ID
	Page     int    `json:"page,omitempty"`      // Page number for pagination
	PageSize int    `json:"page_size,omitempty"` // Items per page
	AppType  string `json:"app_type"`            // Application type
	Domain   string `json:"domain,omitempty"`    // Filter by domain name
}

RuleTemplateListDomainsRequest rule template list domains request

type RuleTemplateListDomainsResponse

type RuleTemplateListDomainsResponse struct {
	Status Status                      `json:"status"`
	Data   RuleTemplateListDomainsData `json:"data"`
}

RuleTemplateListDomainsResponse rule template list domains response

type RuleTemplateListRequest

type RuleTemplateListRequest struct {
	Page     int    `json:"page,omitempty"`      // Page number for pagination, default: 1
	PageSize int    `json:"page_size,omitempty"` // Items per page, max: 1000, default: 1000
	Name     string `json:"name,omitempty"`      // Filter by rule template name
	Domain   string `json:"domain,omitempty"`    // Filter by associated domain
	AppType  string `json:"app_type,omitempty"`  // Filter by application type
}

RuleTemplateListRequest rule template list request

type RuleTemplateListResponse

type RuleTemplateListResponse struct {
	Status Status               `json:"status"`
	Data   RuleTemplateListData `json:"data"`
}

RuleTemplateListResponse rule template list response

type RuleTemplateUnbindDomainData

type RuleTemplateUnbindDomainData struct {
	ID int `json:"id"` // Rule template ID
}

RuleTemplateUnbindDomainData rule template unbind domain data

type RuleTemplateUnbindDomainRequest

type RuleTemplateUnbindDomainRequest struct {
	ID        int   `json:"id"`         // Rule template ID
	DomainIDs []int `json:"domain_ids"` // List of domain IDs to unbind from template
}

RuleTemplateUnbindDomainRequest rule template unbind domain request

type RuleTemplateUnbindDomainResponse

type RuleTemplateUnbindDomainResponse struct {
	Status Status                       `json:"status"`
	Data   RuleTemplateUnbindDomainData `json:"data"`
}

RuleTemplateUnbindDomainResponse rule template unbind domain response

type RuleTemplateUpdateData

type RuleTemplateUpdateData struct {
	ID int `json:"id"` // Updated rule template ID
}

RuleTemplateUpdateData rule template update data

type RuleTemplateUpdateRequest

type RuleTemplateUpdateRequest struct {
	ID          int    `json:"id"`                    // Rule template ID to update
	Name        string `json:"name,omitempty"`        // New name for the rule template
	Description string `json:"description,omitempty"` // New description for the rule template
}

RuleTemplateUpdateRequest rule template update request

type RuleTemplateUpdateResponse

type RuleTemplateUpdateResponse struct {
	Status Status                 `json:"status"`
	Data   RuleTemplateUpdateData `json:"data"`
}

RuleTemplateUpdateResponse rule template update response

type ScdnService

type ScdnService struct {
	// contains filtered or unexported fields
}

ScdnService SCDN domain service

func NewScdnService

func NewScdnService(client *connectivity.ByteShieldClient) *ScdnService

NewScdnService creates a new SCDN domain service instance

func (*ScdnService) AddLogDownloadTask

AddLogDownloadTask adds a log download task

func (*ScdnService) AddLogDownloadTemplate

AddLogDownloadTemplate adds a log download template

func (*ScdnService) AddOrigins

func (s *ScdnService) AddOrigins(req OriginAddRequest) (*OriginAddResponse, error)

AddOrigins adds origins to a domain

func (*ScdnService) ApplyCertificate

func (s *ScdnService) ApplyCertificate(req CAApplyAddRequest) (*CAApplyAddResponse, error)

ApplyCertificate applies for a certificate

func (*ScdnService) BatchCancelLogDownloadTasks

BatchCancelLogDownloadTasks batch cancels log download tasks

func (*ScdnService) BatchChangeLogDownloadTemplateStatus

BatchChangeLogDownloadTemplateStatus batch changes template status

func (*ScdnService) BatchConfigSecurityProtectionTemplate

BatchConfigSecurityProtectionTemplate batch configures templates

func (*ScdnService) BatchDeleteLogDownloadTasks

BatchDeleteLogDownloadTasks batch deletes log download tasks

func (*ScdnService) BatchDeleteLogDownloadTemplates

BatchDeleteLogDownloadTemplates batch deletes log download templates

func (*ScdnService) BindDomainCert

BindDomainCert binds a certificate to a domain

func (*ScdnService) BindOriginGroupToDomains

BindOriginGroupToDomains binds origin group to domains

func (*ScdnService) BindRuleTemplateDomains

BindRuleTemplateDomains binds domains to a rule template

func (*ScdnService) BindSecurityProtectionTemplateDomain

BindSecurityProtectionTemplateDomain binds template domain

func (*ScdnService) CancelLogDownloadTask

CancelLogDownloadTask cancels a log download task

func (*ScdnService) ChangeLogDownloadTemplateStatus

ChangeLogDownloadTemplateStatus changes template status

func (*ScdnService) CopyOriginGroupToDomain

func (s *ScdnService) CopyOriginGroupToDomain(req OriginGroupCopyRequest) (*OriginGroupCopyResponse, error)

CopyOriginGroupToDomain copies origin group to domain

func (*ScdnService) CreateCacheRule

CreateCacheRule creates a cache rule

func (*ScdnService) CreateDomain

func (s *ScdnService) CreateDomain(req DomainCreateRequest) (*DomainCreateResponse, error)

CreateDomain creates a new domain

func (*ScdnService) CreateNetworkSpeedRule

CreateNetworkSpeedRule creates a rule

func (*ScdnService) CreateOriginGroup

CreateOriginGroup creates an origin group

func (*ScdnService) CreateRuleTemplate

CreateRuleTemplate creates a new rule template

func (*ScdnService) CreateSecurityProtectionTemplate

CreateSecurityProtectionTemplate creates a security protection template

func (*ScdnService) CreateSecurityProtectionTemplateDomain

CreateSecurityProtectionTemplateDomain creates a domain template

func (*ScdnService) DeleteCacheRule

DeleteCacheRule deletes cache rules

func (*ScdnService) DeleteCertificate

func (s *ScdnService) DeleteCertificate(req CASelfDeleteRequest) (*CASelfDeleteResponse, error)

DeleteCertificate deletes certificates

func (*ScdnService) DeleteDomain

func (s *ScdnService) DeleteDomain(req DomainDeleteRequest) (*DomainDeleteResponse, error)

DeleteDomain deletes domains

func (*ScdnService) DeleteLogDownloadTask

DeleteLogDownloadTask deletes a log download task

func (*ScdnService) DeleteLogDownloadTemplate

DeleteLogDownloadTemplate deletes a log download template

func (*ScdnService) DeleteNetworkSpeedRule

DeleteNetworkSpeedRule deletes rules

func (*ScdnService) DeleteOriginGroups

DeleteOriginGroups deletes origin groups

func (*ScdnService) DeleteOrigins

func (s *ScdnService) DeleteOrigins(req OriginDeleteRequest) (*OriginDeleteResponse, error)

DeleteOrigins deletes origins from a domain

func (*ScdnService) DeleteRuleTemplate

DeleteRuleTemplate deletes a rule template

func (*ScdnService) DeleteSecurityProtectionTemplate

DeleteSecurityProtectionTemplate deletes a template

func (*ScdnService) DisableDomain

func (s *ScdnService) DisableDomain(req DomainDisableRequest) (*DomainDisableResponse, error)

DisableDomain disables domains

func (*ScdnService) DownloadAccessInfo

DownloadAccessInfo downloads access information

func (*ScdnService) EditCertificateName

func (s *ScdnService) EditCertificateName(req CAEditNameRequest) (*CAEditNameResponse, error)

EditCertificateName edits certificate name

func (*ScdnService) EditSecurityProtectionTemplate

EditSecurityProtectionTemplate edits a template

func (*ScdnService) EnableDomain

func (s *ScdnService) EnableDomain(req DomainEnableRequest) (*DomainEnableResponse, error)

EnableDomain enables domains

func (*ScdnService) ExportCertificate

func (s *ScdnService) ExportCertificate(req CASelfExportRequest) (*CASelfExportResponse, error)

ExportCertificate exports certificates

func (*ScdnService) ExportDomains

func (s *ScdnService) ExportDomains(req DomainExportRequest) (*DomainExportResponse, error)

ExportDomains exports domains

func (*ScdnService) GetAccessProgress

func (s *ScdnService) GetAccessProgress() (*AccessProgressResponse, error)

GetAccessProgress gets access progress status list

func (*ScdnService) GetAllLogDownloadTemplateGroups

func (s *ScdnService) GetAllLogDownloadTemplateGroups() (*LogDownloadTemplateGroupAllResponse, error)

GetAllLogDownloadTemplateGroups gets all template groups

func (*ScdnService) GetAllLogDownloadTemplates

func (s *ScdnService) GetAllLogDownloadTemplates() (*LogDownloadTemplateAllResponse, error)

GetAllLogDownloadTemplates gets all templates (for adding tasks)

func (*ScdnService) GetAllOriginGroups

func (s *ScdnService) GetAllOriginGroups(req OriginGroupAllRequest) (*OriginGroupAllResponse, error)

GetAllOriginGroups gets all origin groups

func (*ScdnService) GetCacheCleanConfig

GetCacheCleanConfig gets cache clean configuration list

func (*ScdnService) GetCacheCleanTaskDetail

func (s *ScdnService) GetCacheCleanTaskDetail(req CacheCleanTaskDetailRequest) (*CacheCleanTaskDetailResponse, error)

GetCacheCleanTaskDetail gets cache clean task detail

func (*ScdnService) GetCacheCleanTaskList

func (s *ScdnService) GetCacheCleanTaskList(req CacheCleanTaskListRequest) (*CacheCleanTaskListResponse, error)

GetCacheCleanTaskList gets cache clean task list

func (*ScdnService) GetCacheGlobalConfig

func (s *ScdnService) GetCacheGlobalConfig() (*CacheGlobalConfigGetResponse, error)

GetCacheGlobalConfig gets global cache configuration

func (*ScdnService) GetCachePreheatTaskList

func (s *ScdnService) GetCachePreheatTaskList(req CachePreheatTaskListRequest) (*CachePreheatTaskListResponse, error)

GetCachePreheatTaskList gets preheat task list

func (*ScdnService) GetCacheRules

GetCacheRules gets cache rules list

func (*ScdnService) GetCertificateDetail

func (s *ScdnService) GetCertificateDetail(req CASelfDetailRequest) (*CASelfDetailResponse, error)

GetCertificateDetail gets certificate detail by ID

func (*ScdnService) GetDdosProtectionConfig

GetDdosProtectionConfig gets DDoS protection configuration

func (*ScdnService) GetDomainBaseSettings

GetDomainBaseSettings gets domain base settings

func (*ScdnService) GetDomainTemplates

func (s *ScdnService) GetDomainTemplates(req DomainTemplatesRequest) (*DomainTemplatesResponse, error)

GetDomainTemplates gets domain templates

func (*ScdnService) GetLogDownloadFields

func (s *ScdnService) GetLogDownloadFields() (*LogDownloadFieldsResponse, error)

GetLogDownloadFields gets log download fields

func (*ScdnService) GetMemberGlobalTemplate

func (s *ScdnService) GetMemberGlobalTemplate() (*SecurityProtectionTemplateGetMemberGlobalResponse, error)

GetMemberGlobalTemplate gets member global template

func (*ScdnService) GetNetworkSpeedConfig

GetNetworkSpeedConfig gets template configuration

func (*ScdnService) GetNetworkSpeedRules

GetNetworkSpeedRules gets rules list

func (*ScdnService) GetOriginGroupBindHistory

func (s *ScdnService) GetOriginGroupBindHistory(req OriginGroupBindHistoryRequest) (*OriginGroupBindHistoryResponse, error)

GetOriginGroupBindHistory gets latest bind history

func (*ScdnService) GetOriginGroupDetail

func (s *ScdnService) GetOriginGroupDetail(req OriginGroupDetailRequest) (*OriginGroupDetailResponse, error)

GetOriginGroupDetail gets origin group detail

func (*ScdnService) GetSecurityProtectionIota

func (s *ScdnService) GetSecurityProtectionIota() (*SecurityProtectionIotaResponse, error)

GetSecurityProtectionIota gets iota enum values

func (*ScdnService) GetSecurityProtectionTemplateBindDomains

GetSecurityProtectionTemplateBindDomains gets template bind domain list

func (*ScdnService) GetSecurityProtectionTemplateUnboundDomains

GetSecurityProtectionTemplateUnboundDomains gets unbound template domain list

func (*ScdnService) GetWafRuleConfig

GetWafRuleConfig gets WAF rule configuration

func (*ScdnService) ListBriefDomains

func (s *ScdnService) ListBriefDomains(req BriefDomainListRequest) (*BriefDomainListResponse, error)

ListBriefDomains lists brief domains

func (*ScdnService) ListCertificates

func (s *ScdnService) ListCertificates(req CASelfListRequest) (*CASelfListResponse, error)

ListCertificates lists certificates with various filter options

func (*ScdnService) ListCertificatesByDomains

func (s *ScdnService) ListCertificatesByDomains(req CABatchListRequest) (*CABatchListResponse, error)

ListCertificatesByDomains lists certificates by domain list

func (*ScdnService) ListDomains

func (s *ScdnService) ListDomains(req DomainListRequest) (*DomainListResponse, error)

ListDomains lists domains with various filter options

func (*ScdnService) ListDomainsSimple

func (s *ScdnService) ListDomainsSimple(req DomainSimpleListRequest) (*DomainSimpleListResponse, error)

ListDomainsSimple lists simple domains

func (*ScdnService) ListLogDownloadTasks

ListLogDownloadTasks lists log download tasks

func (*ScdnService) ListLogDownloadTemplateDomains

ListLogDownloadTemplateDomains lists template domains

func (*ScdnService) ListLogDownloadTemplates

ListLogDownloadTemplates lists log download templates

func (*ScdnService) ListOriginGroups

func (s *ScdnService) ListOriginGroups(req OriginGroupListRequest) (*OriginGroupListResponse, error)

ListOriginGroups lists origin groups

func (*ScdnService) ListOrigins

func (s *ScdnService) ListOrigins(req OriginListRequest) (*OriginListResponse, error)

ListOrigins lists origins for a domain

func (*ScdnService) ListRuleTemplateDomains

ListRuleTemplateDomains lists domains bound to a specific rule template

func (*ScdnService) ListRuleTemplates

func (s *ScdnService) ListRuleTemplates(req RuleTemplateListRequest) (*RuleTemplateListResponse, error)

ListRuleTemplates lists rule templates with various filter options

func (*ScdnService) RefreshDomainAccess

RefreshDomainAccess refreshes domain access status

func (*ScdnService) RegenerateLogDownloadTask

RegenerateLogDownloadTask regenerates a log download task

func (*ScdnService) SaveCacheCleanTask

func (s *ScdnService) SaveCacheCleanTask(req CacheCleanSaveRequest) (*CacheCleanSaveResponse, error)

SaveCacheCleanTask submits a cache clean task

func (*ScdnService) SaveCachePreheatTask

func (s *ScdnService) SaveCachePreheatTask(req CachePreheatSaveRequest) (*CachePreheatSaveResponse, error)

SaveCachePreheatTask submits a preheat task

func (*ScdnService) SaveCertificate

func (s *ScdnService) SaveCertificate(req CATextSaveRequest) (*CATextSaveResponse, error)

SaveCertificate saves or updates a certificate using text format

func (*ScdnService) SaveLogDownloadTemplate

SaveLogDownloadTemplate saves (updates) a log download template

func (*ScdnService) SearchSecurityProtectionTemplates

SearchSecurityProtectionTemplates searches template list

func (*ScdnService) SortCacheRules

func (s *ScdnService) SortCacheRules(req CacheRuleSortRequest) (*CacheRuleSortResponse, error)

SortCacheRules sorts cache rules

func (*ScdnService) SortNetworkSpeedRules

SortNetworkSpeedRules sorts rules

func (*ScdnService) SwitchDomainAccessMode

SwitchDomainAccessMode switches domain access mode

func (*ScdnService) SwitchDomainNodes

func (s *ScdnService) SwitchDomainNodes(req DomainNodeSwitchRequest) (*DomainNodeSwitchResponse, error)

SwitchDomainNodes switches domain nodes

func (*ScdnService) UnbindDomainCert

UnbindDomainCert unbinds a certificate from a domain

func (*ScdnService) UnbindRuleTemplateDomains

UnbindRuleTemplateDomains unbinds domains from a rule template

func (*ScdnService) UpdateCacheRule

UpdateCacheRule updates cache rule name/remark

func (*ScdnService) UpdateCacheRuleConfig

UpdateCacheRuleConfig updates cache rule configuration

func (*ScdnService) UpdateCacheRuleStatus

UpdateCacheRuleStatus updates cache rule status (enable/disable)

func (*ScdnService) UpdateDdosProtectionConfig

UpdateDdosProtectionConfig updates DDoS protection configuration

func (*ScdnService) UpdateDomain

func (s *ScdnService) UpdateDomain(req DomainUpdateRequest) (*DomainUpdateResponse, error)

UpdateDomain updates an existing domain

func (*ScdnService) UpdateDomainBaseSettings

UpdateDomainBaseSettings updates domain base settings

func (*ScdnService) UpdateNetworkSpeedConfig

UpdateNetworkSpeedConfig updates template configuration

func (*ScdnService) UpdateNetworkSpeedRule

UpdateNetworkSpeedRule updates a rule

func (*ScdnService) UpdateOriginGroup

UpdateOriginGroup updates an origin group

func (*ScdnService) UpdateOrigins

func (s *ScdnService) UpdateOrigins(req OriginUpdateRequest) (*OriginUpdateResponse, error)

UpdateOrigins updates origins for a domain

func (*ScdnService) UpdateRuleTemplate

UpdateRuleTemplate updates an existing rule template

func (*ScdnService) UpdateWafRuleConfig

UpdateWafRuleConfig updates WAF rule configuration

type SecurityProtectionIotaData

type SecurityProtectionIotaData struct {
	Iota map[string]string `json:"iota"` // Enum key-value pairs
}

SecurityProtectionIotaData get iota data

type SecurityProtectionIotaResponse

type SecurityProtectionIotaResponse struct {
	Status Status                     `json:"status"`
	Data   SecurityProtectionIotaData `json:"data"`
}

SecurityProtectionIotaResponse get iota response

type SecurityProtectionTemplateBatchConfigData

type SecurityProtectionTemplateBatchConfigData struct {
	FailTemplates map[string]string `json:"fail_templates,omitempty"` // Failed templates
}

SecurityProtectionTemplateBatchConfigData batch config template data

type SecurityProtectionTemplateBatchConfigRequest

type SecurityProtectionTemplateBatchConfigRequest struct {
	TemplateIDs                []int                                    `json:"template_ids"`                            // Template ID list
	DdosConfig                 *DdosProtectionGetConfigData             `json:"ddos_config,omitempty"`                   // DDoS config (GetDdosProtectionConfigResponse in proto)
	PreciseAccessControlConfig *UpdatePreciseAccessControlConfigRequest `json:"precise_access_control_config,omitempty"` // Precise access control config
	WafRuleConfig              *BatchUpdateWafRuleConfigRequest         `json:"waf_rule_config,omitempty"`               // WAF rule config
	BotManagementConfig        *UpdateBotManagementConfigRequest        `json:"bot_management_config,omitempty"`         // Bot management config
	All                        int                                      `json:"all,omitempty"`                           // All flag
	Domains                    []string                                 `json:"domains,omitempty"`                       // Domain list
	DomainIDs                  []int                                    `json:"domain_ids,omitempty"`                    // Domain ID list
}

SecurityProtectionTemplateBatchConfigRequest batch config template request

type SecurityProtectionTemplateBatchConfigResponse

type SecurityProtectionTemplateBatchConfigResponse struct {
	Status Status                                    `json:"status"`
	Data   SecurityProtectionTemplateBatchConfigData `json:"data"`
}

SecurityProtectionTemplateBatchConfigResponse batch config template response

type SecurityProtectionTemplateBindDomainData

type SecurityProtectionTemplateBindDomainData struct {
	FailDomains map[string]string `json:"fail_domains,omitempty"` // Failed domains
}

SecurityProtectionTemplateBindDomainData bind template domain data

type SecurityProtectionTemplateBindDomainRequest

type SecurityProtectionTemplateBindDomainRequest struct {
	BusinessID      int   `json:"business_id"`                 // Business ID
	DomainIDs       []int `json:"domain_ids,omitempty"`        // Domain ID list
	BindBusinessIDs []int `json:"bind_business_ids,omitempty"` // Bind business ID list
	GroupIDs        []int `json:"group_ids,omitempty"`         // Group ID list
}

SecurityProtectionTemplateBindDomainRequest bind template domain request

type SecurityProtectionTemplateBindDomainResponse

type SecurityProtectionTemplateBindDomainResponse struct {
	Status Status                                   `json:"status"`
	Data   SecurityProtectionTemplateBindDomainData `json:"data"`
}

SecurityProtectionTemplateBindDomainResponse bind template domain response

type SecurityProtectionTemplateBindDomainSearchData

type SecurityProtectionTemplateBindDomainSearchData struct {
	Domains []SecurityProtectionTemplateDomainInfo `json:"domains"`
	Total   int                                    `json:"total"`
}

SecurityProtectionTemplateBindDomainSearchData get template bind domain list data

type SecurityProtectionTemplateBindDomainSearchRequest

type SecurityProtectionTemplateBindDomainSearchRequest struct {
	BusinessID int    `json:"business_id"`        // Business ID
	Page       int    `json:"page"`               // Page number
	PageSize   int    `json:"page_size"`          // Page size
	Domain     string `json:"domain,omitempty"`   // Domain
	TplType    string `json:"tpl_type,omitempty"` // global, only_domain, more_domain
}

SecurityProtectionTemplateBindDomainSearchRequest get template bind domain list request

type SecurityProtectionTemplateBindDomainSearchResponse

type SecurityProtectionTemplateBindDomainSearchResponse struct {
	Status Status                                         `json:"status"`
	Data   SecurityProtectionTemplateBindDomainSearchData `json:"data"`
}

SecurityProtectionTemplateBindDomainSearchResponse get template bind domain list response

type SecurityProtectionTemplateCreateData

type SecurityProtectionTemplateCreateData struct {
	BusinessID  int               `json:"business_id"`            // Created template ID
	FailDomains map[string]string `json:"fail_domains,omitempty"` // Failed domains
}

SecurityProtectionTemplateCreateData create template data

type SecurityProtectionTemplateCreateDomainData

type SecurityProtectionTemplateCreateDomainData struct {
	FailDomains map[string]string `json:"fail_domains,omitempty"` // Failed domains
}

SecurityProtectionTemplateCreateDomainData create domain template data

type SecurityProtectionTemplateCreateDomainRequest

type SecurityProtectionTemplateCreateDomainRequest struct {
	DomainIDs        []int `json:"domain_ids"`         // Domain ID list
	TemplateSourceID int   `json:"template_source_id"` // Source template ID
}

SecurityProtectionTemplateCreateDomainRequest create domain template request

type SecurityProtectionTemplateCreateDomainResponse

type SecurityProtectionTemplateCreateDomainResponse struct {
	Status Status                                     `json:"status"`
	Data   SecurityProtectionTemplateCreateDomainData `json:"data"`
}

SecurityProtectionTemplateCreateDomainResponse create domain template response

type SecurityProtectionTemplateCreateRequest

type SecurityProtectionTemplateCreateRequest struct {
	Name             string   `json:"name"`                         // Template name
	Remark           string   `json:"remark,omitempty"`             // Remark
	TemplateSourceID int      `json:"template_source_id,omitempty"` // Source template ID
	DomainIDs        []int    `json:"domain_ids,omitempty"`         // Domain ID list
	GroupIDs         []int    `json:"group_ids,omitempty"`          // Group ID list
	Domains          []string `json:"domains,omitempty"`            // Domain list
	BindAll          bool     `json:"bind_all,omitempty"`           // Bind all domains
}

SecurityProtectionTemplateCreateRequest create template request

type SecurityProtectionTemplateCreateResponse

type SecurityProtectionTemplateCreateResponse struct {
	Status Status                               `json:"status"`
	Data   SecurityProtectionTemplateCreateData `json:"data"`
}

SecurityProtectionTemplateCreateResponse create template response

type SecurityProtectionTemplateDeleteRequest

type SecurityProtectionTemplateDeleteRequest struct {
	BusinessID int `json:"business_id"` // Business ID
}

SecurityProtectionTemplateDeleteRequest delete template request

type SecurityProtectionTemplateDeleteResponse

type SecurityProtectionTemplateDeleteResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

SecurityProtectionTemplateDeleteResponse delete template response

type SecurityProtectionTemplateDomainInfo

type SecurityProtectionTemplateDomainInfo struct {
	ID        int    `json:"id"`
	Domain    string `json:"domain"`
	Type      string `json:"type,omitempty"`
	CreatedAt string `json:"created_at,omitempty"`
	Remark    string `json:"remark,omitempty"`
}

SecurityProtectionTemplateDomainInfo template domain information

type SecurityProtectionTemplateEditRequest

type SecurityProtectionTemplateEditRequest struct {
	BusinessID int    `json:"business_id"`      // Business ID
	Name       string `json:"name"`             // Template name
	Remark     string `json:"remark,omitempty"` // Remark
}

SecurityProtectionTemplateEditRequest edit template request

type SecurityProtectionTemplateEditResponse

type SecurityProtectionTemplateEditResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

SecurityProtectionTemplateEditResponse edit template response

type SecurityProtectionTemplateGetMemberGlobalData

type SecurityProtectionTemplateGetMemberGlobalData struct {
	Template        *SecurityProtectionTemplateInfo `json:"template,omitempty"`
	BindDomainCount int                             `json:"bind_domain_count,omitempty"`
}

SecurityProtectionTemplateGetMemberGlobalData get member global template data

type SecurityProtectionTemplateGetMemberGlobalResponse

type SecurityProtectionTemplateGetMemberGlobalResponse struct {
	Status Status                                        `json:"status"`
	Data   SecurityProtectionTemplateGetMemberGlobalData `json:"data"`
}

SecurityProtectionTemplateGetMemberGlobalResponse get member global template response

type SecurityProtectionTemplateInfo

type SecurityProtectionTemplateInfo struct {
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Type        string `json:"type"` // domain, template, global
	CreatedAt   string `json:"created_at"`
	Remark      string `json:"remark,omitempty"`
	SubMemberID int    `json:"sub_member_id,omitempty"`
	DomainID    int    `json:"domain_id,omitempty"` // When querying domain template, this field has value
	DomainCount int    `json:"domain_count,omitempty"`
}

SecurityProtectionTemplateInfo security protection template information

type SecurityProtectionTemplateSearchData

type SecurityProtectionTemplateSearchData struct {
	Templates        []SecurityProtectionTemplateInfo `json:"templates"`
	Total            int                              `json:"total"`
	TotalDomainCount int                              `json:"total_domain_count,omitempty"`
}

SecurityProtectionTemplateSearchData search template list data

type SecurityProtectionTemplateSearchRequest

type SecurityProtectionTemplateSearchRequest struct {
	TplType    string `json:"tpl_type"`              // global, only_domain, more_domain
	SearchType string `json:"search_type,omitempty"` // Search type
	SearchKey  string `json:"search_key,omitempty"`  // Search keyword
	Page       int    `json:"page"`                  // Page number
	PageSize   int    `json:"page_size"`             // Page size
}

SecurityProtectionTemplateSearchRequest search template list request

type SecurityProtectionTemplateSearchResponse

type SecurityProtectionTemplateSearchResponse struct {
	Status Status                               `json:"status"`
	Data   SecurityProtectionTemplateSearchData `json:"data"`
}

SecurityProtectionTemplateSearchResponse search template list response

type SecurityProtectionTemplateUnboundDomainSearchData

type SecurityProtectionTemplateUnboundDomainSearchData struct {
	Domains []SecurityProtectionTemplateDomainInfo `json:"domains"`
	Total   int                                    `json:"total"`
}

SecurityProtectionTemplateUnboundDomainSearchData get unbound template domain list data

type SecurityProtectionTemplateUnboundDomainSearchRequest

type SecurityProtectionTemplateUnboundDomainSearchRequest struct {
	Domain   string `json:"domain,omitempty"`    // Domain
	Page     int    `json:"page"`                // Page number
	PageSize int    `json:"page_size"`           // Page size
	MemberID int    `json:"member_id,omitempty"` // Member ID
}

SecurityProtectionTemplateUnboundDomainSearchRequest get unbound template domain list request

type SecurityProtectionTemplateUnboundDomainSearchResponse

type SecurityProtectionTemplateUnboundDomainSearchResponse struct {
	Status Status                                            `json:"status"`
	Data   SecurityProtectionTemplateUnboundDomainSearchData `json:"data"`
}

SecurityProtectionTemplateUnboundDomainSearchResponse get unbound template domain list response

type Slice

type Slice struct {
	Status string `json:"status"` // "on" or "off"
}

Slice range request configuration

type SourceSiteProtect

type SourceSiteProtect struct {
	Status string `json:"status"` // "on" or "off"
	Num    int    `json:"num"`    // Number of requests
	Second int    `json:"second"` // Time in seconds
}

SourceSiteProtect source site protection configuration

type Status

type Status struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

Status API response status

type TestConfig

type TestConfig struct {
	AccessKey              string `json:"access_key"`
	SecretKey              string `json:"secret_key"`
	Endpoint               string `json:"endpoint"`
	TimeoutSeconds         int    `json:"timeout_seconds"`
	EnableIntegrationTests bool   `json:"enable_integration_tests"`
}

Test configuration for integration tests

type UpdateBotManagementConfigRequest

type UpdateBotManagementConfigRequest struct {
	BusinessID int         `json:"business_id"`           // Business ID
	IDs        []int       `json:"ids"`                   // ID list
	DataAction interface{} `json:"data_action,omitempty"` // Data action
}

UpdateBotManagementConfigRequest update bot management config request

type UpdatePreciseAccessControlConfigRequest

type UpdatePreciseAccessControlConfigRequest struct {
	Action   string                       `json:"action"`   // add, cover
	Policies []PreciseAccessControlPolicy `json:"policies"` // Policy list
}

UpdatePreciseAccessControlConfigRequest update precise access control config request

type UploadFile

type UploadFile struct {
	UploadSize     int    `json:"upload_size"`      // Upload size
	UploadSizeUnit string `json:"upload_size_unit"` // Unit (e.g., "MB")
}

UploadFile upload file configuration

type UpstreamCheck

type UpstreamCheck struct {
	Status  string `json:"status"`         // "on" or "off"
	Fails   int    `json:"fails"`          // Consecutive unavailable times (1-10)
	Intval  int    `json:"intval"`         // Check interval in seconds (3-300)
	Rise    int    `json:"rise"`           // Consecutive available times (1-10)
	Timeout int    `json:"timeout"`        // TCP connection timeout in seconds (1-10)
	Type    string `json:"type"`           // "tcp" or "http"
	Op      string `json:"op,omitempty"`   // HTTP method: "HEAD", "GET", or "AUTO" (required when type is "http")
	Path    string `json:"path,omitempty"` // HTTP check path, must start with "/" (required when type is "http")
}

UpstreamCheck upstream check configuration

type UpstreamRedirect

type UpstreamRedirect struct {
	Status string `json:"status"` // "on" or "off"
}

UpstreamRedirect upstream redirect configuration

type UpstreamURIChange

type UpstreamURIChange struct {
	Status string `json:"status"` // "on" or "off"
}

UpstreamURIChange upstream URI change configuration

type UpstreamURIChangeRule

type UpstreamURIChangeRule struct {
	Type   string `json:"typ"`    // Type
	Action string `json:"action"` // Action
	Match  string `json:"match"`  // Match value
	Target string `json:"target"` // Target value
}

UpstreamURIChangeRule upstream URI change rule

type VisitorAuthentication

type VisitorAuthentication struct {
	ID             int    `json:"id,omitempty"`
	Status         string `json:"status"`           // on, off
	AuthToken      string `json:"auth_token"`       // Authentication token
	PassStillCheck int    `json:"pass_still_check"` // 0 or 1
}

VisitorAuthentication visitor authentication config

type WafInterceptPage

type WafInterceptPage struct {
	ID      int    `json:"id,omitempty"`
	Status  string `json:"status"`            // on, off
	Type    string `json:"type"`              // custom, default, keep
	Content string `json:"content,omitempty"` // Custom content
}

WafInterceptPage WAF intercept page config

type WafRuleConfig

type WafRuleConfig struct {
	ID            int    `json:"id,omitempty"`
	Status        string `json:"status"`                    // on, off, keep
	AIStatus      string `json:"ai_status"`                 // on, off
	WafLevel      string `json:"waf_level"`                 // general, strict, keep
	WafMode       string `json:"waf_mode"`                  // off, active, block, ban, keep
	WafStrategyID int    `json:"waf_strategy_id,omitempty"` // WAF strategy ID
}

WafRuleConfig WAF rule config

type WafRuleConfigGetData

type WafRuleConfigGetData struct {
	WafRuleConfig          *WafRuleConfig                `json:"waf_rule_config,omitempty"`
	WafInterceptPage       *WafInterceptPage             `json:"waf_intercept_page,omitempty"`
	ReplayAttackProtection *ReplayAttackProtectionConfig `json:"replay_attack_protection,omitempty"`
	CsrfProtection         *CSRFProtectionConfig         `json:"csrf_protection,omitempty"`
	WebShellProtection     *WebShellProtectionConfig     `json:"web_shell_protection,omitempty"`
}

WafRuleConfigGetData get WAF rule config data

type WafRuleConfigGetRequest

type WafRuleConfigGetRequest struct {
	BusinessID int      `json:"business_id"`    // Business ID
	Keys       []string `json:"keys,omitempty"` // Specify config keys
}

WafRuleConfigGetRequest get WAF rule config request

type WafRuleConfigGetResponse

type WafRuleConfigGetResponse struct {
	Status Status               `json:"status"`
	Data   WafRuleConfigGetData `json:"data"`
}

WafRuleConfigGetResponse get WAF rule config response

type WafRuleConfigUpdateRequest

type WafRuleConfigUpdateRequest struct {
	BusinessID             int                           `json:"business_id"` // Business ID
	WafRuleConfig          *WafRuleConfig                `json:"waf_rule_config,omitempty"`
	WafInterceptPage       *WafInterceptPage             `json:"waf_intercept_page,omitempty"`
	ReplayAttackProtection *ReplayAttackProtectionConfig `json:"replay_attack_protection,omitempty"`
	CsrfProtection         *CSRFProtectionConfig         `json:"csrf_protection,omitempty"`
	WebShellProtection     *WebShellProtectionConfig     `json:"web_shell_protection,omitempty"`
}

WafRuleConfigUpdateRequest update WAF rule config request

type WafRuleConfigUpdateResponse

type WafRuleConfigUpdateResponse struct {
	Status Status      `json:"status"`
	Data   interface{} `json:"data"`
}

WafRuleConfigUpdateResponse update WAF rule config response

type WebP

type WebP struct {
	Status string `json:"status"` // "on" or "off"
}

WebP WebP format configuration

type WebShellProtectionConfig

type WebShellProtectionConfig struct {
	ID     int    `json:"id,omitempty"`
	Status string `json:"status"` // on, off
}

WebShellProtectionConfig web shell protection config

type WebSocket

type WebSocket struct {
	Status string `json:"status"` // "on" or "off"
}

WebSocket WebSocket configuration

Jump to

Keyboard shortcuts

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