tags.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. NetworkName string `json:"network_name"`
  21. CreatedBy string `json:"created_by"`
  22. CreatedAt time.Time `json:"created_at"`
  23. }
  24. type CreateTagReq struct {
  25. TagName string `json:"tag_name"`
  26. Network NetworkID `json:"network"`
  27. TaggedNodes []ApiNode `json:"tagged_nodes"`
  28. }
  29. type TagListResp struct {
  30. Tag
  31. UsedByCnt int `json:"used_by_count"`
  32. TaggedNodes []ApiNode `json:"tagged_nodes"`
  33. }
  34. type TagListRespNodes struct {
  35. Tag
  36. UsedByCnt int `json:"used_by_count"`
  37. TaggedNodes []ApiNode `json:"tagged_nodes"`
  38. }
  39. type UpdateTagReq struct {
  40. Tag
  41. NewName string `json:"new_name"`
  42. TaggedNodes []ApiNode `json:"tagged_nodes"`
  43. }