Files
shiran 3d4c2dbb20
test / go (push) Successful in 1m7s
feat: initial AWS Server Go SDK
2026-08-22 22:14:08 +08:00

74 lines
3.7 KiB
Go

package awsserversdk
import (
"context"
"net/http"
)
type AgentService struct{ client *Client }
type AgentStatus map[string]any
type AgentCommandRequest struct {
Action string `json:"action"`
Service string `json:"service,omitempty"`
}
type MOTDPolicyRequest struct {
Mode string `json:"mode"`
Template string `json:"template,omitempty"`
}
type SSHAuditPolicyRequest struct {
Mode string `json:"mode"`
}
func (s *AgentService) Get(ctx context.Context, region, instanceID string) (AgentStatus, error) {
result := AgentStatus{}
err := s.client.do(ctx, http.MethodGet, instancesPath(region, instanceID)+"/agent", nil, &result, "")
return result, err
}
func (s *AgentService) GetTraffic(ctx context.Context, region, instanceID string) (map[string]any, error) {
result := map[string]any{}
err := s.client.do(ctx, http.MethodGet, instancesPath(region, instanceID)+"/agent/traffic", nil, &result, "")
return result, err
}
func (s *AgentService) GetMOTD(ctx context.Context, region, instanceID string) (map[string]any, error) {
result := map[string]any{}
err := s.client.do(ctx, http.MethodGet, instancesPath(region, instanceID)+"/agent/motd", nil, &result, "")
return result, err
}
func (s *AgentService) UpdateMOTD(ctx context.Context, region, instanceID string, input MOTDPolicyRequest) (map[string]any, error) {
result := map[string]any{}
err := s.client.do(ctx, http.MethodPatch, instancesPath(region, instanceID)+"/agent/motd", input, &result, newID())
return result, err
}
func (s *AgentService) GetSSHAudit(ctx context.Context, region, instanceID string) (map[string]any, error) {
result := map[string]any{}
err := s.client.do(ctx, http.MethodGet, instancesPath(region, instanceID)+"/agent/ssh-audit", nil, &result, "")
return result, err
}
func (s *AgentService) UpdateSSHAudit(ctx context.Context, region, instanceID string, input SSHAuditPolicyRequest) (map[string]any, error) {
result := map[string]any{}
err := s.client.do(ctx, http.MethodPatch, instancesPath(region, instanceID)+"/agent/ssh-audit", input, &result, newID())
return result, err
}
func (s *AgentService) ListSSHConnections(ctx context.Context, region, instanceID string) (map[string]any, error) {
result := map[string]any{}
err := s.client.do(ctx, http.MethodGet, instancesPath(region, instanceID)+"/agent/ssh-connections", nil, &result, "")
return result, err
}
func (s *AgentService) Command(ctx context.Context, region, instanceID string, input AgentCommandRequest, options ...RequestOption) (*Operation, error) {
return (&InstancesService{client: s.client}).operation(ctx, http.MethodPost, instancesPath(region, instanceID)+"/agent/commands", input, options...)
}
func (s *AgentService) GetCommand(ctx context.Context, region, instanceID, commandID string) (map[string]any, error) {
result := map[string]any{}
err := s.client.do(ctx, http.MethodGet, instancesPath(region, instanceID)+"/agent/commands/"+escaped(commandID), nil, &result, "")
return result, err
}
func (s *AgentService) Upgrade(ctx context.Context, region, instanceID, version string, options ...RequestOption) (*Operation, error) {
return (&InstancesService{client: s.client}).operation(ctx, http.MethodPost, instancesPath(region, instanceID)+"/agent/upgrade", map[string]string{"version": version}, options...)
}
func (s *AgentService) RetryInstall(ctx context.Context, region, instanceID string, options ...RequestOption) (*Operation, error) {
return (&InstancesService{client: s.client}).operation(ctx, http.MethodPost, instancesPath(region, instanceID)+"/agent/retry-install", map[string]any{}, options...)
}
func (s *AgentService) Revoke(ctx context.Context, region, instanceID string) error {
return s.client.do(ctx, http.MethodPost, instancesPath(region, instanceID)+"/agent/revoke", map[string]any{}, nil, newID())
}