Cisco is consolidating two Meraki Terraform providers. This provider has been deprecated and will no longer be updated. The new provider (CiscoDevNet/terraform-provider-meraki) is now the official, actively maintained version.
The new Terraform provider will provide more efficient operations, ongoing support, new features, and improvements, ensuring a more robust and future-proof experience for all Meraki users.
Yes, but the old provider will no longer receive updates or new features. We encourage you to plan a migration to the new provider. Bugs will be fixed on a best effort basis until January 31st, 2026.
- Review Documentation: Read the new provider’s documentation carefully. Resource names and attributes are not necesarily the same.
- Update Configurations: Refactor your .tf files to match the new HCL format and attribute names.
- Test Plans: Run terraform plan to identify required changes and resolve any errors.
- Handle State: Use terraform import or state manipulation commands to align existing resources with the new provider’s resource model.
- Validate Changes: Test in a non-production environment before applying changes in production.
Your existing setup will continue to function, but no new features will be available for this provider. Over time, compatibility issues may arise as Terraform and Meraki evolve. Bugs will be fixed on a best effort basis until January 31st, 2026.
terraform-provider-meraki is a Terraform Provider for Cisco Meraki
The terraform-provider-meraki provides a Terraform provider for managing and automating your Cisco Meraki environment. It consists of a set of resources and data-sources for performing tasks related to Meraki.
This collection has been tested and supports Cisco Meraki 1.33.0.
There are two ways to get and use the provider.
- Downloading & installing it from registry.terraform.io
- Building it from source
To install this provider, copy and paste this code into your Terraform configuration. Then, run terraform init.
terraform {
required_providers {
meraki = {
source = "cisco-open/meraki"
version = "1.2.4-beta"
}
}
}
provider "meraki" {
# Configuration options
# More info at https://registry.terraform.io/providers/cisco-open/meraki/latest/docs#example-usage
}Clone this repository to: $GOPATH/src/github.com/cisco-open/terraform-provider-meraki
mkdir -p $GOPATH/src/github.com/meraki/
cd $GOPATH/src/github.com/meraki/
git clone https://github.com/cisco-open/terraform-provider-meraki.gitEnter the provider directory and build the provider
cd $GOPATH/src/github.com/cisco-open/terraform-provider-meraki
make buildIf the Makefile values (HOSTNAME, NAMESPACE, NAME, VERSION) were not changed, then the following code could used without changes. Otherwise change the values accordingly.
To use this provider, copy and paste this code into your Terraform configuration. Then, run terraform init.
terraform {
required_providers {
meraki = {
source = "hashicorp.com/edu/meraki"
version = "1.2.4-beta"
}
}
}
provider "meraki" {
# Configuration options
# More info at https://registry.terraform.io/providers/cisco-open/meraki/latest/docs#example-usage
}If you wish to work on the provider, you'll first need Go installed
on your machine (version 1.15+ is required). You'll also need to correctly setup a
GOPATH, as well as adding $GOPATH/bin to your $PATH.
To compile the provider, run make build. This will build the provider and put the provider binary in the $GOPATH/bin directory.
$ make build
...
$ $GOPATH/bin/terraform-provider-meraki
...In order to test the provider, you can simply run make test.
$ make testIn order to run the full suite of Acceptance tests, run make testacc.
Note: Acceptance tests create real resources.
$ make testaccIn the docs directory, you can find the documentation.
The following table shows the supported versions.
| Dashboard Api version | Terraform "meraki" provider version | Go "dashboard-api-go" version |
|---|---|---|
| 1.33.0 | 0.1.0-alpha | 2.0.9 |
| 1.44.1 | 0.2.0-alpha | 3.0.0 |
| 1.53.0 | 1.2.4-beta | 4.0.0 |
If your SDK, Terraform provider is older please consider updating it first.
- Support for fetching all items with
per_page=-1
A new feature has been introduced to the API endpoints, enabling clients to fetch all available items in a single request by setting theper_pageparameter to-1. This enhancement allows you to retrieve the full dataset without needing to make multiple paginated requests.
- When
per_pageis set to-1, the server will return all available items for that endpoint, bypassing the pagination logic. - If a positive integer is passed for
per_page, the endpoint will continue using traditional pagination and return only the number of items specified byper_page.
Note: Configuration via environment variables (
MERAKI_RETRIES,MERAKI_RETRY_DELAY, etc.) is now deprecated. All configuration must be set directly in theproviderblock of your.tffile.
You can customize retry options as follows:
provider "meraki" {
meraki_retries = 3 # Maximum number of retries
meraki_retries_delay = 1000 # Base wait time between retries in ms
meraki_retries_jitter = 3000 # Maximum random jitter in ms
meraki_use_retry_header = false # Whether to respect the Retry-After header
# ...other configuration parameters...
}In the docs directory, you can find the documentation.
The following table shows the supported versions.
| Dashboard Api version | Terraform "meraki" provider version | Go "dashboard-api-go" version |
|---|---|---|
| 1.33.0 | 0.1.0-alpha | 2.0.9 |
| 1.44.1 | 0.2.0-alpha | 3.0.0 |
| 1.53.0 | 1.2.4-beta | 4.0.0 |
If your SDK, Terraform provider is older please consider updating it first.
- Support for fetching all items with
per_page=-1
A new feature has been introduced to the API endpoints, enabling clients to fetch all available items in a single request by setting theper_pageparameter to-1. This enhancement allows you to retrieve the full dataset without needing to make multiple paginated requests.
- When
per_pageis set to-1, the server will return all available items for that endpoint, bypassing the pagination logic. - If a positive integer is passed for
per_page, the endpoint will continue using traditional pagination and return only the number of items specified byper_page.
Ongoing development efforts and contributions to this provider are tracked as issues in this repository.
We welcome community contributions to this project. If you find problems, need an enhancement or need a new data-source or resource, please open an issue or create a PR against the Terraform Provider for Cisco Meraki repository.
All notable changes to this project will be documented in the CHANGELOG file.
The development team may make additional changes as the library evolves with the Cisco Meraki.
This library is distributed under the license found in the LICENSE file.