// Code generated by "gen"; DO NOT EDIT.
// This file is meant to be re-generated in place and/or deleted at any time.
package roleset

import (
	"context"

	"github.com/clerk/clerk-sdk-go/v2"
)

// Create creates a new role set.
func Create(ctx context.Context, params *CreateParams) (*clerk.RoleSet, error) {
	return getClient().Create(ctx, params)
}

// Get retrieves details for a role set.
func Get(ctx context.Context, roleSetKeyOrID string) (*clerk.RoleSet, error) {
	return getClient().Get(ctx, roleSetKeyOrID)
}

// Update updates a role set.
func Update(ctx context.Context, roleSetKeyOrID string, params *UpdateParams) (*clerk.RoleSet, error) {
	return getClient().Update(ctx, roleSetKeyOrID, params)
}

// Delete removes a role set.
func Delete(ctx context.Context, roleSetKeyOrID string) (*clerk.DeletedResource, error) {
	return getClient().Delete(ctx, roleSetKeyOrID)
}

// List returns a list of role sets.
func List(ctx context.Context, params *ListParams) (*clerk.RoleSetList, error) {
	return getClient().List(ctx, params)
}

// AddRoles adds roles to a role set.
func AddRoles(ctx context.Context, roleSetKeyOrID string, params *AddRolesParams) (*clerk.RoleSet, error) {
	return getClient().AddRoles(ctx, roleSetKeyOrID, params)
}

// RemoveRoles removes roles from a role set.
func RemoveRoles(ctx context.Context, roleSetKeyOrID string, params *RemoveRolesParams) (*clerk.RoleSet, error) {
	return getClient().RemoveRoles(ctx, roleSetKeyOrID, params)
}

func getClient() *Client {
	return &Client{
		Backend: clerk.GetBackend(),
	}
}
