---
layout: docs
page_title: 'Commands: namespace apply'
description: |
  The namespace apply command is used create or update a namespace.
---

# Command: namespace apply

The `namespace apply` command is used create or update a namespace.

<Tip>
  Visit the <a href="https://developer.hashicorp.com/nomad/tutorials/manage-clusters/namespaces">
    Nomad Namespaces tutorial
  </a> for more information.
</Tip>

## Usage

```plaintext
nomad namespace apply [options] <input>
```

Apply is used to create or update a namespace. The HCL specification file
will be read from stdin by specifying "-", otherwise a path to the file is
expected.

Instead of a file, you may instead pass the namespace name to create
or update as the only argument.

If ACLs are enabled, this command requires a management ACL token. In federated
clusters, the namespace will be created in the authoritative region and will be
replicated to all federated regions.

## General Options

@include 'general_options_no_namespace.mdx'

## Apply Options

- `-quota` : An optional quota to apply to the namespace.

- `-description` : An optional human readable description for the namespace.

- `-json` : Parse the input as a JSON namespace specification.

## Examples

Create a namespace with a quota:

```shell-session
$ nomad namespace apply -description "Prod API servers" -quota prod api-prod
Successfully applied namespace "api-prod"!
```

Remove a quota from a namespace:

```shell-session
$ nomad namespace apply -quota= api-prod
```

Create a namespace from a file:
```shell-session
$ cat namespace.hcl
name        = "dev"
description = "Namespace for developers"

capabilities {
  enabled_task_drivers  = ["docker", "exec"]
  disabled_task_drivers = ["raw_exec"]
}

meta {
  owner        = "John Doe"
  contact_mail = "john@mycompany.com"
}
$ nomad namespace apply namespace.hcl
```
