@@ -16,18 +16,15 @@ type Organization struct {
16
16
// OrganizationUser user wraps the basic User type and adds data specific to the user's membership of an organization
17
17
type OrganizationUser struct {
18
18
User
19
- OrganizationRoles []OrganizationRole `json:"organization_roles"`
20
- RolesUpdatedAt time.Time `json:"roles_updated_at"`
19
+ OrganizationRoles []Role `json:"organization_roles"`
20
+ RolesUpdatedAt time.Time `json:"roles_updated_at"`
21
21
}
22
22
23
- // OrganizationRole defines an organization OrganizationRole
24
- type OrganizationRole string
25
-
26
- // The OrganizationRole enum values
23
+ // Organization Roles
27
24
const (
28
- RoleOrgMember OrganizationRole = "organization-member"
29
- RoleOrgAdmin OrganizationRole = "organization-admin"
30
- RoleOrgManager OrganizationRole = "organization-manager"
25
+ RoleOrgMember Role = "organization-member"
26
+ RoleOrgAdmin Role = "organization-admin"
27
+ RoleOrgManager Role = "organization-manager"
31
28
)
32
29
33
30
// Organizations gets all Organizations
@@ -39,11 +36,51 @@ func (c Client) Organizations(ctx context.Context) ([]Organization, error) {
39
36
return orgs , nil
40
37
}
41
38
42
- // OrgMembers get all members of the given organization
43
- func (c Client ) OrgMembers (ctx context.Context , orgID string ) ([]OrganizationUser , error ) {
39
+ func (c Client ) OrganizationByID (ctx context.Context , orgID string ) (* Organization , error ) {
40
+ var org Organization
41
+ err := c .requestBody (ctx , http .MethodGet , "/api/orgs/" + orgID , nil , & org )
42
+ if err != nil {
43
+ return nil , err
44
+ }
45
+ return & org , nil
46
+ }
47
+
48
+ // OrganizationMembers get all members of the given organization
49
+ func (c Client ) OrganizationMembers (ctx context.Context , orgID string ) ([]OrganizationUser , error ) {
44
50
var members []OrganizationUser
45
51
if err := c .requestBody (ctx , http .MethodGet , "/api/orgs/" + orgID + "/members" , nil , & members ); err != nil {
46
52
return nil , err
47
53
}
48
54
return members , nil
49
55
}
56
+
57
+ type UpdateOrganizationReq struct {
58
+ Name * string `json:"name"`
59
+ Description * string `json:"description"`
60
+ Default * bool `json:"default"`
61
+ AutoOffThreshold * Duration `json:"auto_off_threshold"`
62
+ CPUProvisioningRate * float32 `json:"cpu_provisioning_rate"`
63
+ MemoryProvisioningRate * float32 `json:"memory_provisioning_rate"`
64
+ }
65
+
66
+ func (c Client ) UpdateOrganization (ctx context.Context , orgID string , req UpdateOrganizationReq ) error {
67
+ return c .requestBody (ctx , http .MethodPatch , "/api/orgs/" + orgID , req , nil )
68
+ }
69
+
70
+ type CreateOrganizationReq struct {
71
+ Name string `json:"name"`
72
+ Description string `json:"description"`
73
+ Default bool `json:"default"`
74
+ ResourceNamespace string `json:"resource_namespace"`
75
+ AutoOffThreshold Duration `json:"auto_off_threshold"`
76
+ CPUProvisioningRate float32 `json:"cpu_provisioning_rate"`
77
+ MemoryProvisioningRate float32 `json:"memory_provisioning_rate"`
78
+ }
79
+
80
+ func (c Client ) CreateOrganization (ctx context.Context , req CreateOrganizationReq ) error {
81
+ return c .requestBody (ctx , http .MethodPost , "/api/orgs" , req , nil )
82
+ }
83
+
84
+ func (c Client ) DeleteOrganization (ctx context.Context , orgID string ) error {
85
+ return c .requestBody (ctx , http .MethodDelete , "/api/orgs/" + orgID , nil , nil )
86
+ }
0 commit comments