# RoleService

Accessible via `iam.roles`. Manages roles and permissions.

## Register Role

```typescript
const { id, role } = await iam.roles.register({
  code: 'EDITOR',
  name: 'Editor',
  permissions: ['read', 'write'], // optional
  tenantId: 'optional-tenant-id', // optional (scope to tenant)
  projectId: 'optional-project-id', // optional (scope to project)
  metadata: { level: '2' } // optional
});
```

## Get Single Role

```typescript
// By ID
const { role } = await iam.roles.getById('role-id');

// By code (optionally scoped to a tenant)
const { role } = await iam.roles.getByCode('EDITOR', 'optional-tenant-id');
```

## Update Role

```typescript
await iam.roles.update({
  id: 'role-id',
  name: 'Senior Editor', // optional
  code: 'SENIOR_EDITOR', // optional
  permissions: ['read', 'write', 'delete'], // optional
  tenantId: 'tenant-id', // optional
  projectId: 'project-id', // optional
  metadata: { level: '3' } // optional
});
```

## Delete Role

```typescript
await iam.roles.delete('role-id');
```
