tags.go 1008 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package models
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. type TagID string
  7. const (
  8. RemoteAccessTagName = "remote-access-gws"
  9. )
  10. func (id TagID) String() string {
  11. return string(id)
  12. }
  13. func (t Tag) GetIDFromName() string {
  14. return fmt.Sprintf("%s.%s", t.Network, t.TagName)
  15. }
  16. type Tag struct {
  17. ID TagID `json:"id"`
  18. TagName string `json:"tag_name"`
  19. Network NetworkID `json:"network"`
  20. CreatedBy string `json:"created_by"`
  21. CreatedAt time.Time `json:"created_at"`
  22. }
  23. type CreateTagReq struct {
  24. TagName string `json:"tag_name"`
  25. Network NetworkID `json:"network"`
  26. TaggedNodes []ApiNode `json:"tagged_nodes"`
  27. }
  28. type TagListResp struct {
  29. Tag
  30. UsedByCnt int `json:"used_by_count"`
  31. TaggedNodes []ApiNode `json:"tagged_nodes"`
  32. }
  33. type TagListRespNodes struct {
  34. Tag
  35. UsedByCnt int `json:"used_by_count"`
  36. TaggedNodes []ApiNode `json:"tagged_nodes"`
  37. }
  38. type UpdateTagReq struct {
  39. Tag
  40. NewName string `json:"new_name"`
  41. TaggedNodes []ApiNode `json:"tagged_nodes"`
  42. }