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

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

type iGetSmsTemplateResponseBody interface {
	dara.Model
	String() string
	GoString() string
	SetApplyScene(v string) *GetSmsTemplateResponseBody
	GetApplyScene() *string
	SetAuditInfo(v *GetSmsTemplateResponseBodyAuditInfo) *GetSmsTemplateResponseBody
	GetAuditInfo() *GetSmsTemplateResponseBodyAuditInfo
	SetCode(v string) *GetSmsTemplateResponseBody
	GetCode() *string
	SetCreateDate(v string) *GetSmsTemplateResponseBody
	GetCreateDate() *string
	SetFileUrlList(v *GetSmsTemplateResponseBodyFileUrlList) *GetSmsTemplateResponseBody
	GetFileUrlList() *GetSmsTemplateResponseBodyFileUrlList
	SetIntlType(v int32) *GetSmsTemplateResponseBody
	GetIntlType() *int32
	SetMessage(v string) *GetSmsTemplateResponseBody
	GetMessage() *string
	SetMoreDataFileUrlList(v *GetSmsTemplateResponseBodyMoreDataFileUrlList) *GetSmsTemplateResponseBody
	GetMoreDataFileUrlList() *GetSmsTemplateResponseBodyMoreDataFileUrlList
	SetOrderId(v string) *GetSmsTemplateResponseBody
	GetOrderId() *string
	SetRelatedSignName(v string) *GetSmsTemplateResponseBody
	GetRelatedSignName() *string
	SetRemark(v string) *GetSmsTemplateResponseBody
	GetRemark() *string
	SetRequestId(v string) *GetSmsTemplateResponseBody
	GetRequestId() *string
	SetTemplateCode(v string) *GetSmsTemplateResponseBody
	GetTemplateCode() *string
	SetTemplateContent(v string) *GetSmsTemplateResponseBody
	GetTemplateContent() *string
	SetTemplateName(v string) *GetSmsTemplateResponseBody
	GetTemplateName() *string
	SetTemplateStatus(v string) *GetSmsTemplateResponseBody
	GetTemplateStatus() *string
	SetTemplateTag(v int32) *GetSmsTemplateResponseBody
	GetTemplateTag() *int32
	SetTemplateType(v string) *GetSmsTemplateResponseBody
	GetTemplateType() *string
	SetVariableAttribute(v string) *GetSmsTemplateResponseBody
	GetVariableAttribute() *string
	SetVendorAuditStatus(v map[string]interface{}) *GetSmsTemplateResponseBody
	GetVendorAuditStatus() map[string]interface{}
}

type GetSmsTemplateResponseBody struct {
	// Application scenario content.
	//
	// example:
	//
	// http://www.aliyun.com/
	ApplyScene *string `json:"ApplyScene,omitempty" xml:"ApplyScene,omitempty"`
	// Audit information.
	AuditInfo *GetSmsTemplateResponseBodyAuditInfo `json:"AuditInfo,omitempty" xml:"AuditInfo,omitempty" type:"Struct"`
	// Request status code.
	//
	// 	- OK indicates a successful request.
	//
	// 	- For other error codes, please refer to [API Error Codes](https://help.aliyun.com/document_detail/101346.html).
	//
	// example:
	//
	// OK
	Code *string `json:"Code,omitempty" xml:"Code,omitempty"`
	// The time when the SMS template was created.
	//
	// example:
	//
	// 2024-06-03 10:02:34
	CreateDate  *string                                `json:"CreateDate,omitempty" xml:"CreateDate,omitempty"`
	FileUrlList *GetSmsTemplateResponseBodyFileUrlList `json:"FileUrlList,omitempty" xml:"FileUrlList,omitempty" type:"Struct"`
	// International/Hong Kong, Macao, and Taiwan template type. When the **TemplateType*	- parameter is **3**, this parameter is required for international/Hong Kong, Macao, and Taiwan templates, with values:
	//
	// - **0**: Verification code.
	//
	// - **1**: SMS notification.
	//
	// - **2**: Promotional SMS.
	//
	// example:
	//
	// 0
	IntlType *int32 `json:"IntlType,omitempty" xml:"IntlType,omitempty"`
	// Description of the status code.
	//
	// example:
	//
	// OK
	Message             *string                                        `json:"Message,omitempty" xml:"Message,omitempty"`
	MoreDataFileUrlList *GetSmsTemplateResponseBodyMoreDataFileUrlList `json:"MoreDataFileUrlList,omitempty" xml:"MoreDataFileUrlList,omitempty" type:"Struct"`
	// Work order number.
	//
	// This parameter is used by auditors when querying the audit. You need to provide this work order number when requesting expedited review.
	//
	// example:
	//
	// 2003019****
	OrderId *string `json:"OrderId,omitempty" xml:"OrderId,omitempty"`
	// The SMS signature associated with the template when applied.
	//
	// example:
	//
	// 阿里云
	RelatedSignName *string `json:"RelatedSignName,omitempty" xml:"RelatedSignName,omitempty"`
	// Explanation for the SMS template application, which is one of the reference information for template review.
	//
	// example:
	//
	// 申请验证码模板
	Remark *string `json:"Remark,omitempty" xml:"Remark,omitempty"`
	// The ID of this call request, which is a unique identifier generated by Alibaba Cloud for the request and can be used for troubleshooting and issue定位.
	//
	// example:
	//
	// 819BE656-D2E0-4858-8B21-B2E47708****
	RequestId *string `json:"RequestId,omitempty" xml:"RequestId,omitempty"`
	// SMS template code.
	//
	// example:
	//
	// SMS_20375****
	TemplateCode *string `json:"TemplateCode,omitempty" xml:"TemplateCode,omitempty"`
	// Content of the SMS template.
	//
	// example:
	//
	// 您正在申请手机注册，验证码为：${code}，5分钟内有效！
	TemplateContent *string `json:"TemplateContent,omitempty" xml:"TemplateContent,omitempty"`
	// Name of the SMS template.
	//
	// example:
	//
	// 验证码
	TemplateName *string `json:"TemplateName,omitempty" xml:"TemplateName,omitempty"`
	// Template review status. Return values:
	//
	// - **0**: Under review.
	//
	// - **1**: Approved.
	//
	// - **2**: Not approved, with reasons for failure returned. Please refer to [Handling Suggestions for Failed SMS Reviews](https://help.aliyun.com/zh/sms/user-guide/causes-of-application-failures-and-suggestions?spm=a2c4g.11186623.0.0.41fd339f3bPSCQ), invoke the [UpdateSmsTemplate](https://help.aliyun.com/zh/sms/developer-reference/api-dysmsapi-2017-05-25-updatesmstemplate?spm) API or modify the SMS template on the [Template Management](https://dysms.console.aliyun.com/domestic/text/template) page.
	//
	// - **10**: Review canceled.
	//
	// example:
	//
	// 2
	TemplateStatus *string `json:"TemplateStatus,omitempty" xml:"TemplateStatus,omitempty"`
	// Template identifier, indicating whether the template is user-defined or system-provided. Values:
	//
	// - **2**: User-defined template.
	//
	// - **3**: System-provided template.
	//
	// example:
	//
	// 2
	TemplateTag *int32 `json:"TemplateTag,omitempty" xml:"TemplateTag,omitempty"`
	// SMS type. Values:
	//
	// - **0**: Verification code.
	//
	// - **1**: SMS notification.
	//
	// - **2**: Promotional SMS.
	//
	// - **3**: International/Hong Kong, Macao, and Taiwan messages.
	//
	// > Only enterprise-certified users can apply for promotional SMS and international/Hong Kong, Macao, and Taiwan messages. For details on the differences between personal and enterprise user rights, please refer to [Usage Notes](https://help.aliyun.com/zh/sms/user-guide/usage-notes?spm=a2c4g.11186623.0.0.67447f576NJnE8).
	//
	// example:
	//
	// 0
	TemplateType *string `json:"TemplateType,omitempty" xml:"TemplateType,omitempty"`
	// Template variable rules.
	//
	// For detailed rules of template variables, refer to the [Example Document](https://help.aliyun.com/zh/sms/templaterule-template-variable-parameter-filling-example).
	//
	// example:
	//
	// {"code":"characterWithNumber"}
	VariableAttribute *string                `json:"VariableAttribute,omitempty" xml:"VariableAttribute,omitempty"`
	VendorAuditStatus map[string]interface{} `json:"VendorAuditStatus,omitempty" xml:"VendorAuditStatus,omitempty"`
}

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

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

func (s *GetSmsTemplateResponseBody) GetApplyScene() *string {
	return s.ApplyScene
}

func (s *GetSmsTemplateResponseBody) GetAuditInfo() *GetSmsTemplateResponseBodyAuditInfo {
	return s.AuditInfo
}

func (s *GetSmsTemplateResponseBody) GetCode() *string {
	return s.Code
}

func (s *GetSmsTemplateResponseBody) GetCreateDate() *string {
	return s.CreateDate
}

func (s *GetSmsTemplateResponseBody) GetFileUrlList() *GetSmsTemplateResponseBodyFileUrlList {
	return s.FileUrlList
}

func (s *GetSmsTemplateResponseBody) GetIntlType() *int32 {
	return s.IntlType
}

func (s *GetSmsTemplateResponseBody) GetMessage() *string {
	return s.Message
}

func (s *GetSmsTemplateResponseBody) GetMoreDataFileUrlList() *GetSmsTemplateResponseBodyMoreDataFileUrlList {
	return s.MoreDataFileUrlList
}

func (s *GetSmsTemplateResponseBody) GetOrderId() *string {
	return s.OrderId
}

func (s *GetSmsTemplateResponseBody) GetRelatedSignName() *string {
	return s.RelatedSignName
}

func (s *GetSmsTemplateResponseBody) GetRemark() *string {
	return s.Remark
}

func (s *GetSmsTemplateResponseBody) GetRequestId() *string {
	return s.RequestId
}

func (s *GetSmsTemplateResponseBody) GetTemplateCode() *string {
	return s.TemplateCode
}

func (s *GetSmsTemplateResponseBody) GetTemplateContent() *string {
	return s.TemplateContent
}

func (s *GetSmsTemplateResponseBody) GetTemplateName() *string {
	return s.TemplateName
}

func (s *GetSmsTemplateResponseBody) GetTemplateStatus() *string {
	return s.TemplateStatus
}

func (s *GetSmsTemplateResponseBody) GetTemplateTag() *int32 {
	return s.TemplateTag
}

func (s *GetSmsTemplateResponseBody) GetTemplateType() *string {
	return s.TemplateType
}

func (s *GetSmsTemplateResponseBody) GetVariableAttribute() *string {
	return s.VariableAttribute
}

func (s *GetSmsTemplateResponseBody) GetVendorAuditStatus() map[string]interface{} {
	return s.VendorAuditStatus
}

func (s *GetSmsTemplateResponseBody) SetApplyScene(v string) *GetSmsTemplateResponseBody {
	s.ApplyScene = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetAuditInfo(v *GetSmsTemplateResponseBodyAuditInfo) *GetSmsTemplateResponseBody {
	s.AuditInfo = v
	return s
}

func (s *GetSmsTemplateResponseBody) SetCode(v string) *GetSmsTemplateResponseBody {
	s.Code = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetCreateDate(v string) *GetSmsTemplateResponseBody {
	s.CreateDate = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetFileUrlList(v *GetSmsTemplateResponseBodyFileUrlList) *GetSmsTemplateResponseBody {
	s.FileUrlList = v
	return s
}

func (s *GetSmsTemplateResponseBody) SetIntlType(v int32) *GetSmsTemplateResponseBody {
	s.IntlType = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetMessage(v string) *GetSmsTemplateResponseBody {
	s.Message = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetMoreDataFileUrlList(v *GetSmsTemplateResponseBodyMoreDataFileUrlList) *GetSmsTemplateResponseBody {
	s.MoreDataFileUrlList = v
	return s
}

func (s *GetSmsTemplateResponseBody) SetOrderId(v string) *GetSmsTemplateResponseBody {
	s.OrderId = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetRelatedSignName(v string) *GetSmsTemplateResponseBody {
	s.RelatedSignName = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetRemark(v string) *GetSmsTemplateResponseBody {
	s.Remark = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetRequestId(v string) *GetSmsTemplateResponseBody {
	s.RequestId = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetTemplateCode(v string) *GetSmsTemplateResponseBody {
	s.TemplateCode = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetTemplateContent(v string) *GetSmsTemplateResponseBody {
	s.TemplateContent = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetTemplateName(v string) *GetSmsTemplateResponseBody {
	s.TemplateName = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetTemplateStatus(v string) *GetSmsTemplateResponseBody {
	s.TemplateStatus = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetTemplateTag(v int32) *GetSmsTemplateResponseBody {
	s.TemplateTag = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetTemplateType(v string) *GetSmsTemplateResponseBody {
	s.TemplateType = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetVariableAttribute(v string) *GetSmsTemplateResponseBody {
	s.VariableAttribute = &v
	return s
}

func (s *GetSmsTemplateResponseBody) SetVendorAuditStatus(v map[string]interface{}) *GetSmsTemplateResponseBody {
	s.VendorAuditStatus = v
	return s
}

func (s *GetSmsTemplateResponseBody) Validate() error {
	if s.AuditInfo != nil {
		if err := s.AuditInfo.Validate(); err != nil {
			return err
		}
	}
	if s.FileUrlList != nil {
		if err := s.FileUrlList.Validate(); err != nil {
			return err
		}
	}
	if s.MoreDataFileUrlList != nil {
		if err := s.MoreDataFileUrlList.Validate(); err != nil {
			return err
		}
	}
	return nil
}

type GetSmsTemplateResponseBodyAuditInfo struct {
	// Audit date and time.
	//
	// example:
	//
	// 2024-06-03 11:20:34
	AuditDate *string `json:"AuditDate,omitempty" xml:"AuditDate,omitempty"`
	// Reasons for failed audit.
	//
	// example:
	//
	// 模板内容中包含错别字。
	RejectInfo *string `json:"RejectInfo,omitempty" xml:"RejectInfo,omitempty"`
}

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

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

func (s *GetSmsTemplateResponseBodyAuditInfo) GetAuditDate() *string {
	return s.AuditDate
}

func (s *GetSmsTemplateResponseBodyAuditInfo) GetRejectInfo() *string {
	return s.RejectInfo
}

func (s *GetSmsTemplateResponseBodyAuditInfo) SetAuditDate(v string) *GetSmsTemplateResponseBodyAuditInfo {
	s.AuditDate = &v
	return s
}

func (s *GetSmsTemplateResponseBodyAuditInfo) SetRejectInfo(v string) *GetSmsTemplateResponseBodyAuditInfo {
	s.RejectInfo = &v
	return s
}

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

type GetSmsTemplateResponseBodyFileUrlList struct {
	FileUrl []*string `json:"FileUrl,omitempty" xml:"FileUrl,omitempty" type:"Repeated"`
}

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

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

func (s *GetSmsTemplateResponseBodyFileUrlList) GetFileUrl() []*string {
	return s.FileUrl
}

func (s *GetSmsTemplateResponseBodyFileUrlList) SetFileUrl(v []*string) *GetSmsTemplateResponseBodyFileUrlList {
	s.FileUrl = v
	return s
}

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

type GetSmsTemplateResponseBodyMoreDataFileUrlList struct {
	MoreDataFileUrl []*string `json:"MoreDataFileUrl,omitempty" xml:"MoreDataFileUrl,omitempty" type:"Repeated"`
}

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

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

func (s *GetSmsTemplateResponseBodyMoreDataFileUrlList) GetMoreDataFileUrl() []*string {
	return s.MoreDataFileUrl
}

func (s *GetSmsTemplateResponseBodyMoreDataFileUrlList) SetMoreDataFileUrl(v []*string) *GetSmsTemplateResponseBodyMoreDataFileUrlList {
	s.MoreDataFileUrl = v
	return s
}

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