request.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package types
  2. type APIVerb string
  3. const (
  4. APIVerbGet APIVerb = "get"
  5. APIVerbCreate APIVerb = "create"
  6. APIVerbList APIVerb = "list"
  7. APIVerbUpdate APIVerb = "update"
  8. APIVerbDelete APIVerb = "delete"
  9. )
  10. type APIVerbGroup []APIVerb
  11. func ReadVerbGroup() APIVerbGroup {
  12. return []APIVerb{APIVerbGet, APIVerbList}
  13. }
  14. func ReadWriteVerbGroup() APIVerbGroup {
  15. return []APIVerb{APIVerbGet, APIVerbList, APIVerbCreate, APIVerbUpdate, APIVerbDelete}
  16. }
  17. type HTTPVerb string
  18. const (
  19. HTTPVerbGet HTTPVerb = "GET"
  20. HTTPVerbPost HTTPVerb = "POST"
  21. HTTPVerbPut HTTPVerb = "PUT"
  22. HTTPVerbPatch HTTPVerb = "PUT"
  23. HTTPVerbDelete HTTPVerb = "DELETE"
  24. )
  25. type URLParam string
  26. const (
  27. URLParamProjectID URLParam = "project_id"
  28. URLParamClusterID URLParam = "cluster_id"
  29. URLParamRegistryID URLParam = "registry_id"
  30. URLParamHelmRepoID URLParam = "helm_repo_id"
  31. URLParamNamespace URLParam = "namespace"
  32. URLParamReleaseName URLParam = "name"
  33. URLParamReleaseVersion URLParam = "version"
  34. )
  35. type Path struct {
  36. Parent *Path
  37. RelativePath string
  38. }
  39. type APIRequestMetadata struct {
  40. Verb APIVerb
  41. Method HTTPVerb
  42. Path *Path
  43. Scopes []PermissionScope
  44. ShouldRedirect bool
  45. }