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

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

type iGetSmsSignResponseBody interface {
	dara.Model
	String() string
	GoString() string
	SetAppIcpRecordId(v int64) *GetSmsSignResponseBody
	GetAppIcpRecordId() *int64
	SetApplyScene(v string) *GetSmsSignResponseBody
	GetApplyScene() *string
	SetAuditInfo(v *GetSmsSignResponseBodyAuditInfo) *GetSmsSignResponseBody
	GetAuditInfo() *GetSmsSignResponseBodyAuditInfo
	SetAuthorizationLetterAuditPass(v bool) *GetSmsSignResponseBody
	GetAuthorizationLetterAuditPass() *bool
	SetAuthorizationLetterId(v int64) *GetSmsSignResponseBody
	GetAuthorizationLetterId() *int64
	SetCode(v string) *GetSmsSignResponseBody
	GetCode() *string
	SetCreateDate(v string) *GetSmsSignResponseBody
	GetCreateDate() *string
	SetFileUrlList(v []*string) *GetSmsSignResponseBody
	GetFileUrlList() []*string
	SetMessage(v string) *GetSmsSignResponseBody
	GetMessage() *string
	SetOrderId(v string) *GetSmsSignResponseBody
	GetOrderId() *string
	SetQualificationId(v int64) *GetSmsSignResponseBody
	GetQualificationId() *int64
	SetRegisterResult(v int32) *GetSmsSignResponseBody
	GetRegisterResult() *int32
	SetRemark(v string) *GetSmsSignResponseBody
	GetRemark() *string
	SetRequestId(v string) *GetSmsSignResponseBody
	GetRequestId() *string
	SetSignCode(v string) *GetSmsSignResponseBody
	GetSignCode() *string
	SetSignIspRegisterDetailList(v []*GetSmsSignResponseBodySignIspRegisterDetailList) *GetSmsSignResponseBody
	GetSignIspRegisterDetailList() []*GetSmsSignResponseBodySignIspRegisterDetailList
	SetSignName(v string) *GetSmsSignResponseBody
	GetSignName() *string
	SetSignStatus(v int64) *GetSmsSignResponseBody
	GetSignStatus() *int64
	SetSignTag(v string) *GetSmsSignResponseBody
	GetSignTag() *string
	SetSignUsage(v string) *GetSmsSignResponseBody
	GetSignUsage() *string
	SetThirdParty(v bool) *GetSmsSignResponseBody
	GetThirdParty() *bool
	SetTrademarkId(v int64) *GetSmsSignResponseBody
	GetTrademarkId() *int64
}

type GetSmsSignResponseBody struct {
	AppIcpRecordId *int64 `json:"AppIcpRecordId,omitempty" xml:"AppIcpRecordId,omitempty"`
	// Content of application scenarios.
	//
	// example:
	//
	// http://www.aliyun.com/
	ApplyScene *string `json:"ApplyScene,omitempty" xml:"ApplyScene,omitempty"`
	// Audit information.
	AuditInfo                    *GetSmsSignResponseBodyAuditInfo `json:"AuditInfo,omitempty" xml:"AuditInfo,omitempty" type:"Struct"`
	AuthorizationLetterAuditPass *bool                            `json:"AuthorizationLetterAuditPass,omitempty" xml:"AuthorizationLetterAuditPass,omitempty"`
	AuthorizationLetterId        *int64                           `json:"AuthorizationLetterId,omitempty" xml:"AuthorizationLetterId,omitempty"`
	// Request status code.
	//
	// - OK indicates a successful request.
	//
	// - For other error codes, see [API Error Codes](https://help.aliyun.com/document_detail/101346.html).
	//
	// example:
	//
	// OK
	Code *string `json:"Code,omitempty" xml:"Code,omitempty"`
	// Creation date and time of the SMS signature.
	//
	// example:
	//
	// 2024-06-03 10:02:34
	CreateDate *string `json:"CreateDate,omitempty" xml:"CreateDate,omitempty"`
	// 更多资料信息，补充上传业务证明文件或业务截图文件列表。
	FileUrlList []*string `json:"FileUrlList,omitempty" xml:"FileUrlList,omitempty" type:"Repeated"`
	// Description of the status code.
	//
	// example:
	//
	// OK
	Message *string `json:"Message,omitempty" xml:"Message,omitempty"`
	// Work order number.
	//
	// Used by reviewers when querying the review. You need to provide this work order number if you require expedited review.
	//
	// example:
	//
	// 20044156924
	OrderId *string `json:"OrderId,omitempty" xml:"OrderId,omitempty"`
	// Credential ID, the credential ID associated when applying for the signature.
	//
	// example:
	//
	// 2004393****
	QualificationId *int64 `json:"QualificationId,omitempty" xml:"QualificationId,omitempty"`
	RegisterResult  *int32 `json:"RegisterResult,omitempty" xml:"RegisterResult,omitempty"`
	// Explanation of the SMS signature scenario, with a maximum length of 200 characters.
	//
	// example:
	//
	// Send verification code text message during login.
	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 localization.
	//
	// example:
	//
	// F655A8D5-B967-440B-8683-DAD6FF8DE990
	RequestId *string `json:"RequestId,omitempty" xml:"RequestId,omitempty"`
	// SMS signature code.
	//
	// example:
	//
	// SIGN_100000077042023_17174665*****_ZM2kG
	SignCode                  *string                                            `json:"SignCode,omitempty" xml:"SignCode,omitempty"`
	SignIspRegisterDetailList []*GetSmsSignResponseBodySignIspRegisterDetailList `json:"SignIspRegisterDetailList,omitempty" xml:"SignIspRegisterDetailList,omitempty" type:"Repeated"`
	// SMS signature name.
	//
	// example:
	//
	// Aliyun
	SignName *string `json:"SignName,omitempty" xml:"SignName,omitempty"`
	// Signature review status. Values:
	//
	// - **0**: Under review.
	//
	// - **1**: Approved.
	//
	// - **2**: Review failed, please check the Reason parameter for the failure cause.
	//
	// - **10**: Review canceled.
	//
	// example:
	//
	// 2
	SignStatus *int64 `json:"SignStatus,omitempty" xml:"SignStatus,omitempty"`
	// Signature tag indicating whether the signature is user-defined, system-provided, test, or trial. Values:
	//
	// - 2: User-defined signature
	//
	// - 3: System-provided signature
	//
	// - 4: Test signature
	//
	// - 5: Trial signature
	//
	// example:
	//
	// 2
	SignTag *string `json:"SignTag,omitempty" xml:"SignTag,omitempty"`
	// scenarios for using signatures.
	//
	// example:
	//
	// App.
	SignUsage *string `json:"SignUsage,omitempty" xml:"SignUsage,omitempty"`
	// Signature usage indication—self-use or third-party use.
	//
	// - false: Self-use (default)
	//
	// - true: Third-party use
	//
	// example:
	//
	// false
	ThirdParty  *bool  `json:"ThirdParty,omitempty" xml:"ThirdParty,omitempty"`
	TrademarkId *int64 `json:"TrademarkId,omitempty" xml:"TrademarkId,omitempty"`
}

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

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

func (s *GetSmsSignResponseBody) GetAppIcpRecordId() *int64 {
	return s.AppIcpRecordId
}

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

func (s *GetSmsSignResponseBody) GetAuditInfo() *GetSmsSignResponseBodyAuditInfo {
	return s.AuditInfo
}

func (s *GetSmsSignResponseBody) GetAuthorizationLetterAuditPass() *bool {
	return s.AuthorizationLetterAuditPass
}

func (s *GetSmsSignResponseBody) GetAuthorizationLetterId() *int64 {
	return s.AuthorizationLetterId
}

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

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

func (s *GetSmsSignResponseBody) GetFileUrlList() []*string {
	return s.FileUrlList
}

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

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

func (s *GetSmsSignResponseBody) GetQualificationId() *int64 {
	return s.QualificationId
}

func (s *GetSmsSignResponseBody) GetRegisterResult() *int32 {
	return s.RegisterResult
}

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

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

func (s *GetSmsSignResponseBody) GetSignCode() *string {
	return s.SignCode
}

func (s *GetSmsSignResponseBody) GetSignIspRegisterDetailList() []*GetSmsSignResponseBodySignIspRegisterDetailList {
	return s.SignIspRegisterDetailList
}

func (s *GetSmsSignResponseBody) GetSignName() *string {
	return s.SignName
}

func (s *GetSmsSignResponseBody) GetSignStatus() *int64 {
	return s.SignStatus
}

func (s *GetSmsSignResponseBody) GetSignTag() *string {
	return s.SignTag
}

func (s *GetSmsSignResponseBody) GetSignUsage() *string {
	return s.SignUsage
}

func (s *GetSmsSignResponseBody) GetThirdParty() *bool {
	return s.ThirdParty
}

func (s *GetSmsSignResponseBody) GetTrademarkId() *int64 {
	return s.TrademarkId
}

func (s *GetSmsSignResponseBody) SetAppIcpRecordId(v int64) *GetSmsSignResponseBody {
	s.AppIcpRecordId = &v
	return s
}

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

func (s *GetSmsSignResponseBody) SetAuditInfo(v *GetSmsSignResponseBodyAuditInfo) *GetSmsSignResponseBody {
	s.AuditInfo = v
	return s
}

func (s *GetSmsSignResponseBody) SetAuthorizationLetterAuditPass(v bool) *GetSmsSignResponseBody {
	s.AuthorizationLetterAuditPass = &v
	return s
}

func (s *GetSmsSignResponseBody) SetAuthorizationLetterId(v int64) *GetSmsSignResponseBody {
	s.AuthorizationLetterId = &v
	return s
}

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

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

func (s *GetSmsSignResponseBody) SetFileUrlList(v []*string) *GetSmsSignResponseBody {
	s.FileUrlList = v
	return s
}

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

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

func (s *GetSmsSignResponseBody) SetQualificationId(v int64) *GetSmsSignResponseBody {
	s.QualificationId = &v
	return s
}

func (s *GetSmsSignResponseBody) SetRegisterResult(v int32) *GetSmsSignResponseBody {
	s.RegisterResult = &v
	return s
}

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

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

func (s *GetSmsSignResponseBody) SetSignCode(v string) *GetSmsSignResponseBody {
	s.SignCode = &v
	return s
}

func (s *GetSmsSignResponseBody) SetSignIspRegisterDetailList(v []*GetSmsSignResponseBodySignIspRegisterDetailList) *GetSmsSignResponseBody {
	s.SignIspRegisterDetailList = v
	return s
}

func (s *GetSmsSignResponseBody) SetSignName(v string) *GetSmsSignResponseBody {
	s.SignName = &v
	return s
}

func (s *GetSmsSignResponseBody) SetSignStatus(v int64) *GetSmsSignResponseBody {
	s.SignStatus = &v
	return s
}

func (s *GetSmsSignResponseBody) SetSignTag(v string) *GetSmsSignResponseBody {
	s.SignTag = &v
	return s
}

func (s *GetSmsSignResponseBody) SetSignUsage(v string) *GetSmsSignResponseBody {
	s.SignUsage = &v
	return s
}

func (s *GetSmsSignResponseBody) SetThirdParty(v bool) *GetSmsSignResponseBody {
	s.ThirdParty = &v
	return s
}

func (s *GetSmsSignResponseBody) SetTrademarkId(v int64) *GetSmsSignResponseBody {
	s.TrademarkId = &v
	return s
}

func (s *GetSmsSignResponseBody) Validate() error {
	if s.AuditInfo != nil {
		if err := s.AuditInfo.Validate(); err != nil {
			return err
		}
	}
	if s.SignIspRegisterDetailList != nil {
		for _, item := range s.SignIspRegisterDetailList {
			if item != nil {
				if err := item.Validate(); err != nil {
					return err
				}
			}
		}
	}
	return nil
}

type GetSmsSignResponseBodyAuditInfo struct {
	// Audit date and time.
	//
	// example:
	//
	// 2024-06-03 12:02:34
	AuditDate *string `json:"AuditDate,omitempty" xml:"AuditDate,omitempty"`
	// Reasons for not passing the review.
	//
	// example:
	//
	// reason for rejection.
	RejectInfo *string `json:"RejectInfo,omitempty" xml:"RejectInfo,omitempty"`
}

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

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

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

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

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

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

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

type GetSmsSignResponseBodySignIspRegisterDetailList struct {
	OperatorCode          *string                                                                 `json:"OperatorCode,omitempty" xml:"OperatorCode,omitempty"`
	OperatorCompleteTime  *string                                                                 `json:"OperatorCompleteTime,omitempty" xml:"OperatorCompleteTime,omitempty"`
	RegisterStatus        *int32                                                                  `json:"RegisterStatus,omitempty" xml:"RegisterStatus,omitempty"`
	RegisterStatusReasons []*GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons `json:"RegisterStatusReasons,omitempty" xml:"RegisterStatusReasons,omitempty" type:"Repeated"`
}

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

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

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) GetOperatorCode() *string {
	return s.OperatorCode
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) GetOperatorCompleteTime() *string {
	return s.OperatorCompleteTime
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) GetRegisterStatus() *int32 {
	return s.RegisterStatus
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) GetRegisterStatusReasons() []*GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons {
	return s.RegisterStatusReasons
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) SetOperatorCode(v string) *GetSmsSignResponseBodySignIspRegisterDetailList {
	s.OperatorCode = &v
	return s
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) SetOperatorCompleteTime(v string) *GetSmsSignResponseBodySignIspRegisterDetailList {
	s.OperatorCompleteTime = &v
	return s
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) SetRegisterStatus(v int32) *GetSmsSignResponseBodySignIspRegisterDetailList {
	s.RegisterStatus = &v
	return s
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) SetRegisterStatusReasons(v []*GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons) *GetSmsSignResponseBodySignIspRegisterDetailList {
	s.RegisterStatusReasons = v
	return s
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailList) Validate() error {
	if s.RegisterStatusReasons != nil {
		for _, item := range s.RegisterStatusReasons {
			if item != nil {
				if err := item.Validate(); err != nil {
					return err
				}
			}
		}
	}
	return nil
}

type GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons struct {
	ReasonCode     *string   `json:"ReasonCode,omitempty" xml:"ReasonCode,omitempty"`
	ReasonDescList []*string `json:"ReasonDescList,omitempty" xml:"ReasonDescList,omitempty" type:"Repeated"`
}

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

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

func (s *GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons) GetReasonCode() *string {
	return s.ReasonCode
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons) GetReasonDescList() []*string {
	return s.ReasonDescList
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons) SetReasonCode(v string) *GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons {
	s.ReasonCode = &v
	return s
}

func (s *GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons) SetReasonDescList(v []*string) *GetSmsSignResponseBodySignIspRegisterDetailListRegisterStatusReasons {
	s.ReasonDescList = v
	return s
}

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