--- layout: "docs" page_title: "Commands: ACL Translate Rules" sidebar_current: "docs-commands-acl-translate-rules" --- -> **Deprecated:** This command exists only as a convenience to make legacy ACL migration easier. It will be removed in a future major release when support for the legacy ACL system is removed. # Consul ACL Translate Rules Command: `consul acl translate-rules` This command translates the legacy ACL rule syntax into the new syntax. ### Usage Usage: `consul acl translate rules [options] TRANSLATE` #### API Options <%= partial "docs/commands/http_api_options_client" %> <%= partial "docs/commands/http_api_options_server" %> #### Command Options * `TRANSLATE` - The rules to translate. If `-` is used, then the rules will be read from stdin. If `@` is prefixed to the value then the value is considered to be a file and the rules will be read from that file. * `-token-secret` - Specifies that what the `TRANSLATE` argument holds is not a rule set but rather the token secret ID of a legacy ACL token that holds the rule set. * `-token-accessor` - Specifies that what the `TRANSLATE` argument holds is not a rule set but rather the token accessor ID of a legacy ACL token that holds the rule set. ### Examples Translate rules within a file: ```sh $ consul acl translate-rules @rules.hcl ``` Translate rules from stdin: ```sh $ consul acl translate-rules - ``` Translate rules from a string argument: ```sh $ consul acl translate-rules 'key "" { policy = "write"}' ``` Translate rules for a legacy ACL token using its SecretID passed from stdin: ```sh $ consul acl translate-rules --token-secret - ``` Translate rules for a legacy ACL token using its AccessorID: ```sh $ consul acl translate-rules 429cd746-03d5-4bbb-a83a-18b164171c89 ```