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

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

type iSubmitAtiAgentRegisterInfoRequest interface {
	dara.Model
	String() string
	GoString() string
	SetAgentRegisterInfoId(v string) *SubmitAtiAgentRegisterInfoRequest
	GetAgentRegisterInfoId() *string
	SetClientToken(v string) *SubmitAtiAgentRegisterInfoRequest
	GetClientToken() *string
	SetIdentityCsr(v string) *SubmitAtiAgentRegisterInfoRequest
	GetIdentityCsr() *string
	SetServerCertPem(v string) *SubmitAtiAgentRegisterInfoRequest
	GetServerCertPem() *string
}

type SubmitAtiAgentRegisterInfoRequest 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. During API-based registration and query processes, this ID must be carried throughout. Call the ListAtiAgentRegisterInfos operation to query the target Agent and obtain the AgentRegisterInfoId from the response.
	//
	// This parameter is required.
	//
	// example:
	//
	// 2074753647748672512
	AgentRegisterInfoId *string `json:"AgentRegisterInfoId,omitempty" xml:"AgentRegisterInfoId,omitempty"`
	// Ensures the idempotency of the request. Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters and cannot exceed 64 characters.
	//
	// If you do not specify this parameter, the system automatically uses the RequestId of the API request as the ClientToken. The RequestId may differ for each API request.
	//
	// example:
	//
	// eyJhbGciOiJIUzI1NiIsInR5cC.....
	ClientToken *string `json:"ClientToken,omitempty" xml:"ClientToken,omitempty"`
	// The identity certificate CSR request. You can generate this by referring to the identity certificate CSR request guidance command provided in Step 3 of the Register Agent process in the ATS console.
	//
	// This parameter is required.
	//
	// example:
	//
	// -----BEGIN CERTIFICATE-----
	//
	// MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFAD...
	//
	// (A long string of Base64-encoded data)
	//
	// ...
	//
	// -----END CERTIFICATE-----
	IdentityCsr *string `json:"IdentityCsr,omitempty" xml:"IdentityCsr,omitempty"`
	// The server certificate, which is the certificate corresponding to the domain name (host address) used for Agent registration.
	//
	// This parameter is required.
	//
	// example:
	//
	// -----BEGIN CERTIFICATE-----
	//
	// KsdeFSAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFAD...
	//
	// (A long string of Base64-encoded data)
	//
	// ...
	//
	// -----END CERTIFICATE-----
	ServerCertPem *string `json:"ServerCertPem,omitempty" xml:"ServerCertPem,omitempty"`
}

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

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

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

func (s *SubmitAtiAgentRegisterInfoRequest) GetClientToken() *string {
	return s.ClientToken
}

func (s *SubmitAtiAgentRegisterInfoRequest) GetIdentityCsr() *string {
	return s.IdentityCsr
}

func (s *SubmitAtiAgentRegisterInfoRequest) GetServerCertPem() *string {
	return s.ServerCertPem
}

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

func (s *SubmitAtiAgentRegisterInfoRequest) SetClientToken(v string) *SubmitAtiAgentRegisterInfoRequest {
	s.ClientToken = &v
	return s
}

func (s *SubmitAtiAgentRegisterInfoRequest) SetIdentityCsr(v string) *SubmitAtiAgentRegisterInfoRequest {
	s.IdentityCsr = &v
	return s
}

func (s *SubmitAtiAgentRegisterInfoRequest) SetServerCertPem(v string) *SubmitAtiAgentRegisterInfoRequest {
	s.ServerCertPem = &v
	return s
}

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