idp.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package api
  2. type IdentityProviderType string
  3. const (
  4. IdentityProviderOAuth2 IdentityProviderType = "OAUTH2"
  5. )
  6. type IdentityProviderConfig struct {
  7. OAuth2Config *IdentityProviderOAuth2Config `json:"oauth2Config"`
  8. }
  9. type IdentityProviderOAuth2Config struct {
  10. ClientID string `json:"clientId"`
  11. ClientSecret string `json:"clientSecret"`
  12. AuthURL string `json:"authUrl"`
  13. TokenURL string `json:"tokenUrl"`
  14. UserInfoURL string `json:"userInfoUrl"`
  15. Scopes []string `json:"scopes"`
  16. FieldMapping *FieldMapping `json:"fieldMapping"`
  17. }
  18. type FieldMapping struct {
  19. Identifier string `json:"identifier"`
  20. DisplayName string `json:"displayName"`
  21. Email string `json:"email"`
  22. }
  23. type IdentityProvider struct {
  24. ID int `json:"id"`
  25. Name string `json:"name"`
  26. Type IdentityProviderType `json:"type"`
  27. IdentifierFilter string `json:"identifierFilter"`
  28. Config *IdentityProviderConfig `json:"config"`
  29. }
  30. type IdentityProviderCreate struct {
  31. Name string `json:"name"`
  32. Type IdentityProviderType `json:"type"`
  33. IdentifierFilter string `json:"identifierFilter"`
  34. Config *IdentityProviderConfig `json:"config"`
  35. }
  36. type IdentityProviderFind struct {
  37. ID *int
  38. }
  39. type IdentityProviderPatch struct {
  40. ID int
  41. Type IdentityProviderType `json:"type"`
  42. Name *string `json:"name"`
  43. IdentifierFilter *string `json:"identifierFilter"`
  44. Config *IdentityProviderConfig `json:"config"`
  45. }
  46. type IdentityProviderDelete struct {
  47. ID int
  48. }