> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assetinfinity.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a new role as a copy of an existing one.

> The copy carries the role's settings, its permissions, the sites, departments, asset categories,
statuses and asset statuses it covers, and which fields it may edit or is kept from seeing. It does
not carry where the role is named elsewhere — status moves, approval steps, workflows, work order
types, subscriptions and shares — and it is held by nobody: assign people to it afterwards.

The name defaults to the original's with "(copy)" after it, and the description to the
original's. The copy is always active. A copy of the System Administrator is an ordinary role
holding today's permissions; it does not receive permissions added by later releases.

Requires admin.role.create. Everything is copied in one transaction, so if any part is refused
nothing is created. Where creating a role needs approval, the copy is refused; where only its
permissions or grants do, those are counted as held rather than applied.

Returns the new role's id and how many permissions, scope grants and field rules were copied.



## OpenAPI

````yaml /api-reference/openapi.json get /rpc/clone_role
openapi: 3.0.0
info:
  description: ''
  title: >-
    The only schema PostgREST exposes. Reads are security_invoker views; writes
    are SECURITY DEFINER functions. Rebuilt wholesale on every deploy — it holds
    no data.
  version: 12.2.3
servers:
  - url: https://app.assetinfinity.ai/api
security: []
tags:
  - name: Signing in
  - name: Profile
  - name: Assets
  - name: Asset lifecycle
  - name: Work lifecycle
  - name: Maintenance
  - name: Inventory
  - name: Inventory detail
  - name: Procurement
  - name: Contracts
  - name: Workforce
  - name: Capacity
  - name: Dispatch
  - name: Tools
  - name: Inspections
  - name: Verification
  - name: Reliability
  - name: Parts demand
  - name: Sensors and meters
  - name: Map
  - name: Floor plans
  - name: Labels
  - name: Lost and found
  - name: Root cause analysis
  - name: Reports
  - name: Audit center
  - name: Activity
  - name: Notifications
  - name: Channels
  - name: Search
  - name: Copilot
  - name: Import
  - name: Files
  - name: Sync
  - name: Support
  - name: Admin
  - name: Access
  - name: Lookups
  - name: Read models
  - name: Branding
  - name: Custom fields
  - name: Form studio
  - name: Workflows
  - name: Workflow studio
  - name: Rules
  - name: Statuses and transitions
  - name: Currencies and locales
  - name: Work configuration
  - name: Asset configuration
  - name: Inventory configuration
  - name: Tool configuration
  - name: Workforce configuration
  - name: Vendor and contract configuration
  - name: Document configuration
  - name: Inspection configuration
  - name: Sites, locations and the organisation
  - name: Platform
  - name: Amendments
  - name: Asset clone
  - name: Asset components
  - name: Asset register
  - name: Asset transfer
  - name: Audit feed
  - name: Billing
  - name: Bookings
  - name: Budgets
  - name: Bulk jobs
  - name: Calibration history
  - name: Capex plans
  - name: Conversations
  - name: Costing
  - name: Currency
  - name: Dashboards
  - name: Data exports
  - name: Directory sync
  - name: Document control
  - name: Document folders
  - name: Document tree
  - name: Documents
  - name: Energy
  - name: Extracts
  - name: Features
  - name: Feeds
  - name: Ffe plans
  - name: File exchange
  - name: Filing exceptions
  - name: Finance
  - name: Inbound mail
  - name: Keys
  - name: Knowledge
  - name: Licence
  - name: List views
  - name: Locations
  - name: Mapping
  - name: Mcp
  - name: Mcp oauth
  - name: Mfa
  - name: Numbering
  - name: Permits
  - name: Readers
  - name: Reference
  - name: Reference columns
  - name: Reference entry
  - name: Release
  - name: Scim
  - name: Security streams
  - name: Self verification
  - name: Setup
  - name: Shutdown
  - name: Sso
  - name: Telegram
  - name: Tenant switch
  - name: The caller's own work
  - name: The checklist library
  - name: Tools on a job, and who has them out
  - name: Tray
  - name: Vendor spend forecast
  - name: Vendors and contracts
  - name: Visitors
  - name: Webhooks
  - name: Work order execution
  - name: Work sequencing
  - name: Workforce detail
externalDocs:
  description: PostgREST Documentation
  url: https://postgrest.org/en/v12/references/api.html
paths:
  /rpc/clone_role:
    get:
      tags:
        - Admin
      summary: Create a new role as a copy of an existing one.
      description: >-
        The copy carries the role's settings, its permissions, the sites,
        departments, asset categories,

        statuses and asset statuses it covers, and which fields it may edit or
        is kept from seeing. It does

        not carry where the role is named elsewhere — status moves, approval
        steps, workflows, work order

        types, subscriptions and shares — and it is held by nobody: assign
        people to it afterwards.


        The name defaults to the original's with "(copy)" after it, and the
        description to the

        original's. The copy is always active. A copy of the System
        Administrator is an ordinary role

        holding today's permissions; it does not receive permissions added by
        later releases.


        Requires admin.role.create. Everything is copied in one transaction, so
        if any part is refused

        nothing is created. Where creating a role needs approval, the copy is
        refused; where only its

        permissions or grants do, those are counted as held rather than applied.


        Returns the new role's id and how many permissions, scope grants and
        field rules were copied.
      parameters:
        - in: query
          name: p_role_id
          required: true
          schema:
            format: uuid
            type: string
        - in: query
          name: p_name
          required: false
          schema:
            format: text
            type: string
        - in: query
          name: p_description
          required: false
          schema:
            format: text
            type: string
      responses:
        '200':
          description: OK

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.