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()) }