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  }