File: doc.go

package info (click to toggle)
golang-github-gophercloud-gophercloud 0.12.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, bullseye-backports
  • size: 10,224 kB
  • sloc: sh: 125; makefile: 21
file content (135 lines) | stat: -rw-r--r-- 2,932 bytes parent folder | download | duplicates (3)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
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 List Role Assignments for a User on a Project

	projectID := "a99e9b4e620e4db09a2dfb6e42a01e66"
	userID := "9df1a02f5eb2416a9781e8b0c022d3ae"
	listAssignmentsOnResourceOpts := roles.ListAssignmentsOnResourceOpts{
		UserID:    userID,
		ProjectID: projectID,
	}

	allPages, err := roles.ListAssignmentsOnResource(identityClient, listAssignmentsOnResourceOpts).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 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