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

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

type iDescribeAtiAgentRegisterInfoResponseBody interface {
	dara.Model
	String() string
	GoString() string
	SetAccessDeniedDetail(v *DescribeAtiAgentRegisterInfoResponseBodyAccessDeniedDetail) *DescribeAtiAgentRegisterInfoResponseBody
	GetAccessDeniedDetail() *DescribeAtiAgentRegisterInfoResponseBodyAccessDeniedDetail
	SetAgentDescription(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetAgentDescription() *string
	SetAgentDisplayName(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetAgentDisplayName() *string
	SetAgentHost(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetAgentHost() *string
	SetAgentId(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetAgentId() *string
	SetAgentRegisterInfoId(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetAgentRegisterInfoId() *string
	SetAgentVersion(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetAgentVersion() *string
	SetAtiName(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetAtiName() *string
	SetCreateTimestamp(v int64) *DescribeAtiAgentRegisterInfoResponseBody
	GetCreateTimestamp() *int64
	SetEndpoints(v *DescribeAtiAgentRegisterInfoResponseBodyEndpoints) *DescribeAtiAgentRegisterInfoResponseBody
	GetEndpoints() *DescribeAtiAgentRegisterInfoResponseBodyEndpoints
	SetIdentityCertSerialNumber(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetIdentityCertSerialNumber() *string
	SetRegistrantId(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetRegistrantId() *string
	SetRegistrantName(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetRegistrantName() *string
	SetRejectReason(v *DescribeAtiAgentRegisterInfoResponseBodyRejectReason) *DescribeAtiAgentRegisterInfoResponseBody
	GetRejectReason() *DescribeAtiAgentRegisterInfoResponseBodyRejectReason
	SetRequestId(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetRequestId() *string
	SetServerCertSerialNumber(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetServerCertSerialNumber() *string
	SetStatus(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetStatus() *string
	SetTrustCard(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetTrustCard() *string
	SetTrustCardUrl(v string) *DescribeAtiAgentRegisterInfoResponseBody
	GetTrustCardUrl() *string
	SetUpdateTimestamp(v int64) *DescribeAtiAgentRegisterInfoResponseBody
	GetUpdateTimestamp() *int64
}

type DescribeAtiAgentRegisterInfoResponseBody struct {
	// The details about the access denial. This field is returned only when RAM authentication fails.
	AccessDeniedDetail *DescribeAtiAgentRegisterInfoResponseBodyAccessDeniedDetail `json:"AccessDeniedDetail,omitempty" xml:"AccessDeniedDetail,omitempty" type:"Struct"`
	// The description of the Agent capabilities.
	//
	// example:
	//
	// 支付服务
	AgentDescription *string `json:"AgentDescription,omitempty" xml:"AgentDescription,omitempty"`
	// The display name of the Agent.
	//
	// example:
	//
	// 测试Agent
	AgentDisplayName *string `json:"AgentDisplayName,omitempty" xml:"AgentDisplayName,omitempty"`
	// The endpoint domain name through which the Agent provides services.
	//
	// example:
	//
	// example.com
	AgentHost *string `json:"AgentHost,omitempty" xml:"AgentHost,omitempty"`
	// The Agent ID, which is uniformly assigned by CNNIC after real-name verification. The AgentId serves as the unique identifier that binds the Agent to the verified registrant.
	//
	// example:
	//
	// 019f3672-9705-7a7a-88fd-9a6a211aa5f2
	AgentId *string `json:"AgentId,omitempty" xml:"AgentId,omitempty"`
	// 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 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 complete registration process is completed.
	//
	// example:
	//
	// 2074753647748672512
	AgentRegisterInfoId *string `json:"AgentRegisterInfoId,omitempty" xml:"AgentRegisterInfoId,omitempty"`
	// The version of the Agent.
	//
	// example:
	//
	// 1.0.1
	AgentVersion *string `json:"AgentVersion,omitempty" xml:"AgentVersion,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"`
	Endpoints       *DescribeAtiAgentRegisterInfoResponseBodyEndpoints `json:"Endpoints,omitempty" xml:"Endpoints,omitempty" type:"Struct"`
	// Ignore.
	//
	// example:
	//
	// 忽略
	IdentityCertSerialNumber *string `json:"IdentityCertSerialNumber,omitempty" xml:"IdentityCertSerialNumber,omitempty"`
	// The ID of the verified registrant.
	//
	// example:
	//
	// 2072277378616354816
	RegistrantId *string `json:"RegistrantId,omitempty" xml:"RegistrantId,omitempty"`
	// The name of the registrant.
	//
	// example:
	//
	// 张xx
	RegistrantName *string `json:"RegistrantName,omitempty" xml:"RegistrantName,omitempty"`
	// The reason why the Agent registration review failed.
	RejectReason *DescribeAtiAgentRegisterInfoResponseBodyRejectReason `json:"RejectReason,omitempty" xml:"RejectReason,omitempty" type:"Struct"`
	// The request ID.
	//
	// example:
	//
	// 536E9CAD-DB30-4647-AC87-AA5CC38C5382
	RequestId *string `json:"RequestId,omitempty" xml:"RequestId,omitempty"`
	// Ignore.
	//
	// example:
	//
	// 忽略
	ServerCertSerialNumber *string `json:"ServerCertSerialNumber,omitempty" xml:"ServerCertSerialNumber,omitempty"`
	// The status of the Agent. Valid values:
	//
	// - Draft: The Agent registration form is being filled out and has not been formally submitted. In the Draft state, only modification and detail viewing operations are supported.
	//
	// - Private CA Pending Issuance: The Agent registration has been formally submitted. Alibaba Cloud has completed the ACME DNS-01 pre-check and submitted the registration information along with the generated DNS records to CNNIC. The system is waiting for CNNIC to approve and issue the Private CA and complete the TL sealing.
	//
	// - DNS Pending Verification: CNNIC has approved the registration, issued the Private CA certificate, and completed the TL sealing, but the DNS records of the user have not been verified. The user needs to add the corresponding DNS records in the domain name resolution and complete verification.
	//
	// - Active: All processes are complete. The Private CA certificate has been issued, the TL has been sealed, and the DNS records have been verified. The Agent is activated and can be discovered and trusted across the network.
	//
	// - Expired: The Agent identity certificate has expired because the user did not renew the certificate within the validity period.
	//
	// - Revoked: The Agent certificate has been revoked, the DNS records have been cleaned up, and the Agent can no longer be discovered or trusted. The Agent cannot be restored to the Active state.
	//
	// example:
	//
	// 活跃
	Status *string `json:"Status,omitempty" xml:"Status,omitempty"`
	// Ignore.
	//
	// example:
	//
	// 忽略
	TrustCard *string `json:"TrustCard,omitempty" xml:"TrustCard,omitempty"`
	// Deprecated.
	//
	// example:
	//
	// 已废弃
	TrustCardUrl *string `json:"TrustCardUrl,omitempty" xml:"TrustCardUrl,omitempty"`
	// The update time (timestamp).
	//
	// example:
	//
	// 1527690629357
	UpdateTimestamp *int64 `json:"UpdateTimestamp,omitempty" xml:"UpdateTimestamp,omitempty"`
}

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

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetAccessDeniedDetail() *DescribeAtiAgentRegisterInfoResponseBodyAccessDeniedDetail {
	return s.AccessDeniedDetail
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetAgentDescription() *string {
	return s.AgentDescription
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetAgentDisplayName() *string {
	return s.AgentDisplayName
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetAgentHost() *string {
	return s.AgentHost
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetAgentId() *string {
	return s.AgentId
}

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetAgentVersion() *string {
	return s.AgentVersion
}

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

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetEndpoints() *DescribeAtiAgentRegisterInfoResponseBodyEndpoints {
	return s.Endpoints
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetIdentityCertSerialNumber() *string {
	return s.IdentityCertSerialNumber
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetRegistrantId() *string {
	return s.RegistrantId
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetRegistrantName() *string {
	return s.RegistrantName
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetRejectReason() *DescribeAtiAgentRegisterInfoResponseBodyRejectReason {
	return s.RejectReason
}

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetServerCertSerialNumber() *string {
	return s.ServerCertSerialNumber
}

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetTrustCard() *string {
	return s.TrustCard
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetTrustCardUrl() *string {
	return s.TrustCardUrl
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) GetUpdateTimestamp() *int64 {
	return s.UpdateTimestamp
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetAccessDeniedDetail(v *DescribeAtiAgentRegisterInfoResponseBodyAccessDeniedDetail) *DescribeAtiAgentRegisterInfoResponseBody {
	s.AccessDeniedDetail = v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetAgentDescription(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.AgentDescription = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetAgentDisplayName(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.AgentDisplayName = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetAgentHost(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.AgentHost = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetAgentId(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.AgentId = &v
	return s
}

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetAgentVersion(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.AgentVersion = &v
	return s
}

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

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetEndpoints(v *DescribeAtiAgentRegisterInfoResponseBodyEndpoints) *DescribeAtiAgentRegisterInfoResponseBody {
	s.Endpoints = v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetIdentityCertSerialNumber(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.IdentityCertSerialNumber = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetRegistrantId(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.RegistrantId = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetRegistrantName(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.RegistrantName = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetRejectReason(v *DescribeAtiAgentRegisterInfoResponseBodyRejectReason) *DescribeAtiAgentRegisterInfoResponseBody {
	s.RejectReason = v
	return s
}

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetServerCertSerialNumber(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.ServerCertSerialNumber = &v
	return s
}

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

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetTrustCard(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.TrustCard = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetTrustCardUrl(v string) *DescribeAtiAgentRegisterInfoResponseBody {
	s.TrustCardUrl = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBody) SetUpdateTimestamp(v int64) *DescribeAtiAgentRegisterInfoResponseBody {
	s.UpdateTimestamp = &v
	return s
}

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

type DescribeAtiAgentRegisterInfoResponseBodyAccessDeniedDetail 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:
	//
	// 1046973331XXXX
	AuthPrincipalOwnerId *string `json:"AuthPrincipalOwnerId,omitempty" xml:"AuthPrincipalOwnerId,omitempty"`
	// The identity type.
	//
	// example:
	//
	// SubUser
	AuthPrincipalType *string `json:"AuthPrincipalType,omitempty" xml:"AuthPrincipalType,omitempty"`
	// The encrypted complete diagnostic message.
	//
	// example:
	//
	// AQFohtp4aIbaeEXXXXQxNjFDLUIzMzgtNTXXXX05NkFCLUI2RkY5XXXXzAzQQ==
	EncodedDiagnosticMessage *string `json:"EncodedDiagnosticMessage,omitempty" xml:"EncodedDiagnosticMessage,omitempty"`
	// The cause of 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 DescribeAtiAgentRegisterInfoResponseBodyAccessDeniedDetail) String() string {
	return dara.Prettify(s)
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

type DescribeAtiAgentRegisterInfoResponseBodyEndpoints struct {
	Endpoint []*DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint `json:"Endpoint,omitempty" xml:"Endpoint,omitempty" type:"Repeated"`
}

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

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

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpoints) GetEndpoint() []*DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint {
	return s.Endpoint
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpoints) SetEndpoint(v []*DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) *DescribeAtiAgentRegisterInfoResponseBodyEndpoints {
	s.Endpoint = v
	return s
}

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

type DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint struct {
	AgentUrl    *string                                                              `json:"AgentUrl,omitempty" xml:"AgentUrl,omitempty"`
	MetadataUrl *string                                                              `json:"MetadataUrl,omitempty" xml:"MetadataUrl,omitempty"`
	Protocol    *string                                                              `json:"Protocol,omitempty" xml:"Protocol,omitempty"`
	Transports  *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpointTransports `json:"Transports,omitempty" xml:"Transports,omitempty" type:"Struct"`
}

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

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

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) GetAgentUrl() *string {
	return s.AgentUrl
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) GetMetadataUrl() *string {
	return s.MetadataUrl
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) GetProtocol() *string {
	return s.Protocol
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) GetTransports() *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpointTransports {
	return s.Transports
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) SetAgentUrl(v string) *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint {
	s.AgentUrl = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) SetMetadataUrl(v string) *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint {
	s.MetadataUrl = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) SetProtocol(v string) *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint {
	s.Protocol = &v
	return s
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint) SetTransports(v *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpointTransports) *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpoint {
	s.Transports = v
	return s
}

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

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

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

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

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpointTransports) GetTransport() []*string {
	return s.Transport
}

func (s *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpointTransports) SetTransport(v []*string) *DescribeAtiAgentRegisterInfoResponseBodyEndpointsEndpointTransports {
	s.Transport = v
	return s
}

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

type DescribeAtiAgentRegisterInfoResponseBodyRejectReason struct {
	// The detailed information about the Agent registration failure.
	//
	// example:
	//
	// 非法状态
	Message *string `json:"Message,omitempty" xml:"Message,omitempty"`
	// The type of the review failure. Valid values:
	//
	// - ACME_VERIFY_FAILED: ACME verification failed.
	//
	// - INFO_AUDIT_FAILED: Agent information review failed.
	//
	// example:
	//
	// ACME_VERIFY_FAILED
	Type *string `json:"Type,omitempty" xml:"Type,omitempty"`
}

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

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

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

func (s *DescribeAtiAgentRegisterInfoResponseBodyRejectReason) GetType() *string {
	return s.Type
}

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

func (s *DescribeAtiAgentRegisterInfoResponseBodyRejectReason) SetType(v string) *DescribeAtiAgentRegisterInfoResponseBodyRejectReason {
	s.Type = &v
	return s
}

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