--- layout: commands page_title: 'Commands: Namespace Write' --- # Consul Namespace Write Command: `consul namespace write` Corresponding HTTP API Endpoint: [\[PUT\] /v1/namespace/:name](/api-docs/namespaces#update-a-namespace) This `namespace write` command creates or updates a namespace's configuration from its full definition. This was added in Consul Enterprise 1.7.0. The table below shows this command's [required ACLs](/api-docs#authentication). Configuration of [blocking queries](/api-docs/features/blocking) and [agent caching](/api-docs/features/caching) are not supported from commands, but may be from the corresponding HTTP endpoint. | ACL Required | | ---------------- | | `operator:write` | ## Usage Usage: `consul namespace write ` The `` must either be a file path or `-` to indicate that the definition should be read from stdin. The definition can be in either JSON or HCL format. See [here](/docs/enterprise/namespaces#namespace-definition) for a description of the namespace definition. #### Command Options - `-format=` - How to output the results. The choices are: pretty or json - `-meta` - Indicates that namespace metadata such as the raft indices should be shown for the namespace #### API Options @include 'http_api_partition_options.mdx' @include 'http_api_options_client.mdx' @include 'http_api_options_server.mdx' ## Examples Create a new Namespace: ```shell-session $ consul namespace write - <<< 'Name = "team-1"' Name: team-1 Description: ``` Showing Raft Metadata: ```shell-session $ consul namespace write -meta - <<< 'Name = "team-1"' Name: team-1 Description: Create Index: 339 Modify Index: 344 ``` JSON Format: ```shell-session $ cat ns.hcl Name = "foo" Description = "Example Namespace" Meta { team-id = "574407f3-8b26-4c84-8e51-028bb8cbdd37" } $ consul namespace write -format=json ns.hcl { "Name": "foo", "Description": "Example Namespace", "Meta": { "team-id": "574407f3-8b26-4c84-8e51-028bb8cbdd37" }, "CreateIndex": 352, "ModifyIndex": 352 } ```