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

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

type iCreateAtiAgentRegisterInfoResponseBody interface {
	dara.Model
	String() string
	GoString() string
	SetAccessDeniedDetail(v *CreateAtiAgentRegisterInfoResponseBodyAccessDeniedDetail) *CreateAtiAgentRegisterInfoResponseBody
	GetAccessDeniedDetail() *CreateAtiAgentRegisterInfoResponseBodyAccessDeniedDetail
	SetAgentRegisterInfoId(v string) *CreateAtiAgentRegisterInfoResponseBody
	GetAgentRegisterInfoId() *string
	SetAtiName(v string) *CreateAtiAgentRegisterInfoResponseBody
	GetAtiName() *string
	SetCreateTimestamp(v int64) *CreateAtiAgentRegisterInfoResponseBody
	GetCreateTimestamp() *int64
	SetRequestId(v string) *CreateAtiAgentRegisterInfoResponseBody
	GetRequestId() *string
	SetStatus(v string) *CreateAtiAgentRegisterInfoResponseBody
	GetStatus() *string
}

type CreateAtiAgentRegisterInfoResponseBody struct {
	// The details about the access denial. This field is returned only when RAM authentication fails.
	AccessDeniedDetail *CreateAtiAgentRegisterInfoResponseBodyAccessDeniedDetail `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. During the multi-step agent registration process through the API, this ID must be carried throughout all steps to ensure that each step is associated with the same agent and the registration process is completed.
	//
	// example:
	//
	// 2074031103110331392
	AgentRegisterInfoId *string `json:"AgentRegisterInfoId,omitempty" xml:"AgentRegisterInfoId,omitempty"`
	// The ATI name, which is a globally unique identifier in the ATI trust system.
	//
	// Example: ati://v1.0.0.www.example.com
	//
	// - ati:// — The protocol prefix that identifies this as a resource in the ATI system.
	//
	// - v1.0.0 — The agent version number.
	//
	// - www.example.com — The domain name (FQDN) bound to the agent.
	//
	// example:
	//
	// ati://v1.0.0.www.example.com
	AtiName *string `json:"AtiName,omitempty" xml:"AtiName,omitempty"`
	// The creation time (timestamp).
	//
	// example:
	//
	// 1527690629357
	CreateTimestamp *int64 `json:"CreateTimestamp,omitempty" xml:"CreateTimestamp,omitempty"`
	// The request ID.
	//
	// example:
	//
	// 536E9CAD-DB30-4647-AC87-AA5CC38C5382
	RequestId *string `json:"RequestId,omitempty" xml:"RequestId,omitempty"`
	// The status of the resolution record. Valid values:
	//
	// - Enable: Resolution is enabled.
	//
	// - Disable: Resolution is paused.
	//
	// example:
	//
	// enable
	//
	// disable
	Status *string `json:"Status,omitempty" xml:"Status,omitempty"`
}

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

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

func (s *CreateAtiAgentRegisterInfoResponseBody) GetAccessDeniedDetail() *CreateAtiAgentRegisterInfoResponseBodyAccessDeniedDetail {
	return s.AccessDeniedDetail
}

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

func (s *CreateAtiAgentRegisterInfoResponseBody) GetAtiName() *string {
	return s.AtiName
}

func (s *CreateAtiAgentRegisterInfoResponseBody) GetCreateTimestamp() *int64 {
	return s.CreateTimestamp
}

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

func (s *CreateAtiAgentRegisterInfoResponseBody) GetStatus() *string {
	return s.Status
}

func (s *CreateAtiAgentRegisterInfoResponseBody) SetAccessDeniedDetail(v *CreateAtiAgentRegisterInfoResponseBodyAccessDeniedDetail) *CreateAtiAgentRegisterInfoResponseBody {
	s.AccessDeniedDetail = v
	return s
}

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

func (s *CreateAtiAgentRegisterInfoResponseBody) SetAtiName(v string) *CreateAtiAgentRegisterInfoResponseBody {
	s.AtiName = &v
	return s
}

func (s *CreateAtiAgentRegisterInfoResponseBody) SetCreateTimestamp(v int64) *CreateAtiAgentRegisterInfoResponseBody {
	s.CreateTimestamp = &v
	return s
}

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

func (s *CreateAtiAgentRegisterInfoResponseBody) SetStatus(v string) *CreateAtiAgentRegisterInfoResponseBody {
	s.Status = &v
	return s
}

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

type CreateAtiAgentRegisterInfoResponseBodyAccessDeniedDetail struct {
	// The unauthorized operation that was attempted.
	//
	// example:
	//
	// AddRspDomainServerHoldStatusForGateway
	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 denial.
	//
	// - ImplicitDeny: Implicit denial.
	//
	// 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 CreateAtiAgentRegisterInfoResponseBodyAccessDeniedDetail) String() string {
	return dara.Prettify(s)
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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