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

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

type iCreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody interface {
	dara.Model
	String() string
	GoString() string
	SetAccessDeniedDetail(v *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetAccessDeniedDetail() *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail
	SetAgentRegisterInfoId(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetAgentRegisterInfoId() *string
	SetCreateTimestamp(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetCreateTimestamp() *string
	SetExpireTimestamp(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetExpireTimestamp() *string
	SetRecordName(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetRecordName() *string
	SetRecordType(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetRecordType() *string
	SetRecordValue(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetRecordValue() *string
	SetRequestId(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetRequestId() *string
	SetUpdateTimestamp(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody
	GetUpdateTimestamp() *string
}

type CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody struct {
	// The details of the access denial. This field is returned only when RAM authentication fails.
	AccessDeniedDetail *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail `json:"AccessDeniedDetail,omitempty" xml:"AccessDeniedDetail,omitempty" type:"Struct"`
	// The agent registration ID. This ID is automatically generated by the Alibaba Cloud ATS platform and is globally unique within the platform. It is automatically generated during the agent registration process. In the multi-step API registration process, this ID must be carried throughout to ensure that all steps are associated with the same agent and the complete registration process is fulfilled.
	//
	// example:
	//
	// 2074031103110331392
	AgentRegisterInfoId *string `json:"AgentRegisterInfoId,omitempty" xml:"AgentRegisterInfoId,omitempty"`
	// The creation time (timestamp).
	//
	// example:
	//
	// 1527690629357
	CreateTimestamp *string `json:"CreateTimestamp,omitempty" xml:"CreateTimestamp,omitempty"`
	// The UNIX timestamp when the instance expires.
	//
	// example:
	//
	// 1528284856000
	ExpireTimestamp *string `json:"ExpireTimestamp,omitempty" xml:"ExpireTimestamp,omitempty"`
	// The host record of the DNS record for domain ownership verification.
	//
	// example:
	//
	// _acme-challenge.www
	RecordName *string `json:"RecordName,omitempty" xml:"RecordName,omitempty"`
	// The DNS record type for domain ownership verification. The value is typically TXT.
	//
	// example:
	//
	// TXT
	RecordType *string `json:"RecordType,omitempty" xml:"RecordType,omitempty"`
	// The record value of the DNS record for domain ownership verification.
	//
	// example:
	//
	// YkKL7G2TRSAWRRBZ1RcAMeuRYx3Jv28o20yIGmdcYuz
	RecordValue *string `json:"RecordValue,omitempty" xml:"RecordValue,omitempty"`
	// The request ID.
	//
	// example:
	//
	// 29D0F8F8-5499-4F6C-9FDC-1EE13BF55925
	RequestId *string `json:"RequestId,omitempty" xml:"RequestId,omitempty"`
	// The update time (timestamp).
	//
	// example:
	//
	// 1565505898000
	UpdateTimestamp *string `json:"UpdateTimestamp,omitempty" xml:"UpdateTimestamp,omitempty"`
}

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

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

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetAccessDeniedDetail() *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	return s.AccessDeniedDetail
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetAgentRegisterInfoId() *string {
	return s.AgentRegisterInfoId
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetCreateTimestamp() *string {
	return s.CreateTimestamp
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetExpireTimestamp() *string {
	return s.ExpireTimestamp
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetRecordName() *string {
	return s.RecordName
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetRecordType() *string {
	return s.RecordType
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetRecordValue() *string {
	return s.RecordValue
}

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

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) GetUpdateTimestamp() *string {
	return s.UpdateTimestamp
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetAccessDeniedDetail(v *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.AccessDeniedDetail = v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetAgentRegisterInfoId(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.AgentRegisterInfoId = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetCreateTimestamp(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.CreateTimestamp = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetExpireTimestamp(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.ExpireTimestamp = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetRecordName(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.RecordName = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetRecordType(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.RecordType = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetRecordValue(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.RecordValue = &v
	return s
}

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

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) SetUpdateTimestamp(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody {
	s.UpdateTimestamp = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBody) Validate() error {
	if s.AccessDeniedDetail != nil {
		if err := s.AccessDeniedDetail.Validate(); err != nil {
			return err
		}
	}
	return nil
}

type CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail struct {
	// The unauthorized operation that was attempted.
	//
	// example:
	//
	// RemoveRspDomainServerHoldStatusForGateway
	AuthAction *string `json:"AuthAction,omitempty" xml:"AuthAction,omitempty"`
	// The display name of the authorization principal.
	//
	// example:
	//
	// 2015555733387XXXX
	AuthPrincipalDisplayName *string `json:"AuthPrincipalDisplayName,omitempty" xml:"AuthPrincipalDisplayName,omitempty"`
	// The owner ID of the authorization principal.
	//
	// example:
	//
	// 10469733312XXX
	AuthPrincipalOwnerId *string `json:"AuthPrincipalOwnerId,omitempty" xml:"AuthPrincipalOwnerId,omitempty"`
	// The identity type.
	//
	// example:
	//
	// SubUser
	AuthPrincipalType *string `json:"AuthPrincipalType,omitempty" xml:"AuthPrincipalType,omitempty"`
	// The encoded complete diagnostic message.
	//
	// example:
	//
	// AQFohtp4aIbaeEXXXXQxNjFDLUIzMzgtNTXXXX05NkFCLUI2RkY5XXXXzAzQQ==
	EncodedDiagnosticMessage *string `json:"EncodedDiagnosticMessage,omitempty" xml:"EncodedDiagnosticMessage,omitempty"`
	// The reason for the authentication failure. Valid values:
	//
	// - ExplicitDeny: explicit deny.
	//
	// - ImplicitDeny: implicit deny.
	//
	// example:
	//
	// ImplicitDeny
	NoPermissionType *string `json:"NoPermissionType,omitempty" xml:"NoPermissionType,omitempty"`
	// The policy type.
	//
	// example:
	//
	// DlpSend
	PolicyType *string `json:"PolicyType,omitempty" xml:"PolicyType,omitempty"`
}

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

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

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) GetAuthAction() *string {
	return s.AuthAction
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) GetAuthPrincipalDisplayName() *string {
	return s.AuthPrincipalDisplayName
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) GetAuthPrincipalOwnerId() *string {
	return s.AuthPrincipalOwnerId
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) GetAuthPrincipalType() *string {
	return s.AuthPrincipalType
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) GetEncodedDiagnosticMessage() *string {
	return s.EncodedDiagnosticMessage
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) GetNoPermissionType() *string {
	return s.NoPermissionType
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) GetPolicyType() *string {
	return s.PolicyType
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) SetAuthAction(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	s.AuthAction = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) SetAuthPrincipalDisplayName(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	s.AuthPrincipalDisplayName = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) SetAuthPrincipalOwnerId(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	s.AuthPrincipalOwnerId = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) SetAuthPrincipalType(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	s.AuthPrincipalType = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) SetEncodedDiagnosticMessage(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	s.EncodedDiagnosticMessage = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) SetNoPermissionType(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	s.NoPermissionType = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail) SetPolicyType(v string) *CreateAtiAgentRegisterInfoAcmeChallengeRecordResponseBodyAccessDeniedDetail {
	s.PolicyType = &v
	return s
}

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