github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/dms/v1/permissions/Create.go (about) 1 package permissions 2 3 import ( 4 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/build" 6 ) 7 8 type CreateOpts struct { 9 Name string `json:"name" required:"true"` 10 Policies []CreatePolicy `json:"policies" required:"true"` 11 } 12 13 type CreatePolicy struct { 14 UserName string `json:"user_name,omitempty"` 15 AccessPolicy string `json:"access_policy,omitempty"` 16 } 17 18 func Create(client *golangsdk.ServiceClient, instanceId string, opts []CreateOpts) error { 19 // PUT /v2/{project_id}/instances/{instance_id}/users 20 b, err := build.RequestBody(opts, "topics") 21 if err != nil { 22 return err 23 } 24 url := client.ServiceURL("instances", instanceId, "topics", "accesspolicy") 25 _, err = client.Post(url, b, nil, &golangsdk.RequestOpts{ 26 OkCodes: []int{204}, 27 }) 28 29 return err 30 }