forked from huaweicloud/huaweicloud-sdk-go
/
doc.go
112 lines (85 loc) · 2.32 KB
/
doc.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
Package roles provides information and interaction with the roles API
resource for the OpenStack Identity service.
Example to List Roles
listOpts := roles.ListOpts{
DomainID: "default",
}
allPages, err := roles.List(identityClient, listOpts).AllPages()
if err != nil {
panic(err)
}
allRoles, err := roles.ExtractRoles(allPages)
if err != nil {
panic(err)
}
for _, role := range allRoles {
fmt.Printf("%+v\n", role)
}
Example to Create a Role
createOpts := roles.CreateOpts{
Name: "read-only-admin",
DomainID: "default",
Extra: map[string]interface{}{
"description": "this role grants read-only privilege cross tenant",
}
}
role, err := roles.Create(identityClient, createOpts).Extract()
if err != nil {
panic(err)
}
Example to Update a Role
roleID := "0fe36e73809d46aeae6705c39077b1b3"
updateOpts := roles.UpdateOpts{
Name: "read only admin",
}
role, err := roles.Update(identityClient, roleID, updateOpts).Extract()
if err != nil {
panic(err)
}
Example to Delete a Role
roleID := "0fe36e73809d46aeae6705c39077b1b3"
err := roles.Delete(identityClient, roleID).ExtractErr()
if err != nil {
panic(err)
}
Example to List Role Assignments
listOpts := roles.ListAssignmentsOpts{
UserID: "97061de2ed0647b28a393c36ab584f39",
ScopeProjectID: "9df1a02f5eb2416a9781e8b0c022d3ae",
}
allPages, err := roles.ListAssignments(identityClient, listOpts).AllPages()
if err != nil {
panic(err)
}
allRoles, err := roles.ExtractRoleAssignments(allPages)
if err != nil {
panic(err)
}
for _, role := range allRoles {
fmt.Printf("%+v\n", role)
}
Example to Assign a Role to a User in a Project
projectID := "a99e9b4e620e4db09a2dfb6e42a01e66"
userID := "9df1a02f5eb2416a9781e8b0c022d3ae"
roleID := "9fe2ff9ee4384b1894a90878d3e92bab"
err := roles.Assign(identityClient, roleID, roles.AssignOpts{
UserID: userID,
ProjectID: projectID,
}).ExtractErr()
if err != nil {
panic(err)
}
Example to Unassign a Role From a User in a Project
projectID := "a99e9b4e620e4db09a2dfb6e42a01e66"
userID := "9df1a02f5eb2416a9781e8b0c022d3ae"
roleID := "9fe2ff9ee4384b1894a90878d3e92bab"
err := roles.Unassign(identityClient, roleID, roles.UnassignOpts{
UserID: userID,
ProjectID: projectID,
}).ExtractErr()
if err != nil {
panic(err)
}
*/
package roles