/
project_teams.go
41 lines (32 loc) · 1.23 KB
/
project_teams.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package v1
import (
"go.mongodb.org/atlas/mongodbatlas"
"github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/api/v1/common"
)
// +kubebuilder:validation:Enum=GROUP_OWNER;GROUP_CLUSTER_MANAGER;GROUP_DATA_ACCESS_ADMIN;GROUP_DATA_ACCESS_READ_WRITE;GROUP_DATA_ACCESS_READ_ONLY;GROUP_READ_ONLY
type TeamRole string
const (
TeamRoleOwner TeamRole = "GROUP_OWNER"
TeamRoleClusterManager TeamRole = "GROUP_CLUSTER_MANAGER"
TeamRoleDataAccessAdmin TeamRole = "GROUP_DATA_ACCESS_ADMIN"
TeamRoleDataAccessReadWrite TeamRole = "GROUP_DATA_ACCESS_READ_WRITE"
TeamRoleDataAccessReadOnly TeamRole = "GROUP_DATA_ACCESS_READ_ONLY"
TeamRoleReadOnly TeamRole = "GROUP_READ_ONLY"
)
type Team struct {
// Reference to the team which will assigned to the project
TeamRef common.ResourceRefNamespaced `json:"teamRef"`
// +kubebuilder:validation:MinItems=1
// Roles the users of the team has over the project
Roles []TeamRole `json:"roles"`
}
func (in *Team) ToAtlas(teamID string) *mongodbatlas.ProjectTeam {
result := &mongodbatlas.ProjectTeam{
TeamID: teamID,
RoleNames: make([]string, 0, len(in.Roles)),
}
for _, role := range in.Roles {
result.RoleNames = append(result.RoleNames, string(role))
}
return result
}