MCPcopy Index your code
hub / github.com/CiscoDevNet/terraform-provider-iosxe

github.com/CiscoDevNet/terraform-provider-iosxe @v0.18.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.18.0 ↗ · + Follow
6,259 symbols 22,840 edges 678 files 3,874 documented · 62% updated 2d agov0.18.0 · 2026-05-13★ 8513 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Tests

Terraform Provider IOS-XE

The IOSXE provider provides resources to interact with one or more Cisco IOS-XE devices.

Please note that this Terraform provider is developed and maintained by a dedicated community of contributors. It is not directly supported by Cisco. While we strive to ensure the provider is robust and reliable, its development relies on community contributions and engagement.

All resources and data sources have been tested with the following releases.

Platform Version
Catalyst 8000v 17.12.4
Catalyst 8000v 17.15.3
Catalyst 9000v 17.15.1

Documentation: https://registry.terraform.io/providers/CiscoDevNet/iosxe/latest

Requirements

Device Configuration

The provider supports both NETCONF (SSH-based, default) and RESTCONF (HTTPS-based) protocols for device communication.

NETCONF (Default)

NETCONF is the default protocol. Enable it on your IOS-XE device:

netconf-yang

Optionally, enable the candidate datastore for transactional commits:

netconf-yang feature candidate-datastore

RESTCONF

RESTCONF requires the following device configuration:

ip http secure-server
restconf

Support

As this is a community-driven project, support is provided by the community. If you encounter issues or have questions, please use the following resources:

  • GitHub Issues: Report bugs or request features on our GitHub Issues page.
  • Discussion Forums: Engage with other users and contributors on GitHub Discussions.

Contributing

We welcome contributions from the community! If you'd like to contribute, please follow our contribution guidelines. Whether it's reporting bugs, suggesting features, or submitting pull requests, your involvement helps improve the project for everyone.

Security

Reporting Vulnerabilities

Please see our security policy for reporting vulnerabilities.

Software Bill of Materials (SBOM)

This project provides machine-readable SBOMs (Software Bill of Materials) in SPDX and CycloneDX formats for dependency transparency and vulnerability tracking. Find the latest SBOM in the sbom/latest/ directory or attached to GitHub Releases. See SBOM.md for usage instructions and examples.

Building The Provider

  1. Clone the repository
  2. Enter the repository directory
  3. Build the provider using the Go install command:
go install

Adding Dependencies

This provider uses Go modules. Please see the Go documentation for the most up to date information about using Go modules.

To add a new dependency github.com/author/dependency to your Terraform provider:

go get github.com/author/dependency
go mod tidy

Then commit the changes to go.mod and go.sum.

Using the Provider

This Terraform Provider is available to install automatically via terraform init. If you're building the provider, follow the instructions to install it as a plugin. After placing it into your plugins directory, run terraform init to initialize it.

Additional documentation, including available resources and their arguments/attributes can be found on the Terraform documentation website.

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements above).

To compile the provider, run go install. This will build the provider and put the provider binary in the $GOPATH/bin directory.

More information about how the code generation works can be found in the contribution guide.

Acceptance Tests

In order to run the full suite of acceptance tests, set up a .env file with the appropriate environment variables. Copy the sample file at .env.sample to .env, then edit the file to set the appropriate environment variables.

cp .env.sample .env

Then, run make test to execute all acceptance tests across all devices and versions.

Note: Acceptance tests create real resources.

More information about how the acceptance tests work can be found in the contribution guide.

Extension points exported contracts — how you extend this code

SetKeyer (Interface)
SetKeyer is something like ReadResponse.Private or ImportStateResponse.Private.
internal/provider/helpers/flags.go

Core symbols most depended-on inside this repo

GetFromXPath
called by 10711
internal/provider/helpers/netconf.go
RemoveFromXPath
called by 6750
internal/provider/helpers/netconf.go
LastElement
called by 4608
internal/provider/helpers/restconf.go
NewAttributeDescription
called by 3741
internal/provider/helpers/description_builder.go
SetFromXPath
called by 3349
internal/provider/helpers/netconf.go
Debug
called by 1974
internal/provider/helpers/tflog_adapter.go
getXPath
called by 1307
internal/provider/model_iosxe_snmp_server.go
getPath
called by 943
internal/provider/model_iosxe_snmp_server.go

Shape

Method 3,919
Function 1,212
Struct 1,126
Interface 1
TypeAlias 1

Languages

Go100%

Modules by API surface

internal/provider/model_iosxe_logging.go62 symbols
internal/provider/model_iosxe_ospf_vrf.go56 symbols
internal/provider/model_iosxe_ospf.go56 symbols
internal/provider/model_iosxe_vrf.go48 symbols
internal/provider/helpers/netconf_test.go48 symbols
internal/provider/model_iosxe_system.go46 symbols
internal/provider/model_iosxe_interface_ethernet.go40 symbols
internal/provider/model_iosxe_device_sensor.go38 symbols
internal/provider/model_iosxe_snmp_server.go36 symbols
internal/provider/model_iosxe_object_group.go36 symbols
internal/provider/model_iosxe_ntp.go36 symbols
internal/provider/model_iosxe_interface_port_channel.go36 symbols

For agents

$ claude mcp add terraform-provider-iosxe \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page