{"id":37882942,"url":"https://github.com/cisco-en-programmability/terraform-provider-catalystcenter","last_synced_at":"2026-01-16T16:49:49.853Z","repository":{"id":256636241,"uuid":"855935193","full_name":"cisco-en-programmability/terraform-provider-catalystcenter","owner":"cisco-en-programmability","description":"Terraform Provider for Catalyst Center","archived":false,"fork":false,"pushed_at":"2025-06-17T23:10:41.000Z","size":5154,"stargazers_count":1,"open_issues_count":10,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-15T13:45:21.595Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cisco-en-programmability.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-11T17:43:17.000Z","updated_at":"2025-08-25T17:21:52.000Z","dependencies_parsed_at":"2024-09-14T09:28:04.612Z","dependency_job_id":"33577939-5598-42a2-b2d8-06ef352c6a99","html_url":"https://github.com/cisco-en-programmability/terraform-provider-catalystcenter","commit_stats":null,"previous_names":["cisco-en-programmability/terraform-provider-catalystcenter"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cisco-en-programmability/terraform-provider-catalystcenter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-en-programmability%2Fterraform-provider-catalystcenter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-en-programmability%2Fterraform-provider-catalystcenter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-en-programmability%2Fterraform-provider-catalystcenter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-en-programmability%2Fterraform-provider-catalystcenter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cisco-en-programmability","download_url":"https://codeload.github.com/cisco-en-programmability/terraform-provider-catalystcenter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cisco-en-programmability%2Fterraform-provider-catalystcenter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T16:49:49.744Z","updated_at":"2026-01-16T16:49:49.822Z","avatar_url":"https://github.com/cisco-en-programmability.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# terraform-provider-catalystcenter\n\nterraform-provider-catalystcenter is a Terraform Provider for [Cisco Catalyst Center](https://developer.cisco.com/docs/dna-center/)\n\n## Requirements\n\n- [Terraform](https://www.terraform.io/downloads.html) 0.13.x\n- [Go](https://golang.org/doc/install) 1.20 (to build the provider plugin)\n\n## Introduction\n\nThe terraform-provider-catalystcenter provides a Terraform provider for managing and automating your Cisco Catalyst Center environment. It consists of a set of resources and data-sources for performing tasks related to Catalyst Center.\n\nThis collection has been tested and supports Cisco Catalyst Center 2.3.5.3.\n\nOther versions of this collection have support for previous Cisco Catalyst Center versions. The recommended versions are listed below on the [Compatibility matrix](#compatibility-matrix).\n\n## Compatibility matrix\nThe following table shows the supported versions.\n\n| Cisco Catalyst Center version | Terraform \"catalystcenter\" provider version |\n|--------------------------|----------------------------------------|\n| 2.3.7.6                  | 1.0.0-beta                             |\n| 2.3.7.9                  | 1.2.0-beta                             |\n\nIf your SDK, Terraform provider is older please consider updating it first.\n\n## Using the provider\n\nThere are two ways to get and use the provider.\n1. Downloading \u0026 installing it from registry.terraform.io\n2. Building it from source\n\n### From build (For test)\n\nClone this repository to: `$GOPATH/src/github.com/cisco-en-programmability/terraform-provider-catalystcenter`\n\n```sh\n$ mkdir -p $GOPATH/src/github.com/cisco-en-programmability/\n$ cd $GOPATH/src/github.com/cisco-en-programmability/\n$ git clone https://github.com/cisco-en-programmability/terraform-provider-catalystcenter.git\n```\n\nEnter the provider directory and build the provider\n\n! **NOTE**:\nIt is important to check the architecture of your operating system in the file [MakeFile](./Makefile)\n\n```sh\n$ cd $GOPATH/src/github.com/cisco-en-programmability/terraform-provider-catalystcenter\n$ make developtest\n```\n\nIf the Makefile values (HOSTNAME, NAMESPACE, NAME, VERSION) were not changed, then the following code could used without changes.\nOtherwise change the values accordingly.\n\n\nTo use this provider, copy and paste this code into your Terraform configuration. Then, run terraform init.\n\n```hcl\nterraform {\n  required_providers {\n    catalystcenter = {\n      source = \"cisco-en-programmability/catalystcenter\"\n      version = \"1.2.0-beta\"\n    }\n  }\n}\n\n# Configure provider with your Cisco Catalyst Center SDK credentials\nprovider \"catalystcenter\" {\n  # Cisco Catalyst Center user name\n  username = \"admin\"\n  # it can be set using the environment variable CATALYST_BASE_URL\n\n  # Cisco Catalyst Center password\n  password = \"admin123\"\n  # it can be set using the environment variable CATALYST_USERNAME\n\n  # Cisco Catalyst Center base URL, FQDN or IP\n  base_url = \"https://172.168.196.2\"\n  # it can be set using the environment variable CATALYST_PASSWORD\n\n  # Boolean to enable debugging\n  debug = \"false\"\n  # it can be set using the environment variable CATALYST_DEBUG\n\n  # Boolean to enable or disable SSL certificate verification\n  ssl_verify = \"false\"\n  # it can be set using the environment variable CATALYST_SSL_VERIFY\n}\n```\n\nThere are several examples of the use of the provider within the folder [samples](./examples/samples)\n\n## Example for_each\n```hcl\nlocals {\n interfaces = {\n   \"1\" = { description = \"desc1\", interface_uuid = \"c6820b57-ecde-4b6d-98db-06ba10486809\" },\n   \"2\" = { description = \"desc2\", interface_uuid = \"c6820b57-ecde-4b6d-98db-06ba10486801\" },\n   \"3\" = { description = \"desc3\", interface_uuid = \"c6820b57-ecde-4b6d-98db-06ba10486802\" }\n }\n}\n\nresource \"catalystcenter_interface_update\" \"example\" {\n  provider = catalystcenter\n  for_each = local.interfaces\n  parameters {\n    description    = each.value.description\n    interface_uuid = each.value.interface_uuid\n    vlan_id        = each.key\n  }\n}\n```\n\n## Developing the Provider\n\nIf you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed\non your machine (version 1.15+ is _required_). You'll also need to correctly setup a\n[GOPATH](http://golang.org/doc/code.html#GOPATH), as well as adding `$GOPATH/bin` to your `$PATH`.\n\nTo compile the provider, run `make build`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.\n\n```sh\n$ make build\n...\n$ $GOPATH/bin/terraform-provider-catalystcenter\n...\n```\n\nIn order to test the provider, you can simply run `make test`.\n\n```sh\n$ make test\n```\n\nIn order to run the full suite of Acceptance tests, run `make testacc`.\n\n_Note:_ Acceptance tests create real resources.\n\n```sh\n$ make testacc\n```\n\n## Documentation\n\nIn the [docs directory](./docs/) you can find the documentation source for this 1.0.19-beta version.\n\nYou can find the documentation online for the previously released versions at [Terraform Registry - Cisco Catalyst Center provider](https://registry.terraform.io/providers/cisco-en-programmability/catalystcenter/latest/docs).\n\n\n# Automatic Version Management for Resources and DataSources\nIn this Terraform provider, version management is handled dynamically for **all resources** and **datasources**. The version of a resource or datasource is automatically selected based on the available versions in the environment, allowing users to either use a default version or specify a particular version when needed. Below is an explanation of how this automatic version selection works for both resources and datasources.\n\n## General Version Selection Behavior\nFor all resources and datasources, the behavior follows these general rules:\n\n1. **If multiple versions of a resource or datasource exist (e.g., `resource_v1`, `resource_v2`)**:\n   * By **default**, the **oldest** available version will be selected. That is, if both `resource_v1` and `resource_v2` are available, the provider will automatically select `v1` unless explicitly specified otherwise.\n   * If a user wants to use the latest version (e.g., `v2`), they need to specify it explicitly in the configuration.\n\n2. **If only one version of a resource or datasource exists (e.g., only `resource_v1`)**:\n   * **The resource or datasource will automatically be used in that version**, without needing to specify the version suffix in the configuration.\n\n3. **If only the latest version is available (e.g., only `resource_v2` and not `resource_v1`)**:\n   * The resource or datasource will automatically refer to the **latest available version**, i.e., `resource_v2`.\n\n\n## Example Usage with Resources\n### Case 1: Both `resource_v1` and `resource_v2` are available\nIf both `resource_v1` and `resource_v2` are available in your environment, the provider will select `resource_v1` by default. If you want to use `resource_v2`, you can specify it explicitly:\n\n```hcl\n# Using version 1 (default)\nresource \"resource\" \"default\" {\n  # This resource will refer to `resource_v1` by default\n}\n\n# Explicitly using version 2\nresource \"resource_v2\" \"default\" {\n  # This resource will refer to `resource_v2`\n}\n```\n### Case 2: Only resource\\_v1 exists\nIf only resource\\_v1 is available in your environment, there is no need to specify the version, as the provider will automatically use that version:\n\n```hcl\nresource \"resource\" \"default\" {\n\n# This resource will refer to `resource_v1` since it's the only version available\n}\n```\n### Case 3: Only resource\\_v2 exists\nIf only resource\\_v2 is available in your environment, the provider will automatically refer to that version, since resource\\_v1 is not available:\n\n```hcl\nresource \"resource\" \"default\" {\n\n# This resource will refer to `resource_v2` since `resource_v1` is not available\n}\n```\n## Example Usage with DataSources\nThe same version selection logic applies to datasources. Below is how version management works for datasources:\n\n### Case 1: Both datasource\\_v1 and datasource\\_v2 are available\n```hcl\n# Using version 1 (default)\ndata \"datasource\" \"default\" {\n\n# This datasource will refer to `datasource_v1` by default\n}\n\n# Explicitly using version 2\ndata \"datasource_v2\" \"default\" {\n\n# This datasource will refer to `datasource_v2`\n}\n```\n### Case 2: Only datasource\\_v1 exists\n```hcl\ndata \"datasource\" \"default\" {\n\n# This datasource will refer to `datasource_v1` since it's the only version available\n}\n```\n### Case 3: Only datasource\\_v2 exists\n```hcl\ndata \"datasource\" \"default\" {\n\n# This datasource will refer to `datasource_v2` since `datasource_v1` is not available\n}\n```\n\n# Contributing\n\nOngoing development efforts and contributions to this provider are tracked as issues in this repository.\n\nWe 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 Catalyst Center repository](https://github.com/cisco-en-programmability/terraform-provider-catalystcenter/issues).\n\n# Change log\n\nAll notable changes to this project will be documented in the [CHANGELOG](./CHANGELOG.md) file.\n\nThe development team may make additional changes as the library evolves with the Cisco Catalyst Center.\n\n**NOTE**: Consider reviewing the Changelog to review the new features of the 1.0.19-beta version.\n\n## License\n\nThis library is distributed under the license found in the [LICENSE](./LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcisco-en-programmability%2Fterraform-provider-catalystcenter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcisco-en-programmability%2Fterraform-provider-catalystcenter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcisco-en-programmability%2Fterraform-provider-catalystcenter/lists"}