PageSourceSearch

https://shakacode.com/component---src-template-doc-article-tsx-con…erraform-details-md-274f8883a5bab1715a9c.js

js shakacode.com collected 2026-10-04 00:28:07 UTC 48,750 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkgatsby_starter_default=self.webpackChunkgatsby_starter_default||[]).push([[2916],{81823:function(n,a,s){s.r(a),s.d(a,{Head:function(){return m},default:function(){return d}});var e=s(28453),t=s(96540);function p(n){const a=Object.assign({h3:"h3",a:"a",span:"span",h4:"h4",p:"p",ul:"ul",li:"li",strong:"strong"},(0,e.R)(),n.components);return t.createElement(t.Fragment,null,t.createElement(a.h3,{id:"terraform-configurations-from-cpln-templates",style:{position:"relative"}},t.createElement(a.a,{href:"#terraform-configurations-from-cpln-templates","aria-label":"terraform configurations from cpln templates permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"Terraform Configurations from CPLN Templates"),"\n",t.createElement(a.h4,{id:"providers",style:{position:"relative"}},t.createElement(a.a,{href:"#providers","aria-label":"providers permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"Providers"),"\n",t.createElement(a.p,null,"Terraform provider configurations are controlled via ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">required_providers.tf</code>'}})," and ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">providers.tf</code>'}}),":"),"\n",t.createElement(a.ul,null,"\n",t.createElement(a.li,null,t.createElement(a.strong,null,t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">required_providers.tf</code>'}}))),"\n"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">terraform</span> <span class="token punctuation">{</span>\n  <span class="token keyword">required_providers</span> <span class="token punctuation">{</span>\n    <span class="token property">cpln</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n      <span class="token property">source</span> <span class="token punctuation">=</span> <span class="token string">"controlplane-com/cpln"</span>\n      <span class="token property">version</span> <span class="token punctuation">=</span> <span class="token string">"~> 1.0"</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.ul,null,"\n",t.createElement(a.li,null,t.createElement(a.strong,null,t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">providers.tf</code>'}}))),"\n"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">provider<span class="token type variable"> "cpln" </span></span><span class="token punctuation">{</span>\n  <span class="token property">org</span> <span class="token punctuation">=</span> <span class="token string">"org-name-example"</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.h4,{id:"gvc-global-virtual-cloud",style:{position:"relative"}}
1,t.createElement(a.a,{href:"#gvc-global-virtual-cloud","aria-label":"gvc global virtual cloud permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"GVC (Global Virtual Cloud)"),"\n",t.createElement(a.p,null,"CPLN template in YAML format:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> gvc\n<span class="token key atrule">name</span><span class="token punctuation">:</span> app<span class="token punctuation">-</span>name\n<span class="token key atrule">description</span><span class="token punctuation">:</span> app<span class="token punctuation">-</span>description\n<span class="token key atrule">tags</span><span class="token punctuation">:</span>\n  <span class="token key atrule">tag-name-1</span><span class="token punctuation">:</span> <span class="token string">"tag-value-1"</span>\n  <span class="token key atrule">tag-name-2</span><span class="token punctuation">:</span> <span class="token string">"tag-value-2"</span>\n<span class="token key atrule">spec</span><span class="token punctuation">:</span>\n  <span class="token key atrule">domain</span><span class="token punctuation">:</span> <span class="token string">"app.example.com"</span>\n  <span class="token key atrule">env</span><span class="token punctuation">:</span>\n    <span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span>
1 DATABASE_URL\n      <span class="token key atrule">value</span><span class="token punctuation">:</span> <span class="token string">"postgres://the_user:[email protected]:5432/app-name"</span>\n    <span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> RAILS_ENV\n      <span class="token key atrule">value</span><span class="token punctuation">:</span> production\n    <span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> RAILS_SERVE_STATIC_FILES\n      <span class="token key atrule">value</span><span class="token punctuation">:</span> <span class="token string">"true"</span>\n  <span class="token key atrule">staticPlacement</span><span class="token punctuation">:</span>\n    <span class="token key atrule">locationLinks</span><span class="token punctuation">:</span>\n      <span class="token punctuation">-</span> <span class="token string">"//location/aws-us-west-2"</span>\n  <span class="token key atrule">pullSecretLinks</span><span class="token punctuation">:</span>\n    <span class="token punctuation">-</span> <span class="token string">"/org/org-name/secret/some-secret"</span>\n  <span class="token key atrule">loadBalancer</span><span class="token punctuation">:</span>\n    <span class="token key atrule">dedicated</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>\n    <span class="token key atrule">trustedProxies</span><span class="token punctuation">:</span> <span class="token number">0</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will transform to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_gvc"</span></span> <span class="token string">"app-name"</span> <span class="token punctuation">{</span>\n  <span class="token property">name</span> <span class="token punctuation">=</span> <span class="token string">"app-name"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"app-description"</span>\n  <span class="token property">tags</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    <span class="token property">tag_name_1</span> <span class="token punctuation">=</span> <span class="token string">"tag-value-1"</span>\n    <span class="token property">tag_name_2</span> <span class="token punctuation">=</span> <span class="token string">"tag-value-2"</span>\n  <span class="token punctuation">}</span>\n  <span class="token property">domain</span> <span class="token punctuation">=</span> <span class="token string">"app.example.com"</span>\n  <span class="token property">locations</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"aws-us-west-2"</span><span class="token punctuation">]</span>\n  <span class="token property">pull_secrets</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"cpln_secret.some-secret.name"</span><span class="token punctuation">]</span>\n  <span class="token property">env</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    <span class="token property">DATABASE_URL</span> <span class="token punctuation">=</span> <span class="token string">"postgres://the_user:[email protected]:5432/app-name"</span>\n    <span class="token property">RAILS_ENV</span> <span class="token punctuation">=</span> <span class="token string">"production"</span>\n    <span class="token property">RAILS_SERVE_STATIC_FILES</span> <span class="token punctuation">=</span> <span class="token string">"true"</span>\n  <span class="token punctuation">}</span>\n  <span class="token keyword">
1load_balancer</span> <span class="token punctuation">{</span>\n    <span class="token property">dedicated</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>\n    <span class="token property">trusted_proxies</span> <span class="token punctuation">=</span> <span class="token number">0</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.h4,{id:"identity",style:{position:"relative"}},t.createElement(a.a,{href:"#identity","aria-label":"identity permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"Identity"),"\n",t.createElement(a.p,null,"CPLN template in YAML format:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> identity\n<span class="token key atrule">name</span><span class="token punctuation">:</span> postgres<span class="token punctuation">-</span>poc<span class="token punctuation">-</span>identity\n<span class="token key atrule">description</span><span class="token punctuation">:</span> postgres<span class="token punctuation">-</span>poc<span class="token punctuation">-</span>identity\n<span class="token key atrule">tags</span><span class="token punctuation">:</span>\n  <span class="token key atrule">tag-name-1</span><span class="token punctuation">:</span> <span class="token string">"tag-value-1"</span>\n  <span class="token key atrule">tag-name-2</span><span class="token punctuation">:</span> <span class="token string">"tag-value-2"</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will transform to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_identity"</span></span> <span class="token string">"postgres-poc-identity"</span> <span class="token punctuation">{</span>\n  <span class="token property">name</span> <span class="token punctuation">=</span> <span class="token string">"postgres-poc-identity"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"postgres-poc-identity"</span>\n  <span class="token property">tags</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    <span class="token property">tag_name_1</span> <span class="token punctuation">=</span> <span class="token string">"tag-value-1"</span>\n    <span class="token property">tag_name_2</span> <span class="token punctuation">=</span> <span class="token string">"tag-value-2"</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.h4,{id:"secret",style:{position:"relative"}},t.createElement(a.a,{href:"#secret","aria-label":"secret permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"Secret"),"\n",t.createElement(a.p,null,"CPLN template in YAML format"),"\n",t.createElement(a.p,null,t.createElement(a.strong,null,"For ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">aws</code>'}})," secret:")),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> secret\n<span class="token key atrule">name</span><span class="token punctuation">:</span> aws\n<span class="token key atrule">description</span><span class="token punctuation">:</span> aws\n<span class="token key atrule">type</span><span class="token punctuation">:</span> aws\n<span class="token key atrule">data</span><span class="token punctuation">:</span>\n  <span class="token key atrule">accessKey</span><span class="token punctuation">:</span> <span class="token string">\'AccessKeyExample\'</span>\n  <span class="token key atrule">externalId</span><span class="token punctuation">:</span> <span class="token string">\'ExternalIdExample\'</span>\n  <span class="token key atrule">roleArn</span><span class="token punctuation">:</span> arn<span class="token punctuation">:</span>awskey\n  <span class="token key atrule">secretKey</span><span class="token punctuation">:</span> <span class="token string">\'SecretKeyExample\'</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will transform to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_secret"</span></span> <span class="token string">"aws"</span> <span class="token punctuation">{</span>\n  <span class="token property">
1name</span> <span class="token punctuation">=</span> <span class="token string">"aws"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"aws"</span>\n  <span class="token keyword">aws</span> <span class="token punctuation">{</span>\n    <span class="token property">secret_key</span> <span class="token punctuation">=</span> <span class="token string">"SecretKeyExample"</span>\n    <span class="token property">access_key</span> <span class="token punctuation">=</span> <span class="token string">"AccessKeyExample"</span>\n    <span class="token property">role_arn</span> <span class="token punctuation">=</span> <span class="token string">"arn:awskey"</span>\n    <span class="token property">external_id</span> <span class="token punctuation">=</span> <span class="token string">"ExternalIdExample"</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,t.createElement(a.strong,null,"For ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">azure-connector</code>'}})," secret:")),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> secret\n<span class="token key atrule">name</span><span class="token punctuation">:</span> azure<span class="token punctuation">-</span>connector\n<span class="token key atrule">description</span><span class="token punctuation">:</span> azure_connector\n<span class="token key atrule">tags</span><span class="token punctuation">:</span>\n  <span class="token key atrule">tag1</span><span class="token punctuation">:</span> tag<span class="token punctuation">-</span>val\n<span class="token key atrule">type</span><span class="token punctuation">:</span> azure<span class="token punctuation">-</span>connector\n<span class="token key atrule">data</span><span class="token punctuation">:</span>\n  <span class="token key atrule">code</span><span class="token punctuation">:</span> <span class="token string">\'CodeExample\'</span>\n  <span class="token key atrule">url</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//example.com</code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will transform to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_secret"</span></span> <span class="token string">"azure-connector"</span> <span class="token punctuation">{</span>\n  <span class="token property">name</span> <span class="token punctuation">=</span> <span class="token string">"azure-connector"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"azure_connector"</span>\n  <span class="token property">tags</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    <span class="token property">tag1</span> <span class="token punctuation">=</span> <span class="token string">"tag-val"</span>\n  <span class="token punctuation">}</span>\n  <span class="token keyword">azure_connector</span> <span class="token punctuation">{</span>\n    <span class="token property">url</span> <span class="token punctuation">=</span> <span class="token string">"https://example.com"</span>\n    <span class="token property">code</span> <span class="token punctuation">=</span> <span class="token string">"CodeExample"</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,t.createElement(a.strong,null,"For ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">azure-sdk-secret</code>'}})," secret:")),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> secret\n<span class="token key atrule">name</span><span class="token punctuation">:</span> azure<span class="token punctuation">-</span>sdk<span class="token punctuation">-</span>secret\n<span class="token key atrule">description</span><span class="token punctuation">:</span> azure<span class="token punctuation">-</span>sdk<span class="token punctuation">-</span>secret\n<span class="token key atrule">type</span><span class="token punctuation">:</span> azure<span class="token punctuation">-</span>sdk\n<span class="token key atrule">data</span><span class="token punctuation">:</span> <span class="token punctuation">></span><span class="token punctuation">-</span>\n  <span class="token punctuation">{</span>"subscriptionId"<span class="token punctuation">:</span><span class="token string">"subscriptionId"</span><span class="token punctuation">,</span>"tenantId"<span class="token punctuation">:</span><span class="token string">
1"tenantId"</span><span class="token punctuation">,</span>"clientId"<span class="token punctuation">:</span><span class="token string">"clientId"</span><span class="token punctuation">,</span>"clientSecret"<span class="token punctuation">:</span><span class="token string">"CONFIDENTIAL"</span><span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will transform to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_secret"</span></span> <span class="token string">"azure-sdk-secret"</span> <span class="token punctuation">{</span>\n  <span class="token property">name</span> <span class="token punctuation">=</span> <span class="token string">"azure-sdk-secret"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"azure-sdk-secret"</span>\n  <span class="token property">azure_sdk</span> <span class="token punctuation">=</span> <span class="token string">"{"</span>subscriptionId<span class="token string">":"</span>subscriptionId<span class="token string">","</span>tenantId<span class="token string">":"</span>tenantId<span class="token string">","</span>clientId<span class="token string">":"</span>clientID<span class="token string">","</span>clientSecret<span class="token string">":"</span>CONFIDENTIAL<span class="token string">"}"</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,t.createElement(a.strong,null,"For ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">dictionary</code>'}})," secret:")),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> secret\n<span class="token key atrule">name</span><span class="token punctuation">:</span> dictionary\n<span class="token key atrule">description</span><span class="token punctuation">:</span> dictionary\n<span class="token key atrule">tags</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>\n<span class="token key atrule">type</span><span class="token punctuation">:</span> dictionary\n<span class="token key atrule">data</span><span class="token punctuation">:</span>\n  <span class="token key atrule">example</span><span class="token punctuation">:</span> <span class="token string">\'value\'</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will transform to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_secret"</span></span> <span class="token string">"dictionary"</span> <span class="token punctuation">{</span>\n  <span class="token property">name</span> <span class="token punctuation">=</span> <span class="token string">"dictionary"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"dictionary"</span>\n  <span class="token property">tags</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n  <span class="token punctuation">}</span>\n  <span class="token property">dictionary</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    <span class="token property">example</span> <span class="token punctuation">=</span> <span class="token string">"value"</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,"Supported all types of the secrets which can be configured in Control Plane."),"\n",t.createElement(a.h4,{id:"policy",style:{position:"relative"}}
1,t.createElement(a.a,{href:"#policy","aria-label":"policy permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"Policy"),"\n",t.createElement(a.p,null,"CPLN template in YAML format:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> policy\n<span class="token key atrule">name</span><span class="token punctuation">:</span> policy<span class="token punctuation">-</span>name\n<span class="token key atrule">description</span><span class="token punctuation">:</span> policy description\n<span class="token key atrule">tags</span><span class="token punctuation">:</span>\n  <span class="token key atrule">tag1</span><span class="token punctuation">:</span> tag1_value\n  <span class="token key atrule">tag2</span><span class="token punctuation">:</span> tag2_value\n<span class="token key atrule">target</span><span class="token punctuation">:</span> all\n<span class="token key atrule">targetKind</span><span class="token punctuation">:</span> secret\n<span class="token key atrule">targetLinks</span><span class="token punctuation">:</span>\n<span class="token punctuation">-</span> <span class="token string">"//secret/postgres-poc-credentials"</span>\n<span class="token punctuation">-</span> <span class="token string">"//secret/postgres-poc-entrypoint-script"</span>\n<span class="token key atrule">bindings</span><span class="token punctuation">:</span>\n  <span class="token punctuation">-</span> <span class="token key atrule">permissions</span><span class="token punctuation">:</span>\n    <span class="token punctuation">-</span> reveal\n    <span class="token punctuation">-</span> view\n    <span class="token punctuation">-</span> use\n    <span class="token key atrule">principalLinks</span><span class="token punctuation">:</span>\n      <span class="token punctuation">-</span> <span class="token string">"//gvc/{{APP_NAME}}/identity/postgres-poc-identity"</span>\n  <span class="token punctuation">-</span> <span class="token key atrule">permissions</span><span class="token punctuation">:</span>\n    <span class="token punctuation">-</span> view\n    <span class="token key atrule">principalLinks</span><span class="token punctuation">:</span>\n      <span class="token punctuation">-</span> user/fake<span class="token punctuation">-</span>user@fake<span class="token punctuation">-</span>email.com</code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will be transformed to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_policy"</span></span> <span class="token string">"policy-name"</span> <span class="token punctuation">{</span>\n  <span class="token property">name</span> <span class="token punctuation">=</span> <span class="token string">"policy-name"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"policy description"</span>\n  <span class="token property">tags</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    <span class="token property">tag1</span> <span class="token punctuation">=</span> <span class="token string">"tag1_value"</span>\n    <span class="token property">tag2</span> <span class="token punctuation">=</span> <span class="token string">"tag2_value"</span>\n  <span class="token punctuation">}</span>\n  <span class="token property">target_kind</span> <span class="token punctuation">=</span> <span class="token string">"secret"</span>\n  <span class="token property">gvc</span> <span class="token punctuation">=</span> cpln_gvc.app-name.name\n  <span class="token property">target</span> <span class="token punctuation">=</span> <span class="token string">
1"all"</span>\n  <span class="token property">target_links</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"postgres-poc-credentials"</span>, <span class="token string">"postgres-poc-entrypoint-script"</span><span class="token punctuation">]</span>\n  <span class="token keyword">binding</span> <span class="token punctuation">{</span>\n    <span class="token property">permissions</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"reveal"</span>, <span class="token string">"view"</span>, <span class="token string">"use"</span><span class="token punctuation">]</span>\n    <span class="token property">principal_links</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"gvc/app-name/identity/postgres-poc-identity"</span><span class="token punctuation">]</span>\n  <span class="token punctuation">}</span>\n  <span class="token keyword">binding</span> <span class="token punctuation">{</span>\n    <span class="token property">permissions</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"view"</span><span class="token punctuation">]</span>\n    <span class="token property">principal_links</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"user/[email protected]"</span><span class="token punctuation">]</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.h4,{id:"volumeset",style:{position:"relative"}},t.createElement(a.a,{href:"#volumeset","aria-label":"volumeset permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"Volumeset"),"\n",t.createElement(a.p,null,"CPLN template in YAML format:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> volumeset\n<span class="token key atrule">name</span><span class="token punctuation">:</span> postgres<span class="token punctuation">-</span>poc<span class="token punctuation">-</span>vs\n<span class="token key atrule">description</span><span class="token punctuation">:</span> postgres<span class="token punctuation">-</span>poc<span class="token punctuation">-</span>vs\n<span class="token key atrule">spec</span><span class="token punctuation">:</span>\n  <span class="token key atrule">autoscaling</span><span class="token punctuation">:</span>\n    <span class="token key atrule">maxCapacity</span><span class="token punctuation">:</span> <span class="token number">1000</span>\n    <span class="token key atrule">minFreePercentage</span><span class="token punctuation">:</span> <span class="token number">1</span>\n    <span class="token key atrule">scalingFactor</span><span class="token punctuation">:</span> <span class="token number">1.1</span>\n  <span class="token key atrule">fileSystemType</span><span class="token punctuation">:</span> ext4\n  <span class="token key atrule">initialCapacity</span><span class="token punctuation">:</span> <span class="token number">10</span>\n  <span class="token key atrule">performanceClass</span><span class="token punctuation">:</span> general<span class="token punctuation">-</span>purpose<span class="token punctuation">-</span>ssd\n  <span class="token key atrule">snapshots</span><span class="token punctuation">:</span>\n    <span class="token key atrule">createFinalSnapshot</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>\n    <span class="token key atrule">retentionDuration</span><span class="token punctuation">:</span> 7d</code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will be transformed to Terraform config:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">resource <span class="token type variable">"cpln_volume_set"</span></span> <span class="token string">"postgres-poc-vs"</span> <span class="token punctuation">{</span>\n  <span class="token property">gvc</span> <span class="token punctuation">=</span> cpln_gvc.app-name.name\n  <span class="token property">
1name</span> <span class="token punctuation">=</span> <span class="token string">"postgres-poc-vs"</span>\n  <span class="token property">description</span> <span class="token punctuation">=</span> <span class="token string">"postgres-poc-vs"</span>\n  <span class="token property">initial_capacity</span> <span class="token punctuation">=</span> <span class="token number">10</span>\n  <span class="token property">performance_class</span> <span class="token punctuation">=</span> <span class="token string">"general-purpose-ssd"</span>\n  <span class="token property">file_system_type</span> <span class="token punctuation">=</span> <span class="token string">"ext4"</span>\n  <span class="token keyword">snapshots</span> <span class="token punctuation">{</span>\n    <span class="token property">create_final_snapshot</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>\n    <span class="token property">retention_duration</span> <span class="token punctuation">=</span> <span class="token string">"7d"</span>\n  <span class="token punctuation">}</span>\n  <span class="token keyword">autoscaling</span> <span class="token punctuation">{</span>\n    <span class="token property">max_capacity</span> <span class="token punctuation">=</span> <span class="token number">1000</span>\n    <span class="token property">min_free_percentage</span> <span class="token punctuation">=</span> <span class="token number">1</span>\n    <span class="token property">scaling_factor</span> <span class="token punctuation">=</span> <span class="token number">1.1</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.h4,{id:"workload",style:{position:"relative"}},t.createElement(a.a,{href:"#workload","aria-label":"workload permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"Workload"),"\n",t.createElement(a.p,null,"CPLN template in YAML format:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="yaml"><pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">kind</span><span class="token punctuation">:</span> workload\n<span class="token key atrule">name</span><span class="token punctuation">:</span> rails\n<span class="token key atrule">spec</span><span class="token punctuation">:</span>\n  <span class="token key atrule">type</span><span class="token punctuation">:</span> standard\n  <span class="token key atrule">containers</span><span class="token punctuation">:</span>\n    <span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> rails\n      <span class="token key atrule">cpu</span><span class="token punctuation">:</span> 300m\n      <span class="token key atrule">env</span><span class="token punctuation">:</span>\n        <span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> LOG_LEVEL\n          <span class="token key atrule">value</span><span class="token punctuation">:</span> debug\n      <span class="token key atrule">inheritEnv</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>\n      <span class="token key atrule">image</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token punctuation">{</span>APP_IMAGE_LINK<span class="token punctuation">}</span><span class="token punctuation">}</span>\n      <span class="token key atrule">memory</span><span class="token punctuation">:</span>
1 512Mi\n      <span class="token key atrule">ports</span><span class="token punctuation">:</span>\n        <span class="token punctuation">-</span> <span class="token key atrule">number</span><span class="token punctuation">:</span> <span class="token number">3000</span>\n          <span class="token key atrule">protocol</span><span class="token punctuation">:</span> http\n  <span class="token key atrule">defaultOptions</span><span class="token punctuation">:</span>\n    <span class="token key atrule">autoscaling</span><span class="token punctuation">:</span>\n      <span class="token key atrule">maxScale</span><span class="token punctuation">:</span> <span class="token number">1</span>\n    <span class="token key atrule">capacityAI</span><span class="token punctuation">:</span> <span class="token boolean important">false</span>\n  <span class="token key atrule">firewallConfig</span><span class="token punctuation">:</span>\n    <span class="token key atrule">external</span><span class="token punctuation">:</span>\n      <span class="token key atrule">inboundAllowCIDR</span><span class="token punctuation">:</span>\n        <span class="token punctuation">-</span>
1 0.0.0.0/0\n      <span class="token key atrule">outboundAllowCIDR</span><span class="token punctuation">:</span>\n        <span class="token punctuation">-</span> 0.0.0.0/0</code></pre></div>'}}),"\n",t.createElement(a.p,null,"Will be transformed to Terraform configs:"),"\n",t.createElement(a.ul,null,"\n",t.createElement(a.li,null,t.createElement(a.strong,null,t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">rails.tf</code>'}}))),"\n"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">module<span class="token type variable"> "rails" </span></span><span class="token punctuation">{</span>\n  <span class="token property">source</span> <span class="token punctuation">=</span> <span class="token string">"../workload"</span>\n  <span class="token property">type</span> <span class="token punctuation">=</span> <span class="token string">"standard"</span>\n  <span class="token property">name</span> <span class="token punctuation">=</span> <span class="token string">"rails"</span>\n  <span class="token property">gvc</span> <span class="token punctuation">=</span> cpln_gvc.my-app-production.name\n  <span class="token property">containers</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    rails: <span class="token punctuation">{</span>\n      image: <span class="token string">"/org/shakacode-demo/image/my-app-production:rails"</span>,\n      cpu: <span class="token string">"300m"</span>,\n      memory: <span class="token string">"512Mi"</span>,\n      inherit_env: <span class="token boolean">true</span>,\n      envs: local.rails_envs,\n      ports: <span class="token punctuation">[</span>\n        <span class="token punctuation">{</span>\n          number: <span class="token number">3000</span>,\n          protocol: <span class="token string">"http"</span>\n        <span class="token punctuation">}</span>\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n  <span class="token property">options</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    autoscaling: <span class="token punctuation">{</span>\n      max_scale: <span class="token number">1</span>\n    <span class="token punctuation">}</span>\n    capacity_ai: <span class="token boolean">false</span>\n  <span class="token punctuation">}</span>\n  <span class="token property">firewall_spec</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    external: <span class="token punctuation">{</span>\n      inbound_allow_cidr: <span class="token punctuation">[</span>\n        <span class="token string">"0.0.0.0/0"</span>\n      <span class="token punctuation">]</span>,\n      outbound_allow_cidr: <span class="token punctuation">[</span>\n        <span class="token string">"0.0.0.0/0"</span>\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.p,null,"Notice the ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">source: ../workload</code>'}})," line - there is a common ",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">workload</code>'}})," module which is used for generating Terraform configs from workload templates:"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="text"><pre class="language-text"><code class="language-text">workload/\n├── main.tf -- Configurable workload resource in HCL\n├── required_providers.tf -- Required providers for Terraform in HCL\n├── variables.tf -- Variables used to configure workload resource above</code></pre></div>'}}),"\n",t.createElement(a.ul,null,"\n",t.createElement(a.li,null,t.createElement(a.strong,null,t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">rails_envs.tf</code>'}}))),"\n"),"\n",t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<div class="gatsby-highlight" data-language="hcl"><pre class="language-hcl"><code class="language-hcl"><span class="token keyword">locals</span> <span class="token punctuation">{</span>\n  <span class="token property">rails_envs</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span>\n    <span class="token property">LOG_LEVEL</span> <span class="token punctuation">=</span> <span class="token string">"debug"</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span></code></pre></div>'}}),"\n",t.createElement(a.h3,{id:"references",style:{position:"relative"}}
1,t.createElement(a.a,{href:"#references","aria-label":"references permalink",className:"anchor before"},t.createElement(a.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" height="20" version="1.1" viewBox="0 0 16 16" width="20"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}})),"References"),"\n",t.createElement(a.ul,null,"\n",t.createElement(a.li,null,t.createElement(a.a,{href:"https://registry.terraform.io/providers/controlplane-com/cpln/latest/docs"},"Control Plane Terraform Provider")),"\n"))}var c=function(n){void 0===n&&(n={});const{wrapper:a}=Object.assign({},(0,e.R)(),n.components);return a?t.createElement(a,n,t.createElement(p,n)):p(n)},l=s(63679),o=s(95197),r=s(47388),u=s(23690),i=s(14487);const k=l.default.p.withConfig({displayName:"doc-article__RedirectFallback",componentId:"sc-tic2w5-0"})(["padding:2rem;"]),g=n=>{let{data:a,location:s,children:e}=n;const{headings:p}=a.article.childMdx,c=(0,o.X9)(s.pathname),[l,u]=t.useState(null),g=s.pathname.split("/"),d=g.indexOf("docs"),m=-1===d?s.pathname.length:g.slice(0,d+1).join("/").length,y=s.pathname.slice(0,m),h=s.pathname.slice(m+1).replace(/\/$/,"").split("/").filter((n=>""!==n)),v=h.length>1?h.slice(0,-1).join("/"):"";t.useEffect((()=>{if(!c)return;const{hash:n}=window.location;u(n);const a=""+c+n;window.location.href!==a&&window.location.replace(a)}),[c]);const _=null===c||null===l?null:""+c+l;return t.createElement(t.Fragment,null,null!==_?t.createElement(k,{role:"status","aria-live":"polite"},"Redirecting..."," ",t.createElement("a",{href:_,target:"_blank",rel:"noopener noreferrer"},"Click here if not redirected.")):t.createElement(r.A,{main:t.createElement(i.A,{body:e,headings:p,transformUrl:n=>{if(n.startsWith("http")||n.startsWith("#"))return n;const a=n.replace(/\.md$/,"/");if(a.startsWith("./"))return y+(""===v?"":"/"+v)+a.slice(1);if(a.startsWith("../")){if(""===v)return""+y+a.slice(2);const n=v.split("/").slice(0,-1).join("/");return y+(""===n?"":"/"+n)+a.slice(2)}return y+"/"+(""===v?"":v+"/")+a}})}))};function d(n){return t.createElement(g,n,t.createElement(c,n))}const m=n=>{let{data:a,location:s,pageContext:e}=n;const{headings:p}=a.article.childMdx,{siteUrl:c}=a.site.siteMetadata,{repoDisplayName:l}=e,r=p.find((n=>1===n.depth)),i=(0,o.X9)(s.pathname)||""+c.replace(/\/+$/,"")+s.pathname;return t.createElement(u.A,{title:r?r.value:l,description:r?r.value:l+" documentation",isArticle:!0,canonical:i,pathname:s.pathname})}}}]);
2//# sourceMappingURL=component---src-template-doc-article-tsx-content-file-path-cache-gatsby-source-git-control-plane-flow-docs-terraform-details-md-274f8883a5bab1715a9c.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.