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

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

type iUpdateRecursionZoneProxyPatternRequest interface {
	dara.Model
	String() string
	GoString() string
	SetClientToken(v string) *UpdateRecursionZoneProxyPatternRequest
	GetClientToken() *string
	SetProxyPattern(v string) *UpdateRecursionZoneProxyPatternRequest
	GetProxyPattern() *string
	SetZoneId(v string) *UpdateRecursionZoneProxyPatternRequest
	GetZoneId() *string
}

type UpdateRecursionZoneProxyPatternRequest struct {
	// A client token that ensures the request is idempotent. This token is generated by the client and must be unique for each request. The token can be up to 64 ASCII characters long.
	//
	// example:
	//
	// 21079fa016944979537637959d09bc
	ClientToken *string `json:"ClientToken,omitempty" xml:"ClientToken,omitempty"`
	// Specifies whether to enable recursive proxy for subdomains. Valid values:
	//
	// zone: Disables recursive proxy. If a request is made for a subdomain that does not exist, the system returns an NXDOMAIN response.
	//
	// record: Enables recursive proxy. If a request is made for a subdomain that does not exist, the system queries the forwarding and recursion modules in order. The final result is used to respond to the request.
	//
	// example:
	//
	// record
	ProxyPattern *string `json:"ProxyPattern,omitempty" xml:"ProxyPattern,omitempty"`
	// The unique ID of the zone.
	//
	// example:
	//
	// 173671468000011
	ZoneId *string `json:"ZoneId,omitempty" xml:"ZoneId,omitempty"`
}

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

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

func (s *UpdateRecursionZoneProxyPatternRequest) GetClientToken() *string {
	return s.ClientToken
}

func (s *UpdateRecursionZoneProxyPatternRequest) GetProxyPattern() *string {
	return s.ProxyPattern
}

func (s *UpdateRecursionZoneProxyPatternRequest) GetZoneId() *string {
	return s.ZoneId
}

func (s *UpdateRecursionZoneProxyPatternRequest) SetClientToken(v string) *UpdateRecursionZoneProxyPatternRequest {
	s.ClientToken = &v
	return s
}

func (s *UpdateRecursionZoneProxyPatternRequest) SetProxyPattern(v string) *UpdateRecursionZoneProxyPatternRequest {
	s.ProxyPattern = &v
	return s
}

func (s *UpdateRecursionZoneProxyPatternRequest) SetZoneId(v string) *UpdateRecursionZoneProxyPatternRequest {
	s.ZoneId = &v
	return s
}

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