package audit

// 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"`

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

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

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

// Main info about audit
type RecordAudit struct {

	// Arguments
	Arguments string `json:"args"`

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

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

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

	// 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"`

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

	// Resgroup ID
	ResgroupID uint64 `json:"resgroup_id"`

	// Account ID
	AccountID uint64 `json:"account_id"`

	// Compute ID
	ComputeID uint64 `json:"compute_id"`
}

// List of Linked Jobs
type ListLinkedJobs []ItemLinkedJobs

// Main info about Linked Jobs
type ItemLinkedJobs struct {

	// CMD
	CMD string `json:"cmd"`

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

	// NID
	NID uint64 `json:"nid"`

	// Physical Node or not
	PhysicalNode bool `json:"physicalNode"`

	// state
	State string `json:"state"`

	// TimeCreate
	TimeCreate uint64 `json:"timeCreate"`

	// TimeStart
	TimeStart uint64 `json:"timeStart"`

	// TimeStop
	TimeStop uint64 `json:"timeStop"`

	// Timeout
	Timeout uint64 `json:"timeout"`
}
