package audit

// Main info about audit
type RecordAudit struct {
	// Arguments
	Arguments string `json:"args"`

	// Call
	Call string `json:"call"`

	// GUID
	GUID string `json:"guid"`

	// Correlation ID
	CorrelationID string `json:"correlation_id"`

	// Kwargs
	Kwargs string `json:"kwargs"`

	// RemoteAddr
	RemoteAddr string `json:"remote_addr"`

	// Response time
	ResponseTime float64 `json:"responsetime"`

	// Result
	Result string `json:"result"`

	// Status code
	StatusCode uint64 `json:"statuscode"`

	// Tags
	Tags string `json:"tags"`

	// Timestamp
	Timestamp float64 `json:"timestamp"`

	// TimestampEnd
	TimestampEnd float64 `json:"timestampEnd"`

	// User
	User string `json:"user"`

	// Public Session ID
	PublicSessionID string `json:"public_session_id"`
}

// Main info about audit
type ItemAudit struct {
	// Args
	Args string `json:"args"`

	// Call
	Call string `json:"call"`

	// GUID
	GUID string `json:"guid"`

	// Correlation ID
	CorrelationID string `json:"correlation_id"`

	// Kwargs
	Kwargs string `json:"kwargs"`

	// RemoteAddr
	RemoteAddr string `json:"remote_addr"`

	// Response time
	ResponseTime float64 `json:"responsetime"`

	// Result
	Result string `json:"result"`

	// Status code
	StatusCode uint64 `json:"statuscode"`

	// Timestamp
	Timestamp float64 `json:"timestamp"`

	// Timestamp End
	TimestampEnd float64 `json:"timestampEnd"`

	// User
	User string `json:"user"`

	// Public Session ID
	PublicSessionID string `json:"public_session_id"`

	// TTL
	TTL string `json:"_ttl"`
}

// List of audits
type ListAudits struct {
	// Data
	Data []ItemAudit `json:"data"`

	// EntryCount
	EntryCount uint64 `json:"entryCount"`
}
