{"id":15142,"date":"2023-12-15T07:07:25","date_gmt":"2023-12-15T15:07:25","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=15142"},"modified":"2023-12-27T12:07:50","modified_gmt":"2023-12-27T20:07:50","slug":"terraform-provider-couchbase-capella","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/","title":{"rendered":"Terraform Provider for Couchbase Capella"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Developers and DevOps teams commonly utilize <\/span><a href=\"https:\/\/www.redhat.com\/en\/topics\/automation\/what-is-infrastructure-as-code-iac\"><span style=\"font-weight: 400;\">Infrastructure as Code (IaC)<\/span><\/a><span style=\"font-weight: 400;\"> tools and scripts to manage their software and infrastructure deployments in a repeatable and consistent manner. With IaC tools, users can automate the life cycle of deployments including provisioning, configuration, deployment and destruction of resources. <\/span><a href=\"https:\/\/www.hashicorp.com\/products\/terraform\"><span style=\"font-weight: 400;\">Hashicorp Terraform<\/span><\/a><span style=\"font-weight: 400;\"> is a very popular IaC tool.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We\u2019re pleased to announce the general availability of version 1.0 of the <\/span><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbase-capella\/latest\"><span style=\"font-weight: 400;\">Couchbase Capella Terraform Provider<\/span><\/a><span style=\"font-weight: 400;\">, which will allow users to programmatically manage Couchbase Capella deployments. This version supersedes the <\/span><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbasecapella\/latest\"><span style=\"font-weight: 400;\">v0.2 of the Capella provider<\/span><\/a><span style=\"font-weight: 400;\"> which is now deprecated and will be unsupported shortly.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this post, we give you a quick example walkthrough of the Capella Terraform provider.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Background<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Earlier this year, we announced the launch of our new version of <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/programmatic-admin-capella-management-api\/\"><span style=\"font-weight: 400;\">Capella Management API<\/span><\/a><span style=\"font-weight: 400;\"> &#8211; a revamped version of the Capella public API that allows users to programmatically control Couchbase Capella resources through RESTful interface.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The Couchbase Capella Terraform provider v1.0 leverages the Capella Management API. As such, the set of Capella resources that can be managed via the provider is dependent on the underlying API. As the API evolves to support new endpoints. The Terraform provider will be extended correspondingly in order to support the management of the corresponding resources exposed via the endpoints.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-15143\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/12\/image1-1024x263.png\" alt=\"\" width=\"900\" height=\"231\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/image1-1024x263.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/image1-300x77.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/image1-768x197.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/image1-1536x394.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/image1-1320x339.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/image1.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h2><span style=\"font-weight: 400;\">Provider Walkthrough<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In this example, we will demonstrate the use of the Capella Terraform provider to deploy a Capella project, a cluster and provision a bucket.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><a href=\"https:\/\/github.com\/couchbasecloud\/terraform-provider-couchbase-capella\/tree\/main\/examples\"><span style=\"font-weight: 400;\">GitHub repo<\/span><\/a><span style=\"font-weight: 400;\"> has an extensive set of examples for managing each of the supported resources including users, projects, clusters, buckets, database credentials, allowed CIDRs, App Services, backup\/restore and more.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Prerequisites<\/span><\/h3>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Terraform &gt;= 1.5.2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Go &gt;= 1.20<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A Capella paid account.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b>Note<\/b><span style=\"font-weight: 400;\"> that the current version of the provider is not supported on Capella free trials. Support for trials will be available when the underlying Capella management API supports orchestration of trial deployments.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Authentication &amp; Authorization<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">All operations by the Capella Terraform provider are authenticated and authorized via Capella Management API key. In a production environment, you will use something like <\/span><a href=\"https:\/\/www.hashicorp.com\/partners\/tech\/couchbase#vault\"><span style=\"font-weight: 400;\">HashiCorp Vault<\/span><\/a><span style=\"font-weight: 400;\"> or a secrets manager offered by a Cloud Service Provider such as <\/span><a href=\"https:\/\/aws.amazon.com\/secrets-manager\/\"><span style=\"font-weight: 400;\">AWS Secrets Manager<\/span><\/a><span style=\"font-weight: 400;\"> to manage your API keys. Reference to the secrets manager would be specified as input to the Terraform provider.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For purposes of this demonstration, we will set the credentials in a local environment variables file:\u00a0<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Create a file named <\/span><b><i>variables.tf<\/i><\/b><span style=\"font-weight: 400;\"> and add the following variables definitions. We will use these variables within our config file.<\/span><\/li>\n<\/ol>\n<pre class=\"left-margin:24 nums:false lang:js decode:true\">variable \"organization_id\" {\r\n\u00a0\u00a0description = \"Capella Organization ID\"\r\n}\r\n\r\nvariable \"auth_token\" {\r\n\u00a0\u00a0description = \"Authentication API Key\"\r\n}<\/pre>\n<p>2. <span style=\"font-weight: 400;\">Create a file named <\/span><b><i>terraform.template.tfvars<\/i><\/b><span style=\"font-weight: 400;\"> and add the following lines. Here, we specify the values of key variables associated with the deployment<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:js decode:true\">auth_token = \"&lt;replace-with-v4-api-key-secret&gt;\"\r\norganization_id = \"&lt;replace-with-the-oid-of-your-tenant&gt;\"<\/pre>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>auth_token<\/b><span style=\"font-weight: 400;\">: You can create the API key via <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/management-api-guide\/management-api-start.html#display-management-api-keys\"><span style=\"font-weight: 400;\">Capella UI<\/span><\/a><span style=\"font-weight: 400;\"> or via the <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/management-api-reference\/index.html#tag\/apikeys\"><span style=\"font-weight: 400;\">management API<\/span><\/a><span style=\"font-weight: 400;\">. Depending on the scope of the resources that is managed by the provider, you must create an Organization level or Project level API key with the right set of roles.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>organization_id<\/b><span style=\"font-weight: 400;\">: You can get this from organization management API or from the browser URL of Capella UI (look for \u201coid\u201d parameter)<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">https:\/\/cloud.couchbase.com\/databases?<strong>oid=<\/strong>0783f698-ac58\u20134018\u201384a3-xxxxxxxxxxxxx<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\">Configuration for sample deployment<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">As mentioned earlier, the <\/span><a href=\"https:\/\/github.com\/couchbasecloud\/terraform-provider-couchbase-capella\"><span style=\"font-weight: 400;\">GitHub repo<\/span><\/a><span style=\"font-weight: 400;\"> of the Provider has an extensive set of configuration templates. In this post, I am using a simple example to demonstrate the use of the provider to create a profile, deploy a cluster and a bucket within the cluster.\u00a0<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Create a file named <\/span><b><i>capella.tf<\/i><\/b><span style=\"font-weight: 400;\"> and add the following configuration. The configuration does the following<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Creates project within specified Organization\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Creates a cluster within the project\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Creates bucket within the cluster<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<pre class=\"nums:false lang:js decode:true\">terraform {\r\n\u00a0\u00a0required_providers {\r\n\u00a0\u00a0\u00a0\u00a0couchbase-capella = {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0source\u00a0 = \"registry.terraform.io\/couchbasecloud\/couchbase-capella\"\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0}\r\n}\r\n\r\n# Configure the Couchbase Capella Provider using predefined variables\r\nprovider \"couchbase-capella\" {\r\n\u00a0\u00a0\u00a0\u00a0authentication_token = var.auth_token\r\n}\r\n\r\n# Create example project resource\r\nresource \"couchbase-capella_project\" \"new_project\" {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0organization_id = var.organization_id\r\n\u00a0\u00a0\u00a0\u00a0\u00a0name\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"Terraform Demo Project\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0description \u00a0 \u00a0 = \"A Capella Project that will host a Capella cluster\"\r\n}\r\n\r\n# Stores the project name in an output variable.\r\n# Can be viewed using `terraform output project` command\r\noutput \"project\" {\r\n\u00a0\u00a0value = couchbase-capella_project.new_project.name\r\n}\r\n\r\n# Create\u00a0 cluster resource\r\nresource \"couchbase-capella_cluster\" \"new_cluster\" {\r\n\u00a0\u00a0organization_id = var.organization_id\r\n\u00a0\u00a0project_id\u00a0 \u00a0 \u00a0 = couchbase-capella_project.new_project.id\r\n\u00a0\u00a0name\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"Terraform Demo Cluster\"\r\n\u00a0\u00a0description \u00a0 \u00a0 = \"Test cluster created with Terraform\"\r\n\u00a0\u00a0cloud_provider = {\r\n\u00a0\u00a0\u00a0\u00a0type \u00a0 = \"aws\"\r\n\u00a0\u00a0\u00a0\u00a0region = \"us-east-1\"\r\n\u00a0\u00a0\u00a0\u00a0cidr \u00a0 = \"192.168.10.0\/23\"\r\n\u00a0\u00a0}\r\n\u00a0\u00a0couchbase_server = {\r\n\u00a0\u00a0\u00a0\u00a0version = \"7.2\"\r\n\u00a0\u00a0}\r\n\u00a0\u00a0service_groups = [\r\n\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0node = {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0compute = {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cpu = 4\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ram = 16\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0disk = {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0storage = 50\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type\u00a0 \u00a0 = \"io2\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0iops\u00a0 \u00a0 = 5000\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0num_of_nodes = 3\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0services \u00a0 \u00a0 = [\"data\", \"index\", \"query\"]\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0]\r\n\u00a0\u00a0availability = {\r\n\u00a0\u00a0\u00a0\u00a0\"type\" : \"multi\"\r\n\u00a0\u00a0}\r\n\u00a0\u00a0support = {\r\n\u00a0\u00a0\u00a0\u00a0plan \u00a0 \u00a0 = \"developer pro\"\r\n\u00a0\u00a0\u00a0\u00a0timezone = \"PT\"\r\n\u00a0\u00a0}\r\n}\r\n\r\n# Stores the cluster details in an output variable.\r\n# Can be viewed using `terraform output cluster` command\r\noutput \"cluster\" {\r\n\u00a0\u00a0value = couchbase-capella_cluster.new_cluster\r\n}\r\n\r\n# Create bucket in cluster\r\nresource \"couchbase-capella_bucket\" \"new_bucket\" {\r\n\u00a0\u00a0name \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"terraform_bucket\"\r\n\u00a0\u00a0organization_id\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = var.organization_id\r\n\u00a0\u00a0project_id \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = couchbase-capella_project.new_project.id\r\n\u00a0\u00a0cluster_id \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = couchbase-capella_cluster.new_cluster.id\r\n\u00a0\u00a0type \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"couchbase\"\r\n\u00a0\u00a0storage_backend\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"couchstore\"\r\n\u00a0\u00a0memory_allocation_in_mb\u00a0 \u00a0 = 100\r\n\u00a0\u00a0bucket_conflict_resolution = \"seqno\"\r\n\u00a0\u00a0durability_level \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"none\"\r\n\u00a0\u00a0replicas \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = 1\r\n\u00a0\u00a0flush\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = false\r\n\u00a0\u00a0time_to_live_in_seconds\u00a0 \u00a0 = 0\r\n\u00a0\u00a0eviction_policy\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"fullEviction\"\r\n}\r\n\r\n# Stores the bucket name in an output variable.\r\n# Can be viewed using `terraform output bucket` command\r\noutput \"bucket\" {\r\n\u00a0\u00a0value = couchbase-capella_bucket.new_bucket.name\r\n}<\/pre>\n<h3><span style=\"font-weight: 400;\">Deploy and Manage Resources<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Use standard <\/span><a href=\"https:\/\/developer.hashicorp.com\/terraform\/cli\/commands\"><span style=\"font-weight: 400;\">Terraform commands<\/span><\/a><span style=\"font-weight: 400;\"> to initialize and deploy the resources<\/span><\/p>\n<p><strong>1. Initialize the Terraform provider<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">Terraform must be initialized the very first time you use the provider:<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true\">terraform init<\/pre>\n<p><strong>2. Review the Terraform plan<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Use the following command to review the resources that will be deployed:<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true\">terraform plan -var-file terraform.template.tfvars<\/pre>\n<p><strong>3. Execute the Terraform Plan<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Deploy the Couchbase Capella resources using the following command:<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true \">terraform apply -var-file terraform.template.tfvars<\/pre>\n<p><span style=\"font-weight: 400;\">You should see output similar to the following. It will take a few minutes to deploy the resources:<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true\">capella_project.new_project: Creating...\r\ncapella_project.new_project: Creation complete after 0s [id=c9151819-2f75-41dd-b944-7e33d12163ea]\r\ncapella_cluster.new_cluster: Creating...\r\ncapella_cluster.new_cluster: Still creating... [10s elapsed]\r\ncapella_cluster.new_cluster: Still creating... [30s elapsed]\r\n.......\r\ncapella_cluster.new_cluster: Still creating... [2m50s elapsed]\r\ncapella_cluster.new_cluster: Still creating... [3m0s elapsed]\r\ncapella_cluster.new_cluster: Creation complete after 3m1s [id=29ebb043-xxxx-xxxx-xxxx-xxxxxxxxxxxx]\r\ncapella_bucket.new_bucket: Creating...\r\ncapella_bucket.new_bucket: Creation complete after 0s [id=dGVycmFmb3JtXXXXXXXXXX=]\r\nApply complete! Resources: 3 added, 0 changed, 0 destroyed.<\/pre>\n<p><strong>4. Get the current state of the resources<\/strong><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true \">terraform state list<\/pre>\n<p><span style=\"font-weight: 400;\">You should see output similar to the following which shows the three resources that are created:<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true\">couchbase-capella_bucket.new_bucket\r\ncouchbase-capella_cluster.new_cluster\r\ncouchbase-capella_project.new_project<\/pre>\n<p><strong>5. Get the detailed state of any deployed resource<\/strong><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true \">terraform state show couchbase-capella_project.new_project<\/pre>\n<p><span style=\"font-weight: 400;\">You should see output similar to the following which shows the three resources that are created:<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:js decode:true\"># capella_project.new_project:\r\nresource \"couchbase-capella_project\" \"new_project\" {\r\n\u00a0\u00a0\u00a0\u00a0audit \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0created_at\u00a0 = \"2023-11-19 22:59:59.695367442 +0000 UTC\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0created_by\u00a0 = \"WFXyD6xRlAyCwKcpLGs6pKVScBGK299c\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0modified_at = \"2023-11-19 22:59:59.695380869 +0000 UTC\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0modified_by = \"WFXyD6xRlAyCwKcpLGs6pKVScBGK299c\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0version \u00a0 \u00a0 = 1\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0description \u00a0 \u00a0 = \"A Capella Project that will host a Capella cluster\"\r\n\u00a0\u00a0\u00a0\u00a0etag\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"Version: 1\"\r\n\u00a0\u00a0\u00a0\u00a0id\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"5ab4f4b5-756c-4f12-97ec-xxxxxyyyyyzzzz\"\r\n\u00a0\u00a0\u00a0\u00a0name\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = \"Terraform Demo Project\"\r\n\u00a0\u00a0\u00a0\u00a0organization_id = \"8b05f96d-45ba-zzzz-xxxx-fa55555555\"\r\n}<\/pre>\n<p><strong>6. Destroy the resources<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Execute the following command to destroy the resources:<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true\">terraform destroy -var-file terraform.template.tfvars<\/pre>\n<p><span style=\"font-weight: 400;\">You should see output similar to the following. It will take a few minutes to destroy the resources.<\/span><\/p>\n<pre class=\"left-margin:24 nums:false lang:default decode:true\">capella_bucket.new_bucket: Destroying... [id=dGVycmFmb3JtX2J1Y2tldA==]\r\ncapella_bucket.new_bucket: Destruction complete after 1s\r\ncapella_cluster.new_cluster: Destroying... [id=e64b8ba9-46a1-46f1-9fc3-7a412508ce4b]\r\ncapella_cluster.new_cluster: Still destroying... [id=e64b8ba9-46a1-46f1-9fc3-7a412508ce4b, 10s elapsed]\r\n.....\r\ncapella_cluster.new_cluster: Still destroying... [id=e64b8ba9-46a1-46f1-9fc3-7a412508ce4b, 50s elapsed]\r\n....\r\n[id=e64b8ba9-46a1-46f1-9fc3-7a412508ce4b, 3m20s elapsed]\r\ncapella_cluster.new_cluster: Destruction complete after 3m26s\r\ncapella_project.new_project: Destroying... [id=5ab4f4b5-756c-4f12-97ec-8e2427c7c1ab]\r\ncapella_project.new_project: Destruction complete after 1s<\/pre>\n<h2><span style=\"font-weight: 400;\">Resources and Next Steps<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Version 1.0 of the Provider supersedes the v0.0.2 of the Capella provider which is deprecated and will be removed shortly. So, if you are using the old provider, you should plan to migrate to the new provider.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here are direct links to a few helpful resources:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbase-capella\/latest\"><span style=\"font-weight: 400;\">Capella Provider on Hashicorp Registry<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbase-capella\/latest\/docs\"><span style=\"font-weight: 400;\">Usage Examples<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/cloud\/terraform\/index.html\"><span style=\"font-weight: 400;\">Overview of Terraform Provider<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/cloud\/management-api-reference\/index.html\"><span style=\"font-weight: 400;\">Capella Management API Reference<\/span><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">If you have questions or feedback, please leave a comment below. The <\/span><a href=\"https:\/\/forums.couchbase.com\/\"><span style=\"font-weight: 400;\">Couchbase Forums<\/span><\/a><span style=\"font-weight: 400;\"> or <\/span><a href=\"https:\/\/discord.com\/invite\/K7NPMPGrPk\"><span style=\"font-weight: 400;\">Couchbase discord<\/span><\/a><span style=\"font-weight: 400;\"> channels are another good place to reach out with questions.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Developers and DevOps teams commonly utilize Infrastructure as Code (IaC) tools and scripts to manage their software and infrastructure deployments in a repeatable and consistent manner. With IaC tools, users can automate the life cycle of deployments including provisioning, configuration, [&hellip;]<\/p>\n","protected":false},"author":1423,"featured_media":15150,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2242,2225],"tags":[1567,1308,9709,9913,9706,9912],"ppma_author":[8948],"class_list":["post-15142","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-connectors","category-cloud","tag-continuous-deployment","tag-devops","tag-hashicorp","tag-infrastructure-as-code","tag-terraform","tag-terraform-provider"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Terraform Provider for Couchbase Capella<\/title>\n<meta name=\"description\" content=\"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Terraform Provider for Couchbase Capella\" \/>\n<meta property=\"og:description\" content=\"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-15T15:07:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-27T20:07:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/12\/terraform-blog.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Terraform Provider for Couchbase Capella\",\"datePublished\":\"2023-12-15T15:07:25+00:00\",\"dateModified\":\"2023-12-27T20:07:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/\"},\"wordCount\":840,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png\",\"keywords\":[\"Continuous Deployment\",\"DevOps\",\"hashicorp\",\"Infrastructure-as-Code\",\"terraform\",\"Terraform provider\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Connectors\",\"Couchbase Capella\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/\",\"name\":\"Terraform Provider for Couchbase Capella\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png\",\"datePublished\":\"2023-12-15T15:07:25+00:00\",\"dateModified\":\"2023-12-27T20:07:50+00:00\",\"description\":\"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Terraform Provider for Couchbase Capella\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\/\/x.com\/rajagp\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Terraform Provider for Couchbase Capella","description":"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/","og_locale":"en_US","og_type":"article","og_title":"Terraform Provider for Couchbase Capella","og_description":"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.","og_url":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/","og_site_name":"The Couchbase Blog","article_published_time":"2023-12-15T15:07:25+00:00","article_modified_time":"2023-12-27T20:07:50+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/12\/terraform-blog.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Terraform Provider for Couchbase Capella","datePublished":"2023-12-15T15:07:25+00:00","dateModified":"2023-12-27T20:07:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/"},"wordCount":840,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png","keywords":["Continuous Deployment","DevOps","hashicorp","Infrastructure-as-Code","terraform","Terraform provider"],"articleSection":["Best Practices and Tutorials","Connectors","Couchbase Capella"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/","url":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/","name":"Terraform Provider for Couchbase Capella","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png","datePublished":"2023-12-15T15:07:25+00:00","dateModified":"2023-12-27T20:07:50+00:00","description":"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/12\/terraform-blog.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Terraform Provider for Couchbase Capella"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c","name":"Priya Rajagopal, Senior Director, Product Management","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/author\/priya-rajagopalcouchbase-com\/"}]}},"authors":[{"term_id":8948,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","author_category":"","last_name":"Rajagopal, Senior Director, Product Management","first_name":"Priya","job_title":"","user_url":"","description":"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/15142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=15142"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/15142\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/15150"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=15142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=15142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=15142"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=15142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}