Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.
Manages a Kosli policy. Policies define artifact compliance requirements (provenance, trail-compliance, attestations) that can be attached to environments.Policies are versioned and immutable: updating content or description creates a new version rather than modifying the existing one.
Deleting this resource removes it from Terraform state only. Kosli has no API endpoint to delete policies, so the policy will remain in Kosli after terraform destroy. To attach policies to environments, use the kosli_policy_attachment resource.
content (String) YAML content of the policy, conforming to the Kosli policy schema (_schema: https://docs.kosli.com/schemas/policy/v1). Supports heredoc syntax for multi-line YAML. Updating this value creates a new policy version.
name (String) Name of the policy. Must be unique within the organization. Changing this will force recreation of the resource.
created_at (Number) Unix timestamp of when the policy was first created.
latest_version (Number) The version number of the latest policy version. Null if the policy has no versions.
Last modified on April 17, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kosli Documentation","colors":{"primary":"#1C4BC6","light":"#ABBDFF","dark":"#1C4BC6"},"logo":{"light":"https://mintcdn.com/kosli/Cee1LAu-Jhawp1Om/logo/kosli-logo-light-main.svg?fit=max\u0026auto=format\u0026n=Cee1LAu-Jhawp1Om\u0026q=85\u0026s=fb05fdbb0c9c9ae7da266a500eac2be6","dark":"https://mintcdn.com/kosli/Cee1LAu-Jhawp1Om/logo/kosli-logo-dark-main.svg?fit=max\u0026auto=format\u0026n=Cee1LAu-Jhawp1Om\u0026q=85\u0026s=c230555c5e1d57d0f9f9630117a1467d"},"favicon":"https://mintcdn.com/kosli/CktiOOFhqneQZXyH/favicon-32x32.png?fit=max\u0026auto=format\u0026n=CktiOOFhqneQZXyH\u0026q=85\u0026s=1b16e66cd5c7266604a6a683f334f672","api":{"playground":{"display":"interactive"}},"background":{"decoration":"windows","color":{"light":"#F6F8FC","dark":"#111A26"}},"navbar":{"links":[{"href":"mailto:support@kosli.com","label":"Support"}],"primary":{"type":"button","label":"Kosli App","href":"https://app.kosli.com"}},"footer":{"socials":{"website":"https://kosli.com","github":"https://github.com/kosli-dev","linkedin":"https://linkedin.com/company/kosli-dev"},"links":[{"header":"Resources","items":[{"label":"Privacy Policy","href":"https://www.kosli.com/privacy-policy"},{"label":"Status","href":"https://status.app.kosli.com/"}]},{"header":"Learn","items":[{"label":"Labs","href":"/labs"},{"label":"Blog","href":"https://kosli.com/blog"}]},{"header":"Company","items":[{"label":"About Kosli","href":"https://www.kosli.com/about"},{"label":"Privacy","href":"https://www.kosli.com/privacy-policy"},{"label":"Community","href":"https://www.kosli.com/community"}]}]},"fonts":{"family":"IBM Plex Sans"},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":"dracula","languages":{"custom":["/languages/rego.json"]}},"latex":false},"integrations":{"posthog":{"apiKey":"phc_vKbCGJq5rzV4apArUzYDRwh6azCmgCPcLz8jTa9CgmGR","apiHost":"https://eu.posthog.com","sessionRecording":false},"cookies":{"key":"kosli_consent","value":"accepted"}},"banner":{"content":"🌱 The docs have a new layout, grouped by what you're here to do.","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kosli","hasAudioNarration":false,"actualSubdomain":"kosli","customDomains":["docs.kosli.com"],"gitSource":{"type":"github","owner":"kosli-dev","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecb97adab9b27b24420669","collectionId":"a80df489-8e62-492b-84de-7995fdccc9c0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecb97adab9b27b24420669"},"feedback":{"thumbs":true,"edits":false,"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED","enabled":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED","enabled":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aedf0a1f454d7a498161a36","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Reference","count":290},{"language":"default","tag":"API Reference","count":152},{"language":"default","tag":"CLI Reference","count":103},{"language":"default","tag":"Platform administration","count":28},{"language":"default","tag":"Discover Kosli","count":28},{"language":"default","tag":"Terraform Reference","count":22},{"language":"default","tag":"Environments","count":21},{"language":"default","tag":"Attestation","count":18},{"language":"default","tag":"kosli get","count":15},{"language":"default","tag":"kosli attest","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":false,"showHelpButton":false}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"[data-component-part=\"step-number\"]>div{background-color:#CFD8FF!important;color:#111A26!important}"}],"page":{"pagePath":"terraform-reference/resources/policy","slug":"/terraform-reference/resources/policy","pageMetadata":{"title":"kosli_policy resource","description":"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.","icon":"cube","href":"/terraform-reference/resources/policy"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Manages a Kosli policy. Policies define artifact compliance requirements (provenance, trail-compliance, attestations) that can be attached to environments.`}),`\n`,_jsxs(_components.p,{children:[`Policies are versioned and immutable: updating `,_jsx(_components.code,{children:`content`}),` or `,_jsx(_components.code,{children:`description`}),` creates a new version rather than modifying the existing one.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Deleting this resource removes it from Terraform state only. Kosli has no API endpoint to delete policies, so the policy will remain in Kosli after `,_jsx(_components.code,{children:`terraform destroy`}),`. To attach policies to environments, use the `,_jsxs(_components.a,{href:`/terraform-reference/resources/policy_attachment`,children:[_jsx(_components.code,{children:`kosli_policy_attachment`}),` resource`]}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`example-usage`,children:`Example usage`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`37`,language:`terraform`,children:_jsx(_components.pre,{className:`shiki shiki-themes dracula dracula`,style:{backgroundColor:`#282A36`,\"--shiki-dark-bg\":`#282A36`,color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},language:`terraform`,children:_jsxs(_components.code,{language:`terraform`,numberOfLines:`37`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8BE9FD`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#8BE9FD`,\"--shiki-dark-font-style\":`italic`},children:`terraform`}),_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8BE9FD`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#8BE9FD`,\"--shiki-dark-font-style\":`italic`},children:` required_providers`}),_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` kosli `}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:`=`}),_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` source `}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:`=`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:` \"`}),_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:`kosli-dev/kosli`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6272A4`,\"--shiki-dark\":`#6272A4`},children:`# Minimal policy requiring provenance for all artifacts`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8BE9FD`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#8BE9FD`,\"--shiki-dark-font-style\":`italic`},children:`resource`}),_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` \"kosli_policy\" \"minimal\" {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` name `}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:`=`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:` \"`}),_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:`basic-requirements`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` content `}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:`=`}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:` \u003c\u003c-YAML`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` _schema: https://docs.kosli.com/schemas/policy/v1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` artifacts:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` provenance:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` required: true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:` YAML`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6272A4`,\"--shiki-dark\":`#6272A4`},children:`# Production policy with full compliance requirements`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8BE9FD`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#8BE9FD`,\"--shiki-dark-font-style\":`italic`},children:`resource`}),_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` \"kosli_policy\" \"production\" {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` name `}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:`=`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:` \"`}),_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:`prod-requirements`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` description `}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:`=`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:` \"`}),_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:`Compliance requirements for production environments`}),_jsx(_components.span,{style:{color:`#E9F284`,\"--shiki-dark\":`#E9F284`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:` content `}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:`=`}),_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:` \u003c\u003c-YAML`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` _schema: https://docs.kosli.com/schemas/policy/v1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` artifacts:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` provenance:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` required: true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` trail-compliance:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` required: true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` attestations:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` - name: unit-test`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` type: junit`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` - name: dependency-scan`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` type: \"*\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#FF79C6`,\"--shiki-dark\":`#FF79C6`},children:` YAML`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`import`,children:`Import`}),`\n`,_jsx(_components.p,{children:`Policies can be imported using their name:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dracula dracula`,style:{backgroundColor:`#282A36`,\"--shiki-dark-bg\":`#282A36`,color:`#F8F8F2`,\"--shiki-dark\":`#F8F8F2`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6272A4`,\"--shiki-dark\":`#6272A4`},children:`# Import a policy by name. The content attribute is populated from the API response.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#50FA7B`,\"--shiki-dark\":`#50FA7B`},children:`terraform`}),_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` import`}),_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` kosli_policy.example`}),_jsx(_components.span,{style:{color:`#F1FA8C`,\"--shiki-dark\":`#F1FA8C`},children:` prod-requirements`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`schema`,children:`Schema`}),`\n`,_jsx(Heading,{level:`3`,id:`required`,children:`Required`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`content`}),` (String) YAML content of the policy, conforming to the Kosli policy schema (`,_jsx(_components.code,{children:`_schema: https://docs.kosli.com/schemas/policy/v1`}),`). Supports heredoc syntax for multi-line YAML. Updating this value creates a new policy version.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`name`}),` (String) Name of the policy. Must be unique within the organization. Changing this will force recreation of the resource.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`optional`,children:`Optional`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`description`}),` (String) Description of the policy.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`read-only`,children:`Read-only`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`created_at`}),` (Number) Unix timestamp of when the policy was first created.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`latest_version`}),` (Number) The version number of the latest policy version. Null if the policy has no versions.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":"dracula","languages":{"custom":["/languages/rego.json"]}},"config":{},"pageMetadata":{"title":"kosli_policy resource","description":"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.","icon":"cube","href":"/terraform-reference/resources/policy"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Example usage","slug":"example-usage","depth":2,"children":[]},{"title":"Import","slug":"import","depth":2,"children":[]},{"title":"Schema","slug":"schema","depth":2,"children":[{"title":"Required","slug":"required","depth":3,"children":[]},{"title":"Optional","slug":"optional","depth":3,"children":[]},{"title":"Read-only","slug":"read-only","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/kosli/a8952d14c382591c/termly.js"],"subdomain":"kosli","siteName":"Kosli Documentation","title":"kosli_policy resource - Kosli Documentation","contextualStarterQuestions":[{"_id":"69e229a3f00f77c4dc7ee3ec","deploymentId":"694a567a82866c4f503bbfbf","questionText":"How do I import existing policies?","status":"active","generatedBy":"contextual","path":"terraform-reference/resources/policy","createdAt":"2026-04-17T12:37:55.141Z","updatedAt":"2026-04-17T12:37:55.141Z","__v":0},{"_id":"69e229a3f00f77c4dc7ee3eb","deploymentId":"694a567a82866c4f503bbfbf","questionText":"What happens when I delete a policy?","status":"active","generatedBy":"contextual","path":"terraform-reference/resources/policy","createdAt":"2026-04-17T12:37:55.141Z","updatedAt":"2026-04-17T12:37:55.141Z","__v":0},{"_id":"69e229a3f00f77c4dc7ee3ea","deploymentId":"694a567a82866c4f503bbfbf","questionText":"How do I create a policy?","status":"active","generatedBy":"contextual","path":"terraform-reference/resources/policy","createdAt":"2026-04-17T12:37:55.141Z","updatedAt":"2026-04-17T12:37:55.141Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-17T11:03:36.905Z","gitLastModified":"2026-04-17T11:03:10.000Z","originalFileLocation":"terraform-reference/resources/policy.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kosli Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"kosli_policy resource - Kosli Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kosli Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kosli.com/terraform-reference/resources/policy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kosli.mintlify.site/_mintlify/api/og/v2?division=Resources\u0026amp;title=kosli_policy+resource\u0026amp;description=Manages+a+Kosli+policy.+Policies+define+artifact+compliance+requirements+that+can+be+attached+to+environments.\u0026amp;theme=381f3588bbad67d04f5be36e\u0026amp;signature=24b5ea0961b8b801f86a17f55f2b2631b2bfc359e491b6120ce372a8631c14db\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"kosli_policy resource - Kosli Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kosli.mintlify.site/_mintlify/api/og/v2?division=Resources\u0026amp;title=kosli_policy+resource\u0026amp;description=Manages+a+Kosli+policy.+Policies+define+artifact+compliance+requirements+that+can+be+attached+to+environments.\u0026amp;theme=381f3588bbad67d04f5be36e\u0026amp;signature=24b5ea0961b8b801f86a17f55f2b2631b2bfc359e491b6120ce372a8631c14db\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kosli/7UeZPXzpjJmWmx3T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kosli Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1C4BC6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kosli.com/terraform-reference/resources/policy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/terraform-reference/resources/policy.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kosli.com/#organization\",\"name\":\"Kosli Documentation\",\"url\":\"https://docs.kosli.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kosli/Cee1LAu-Jhawp1Om/logo/kosli-logo-light-main.svg?fit=max\u0026auto=format\u0026n=Cee1LAu-Jhawp1Om\u0026q=85\u0026s=fb05fdbb0c9c9ae7da266a500eac2be6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kosli.com#website\",\"name\":\"Kosli Documentation\",\"url\":\"https://docs.kosli.com\",\"publisher\":{\"@id\":\"https://docs.kosli.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kosli.com/terraform-reference/resources/policy#webpage\",\"url\":\"https://docs.kosli.com/terraform-reference/resources/policy\",\"name\":\"kosli_policy resource\",\"description\":\"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.\",\"dateModified\":\"2026-04-17T11:03:10.000Z\",\"isPartOf\":{\"@id\":\"https://docs.kosli.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kosli.com/terraform-reference/resources/policy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kosli.com/terraform-reference/resources/policy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Resources\",\"item\":\"https://docs.kosli.com/terraform-reference/resources/environment\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"kosli_policy resource\",\"item\":\"https://docs.kosli.com/terraform-reference/resources/policy\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kosli.com/terraform-reference/resources/policy#article\",\"headline\":\"kosli_policy resource\",\"name\":\"kosli_policy resource\",\"description\":\"Manages a Kosli policy. Policies define artifact compliance requirements that can be attached to environments.\",\"url\":\"https://docs.kosli.com/terraform-reference/resources/policy\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kosli.com/terraform-reference/resources/policy#webpage\"},\"dateModified\":\"2026-04-17T11:03:10.000Z\",\"publisher\":{\"@id\":\"https://docs.kosli.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kosli.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kosli Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kosli Documentation","nav":{"global":null,"tabs":[{"tab":"Discover Kosli","pages":[{"title":"Discover Kosli","href":"/understand_kosli/what_is_kosli"}]},{"tab":"Platform administration","pages":[{"title":"Platform administration","href":"/user/default_organization"}]},{"tab":"Risks and controls","pages":[{"title":"Risks and controls","href":"/understand_kosli/risks"}]},{"tab":"Environments and runtime","pages":[{"title":"Environments and runtime","href":"/administration/managing_environments/overview"}]},{"tab":"Record evidence","pages":[{"title":"Record evidence","href":"/tutorials/organizing_with_spaces"}]},{"tab":"Reference","menu":[{"item":"CLI Reference","icon":"terminal","pages":[{"title":"CLI Reference","href":"/client_reference/overview"}]},{"item":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"item":"GitHub Action Reference","icon":"github","pages":[{"title":"GitHub Action Reference","href":"/github-action-reference/setup_cli_action"}]},{"item":"Terraform Reference","icon":"cubes","groups":[{"group":"Provider","pages":[{"title":"Kosli Terraform Provider","icon":"layer-group","href":"/terraform-reference"}]},{"group":"Resources","pages":[{"title":"kosli_environment resource","icon":"cube","href":"/terraform-reference/resources/environment"},{"title":"kosli_logical_environment resource","icon":"cube","href":"/terraform-reference/resources/logical_environment"},{"title":"kosli_flow resource","icon":"cube","href":"/terraform-reference/resources/flow"},{"title":"kosli_custom_attestation_type resource","icon":"cube","href":"/terraform-reference/resources/custom_attestation_type"},{"title":"kosli_action resource","description":"Manages a Kosli action. Actions define webhook notifications triggered by environment compliance events.","icon":"cube","href":"/terraform-reference/resources/action"},{"title":"kosli_policy resource","icon":"cube","href":"/terraform-reference/resources/policy"},{"title":"kosli_policy_attachment resource","description":"Attaches a Kosli policy to an environment. When this resource is destroyed, the policy is detached from the environment.","icon":"cube","href":"/terraform-reference/resources/policy_attachment"},{"title":"kosli_service_account resource","icon":"cube","href":"/terraform-reference/resources/service_account"},{"title":"kosli_service_account_api_key resource","icon":"key","href":"/terraform-reference/resources/service_account_api_key"},{"title":"kosli_control resource","icon":"cube","href":"/terraform-reference/resources/control"},{"title":"kosli_notification_config resource","icon":"cube","href":"/terraform-reference/resources/notification_config"}]},{"group":"Data sources","pages":[{"title":"kosli_environment data source","icon":"database","href":"/terraform-reference/data-sources/environment"},{"title":"kosli_logical_environment data source","icon":"database","href":"/terraform-reference/data-sources/logical_environment"},{"title":"kosli_flow data source","icon":"database","href":"/terraform-reference/data-sources/flow"},{"title":"kosli_custom_attestation_type data source","icon":"database","href":"/terraform-reference/data-sources/custom_attestation_type"},{"title":"kosli_action data source","icon":"database","href":"/terraform-reference/data-sources/action"},{"title":"kosli_policy data source","icon":"database","href":"/terraform-reference/data-sources/policy"},{"title":"kosli_service_account data source","icon":"database","href":"/terraform-reference/data-sources/service_account"},{"title":"kosli_control data source","icon":"database","href":"/terraform-reference/data-sources/control"},{"title":"kosli_notification_config data source","icon":"database","href":"/terraform-reference/data-sources/notification_config"}]},{"group":"List resources","pages":[{"title":"kosli_control list resource","icon":"list","href":"/terraform-reference/list-resources/control"}]}]},{"item":"Helm Reference","icon":"layer-group","pages":[{"title":"Helm Reference","href":"/helm/k8s_reporter/overview"}]},{"item":"Template Reference","icon":"file-code","pages":[{"title":"Template Reference","href":"/template-reference/flow_template"}]},{"item":"Policy Reference","icon":"scroll","pages":[{"title":"Policy Reference","href":"/policy-reference/environment_policy"}]}]},{"tab":"Changelog","icon":"clock","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"kosli_policy resource - Kosli Documentation","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":[],"chunks":[]}