integration.go 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package forms
  2. import (
  3. ints "github.com/porter-dev/porter/internal/models/integrations"
  4. )
  5. // CreateGCPIntegrationForm represents the accepted values for creating a
  6. // GCP Integration
  7. type CreateGCPIntegrationForm struct {
  8. UserID uint `json:"user_id" form:"required"`
  9. ProjectID uint `json:"project_id" form:"required"`
  10. GCPKeyData string `json:"gcp_key_data" form:"required"`
  11. GCPProjectID string `json:"gcp_project_id"`
  12. GCPRegion string `json:"gcp_region"`
  13. }
  14. // ToGCPIntegration converts the project to a gorm project model
  15. func (cgf *CreateGCPIntegrationForm) ToGCPIntegration() (*ints.GCPIntegration, error) {
  16. return &ints.GCPIntegration{
  17. UserID: cgf.UserID,
  18. ProjectID: cgf.ProjectID,
  19. GCPKeyData: []byte(cgf.GCPKeyData),
  20. GCPProjectID: cgf.GCPProjectID,
  21. GCPRegion: cgf.GCPRegion,
  22. }, nil
  23. }
  24. // CreateBasicAuthIntegrationForm represents the accepted values for creating a
  25. // basic auth integration
  26. type CreateBasicAuthIntegrationForm struct {
  27. UserID uint `json:"user_id" form:"required"`
  28. ProjectID uint `json:"project_id" form:"required"`
  29. Username string `json:"username"`
  30. Password string `json:"password"`
  31. }
  32. // ToBasicIntegration converts the project to a gorm project model
  33. func (cbf *CreateBasicAuthIntegrationForm) ToBasicIntegration() (*ints.BasicIntegration, error) {
  34. return &ints.BasicIntegration{
  35. UserID: cbf.UserID,
  36. ProjectID: cbf.ProjectID,
  37. Username: []byte(cbf.Username),
  38. Password: []byte(cbf.Password),
  39. }, nil
  40. }
  41. // CreateAWSIntegrationForm represents the accepted values for creating an
  42. // AWS Integration
  43. type CreateAWSIntegrationForm struct {
  44. UserID uint `json:"user_id" form:"required"`
  45. ProjectID uint `json:"project_id" form:"required"`
  46. AWSRegion string `json:"aws_region"`
  47. AWSClusterID string `json:"aws_cluster_id"`
  48. AWSAccessKeyID string `json:"aws_access_key_id"`
  49. AWSSecretAccessKey string `json:"aws_secret_access_key"`
  50. }
  51. // ToAWSIntegration converts the project to a gorm project model
  52. func (caf *CreateAWSIntegrationForm) ToAWSIntegration() (*ints.AWSIntegration, error) {
  53. return &ints.AWSIntegration{
  54. UserID: caf.UserID,
  55. ProjectID: caf.ProjectID,
  56. AWSRegion: caf.AWSRegion,
  57. AWSClusterID: []byte(caf.AWSClusterID),
  58. AWSAccessKeyID: []byte(caf.AWSAccessKeyID),
  59. AWSSecretAccessKey: []byte(caf.AWSSecretAccessKey),
  60. }, nil
  61. }
  62. // OverwriteAWSIntegrationForm represents the accepted values for overwriting an
  63. // AWS Integration
  64. type OverwriteAWSIntegrationForm struct {
  65. UserID uint `json:"user_id" form:"required"`
  66. ProjectID uint `json:"project_id" form:"required"`
  67. AWSAccessKeyID string `json:"aws_access_key_id"`
  68. AWSSecretAccessKey string `json:"aws_secret_access_key"`
  69. }