package httpapi import "time" // DTOs for the admin queue-management and dynamic-config endpoints // (/api/v1/admin/ips, /api/v1/admin/config/*). Unlike the older read-only // admin endpoints (which marshal internal/db model structs directly, in // PascalCase), these use explicit snake_case JSON tags to match the // agent/prober DTO convention. type submitIPsRequest struct { Addresses []string `json:"addresses"` } type submitIPsResponse struct { Added []string `json:"added"` Requeued []string `json:"requeued"` Reordered []string `json:"reordered"` SkippedInProgress []string `json:"skipped_in_progress"` } type deleteIPsRequest struct { Addresses []string `json:"addresses"` } type deleteIPsResponse struct { Deleted []string `json:"deleted"` NotFound []string `json:"not_found"` } type clearQueueResponse struct { Deleted []string `json:"deleted"` } type validatorDTO struct { ValidatorID string `json:"validator_id"` OSPortID string `json:"os_port_id"` State string `json:"state"` } type createValidatorRequest struct { ValidatorID string `json:"validator_id"` OSPortID string `json:"os_port_id"` } type updateValidatorRequest struct { OSPortID string `json:"os_port_id"` } type siteDTO struct { Index int `json:"index"` SiteID string `json:"site_id"` Hostname string `json:"hostname"` State string `json:"state"` LastHeartbeatAt *time.Time `json:"last_heartbeat_at"` } type putSiteRequest struct { SiteID string `json:"site_id"` } type targetGroupDTO struct { Name string `json:"name"` Targets []string `json:"targets"` } type putTargetGroupRequest struct { Targets []string `json:"targets"` } type checkTypeDTO struct { Name string `json:"name"` Enabled bool `json:"enabled"` Targets []string `json:"targets"` } type putCheckTypeRequest struct { Enabled bool `json:"enabled"` Targets []string `json:"targets"` } // orchestratorSettingsDTO doubles as both the GET response and the PUT // request body for /api/v1/admin/config/orchestrator — a single-field DTO, // same shape both ways, like putSiteRequest/siteDTO. type orchestratorSettingsDTO struct { FIPSettleSeconds int `json:"fip_settle_seconds"` } // inboundChecksDTO doubles as both the GET response and the PUT request // body for /api/v1/admin/config/inbound-checks. Same field shape as // proberAssignment.Ports/ICMP (dto.go). type inboundChecksDTO struct { Ports []int `json:"ports"` ICMP bool `json:"icmp"` }