// This file is auto-generated, don't edit it. Thanks.
package client

import (
	"github.com/alibabacloud-go/tea/dara"
)

type iListInstancesQuotaRequest interface {
	dara.Model
	String() string
	GoString() string
	SetInstanceIds(v string) *ListInstancesQuotaRequest
	GetInstanceIds() *string
	SetQuotaName(v string) *ListInstancesQuotaRequest
	GetQuotaName() *string
}

type ListInstancesQuotaRequest struct {
	// Multiple instance IDs separated by commas (,). You can obtain instance IDs by calling the [ListSites](https://help.aliyun.com/document_detail/2850189.html) operation.
	//
	// This parameter is required.
	//
	// example:
	//
	// sp-xcdn-96wblslz****,sp-xcdn-81wblslz****
	InstanceIds *string `json:"InstanceIds,omitempty" xml:"InstanceIds,omitempty"`
	// The quota name. Separate multiple names with commas (,). Valid values:
	//
	// - **waf:phase:http_anti_scan:actions**: WAF scan protection - action enumeration.
	//
	// - **waf:phase:http_bot:actions**: WAF bot management - all action enumeration.
	//
	// - **waf:phase:http_bot:http_custom_cc_dev:characteristic:fields**: WAF bot management - custom device rate limiting statistical object enumeration.
	//
	// - **waf:phase:http_bot:http_custom_cc_ip:characteristic:fields**: WAF bot management - custom IP rate limiting statistical object enumeration.
	//
	// - **waf:phase:http_bot:match:symbols**: WAF bot management - match operator enumeration.
	//
	// - **waf:phase:http_bot:http_custom_cc:characteristic:fields**: WAF bot management - custom session rate limiting statistical object enumeration.
	//
	// - **waf:phase:http_bot:match:fields**: WAF bot management - match field enumeration.
	//
	// - **waf:phase:http_whitelist:match:symbols**: WAF whitelist - match operator enumeration.
	//
	// - **waf:phase:http_whitelist:match:fields**: WAF whitelist - match field enumeration.
	//
	// - **waf:phase:http_anti_scan:http_directory_traversal:characteristic:fields**: WAF scan protection - folder traverse blocking statistical object enumeration.
	//
	// - **waf:phase:http_anti_scan:http_high_frequency:characteristic:fields**: WAF scan protection - high-frequency scan blocking statistical object enumeration.
	//
	// - **waf:phase:http_anti_scan:match:symbols**: WAF scan protection - match operator enumeration.
	//
	// - **waf:phase:http_anti_scan:match:fields**: WAF scan protection - match field enumeration.
	//
	// - **waf:phase:http_managed:actions**: WAF managed rules - action enumeration.
	//
	// - **waf:phase:http_managed:group:reference:ids**: WAF managed rules - referenced rule group enumeration.
	//
	// - **waf:phase:http_ratelimit:actions**: WAF rate limiting - action enumeration.
	//
	// - **waf:phase:http_ratelimit:ttls**: WAF rate limiting - duration enumeration.
	//
	// - **waf:phase:http_ratelimit:intervals**: WAF rate limiting - statistical period.
	//
	// - **waf:phase:http_ratelimit:http_ratelimit:characteristic:fields**: WAF rate limiting - control type rule match characteristic enumeration.
	//
	// - **waf:phase:http_ratelimit:match:symbols**: WAF rate limiting rule phase match operator enumeration.
	//
	// - **waf:phase:http_ratelimit:match:fields**: WAF rate limiting rule phase match field enumeration.
	//
	// - **waf:phase:http_custom:actions**: WAF custom rule phase action enumeration.
	//
	// - **waf:phase:http_custom:match:symbols**: WAF custom rule phase match operator enumeration.
	//
	// - **waf:phase:http_custom:match:fields**: WAF custom rule phase match field.
	//
	// - **waiting_roomqueuing_method**: waiting room - queuing method.
	//
	// - **origin_rulesorigin_scheme**: back-to-origin rules - back-to-origin protocol.
	//
	// - **origin_rulesorigin_sni**: back-to-origin rules - back-to-origin SNI.
	//
	// - **origin_rulesorigin_host**: back-to-origin rules - back-to-origin host.
	//
	// - **fourlayeracceleration**: Layer 4 acceleration.
	//
	// - **rtlog_service**: real-time log feature switch.
	//
	// - **dashboard_traffic**: value-added capability of network traffic analysis.
	//
	// - **custom_name_server**: custom NS name.
	//
	// - **waf:phase:http_bot:enable**: WAF bot management switch.
	//
	// - **waf:phase:http_whitelist:enable**: WAF whitelist switch.
	//
	// - **instantlog**: instant log active or inactive.
	//
	// - **waf:phase:http_anti_scan:enable**: WAF scan protection switch.
	//
	// - **waf:phase:http_managed:group:reference:enable**: WAF managed rules - referenced rule group configuration switch.
	//
	// - **waf:phase:http_managed:enable**: WAF managed rules switch.
	//
	// - **waf:phase:http_ratelimit:on_hit:enable**: WAF rate limiting - apply on cache-hit requests switch.
	//
	// - **ddos**: DDoS instance.
	//
	// - **waf:phase:http_ratelimit:enable**: WAF rate limiting rule phase switch.
	//
	// - **waf:phase:http_custom:enable**: WAF custom rule phase switch.
	//
	// - **waf:phase:all:page:reference:enable**: WAF custom response page switch.
	//
	// - **rules_support_regex**: whether the rule DPI engine supports regular expressions.
	//
	// - **waiting_room_event**: waiting room - scheduled event.
	//
	// - **waiting_room_rule**: waiting room - bypass waiting room.
	//
	// - **waiting_roomjson_response**: waiting room - enable JSON response.
	//
	// - **waiting_roomdisable_session_renewal**: waiting room - disable session renewal.
	//
	// - **origin_rulesdns_record**: back-to-origin rules - DNS record.
	//
	// - **managed_transformsadd_client_geolocation_headers**: whether the real client IP header is active in transform rules.
	//
	// - **tiered_cacheregional_enable**: area cache.
	//
	// - **real_client_ip_header**: client IP header.
	//
	// - **data_timerange**: data query time range in minutes.
	//
	// - **cache_rulesedge_cache_ttl**: cache - edge TTL.
	//
	// - **cache_rulesbrowser_cache_ttl**: cache - browser TTL.
	//
	// - **fourLayerRecordCount**: record count limit for Layer 4 acceleration.
	//
	// - **waitingroomRuleCount**: maximum number of rules per waiting room ID.
	//
	// - **waitingroomEventCount**: maximum number of events per waiting room ID.
	//
	// - **waitingroom_custom_pathhost**: waiting room - hostname and path.
	//
	// - **er_routers**: function routing.
	//
	// - **cache_rulesrule_quota**: cache rules.
	//
	// - **configuration_rulesrule_quota**: configuration rules.
	//
	// - **redirect_rulesrule_quota**: redirect rules.
	//
	// - **compression_rulesrule_quota**: compression rules.
	//
	// - **origin_rulesrule_quota**: back-to-origin rules.
	//
	// - **waf:phase:http_bot:rulesets_per_instance:less_than_or_equal**: WAF bot management - maximum number of rule groups per instance.
	//
	// - **waf:phase:http_whitelist:rules_per_instance:less_than_or_equal**: WAF whitelist - maximum number of rules per instance.
	//
	// - **rtlog_quota**: quota for real-time log push node count.
	//
	// - **waf:phase:http_anti_scan:rulesets_per_instance:less_than_or_equal**: WAF scan protection - maximum number of rule groups per instance.
	//
	// - **ddos_instance**: number of DDoS instances.
	//
	// - **waf:phase:http_ratelimit:rules_per_instance:less_than_or_equal**: maximum number of WAF rate limiting rules.
	//
	// - **waf:phase:http_custom:rules_per_instance:less_than_or_equal**: WAF custom rule phase - maximum number of rules per instance.
	//
	// - **ruleNestedConditionalCount**: number of nesting levels for rules.
	//
	// - **waiting_room**: waiting room.
	//
	// - **transition_rule**: transform rule.
	//
	// - **customHttpCert**: number of custom certificates.
	//
	// - **free_cert**: number of free certificates.
	//
	// - **preload**: resource prefetch.
	//
	// - **refresh_cache_tag**: refresh - cache tag.
	//
	// - **refresh_ignore_param**: refresh - purge without parameters.
	//
	// - **refresh_directory**: refresh - purge by folder.
	//
	// - **refresh_hostname**: refresh - purge by hostname.
	//
	// - **refresh_all**: refresh - purge all cache.
	//
	// - **refresh_file**: URL purge.
	//
	// - **wildcard**: number of wildcard domain names.
	//
	// - **recordCount**: number of Layer 7 records.
	//
	// - **siteCount**: number of sites.
	//
	// - **httpsrule_quota**: number of SSL/TLS rules.
	//
	// This parameter is required.
	//
	// example:
	//
	// waf:phase:http_anti_scan:actions, waf:phase:http_bot:actions, siteCount
	QuotaName *string `json:"QuotaName,omitempty" xml:"QuotaName,omitempty"`
}

func (s ListInstancesQuotaRequest) String() string {
	return dara.Prettify(s)
}

func (s ListInstancesQuotaRequest) GoString() string {
	return s.String()
}

func (s *ListInstancesQuotaRequest) GetInstanceIds() *string {
	return s.InstanceIds
}

func (s *ListInstancesQuotaRequest) GetQuotaName() *string {
	return s.QuotaName
}

func (s *ListInstancesQuotaRequest) SetInstanceIds(v string) *ListInstancesQuotaRequest {
	s.InstanceIds = &v
	return s
}

func (s *ListInstancesQuotaRequest) SetQuotaName(v string) *ListInstancesQuotaRequest {
	s.QuotaName = &v
	return s
}

func (s *ListInstancesQuotaRequest) Validate() error {
	return dara.Validate(s)
}
