{"id":18426166,"url":"https://github.com/clevertap/terraform-provider-miro","last_synced_at":"2026-07-10T01:31:17.702Z","repository":{"id":145639586,"uuid":"375241789","full_name":"CleverTap/terraform-provider-miro","owner":"CleverTap","description":null,"archived":false,"fork":false,"pushed_at":"2021-06-30T04:10:41.000Z","size":42,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-13T06:03:44.647Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CleverTap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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}},"created_at":"2021-06-09T05:54:34.000Z","updated_at":"2024-07-01T17:35:00.000Z","dependencies_parsed_at":"2023-07-22T22:45:39.921Z","dependency_job_id":null,"html_url":"https://github.com/CleverTap/terraform-provider-miro","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/CleverTap/terraform-provider-miro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleverTap%2Fterraform-provider-miro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleverTap%2Fterraform-provider-miro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleverTap%2Fterraform-provider-miro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleverTap%2Fterraform-provider-miro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CleverTap","download_url":"https://codeload.github.com/CleverTap/terraform-provider-miro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleverTap%2Fterraform-provider-miro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35317805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-06T05:07:06.132Z","updated_at":"2026-07-10T01:31:17.682Z","avatar_url":"https://github.com/CleverTap.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"This Terraform provider enables to create, read, update, delete, and import operations for Miro users.\n \n \n## Requirements\n \n \n* [Go](https://golang.org/doc/install) \u003e= 1.16 (To build the provider plugin)\u003cbr\u003e\n* [Terraform](https://www.terraform.io/downloads.html) \u003e= 0.13.x \u003cbr/\u003e\n* Application: [Miro](https://miro.com/login/) (API is supported in all plans.)\n* [Miro API Documentation](https://developers.miro.com/reference#introduction)\n \n## Application Account\n \n### Setup\u003ca id=\"setup\"\u003e\u003c/a\u003e\n1. Create a Miro account. (https://miro.com/signup/)\n2. And Sign in to the Miro.\n3. Follow the link create app. (https://developers.miro.com/docs/getting-started#section-step-1-get-developer-team)\n4. Agree to the T\u0026C and click on Create APP.\n5. Set App name and Copy access token. (Or you can get an access token later.)\n \n \n### API Authentication\n *Miro uses OAuth 2.0 for authentication which provides Access Token to authenticate to the API.*\n1. Create a Dev Team and an Application ([follow this link](https://developers.miro.com/docs/getting-started))\u003cbr\u003e\n2. We need client_id, redirected_uri for token generation, client_id can found in your app under the profile section created in the previous step and localhost URI can be used as redirected_url.\n3. Put the required variable in the following link and make a request and it will redirect to provided redirected_uri with code.\nLink: https://miro.com/oauth/authorize?response_type=code\u0026client_id={client_ID}\u0026redirect_uri={redirected_uri}/ \u003cbr\u003e\n3. It will redirect to {redirected_uri}/code=AUTH_CODE\n4. Take auth code form here and make a POST request on Postman using following url\nhttps://api.miro.com/v1/oauth/token?grant_type=authorization_code\u0026code={AUTH_CODE}\u0026redirect_uri=REDIRECT_URI\u0026client_id=CLIENT_ID\u0026client_secret=CLIENT_SECRET\nClient Id and Secret Id can found under your app section. \u003cbr\u003e\n5. It will return a JSON response containing non-expiring access_token.\n \n \n## Building The Provider\n1. Clone the repository, add all the dependencies and create a vendor directory that contains all dependencies. For this, run the following commands: \u003cbr\u003e\n```\ncd terraform-provider-miro\ngo mod init terraform-provider-miro\ngo mod tidy\ngo mod vendor\n```\n \n## Managing terraform plugins\n*For Windows:*\n1. Run the following command to create a vendor sub-directory (`%APPDATA%/terraform.d/plugins/${host_name}/${namespace}/${type}/${version}/${OS_ARCH}`) which will consist of all terraform plugins. \u003cbr\u003e \nCommand: \n```bash\nmkdir -p %APPDATA%/Roaming/terraform.d/plugins/hashicorp.com/edu/miro/0.3/windows_amd64\n```\n2. Run `go build -o terraform-provider-miro.exe` to generate the binary in the present working directory. \u003cbr\u003e\n3. Run this command to move this binary file to the appropriate location.\n ```\n move terraform-provider-miro.exe %APPDATA%\\Roaming\\terraform.d\\plugins\\hashicorp.com\\edu\\miro\\0.3\\windows_amd64\n ``` \n\u003cp align=\"center\"\u003e[OR]\u003c/p\u003e\n \n3. Manually move the file from current directory to destination directory (`%APPDATA%\\Roaming\\terraform.d\\plugins\\hashicorp.com\\edu\\miro\\0.3\\windows_amd64`).\u003cbr\u003e\n \n \n## Working with terraform\n \n### Application Credential Integration in terraform\n1. Add `terraform` block and `provider` block as shown in [example usage](#example-usage).\n2. Get the credentials: access token and team_id or team_name.\n3. Assign the above credentials to the respective field in the `provider` block.\n \n### Basic Terraform Commands\n1. `terraform init` - To initialize a working directory containing Terraform configuration files.\n2. `terraform plan` - To create an execution plan. Displays the changes to be done.\n3. `terraform apply` - To execute the actions proposed in a Terraform plan. Apply the changes.\n \n### Create User\n1. Add the `email` and `role` (role is Optional) in the respective field in the `resource` block as shown in [example usage](#example-usage).\n2. Initialize the terraform provider `terraform init`\n3. Check the changes applicable using `terraform plan` and apply using `terraform apply`\n4. You will see that a user has been successfully invited and an invitation mail has been sent to the user.\n5. Set the account using invitation.\n \n### Update the user\nUpdate the data of the user in the respective field in the `resource` block as shown in [example usage](#example-usage).\n(in this case, the only role can be updated.)\nAnd apply using `terraform apply`\n \n### Read the User Data\nAdd `data` and `output` blocks as shown in the [example usage](#example-usage) and run `terraform apply` to read the user data.\n \n### Delete the user\nDelete the `resource` block of the user and run `terraform apply`.\n \n### Import a User Data\n1. Write manually a resource configuration block for the User as shown in [example usage](#example-usage).\n2. Run the command `terraform import miro_user.user1 [EMAIL_ID]:[TEAM_ID]`\n3. Check for the attributes in the `.tfstate` file and fill them accordingly in the resource block.\n \n## Example Usage\u003ca id=\"example-usage\"\u003e\u003c/a\u003e\n \n```terraform\nterraform {\n  required_providers {\n    miro = {\n      version = \"0.3\"\n      source  = \"hashicorp.com/edu/miro\"\n    }\n  }\n}\n \nprovider \"miro\" {\n  miro_token = \"_REPLACE_MIRO_TOKEN\"\n}\n \nresource \"miro_user\" \"user1\" {\n   email      = \"demo@domain.com\"\n   team_id = \"_REPLACE_MIRO_TEAM_ID\"\n   role       = \"admin\"\n}\n \noutput \"user1\" {\n  value = miro_user.user1\n}\n \ndata \"miro_user\" \"user2\" {\n  email = \"demo@domain.com\"\n  team_id = \"_REPLACE_MIRO_TEAM_ID\"\n}\n \noutput \"user2\" {\n  value = data.miro_user.user2\n}\n```\n \n## Argument Reference\n* `miro_token` (Required, String) - Miro provides an access token for authentication which we have already seen how to get access_token.\n* `miro_team_id` (Required, String) - It's an ID associated with for team, It can get from the profile page.\n* `email` (Required, String) - Email is the user's mail id who is a part of the team or will be a part of the team.\n* `role` (Optional, string) - Role is the user's role in the team it can be ```admin``` or ```member```.\n \n## Exceptions\n \n* New user's role will be a member by default but it can be changed later.\n* The Only Role can be updated for any team member.\n* The role of the last administrator for your team cannot be changed.\n* ```non_team``` users can't be managed. \u003cbr\u003e\nREFERENCE: https://community.miro.com/developer-platform-and-apis-57/how-to-get-email-address-of-non-team-role-member-via-the-api-823 \n\n* If the removed user owns any boards or projects, they also will be removed.\nIn case you want to save them, you need to reassign ownership first.\n* Last team member(which would be admin) can't be removed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclevertap%2Fterraform-provider-miro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclevertap%2Fterraform-provider-miro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclevertap%2Fterraform-provider-miro/lists"}