@@ -0,0 +1,73 @@
|
||||
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())
|
||||
}
|
||||
Reference in New Issue
Block a user