Skip to main content

delete-role

dci delete-role <id>

Deletes a custom role. Preset roles cannot be deleted, and a role still assigned to users or groups must be unassigned first. A service account of a parent tenant can delete a descendant tenant's role by setting X-Tenant-Id to that tenant's customer ID.

  • id — Role ID or name as shown by dci list-roles. Names resolve (exact, unique substring, or close typo); the confirmation shows the resolved target.

Only custom roles can be deleted; a preset role returns 400. A role that is still assigned to users or groups, or held as a child tenant role, cannot be deleted (409): unassign it first. A 503 means role cleanup is temporarily unavailable, so retry the deletion.

Examples​

# Preview what would be deleted without sending a request.
dci delete-role <role-id> --dry-run
# Delete the role without an interactive prompt, for scripts.
dci delete-role <role-id> --yes

Output​

On success, this command produces no response data.

Errors​

On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.

HTTP status to exit code mapping
HTTP statusExit codeError codeMeaning
40030VALIDATION_ERRORThe arguments or request body were rejected. Review the command's flags and payload.
40110AUTHENTICATION_FAILEDNot signed in, or the API token is invalid. Run dci login or check DCI_API_KEY.
40311PERMISSION_DENIEDThe DoiT user or the active customer context does not have access.
40420RESOURCE_NOT_FOUNDThe requested resource does not exist. Check the identifier argument.
40921RESOURCE_CONFLICTThe operation conflicts with the resource's current state.
500, 50340API_SERVER_ERRORThe API failed to process the request. Retryable; contact DoiT support if it persists.

Aliases: deleterole