{
"errors": [
{
"code": "NameTaken",
"message": "Payments already goes by \"payments\". Use that one instead."
}
]
}
{
"message": "Forbidden"
}
{
"errors": [
{
"code": "NameTaken",
"message": "Payments already goes by \"payments\". Use that one instead."
}
]
}
{
"message": "Internal server error"
}
Set ownership rules
Replaces the tenant’s ownership rules with this list, in this order, then works out every asset’s owners again in the background. The response does not wait for that: follow its progress in scan on Get ownership summary.
Every value a rule’s tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets always. Send owners to settle the kind of particular values, as the setup in the Plerion app does.
The list replaces every rule, so start from List ownership rules and send its rules back with your change. Send its version too (in the body or as an If-Match header): if the rules changed since you read them, the request is refused (409 RulesChanged) and nothing is saved. Without version the list is saved as sent.
A tag with more than 2,000 different values is refused (TooManyValues): that many values are IDs, not owners. One owner tag per key and side (DuplicateRule). An additional rule must name a team or person that exists (OwnerNotFound). Requires OwnershipRule:Modify.
The rules in priority order, first wins. Rules read only from integration tags are moved after the rest, so an asset's own tags are always tried first. Whatever the order, an assign rule with overrideTags is tried before the owner tags, and one without it after them. At most 20 owner tags and 200 additional rules. Keep a rule's id to keep the owners it found linked to it.
The version of the whole rule list. It changes whenever any rule is added, removed, moved or edited. Send it back with a change so a change made meanwhile is not overwritten.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Plerion, Simplify Cloud Security - documentation","description":"Plerion, Simplify Cloud Security - documentation","colors":{"primary":"#FFA500","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/pleriondocs/GIwfwlVd5Zt2w0-r/logo/plerion.svg?fit=max\u0026auto=format\u0026n=GIwfwlVd5Zt2w0-r\u0026q=85\u0026s=86e89d26c3b52a61495baaf98faff52c","dark":"https://mintcdn.com/pleriondocs/GIwfwlVd5Zt2w0-r/logo/plerion.svg?fit=max\u0026auto=format\u0026n=GIwfwlVd5Zt2w0-r\u0026q=85\u0026s=86e89d26c3b52a61495baaf98faff52c"},"favicon":"https://mintcdn.com/pleriondocs/tawzAAKnRc9yNNhT/favicon.svg?fit=max\u0026auto=format\u0026n=tawzAAKnRc9yNNhT\u0026q=85\u0026s=43160b812d8a7d732e3a72cf166dbbec","navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://app.plerion.com/sign-in"}},"footer":{"socials":{"x":"https://x.com/plerionhq","linkedin":"https://www.linkedin.com/company/plerion"},"links":[{"header":"Company","items":[{"label":"Plerion","href":"https://www.plerion.com"},{"label":"Contact","href":"https://www.plerion.com/company/contact-us"},{"label":"Partnerships","href":"https://www.plerion.com/company/partnerships"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://www.plerion.com/blog"},{"label":"Trust center","href":"https://trust.plerion.com/"},{"label":"Privacy policy","href":"https://www.plerion.com/company/privacy-policy"}]}]},"search":{"prompt":"Search the docs"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"pleriondocs","hasAudioNarration":false,"actualSubdomain":"pleriondocs","customDomains":["docs.plerion.com"],"gitSource":{"type":"github","owner":"plerionhq","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae980b516b7e854f2215788","collectionId":"e4139411-9bdc-467f-adee-b6fea3eb3f43","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae980b516b7e854f2215788"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae99d3936175fbf71248bc6","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API reference","count":124},{"language":"default","tag":"Guides","count":121},{"language":"default","tag":"API documentation","count":82},{"language":"default","tag":"Integrations","count":72},{"language":"default","tag":"Cloud","count":48},{"language":"default","tag":"Platform","count":38},{"language":"default","tag":"CLI reference","count":24},{"language":"default","tag":"Ownership","count":22},{"language":"default","tag":"AWS","count":21},{"language":"default","tag":"Organization API","count":21}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"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":"byok-sep-25","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":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/ownership/set-rules","slug":"/api-reference/ownership/set-rules","pageMetadata":{"title":"Set ownership rules","description":"Replaces the tenant's ownership rules with this list, in this order, then works out every asset's owners again in the background. The response does not wait for that: follow its progress in `scan` on [Get ownership summary](/api-reference/ownership/get-summary).\n\nEvery value a rule's tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets `always`. Send `owners` to settle the kind of particular values, as the setup in the Plerion app does.\n\nThe list replaces every rule, so start from [List ownership rules](/api-reference/ownership/list-rules) and send its rules back with your change. Send its `version` too (in the body or as an `If-Match` header): if the rules changed since you read them, the request is refused (`409 RulesChanged`) and nothing is saved. Without `version` the list is saved as sent.\n\nA tag with more than 2,000 different values is refused (`TooManyValues`): that many values are IDs, not owners. One owner tag per key and side (`DuplicateRule`). An additional rule must name a team or person that exists (`OwnerNotFound`). Requires `OwnershipRule:Modify`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/ownership/rules","href":"/api-reference/ownership/set-rules","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Replaces the tenant’s ownership rules with this list, in this order, then works out every asset’s owners again in the background. The response does not wait for that: follow its progress in \", _jsx(_components.code, {\n children: \"scan\"\n }), \" on \", _jsx(_components.a, {\n href: \"/api-reference/ownership/get-summary\",\n children: \"Get ownership summary\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Every value a rule’s tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets \", _jsx(_components.code, {\n children: \"always\"\n }), \". Send \", _jsx(_components.code, {\n children: \"owners\"\n }), \" to settle the kind of particular values, as the setup in the Plerion app does.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The list replaces every rule, so start from \", _jsx(_components.a, {\n href: \"/api-reference/ownership/list-rules\",\n children: \"List ownership rules\"\n }), \" and send its rules back with your change. Send its \", _jsx(_components.code, {\n children: \"version\"\n }), \" too (in the body or as an \", _jsx(_components.code, {\n children: \"If-Match\"\n }), \" header): if the rules changed since you read them, the request is refused (\", _jsx(_components.code, {\n children: \"409 RulesChanged\"\n }), \") and nothing is saved. Without \", _jsx(_components.code, {\n children: \"version\"\n }), \" the list is saved as sent.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A tag with more than 2,000 different values is refused (\", _jsx(_components.code, {\n children: \"TooManyValues\"\n }), \"): that many values are IDs, not owners. One owner tag per key and side (\", _jsx(_components.code, {\n children: \"DuplicateRule\"\n }), \"). An additional rule must name a team or person that exists (\", _jsx(_components.code, {\n children: \"OwnerNotFound\"\n }), \"). Requires \", _jsx(_components.code, {\n children: \"OwnershipRule:Modify\"\n }), \".\"]\n })]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Set ownership rules","description":"Replaces the tenant's ownership rules with this list, in this order, then works out every asset's owners again in the background. The response does not wait for that: follow its progress in `scan` on [Get ownership summary](/api-reference/ownership/get-summary).\n\nEvery value a rule's tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets `always`. Send `owners` to settle the kind of particular values, as the setup in the Plerion app does.\n\nThe list replaces every rule, so start from [List ownership rules](/api-reference/ownership/list-rules) and send its rules back with your change. Send its `version` too (in the body or as an `If-Match` header): if the rules changed since you read them, the request is refused (`409 RulesChanged`) and nothing is saved. Without `version` the list is saved as sent.\n\nA tag with more than 2,000 different values is refused (`TooManyValues`): that many values are IDs, not owners. One owner tag per key and side (`DuplicateRule`). An additional rule must name a team or person that exists (`OwnerNotFound`). Requires `OwnershipRule:Modify`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/ownership/rules","href":"/api-reference/ownership/set-rules","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"setOwnershipRules","tags":["Ownership"],"summary":"Set rules","x-mint":{"metadata":{"title":"Set ownership rules"}},"description":"Replaces the tenant's ownership rules with this list, in this order, then works out every asset's owners again in the background. The response does not wait for that: follow its progress in `scan` on [Get ownership summary](/api-reference/ownership/get-summary).\n\nEvery value a rule's tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets `always`. Send `owners` to settle the kind of particular values, as the setup in the Plerion app does.\n\nThe list replaces every rule, so start from [List ownership rules](/api-reference/ownership/list-rules) and send its rules back with your change. Send its `version` too (in the body or as an `If-Match` header): if the rules changed since you read them, the request is refused (`409 RulesChanged`) and nothing is saved. Without `version` the list is saved as sent.\n\nA tag with more than 2,000 different values is refused (`TooManyValues`): that many values are IDs, not owners. One owner tag per key and side (`DuplicateRule`). An additional rule must name a team or person that exists (`OwnerNotFound`). Requires `OwnershipRule:Modify`.","security":["6a3670a7-bf11-418f-b864-a203c9a08d3a"],"parameters":["0e25310e-00bd-4245-8ba6-ce1a6d3defaf","b2ec8018-22fa-4820-b8af-d164a1cbfa98"],"requestBody":"4456e1f1-b2dc-433b-9cb2-65eaba737075","responses":{"200":"51c1e6df-3f5d-4025-8cb0-e918158c4443","400":"69de9c63-4524-4d35-bc54-e3962515de0e","403":"dcf8f09c-659f-4520-ba0c-062b6df089a4","409":"da91987f-80a2-4dea-9b0f-e15c3203d273","500":"6f5c08d5-272e-494b-9e28-e885e09d6d5d"},"method":"put","type":"path","servers":["261340cd-c547-4350-bc6e-f80804ae395f"],"path":"/v1/tenant/ownership/rules","baseUrlOptions":["https://{region}.api.plerion.com"],"title":"Set rules","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"0e25310e-00bd-4245-8ba6-ce1a6d3defaf":{"name":"Authorization","in":"header","description":"Bearer API Key. For example, \"Bearer {Tenant API Key}\"","required":true,"schema":{"type":"string","isRequired":true,"description":"Bearer API Key. For example, \"Bearer {Tenant API Key}\"","uniqueKey":"","typeLabel":"string"}},"b2ec8018-22fa-4820-b8af-d164a1cbfa98":{"in":"header","name":"Content-Type","description":"application/json","schema":{"type":"string","description":"application/json","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["rules"],"properties":{"rules":{"type":"array","maxItems":220,"description":"The rules in priority order, first wins. Rules read only from integration tags are moved after the rest, so an asset's own tags are always tried first. Whatever the order, an `assign` rule with `overrideTags` is tried before the owner tags, and one without it after them. At most 20 owner tags and 200 additional rules. Keep a rule's `id` to keep the owners it found linked to it.","items":{"type":"object","description":"One rule. `tag` rules (owner tags) read an owner from a tag's value. `assign` rules (additional rules) give the assets matching their conditions to one team or person. `tagValue` is the custom rule saved before conditions existed: still accepted and read as before, but new rules should use `assign`.","required":["type","config"],"properties":{"type":{"type":"string","enum":["tag","assign","tagValue"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","title":"Owner tag (type tag)","required":["key","from","newOwnersAre"],"properties":{"key":{"type":"string","maxLength":500,"description":"The tag key. Case and separators are ignored, so `Owner` also reads `owner`.","example":"Team","isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.0.key","typeLabel":"string"},"from":{"type":"string","description":"Where the tag is read: on the asset, on the asset's integration (such as the tags on an AWS account), or `both`. Every tag read on the asset is tried before any tag read only on the integration, so an asset's own tag wins over its integration's. A key can be read once on each side.","enum":["asset","integration","both"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.0.from","typeLabel":"enum\u003cstring>"},"newOwnersAre":{"type":"string","description":"An asset has at most one team owner and one person owner.","enum":["team","person"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.0.newOwnersAre","typeLabel":"enum\u003cstring>"},"always":{"type":"boolean","description":"Every value of this tag is `newOwnersAre`, with no guessing. Without it, Plerion decides per value and `newOwnersAre` is the fallback for plain names.","uniqueKey":"rules.items.[INDEX].config.oneOf.0.always","typeLabel":"boolean"},"ignoreValues":{"type":"array","maxItems":500,"description":"Values of this tag that name nobody. An asset with one of them is read as having no value, so the next rule gets its turn.","items":{"type":"string","uniqueKey":"rules.items.[INDEX].config.oneOf.0.ignoreValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rules.items.[INDEX].config.oneOf.0.ignoreValues","typeLabel":"string[]"},"keepValues":{"type":"array","maxItems":500,"description":"Values Plerion would read as naming nobody (such as a tool name) that are owners in this tag.","items":{"type":"string","uniqueKey":"rules.items.[INDEX].config.oneOf.0.keepValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rules.items.[INDEX].config.oneOf.0.keepValues","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.0","typeLabel":"Owner tag (type tag) · object"},{"type":"object","title":"Additional rule (type assign)","description":"The assets matching the conditions belong to one team or person. An asset must match every condition, except name conditions, where matching any one is enough. An owner tag that names someone wins over the rule, unless `overrideTags` is true.","required":["when","ownerId"],"example":{"ownerId":"3f0c1b6e-6b1f-4b5e-9f7a-2a1d4c8e9b10","when":[{"type":"resourceType","value":["AWS::S3::Bucket"]},{"type":"region","value":["ap-southeast-2"]},{"type":"resourceName","operator":"startsWith","value":"payments-"}]},"properties":{"ownerId":{"type":"string","format":"uuid","description":"The team or person the matching assets belong to. It must exist.","isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.1.ownerId","typeLabel":"string\u003cuuid>"},"when":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","description":"One thing an asset must have.\n\n- `tag`: the tag `key`, read on the asset or its integration (`from`), has one of `values`. Values compare with case and separators ignored; a value with `*` matches any text in its place, so `sand*` matches `sandbox`.\n- `integration`, `resourceType`, `region`: the asset's integration ID, resource type or region is one of `value`.\n- `resourceName`: the asset's name `equals`, `startsWith`, `endsWith` or `contains` `value`. Names compare with case.","required":["type"],"properties":{"type":{"type":"string","enum":["tag","integration","resourceType","region","resourceName"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"from":{"type":"string","description":"For `tag`","enum":["asset","integration"],"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].from","typeLabel":"enum\u003cstring>"},"key":{"type":"string","maxLength":500,"description":"For `tag`","example":"Purpose","uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].key","typeLabel":"string"},"values":{"type":"array","minItems":1,"maxItems":500,"description":"For `tag`","items":{"type":"string","uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].values.items.[INDEX]","typeLabel":"string"},"example":["sandbox*"],"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].values","typeLabel":"string[]"},"operator":{"type":"string","description":"For `resourceName`","enum":["equals","startsWith","endsWith","contains"],"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].operator","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of 1 to 500 for `integration`, `resourceType` and `region`; a name of at most 500 characters for `resourceName`.","maxItems":500,"minItems":1,"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value.oneOf.0","typeLabel":"string[]"},{"type":"string","description":"A list of 1 to 500 for `integration`, `resourceType` and `region`; a name of at most 500 characters for `resourceName`.","maxLength":500,"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value.oneOf.1","typeLabel":"string"}],"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value","typeLabel":"string[] | string"}},"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.1.when","typeLabel":"object[]"},"overrideTags":{"type":"boolean","description":"True to give the matching assets to this owner even when an owner tag names someone else. Leave it out for a rule that only fills the gaps owner tags leave.","uniqueKey":"rules.items.[INDEX].config.oneOf.1.overrideTags","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.1","typeLabel":"Additional rule (type assign) · object"},{"type":"object","title":"Custom rule saved before conditions (type tagValue)","description":"Assets whose tag `key` has one of `values`, or matches `pattern` (`*` is any text), belong to `ownerId`. Use `assign` for new rules; this shape is kept so rules saved with it go on working.","required":["key","from","ownerId"],"properties":{"key":{"type":"string","maxLength":500,"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.2.key","typeLabel":"string"},"from":{"type":"string","enum":["asset","integration"],"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.2.from","typeLabel":"enum\u003cstring>"},"ownerId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.2.ownerId","typeLabel":"string\u003cuuid>"},"values":{"type":"array","maxItems":500,"items":{"type":"string","uniqueKey":"rules.items.[INDEX].config.oneOf.2.values.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rules.items.[INDEX].config.oneOf.2.values","typeLabel":"string[]"},"pattern":{"type":"string","maxLength":200,"uniqueKey":"rules.items.[INDEX].config.oneOf.2.pattern","typeLabel":"string"}},"isRequired":true,"uniqueKey":"rules.items.[INDEX].config.oneOf.2","typeLabel":"Custom rule saved before conditions (type tagValue) · object"}],"isRequired":true,"uniqueKey":"rules.items.[INDEX].config","typeLabel":"Owner tag (type tag) · object | Additional rule (type assign) · object | Custom rule saved before conditions (type tagValue) · object"},"id":{"type":"string","format":"uuid","description":"Keep an existing rule's ID when sending it back","uniqueKey":"rules.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"enabled":{"type":"boolean","default":true,"uniqueKey":"rules.items.[INDEX].enabled","typeLabel":"boolean"}},"uniqueKey":"rules.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rules","typeLabel":"object[]"},"version":{"type":"string","description":"The version of the whole rule list. It changes whenever any rule is added, removed, moved or edited. Send it back with a change so a change made meanwhile is not overwritten.","example":"9mQx2bTq4kLr7sVw1yZa0c","uniqueKey":"version","typeLabel":"string"},"owners":{"type":"array","maxItems":500,"description":"Optional. The kind of particular values, overriding Plerion's guess.","items":{"type":"object","required":["value","kind"],"properties":{"value":{"type":"string","description":"A tag value, as it appears on assets","example":"payments","isRequired":true,"uniqueKey":"owners.items.[INDEX].value","typeLabel":"string"},"kind":{"type":"string","description":"An asset has at most one team owner and one person owner.","enum":["team","person"],"isRequired":true,"uniqueKey":"owners.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"key":{"type":"string","description":"The tag key the value was read from","example":"Team","uniqueKey":"owners.items.[INDEX].key","typeLabel":"string"},"from":{"type":"string","description":"Where that tag was read","enum":["asset","integration"],"uniqueKey":"owners.items.[INDEX].from","typeLabel":"enum\u003cstring>"}},"uniqueKey":"owners.items.[INDEX]","typeLabel":"object"},"uniqueKey":"owners","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"version":"9mQx2bTq4kLr7sVw1yZa0c","rules":[{"type":"tag","enabled":true,"config":{"key":"Team","from":"asset","newOwnersAre":"team"}},{"type":"tag","enabled":true,"config":{"key":"Owner","from":"asset","newOwnersAre":"person"}}],"owners":[{"value":"sre-oncall@example.com","kind":"team","key":"Owner"}]},"examples":{"Example":{"title":"Example","value":{"version":"9mQx2bTq4kLr7sVw1yZa0c","rules":[{"type":"tag","enabled":true,"config":{"key":"Team","from":"asset","newOwnersAre":"team"}},{"type":"tag","enabled":true,"config":{"key":"Owner","from":"asset","newOwnersAre":"person"}}],"owners":[{"value":"sre-oncall@example.com","kind":"team","key":"Owner"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"51c1e6df-3f5d-4025-8cb0-e918158c4443":{"description":"The rules as saved","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","description":"One rule. `tag` rules (owner tags) read an owner from a tag's value. `assign` rules (additional rules) give the assets matching their conditions to one team or person. `tagValue` is the custom rule saved before conditions existed: still accepted and read as before, but new rules should use `assign`.","required":["type","config"],"properties":{"type":{"type":"string","enum":["tag","assign","tagValue"],"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","title":"Owner tag (type tag)","required":["key","from","newOwnersAre"],"properties":{"key":{"type":"string","maxLength":500,"description":"The tag key. Case and separators are ignored, so `Owner` also reads `owner`.","example":"Team","isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.key","typeLabel":"string"},"from":{"type":"string","description":"Where the tag is read: on the asset, on the asset's integration (such as the tags on an AWS account), or `both`. Every tag read on the asset is tried before any tag read only on the integration, so an asset's own tag wins over its integration's. A key can be read once on each side.","enum":["asset","integration","both"],"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.from","typeLabel":"enum\u003cstring>"},"newOwnersAre":{"type":"string","description":"An asset has at most one team owner and one person owner.","enum":["team","person"],"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.newOwnersAre","typeLabel":"enum\u003cstring>"},"always":{"type":"boolean","description":"Every value of this tag is `newOwnersAre`, with no guessing. Without it, Plerion decides per value and `newOwnersAre` is the fallback for plain names.","uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.always","typeLabel":"boolean"},"ignoreValues":{"type":"array","maxItems":500,"description":"Values of this tag that name nobody. An asset with one of them is read as having no value, so the next rule gets its turn.","items":{"type":"string","uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.ignoreValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.ignoreValues","typeLabel":"string[]"},"keepValues":{"type":"array","maxItems":500,"description":"Values Plerion would read as naming nobody (such as a tool name) that are owners in this tag.","items":{"type":"string","uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.keepValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.rules.items.[INDEX].config.oneOf.0.keepValues","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.0","typeLabel":"Owner tag (type tag) · object"},{"type":"object","title":"Additional rule (type assign)","description":"The assets matching the conditions belong to one team or person. An asset must match every condition, except name conditions, where matching any one is enough. An owner tag that names someone wins over the rule, unless `overrideTags` is true.","required":["when","ownerId"],"example":{"ownerId":"3f0c1b6e-6b1f-4b5e-9f7a-2a1d4c8e9b10","when":[{"type":"resourceType","value":["AWS::S3::Bucket"]},{"type":"region","value":["ap-southeast-2"]},{"type":"resourceName","operator":"startsWith","value":"payments-"}]},"properties":{"ownerId":{"type":"string","format":"uuid","description":"The team or person the matching assets belong to. It must exist.","isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.ownerId","typeLabel":"string\u003cuuid>"},"when":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","description":"One thing an asset must have.\n\n- `tag`: the tag `key`, read on the asset or its integration (`from`), has one of `values`. Values compare with case and separators ignored; a value with `*` matches any text in its place, so `sand*` matches `sandbox`.\n- `integration`, `resourceType`, `region`: the asset's integration ID, resource type or region is one of `value`.\n- `resourceName`: the asset's name `equals`, `startsWith`, `endsWith` or `contains` `value`. Names compare with case.","required":["type"],"properties":{"type":{"type":"string","enum":["tag","integration","resourceType","region","resourceName"],"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"from":{"type":"string","description":"For `tag`","enum":["asset","integration"],"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].from","typeLabel":"enum\u003cstring>"},"key":{"type":"string","maxLength":500,"description":"For `tag`","example":"Purpose","uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].key","typeLabel":"string"},"values":{"type":"array","minItems":1,"maxItems":500,"description":"For `tag`","items":{"type":"string","uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].values.items.[INDEX]","typeLabel":"string"},"example":["sandbox*"],"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].values","typeLabel":"string[]"},"operator":{"type":"string","description":"For `resourceName`","enum":["equals","startsWith","endsWith","contains"],"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].operator","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of 1 to 500 for `integration`, `resourceType` and `region`; a name of at most 500 characters for `resourceName`.","maxItems":500,"minItems":1,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value.oneOf.0","typeLabel":"string[]"},{"type":"string","description":"A list of 1 to 500 for `integration`, `resourceType` and `region`; a name of at most 500 characters for `resourceName`.","maxLength":500,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value.oneOf.1","typeLabel":"string"}],"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX].value","typeLabel":"string[] | string"}},"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.when","typeLabel":"object[]"},"overrideTags":{"type":"boolean","description":"True to give the matching assets to this owner even when an owner tag names someone else. Leave it out for a rule that only fills the gaps owner tags leave.","uniqueKey":"data.rules.items.[INDEX].config.oneOf.1.overrideTags","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.1","typeLabel":"Additional rule (type assign) · object"},{"type":"object","title":"Custom rule saved before conditions (type tagValue)","description":"Assets whose tag `key` has one of `values`, or matches `pattern` (`*` is any text), belong to `ownerId`. Use `assign` for new rules; this shape is kept so rules saved with it go on working.","required":["key","from","ownerId"],"properties":{"key":{"type":"string","maxLength":500,"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.2.key","typeLabel":"string"},"from":{"type":"string","enum":["asset","integration"],"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.2.from","typeLabel":"enum\u003cstring>"},"ownerId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.2.ownerId","typeLabel":"string\u003cuuid>"},"values":{"type":"array","maxItems":500,"items":{"type":"string","uniqueKey":"data.rules.items.[INDEX].config.oneOf.2.values.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.rules.items.[INDEX].config.oneOf.2.values","typeLabel":"string[]"},"pattern":{"type":"string","maxLength":200,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.2.pattern","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config.oneOf.2","typeLabel":"Custom rule saved before conditions (type tagValue) · object"}],"isRequired":true,"uniqueKey":"data.rules.items.[INDEX].config","typeLabel":"Owner tag (type tag) · object | Additional rule (type assign) · object | Custom rule saved before conditions (type tagValue) · object"},"id":{"type":"string","format":"uuid","description":"Keep an existing rule's ID when sending it back","uniqueKey":"data.rules.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"enabled":{"type":"boolean","default":true,"uniqueKey":"data.rules.items.[INDEX].enabled","typeLabel":"boolean"},"priority":{"type":"integer","example":1,"uniqueKey":"data.rules.items.[INDEX].priority","typeLabel":"integer"},"origin":{"type":"string","description":"`detected`: an owner tag Plerion added from your tags. It becomes `custom` once you change it.","enum":["detected","custom"],"uniqueKey":"data.rules.items.[INDEX].origin","typeLabel":"enum\u003cstring>"},"updatedBy":{"oneOf":[{"type":"string","uniqueKey":"data.rules.items.[INDEX].updatedBy.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.rules.items.[INDEX].updatedBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.rules.items.[INDEX].updatedBy","typeLabel":"string | null"},"updatedAt":{"type":"string","format":"date-time","uniqueKey":"data.rules.items.[INDEX].updatedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.rules.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.rules","typeLabel":"object[]"},"version":{"type":"string","description":"The version of the whole rule list. It changes whenever any rule is added, removed, moved or edited. Send it back with a change so a change made meanwhile is not overwritten.","example":"9mQx2bTq4kLr7sVw1yZa0c","uniqueKey":"data.version","typeLabel":"string"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"rules":[{"type":"tag","config":{"key":"Team","from":"asset","newOwnersAre":"team","always":true,"ignoreValues":["\u003cstring>"],"keepValues":["\u003cstring>"]},"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","enabled":true,"priority":1,"origin":"detected","updatedBy":"\u003cstring>","updatedAt":"2023-11-07T05:31:56Z"}],"version":"9mQx2bTq4kLr7sVw1yZa0c"}}}},"exampleType":"generated"}},"exampleType":"generated"},"69de9c63-4524-4d35-bc54-e3962515de0e":{"description":"The request was refused. `code` says why, for example `InvalidRequest`, `NotFound`, `NameTaken`, `OwnerLimitReached`, `KindMismatch`, `TooManyValues`, `DuplicateRule`, `OwnerNotFound`, `OriginValue`, `RulesChanged` or `SettingsChanged`.","content":{"application/json":{"schema":{"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"NameTaken","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Payments already goes by \"payments\". Use that one instead.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"NameTaken","message":"Payments already goes by \"payments\". Use that one instead."}]}}},"exampleType":"generated"}},"exampleType":"generated"},"dcf8f09c-659f-4520-ba0c-062b6df089a4":{"description":"Forbidden","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","example":"Forbidden","uniqueKey":"message","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Forbidden"}}},"exampleType":"generated"}},"exampleType":"generated"},"da91987f-80a2-4dea-9b0f-e15c3203d273":{"description":"The request was refused. `code` says why, for example `InvalidRequest`, `NotFound`, `NameTaken`, `OwnerLimitReached`, `KindMismatch`, `TooManyValues`, `DuplicateRule`, `OwnerNotFound`, `OriginValue`, `RulesChanged` or `SettingsChanged`.","content":{"application/json":{"schema":{"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"NameTaken","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Payments already goes by \"payments\". Use that one instead.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"NameTaken","message":"Payments already goes by \"payments\". Use that one instead."}]}}},"exampleType":"generated"}},"exampleType":"generated"},"6f5c08d5-272e-494b-9e28-e885e09d6d5d":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Internal server error","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Internal server error"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6a3670a7-bf11-418f-b864-a203c9a08d3a":{"APIKey":{"type":"http","scheme":"bearer","bearerFormat":"apiKey","description":"Bearer API Key. For example, \"Bearer {Tenant API Key}\"","scopes":[],"schemeName":"APIKey"}}},"servers":{"261340cd-c547-4350-bc6e-f80804ae395f":{"url":"https://{region}.api.plerion.com","description":"Production API server - Select your preferred region","variables":{"region":{"default":"au","enum":["au","sg1","in1","us1"]}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"apiKey","description":"Bearer API Key. For example, \"Bearer {Tenant API Key}\"","scopes":[],"schemeName":"APIKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer API Key. For example, \"Bearer {Tenant API Key}\"","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"APIKey","name":"Authorization"}],"title":"APIKey"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"pleriondocs","siteName":"Plerion, Simplify Cloud Security - documentation","title":"Set ownership rules - Plerion, Simplify Cloud Security - documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T08:37:24.482Z","originalFileLocation":"api-reference/ownership/set-rules.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=\"Replaces the tenant\u0026#x27;s ownership rules with this list, in this order, then works out every asset\u0026#x27;s owners again in the background. The response does not wait for that: follow its progress in scan on Get ownership summary. Every value a rule\u0026#x27;s tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets always. Send owners to settle the kind of particular values, as the setup in the Plerion app does. The list replaces every rule, so start from List ownership rules and send its rules back with your change. Send its version too (in the body or as an If-Match header): if the rules changed since you read them, the request is refused (409 RulesChanged) and nothing is saved. Without version the list is saved as sent. A tag with more than 2,000 different values is refused (TooManyValues): that many values are IDs, not owners. One owner tag per key and side (DuplicateRule). An additional rule must name a team or person that exists (OwnerNotFound). Requires OwnershipRule:Modify.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Plerion, Simplify Cloud Security - 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/pleriondocs/xDuw_jwQ1ux0MEWx/_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/pleriondocs/xDuw_jwQ1ux0MEWx/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/pleriondocs/xDuw_jwQ1ux0MEWx/_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/pleriondocs/xDuw_jwQ1ux0MEWx/_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/pleriondocs/xDuw_jwQ1ux0MEWx/_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/pleriondocs/xDuw_jwQ1ux0MEWx/_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/pleriondocs/xDuw_jwQ1ux0MEWx/_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/pleriondocs/xDuw_jwQ1ux0MEWx/_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/pleriondocs/xDuw_jwQ1ux0MEWx/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Set ownership rules - Plerion, Simplify Cloud Security - documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Replaces the tenant\u0026#x27;s ownership rules with this list, in this order, then works out every asset\u0026#x27;s owners again in the background. The response does not wait for that: follow its progress in scan on Get ownership summary. Every value a rule\u0026#x27;s tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets always. Send owners to settle the kind of particular values, as the setup in the Plerion app does. The list replaces every rule, so start from List ownership rules and send its rules back with your change. Send its version too (in the body or as an If-Match header): if the rules changed since you read them, the request is refused (409 RulesChanged) and nothing is saved. Without version the list is saved as sent. A tag with more than 2,000 different values is refused (TooManyValues): that many values are IDs, not owners. One owner tag per key and side (DuplicateRule). An additional rule must name a team or person that exists (OwnerNotFound). Requires OwnershipRule:Modify.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Plerion, Simplify Cloud Security - documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.plerion.com/api-reference/ownership/set-rules\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://pleriondocs.mintlify.app/_mintlify/api/og/v2?division=Ownership\u0026amp;title=Set+ownership+rules\u0026amp;description=Replaces+the+tenant%27s+ownership+rules+with+this+list%2C+in+this+order%2C+then+works+out+every+asset%27s+owners+again+in+the+background.+The+response+does+not+wait+for\u0026amp;theme=20f0c40f02b58da5abe20cea\u0026amp;signature=46db72ee860c6e3beb71c62baa81947a84fdeba142fd930ed327e65a5ad246e3\">\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=\"Set ownership rules - Plerion, Simplify Cloud Security - documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Replaces the tenant\u0026#x27;s ownership rules with this list, in this order, then works out every asset\u0026#x27;s owners again in the background. The response does not wait for that: follow its progress in scan on Get ownership summary. Every value a rule\u0026#x27;s tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets always. Send owners to settle the kind of particular values, as the setup in the Plerion app does. The list replaces every rule, so start from List ownership rules and send its rules back with your change. Send its version too (in the body or as an If-Match header): if the rules changed since you read them, the request is refused (409 RulesChanged) and nothing is saved. Without version the list is saved as sent. A tag with more than 2,000 different values is refused (TooManyValues): that many values are IDs, not owners. One owner tag per key and side (DuplicateRule). An additional rule must name a team or person that exists (OwnerNotFound). Requires OwnershipRule:Modify.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://pleriondocs.mintlify.app/_mintlify/api/og/v2?division=Ownership\u0026amp;title=Set+ownership+rules\u0026amp;description=Replaces+the+tenant%27s+ownership+rules+with+this+list%2C+in+this+order%2C+then+works+out+every+asset%27s+owners+again+in+the+background.+The+response+does+not+wait+for\u0026amp;theme=20f0c40f02b58da5abe20cea\u0026amp;signature=46db72ee860c6e3beb71c62baa81947a84fdeba142fd930ed327e65a5ad246e3\">\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/pleriondocs/xDuw_jwQ1ux0MEWx/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Plerion, Simplify Cloud Security - documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FFA500\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.plerion.com/api-reference/ownership/set-rules\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/ownership/set-rules.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.plerion.com/#organization\",\"name\":\"Plerion, Simplify Cloud Security - documentation\",\"url\":\"https://docs.plerion.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/pleriondocs/GIwfwlVd5Zt2w0-r/logo/plerion.svg?fit=max\u0026auto=format\u0026n=GIwfwlVd5Zt2w0-r\u0026q=85\u0026s=86e89d26c3b52a61495baaf98faff52c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.plerion.com#website\",\"name\":\"Plerion, Simplify Cloud Security - documentation\",\"url\":\"https://docs.plerion.com\",\"publisher\":{\"@id\":\"https://docs.plerion.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.plerion.com/api-reference/ownership/set-rules#webpage\",\"url\":\"https://docs.plerion.com/api-reference/ownership/set-rules\",\"name\":\"Set ownership rules\",\"description\":\"Replaces the tenant's ownership rules with this list, in this order, then works out every asset's owners again in the background. The response does not wait for that: follow its progress in scan on Get ownership summary. Every value a rule's tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets always. Send owners to settle the kind of particular values, as the setup in the Plerion app does. The list replaces every rule, so start from List ownership rules and send its rules back with your change. Send its version too (in the body or as an If-Match header): if the rules changed since you read them, the request is refused (409 RulesChanged) and nothing is saved. Without version the list is saved as sent. A tag with more than 2,000 different values is refused (TooManyValues): that many values are IDs, not owners. One owner tag per key and side (DuplicateRule). An additional rule must name a team or person that exists (OwnerNotFound). Requires OwnershipRule:Modify.\",\"dateModified\":\"2026-11-03T08:37:24.482Z\",\"isPartOf\":{\"@id\":\"https://docs.plerion.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.plerion.com/api-reference/ownership/set-rules#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.plerion.com/api-reference/ownership/set-rules#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API documentation\",\"item\":\"https://docs.plerion.com/api-reference/findings/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ownership\",\"item\":\"https://docs.plerion.com/api-reference/ownership/list-rules\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Set ownership rules\",\"item\":\"https://docs.plerion.com/api-reference/ownership/set-rules\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.plerion.com/api-reference/ownership/set-rules#apireference\",\"headline\":\"Set ownership rules\",\"name\":\"Set ownership rules\",\"description\":\"Replaces the tenant's ownership rules with this list, in this order, then works out every asset's owners again in the background. The response does not wait for that: follow its progress in scan on Get ownership summary. Every value a rule's tag holds becomes an owner, a team or a person. Plerion decides the kind per value (emails are people, group names and tools are teams) unless the rule sets always. Send owners to settle the kind of particular values, as the setup in the Plerion app does. The list replaces every rule, so start from List ownership rules and send its rules back with your change. Send its version too (in the body or as an If-Match header): if the rules changed since you read them, the request is refused (409 RulesChanged) and nothing is saved. Without version the list is saved as sent. A tag with more than 2,000 different values is refused (TooManyValues): that many values are IDs, not owners. One owner tag per key and side (DuplicateRule). An additional rule must name a team or person that exists (OwnerNotFound). Requires OwnershipRule:Modify.\",\"url\":\"https://docs.plerion.com/api-reference/ownership/set-rules\",\"mainEntityOfPage\":{\"@id\":\"https://docs.plerion.com/api-reference/ownership/set-rules#webpage\"},\"dateModified\":\"2026-11-03T08:37:24.482Z\",\"publisher\":{\"@id\":\"https://docs.plerion.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.plerion.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Plerion, Simplify Cloud Security - documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Plerion, Simplify Cloud Security - documentation","nav":{"global":null,"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":""}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/getting-started"}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"Quick start with Plerion API","href":"/api-reference"},{"title":"API categories","href":"/api-reference/api-categories"}]},{"group":"API documentation","pages":[{"group":"Findings","pages":[{"title":"List findings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/findings","href":"/api-reference/findings/list"}]},{"group":"Alerts","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/alerts","href":"/api-reference/alerts/list"}]},{"group":"AWS integration","pages":[{"title":"Get the tenant's external ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/external-id","href":"/api-reference/aws-integration/get-external-id"},{"title":"Create an onboarding token for a new integration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/integrations/token","href":"/api-reference/aws-integration/generate-temporary-token"},{"title":"Get the onboarding CloudFormation template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/cloudformation-templates","href":"/api-reference/aws-integration/get-cloudformation-template"}]},{"group":"Tenant","pages":[{"title":"Get this tenant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant","href":"/api-reference/tenant/get"},{"title":"Get what this key can call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/openapi","href":"/api-reference/tenant/discover"},{"title":"Get this tenant's usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/usage","href":"/api-reference/tenant/usage"}]},{"group":"Integrations","pages":[{"title":"List inbound integrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/integrations","href":"/api-reference/integrations/list-inbound-integrations"},{"title":"Replace an integration's user-defined tags","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/integrations/{integrationId}/user-defined-tags","href":"/api-reference/integrations/replace-user-defined-tags"}]},{"group":"Code security","pages":[{"title":"Upload infrastructure code for scanning","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/shiftleft/iac/scan","href":"/api-reference/code-security/upload-iac"},{"title":"List code scans","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/shiftleft/iac/scans","href":"/api-reference/code-security/list-scans"},{"title":"List a code scan's findings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/shiftleft/iac/scans/{scanId}/findings","href":"/api-reference/code-security/list-findings"},{"title":"List a code scan's vulnerabilities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/shiftleft/iac/scans/{scanId}/vulnerabilities","href":"/api-reference/code-security/list-vulnerabilities"}]},{"group":"Compliance frameworks","pages":[{"title":"List compliance frameworks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/compliance-frameworks","href":"/api-reference/compliance-frameworks/list"},{"title":"Download a compliance report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/integrations/{integrationId}/compliance-frameworks/{complianceId}/download","href":"/api-reference/compliance-frameworks/download-report"},{"title":"Request a compliance report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/integrations/{integrationId}/frameworks/{complianceFrameworkId}/reports","href":"/api-reference/compliance-frameworks/request-a-framework-report"}]},{"group":"Assets","pages":[{"title":"List assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/assets","href":"/api-reference/assets/list"},{"title":"Get an asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/assets/{assetId}","href":"/api-reference/assets/get"},{"title":"Get an asset's SBOM","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/assets/{assetId}/sbom","href":"/api-reference/assets/get-sbom"},{"title":"Get an SBOM by asset ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/assets/sbom","href":"/api-reference/assets/get-sbom-by-asset-id"}]},{"group":"Asset groups","pages":[{"title":"List asset groups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/asset-groups","href":"/api-reference/asset-groups/list"},{"title":"Create an asset group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/asset-groups","href":"/api-reference/asset-groups/create"},{"title":"Get an asset group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/asset-groups/{assetGroupId}","href":"/api-reference/asset-groups/get"},{"title":"Delete an asset group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/tenant/asset-groups/{assetGroupId}","href":"/api-reference/asset-groups/delete"},{"title":"Update an asset group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/tenant/asset-groups/{assetGroupId}","href":"/api-reference/asset-groups/update"}]},{"group":"Well-Architected frameworks","pages":[{"title":"List Well-Architected frameworks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/well-architected-frameworks","href":"/api-reference/well-architected-frameworks/list"},{"title":"Download a Well-Architected report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/integrations/{integrationId}/well-architected-frameworks/{wellArchitectedFrameworkId}/download","href":"/api-reference/well-architected-frameworks/download-report"},{"title":"Request a Well-Architected report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/integrations/{integrationId}/frameworks/{wellArchitectedFrameworkId}/reports","href":"/api-reference/well-architected-frameworks/request-framework-report"}]},{"group":"Vulnerabilities","pages":[{"title":"List vulnerabilities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/vulnerabilities","href":"/api-reference/vulnerabilities/list"},{"title":"List vulnerability exemptions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/profiles/{profileId}/vulnerability/exemptions","href":"/api-reference/vulnerabilities/list-vulnerability-exemptions-in-a-profile"},{"title":"Create a vulnerability exemption","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/profiles/{profileId}/vulnerability/exemptions","href":"/api-reference/vulnerabilities/create-a-vulnerability-exemption-in-a-profile"},{"title":"Get a vulnerability exemption","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/profiles/{profileId}/vulnerability/exemptions/{id}","href":"/api-reference/vulnerabilities/get-a-vulnerability-exemption-by-id"},{"title":"Delete a vulnerability exemption","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/tenant/profiles/{profileId}/vulnerability/exemptions/{id}","href":"/api-reference/vulnerabilities/delete-a-vulnerability-exemption-by-id"},{"title":"Update a vulnerability exemption","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/tenant/profiles/{profileId}/vulnerability/exemptions/{id}","href":"/api-reference/vulnerabilities/update-a-vulnerability-exemption-by-id"}]},{"group":"Profiles","pages":[{"title":"List profiles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/profiles","href":"/api-reference/profiles/list"}]},{"group":"Detection exemptions","pages":[{"title":"Get a detection's exemptions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/profiles/{profileId}/detection-settings/{detectionId}/exemptions","href":"/api-reference/detection-exemptions/get"},{"title":"Replace a detection's exemptions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/profiles/{profileId}/detection-settings/{detectionId}/exemptions","href":"/api-reference/detection-exemptions/replace"}]},{"group":"Risks","pages":[{"title":"List risks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/risks","href":"/api-reference/risks/list"},{"title":"Get a risk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/risks/{riskId}","href":"/api-reference/risks/get"}]},{"group":"Audit logs","pages":[{"title":"List audit logs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/audit-logs","href":"/api-reference/audit-logs/list"}]},{"group":"Custom checks","pages":[{"title":"List custom checks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/custom-checks","href":"/api-reference/custom-checks/list"},{"title":"Create a custom check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/custom-checks","href":"/api-reference/custom-checks/create"},{"title":"Get a custom check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/custom-checks/{customCheckId}","href":"/api-reference/custom-checks/get"},{"title":"Replace a custom check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/custom-checks/{customCheckId}","href":"/api-reference/custom-checks/update"},{"title":"Delete a custom check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/tenant/custom-checks/{customCheckId}","href":"/api-reference/custom-checks/delete"},{"title":"Start a custom check dry run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/custom-check-dry-runs","href":"/api-reference/custom-checks/start-dry-run"},{"title":"Get a dry run's status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/custom-check-dry-runs/{dryRunId}","href":"/api-reference/custom-checks/get-dry-run-status"}]},{"group":"Metrics","pages":[{"title":"Query metrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/metrics","href":"/api-reference/metrics/query"}]},{"group":"Workload scans","pages":[{"title":"Request a workload scan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/workload/scans","href":"/api-reference/workload-scans/request"},{"title":"Get a workload scan","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/workload/scans/{scanId}","href":"/api-reference/workload-scans/get"}]},{"group":"AWS access grants","pages":[{"title":"List AWS access grants","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/aws/access-grants","href":"/api-reference/aws-access-grants/list"},{"title":"Get access grant counts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/aws/access-grants/stats","href":"/api-reference/aws-access-grants/stats"},{"title":"List external principals with access","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/aws/access-grants/external-principals","href":"/api-reference/aws-access-grants/external-principals"},{"title":"Get an AWS access grant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/aws/access-grants/{id}","href":"/api-reference/aws-access-grants/get"},{"title":"Review an AWS access grant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/tenant/aws/access-grants/{id}","href":"/api-reference/aws-access-grants/update"}]},{"group":"Custom dashboards","pages":[{"title":"List the tenant's custom dashboards","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/custom-reports","href":"/api-reference/custom-dashboards/list"}]},{"group":"Preferences","pages":[{"title":"Get the tenant default home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/preferences/home-dashboard","href":"/api-reference/preferences/get-tenant-default"},{"title":"Set the tenant default home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/preferences/home-dashboard","href":"/api-reference/preferences/set-tenant-default"},{"title":"Clear the tenant default home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/tenant/preferences/home-dashboard","href":"/api-reference/preferences/clear-tenant-default"}]},{"group":"Ownership","pages":[{"title":"List ownership rules","description":"The tenant's ownership rules in priority order. For each asset, the first rule whose tag value names an owner of a kind gives the asset its owner of that kind. An empty list means ownership is not set up. Requires `Asset:Read`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/ownership/rules","href":"/api-reference/ownership/list-rules"},{"title":"Set ownership rules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/ownership/rules","href":"/api-reference/ownership/set-rules"},{"title":"Preview ownership rules","description":"A dry run of [Set ownership rules](/api-reference/ownership/set-rules). Returns the owners these rules would find, how many assets each rule would give an owner, why the rest would have none, and how owners would change. Saves nothing. Reads up to 100,000 assets; past that `partial` is `true`. Needs a key with access to every integration in the tenant (`403 ScopeTooNarrow` otherwise). Requires `OwnershipRule:Modify`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/ownership/rules/preview","href":"/api-reference/ownership/preview-rules"},{"title":"Get ownership settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/ownership/settings","href":"/api-reference/ownership/get-settings"},{"title":"Update ownership settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/ownership/settings","href":"/api-reference/ownership/update-settings"},{"title":"List tag keys for ownership","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/ownership/tag-keys","href":"/api-reference/ownership/list-tag-keys"},{"title":"List integration tag keys for ownership","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/ownership/integration-tag-keys","href":"/api-reference/ownership/list-integration-tag-keys"},{"title":"Get ownership summary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/ownership/summary","href":"/api-reference/ownership/get-summary"},{"title":"List assets with no owner, by reason","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/ownership/uncovered","href":"/api-reference/ownership/list-assets-with-no-owner"},{"title":"Explain an asset's owners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/ownership/explain","href":"/api-reference/ownership/explain-an-assets-owners"},{"title":"Set owners on assets by hand","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/tenant/assets/owner","href":"/api-reference/ownership/set-owners-on-assets"},{"title":"List owners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/owners","href":"/api-reference/ownership/list-owners"},{"title":"Create an owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/owners","href":"/api-reference/ownership/create-an-owner"},{"title":"Delete several owners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/owners/not-an-owner","href":"/api-reference/ownership/delete-several-owners"},{"title":"List owners that are likely duplicates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/owners/review","href":"/api-reference/ownership/list-likely-duplicates"},{"title":"Delete an owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/tenant/owners/{ownerId}","href":"/api-reference/ownership/delete-an-owner"},{"title":"Update an owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/tenant/owners/{ownerId}","href":"/api-reference/ownership/update-an-owner"},{"title":"Merge owners into one","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/owners/{ownerId}/merge","href":"/api-reference/ownership/merge-owners"},{"title":"Undo a merge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tenant/owners/{ownerId}/unmerge","href":"/api-reference/ownership/undo-a-merge"},{"title":"Add or remove the names an owner goes by","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/tenant/owners/{ownerId}/aliases","href":"/api-reference/ownership/update-an-owners-names"},{"title":"Get an owner's history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/owners/{ownerId}/history","href":"/api-reference/ownership/get-owner-history"},{"title":"Get the commands to retag an owner's assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tenant/owners/{ownerId}/retag-plan","href":"/api-reference/ownership/get-retag-commands"}]}]},{"group":"Organization API","pages":[{"group":"Roles","pages":[{"title":"List roles","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/roles","href":"/api-reference/roles/list-roles"},{"title":"Create a custom role","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml post /v1/organization/roles","href":"/api-reference/roles/create-a-custom-role"},{"title":"Get a role","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/roles/{roleId}","href":"/api-reference/roles/get-a-role"},{"title":"Update a custom role","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml put /v1/organization/roles/{roleId}","href":"/api-reference/roles/update-a-custom-role"},{"title":"Delete a custom role","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml delete /v1/organization/roles/{roleId}","href":"/api-reference/roles/delete-a-custom-role"}]},{"group":"Role assignments","pages":[{"title":"List role assignments","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/role-assignments","href":"/api-reference/role-assignments/list-role-assignments"},{"title":"Assign a role","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml post /v1/organization/role-assignments","href":"/api-reference/role-assignments/assign-a-role"},{"title":"Revoke a role","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml delete /v1/organization/role-assignments/{roleId}/{principalType}/{principalId}","href":"/api-reference/role-assignments/revoke-a-role"}]},{"group":"Permission catalog","pages":[{"title":"Get the permission catalog","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/permission-catalog","href":"/api-reference/permission-catalog/get-the-permission-catalog"}]},{"group":"Preferences","pages":[{"title":"Get a user's home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/users/{userId}/preferences/home-dashboard","href":"/api-reference/preferences/get-a-users-home-dashboard"},{"title":"Set a user's home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml put /v1/organization/users/{userId}/preferences/home-dashboard","href":"/api-reference/preferences/set-a-users-home-dashboard"},{"title":"Clear a user's home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml delete /v1/organization/users/{userId}/preferences/home-dashboard","href":"/api-reference/preferences/clear-a-users-home-dashboard"},{"title":"Get a user's navigation","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/users/{userId}/preferences/navigation","href":"/api-reference/preferences/get-a-users-navigation"},{"title":"Set a user's navigation","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml put /v1/organization/users/{userId}/preferences/navigation","href":"/api-reference/preferences/set-a-users-navigation"},{"title":"Clear a user's navigation","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml delete /v1/organization/users/{userId}/preferences/navigation","href":"/api-reference/preferences/clear-a-users-navigation"},{"title":"Get a user group's home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/user-groups/{groupId}/preferences/home-dashboard","href":"/api-reference/preferences/get-a-user-groups-home-dashboard"},{"title":"Set a user group's home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml put /v1/organization/user-groups/{groupId}/preferences/home-dashboard","href":"/api-reference/preferences/set-a-user-groups-home-dashboard"},{"title":"Clear a user group's home dashboard","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml delete /v1/organization/user-groups/{groupId}/preferences/home-dashboard","href":"/api-reference/preferences/clear-a-user-groups-home-dashboard"},{"title":"Get a user group's navigation","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml get /v1/organization/user-groups/{groupId}/preferences/navigation","href":"/api-reference/preferences/get-a-user-groups-navigation"},{"title":"Set a user group's navigation","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml put /v1/organization/user-groups/{groupId}/preferences/navigation","href":"/api-reference/preferences/set-a-user-groups-navigation"},{"title":"Clear a user group's navigation","deprecated":null,"version":null,"openapi":"/api-reference/organization-openapi.yaml delete /v1/organization/user-groups/{groupId}/preferences/navigation","href":"/api-reference/preferences/clear-a-user-groups-navigation"}]}]},{"group":"SCIM API","pages":[{"group":"Discovery","pages":[{"title":"Supported SCIM protocol features","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/ServiceProviderConfig","href":"/api-reference/discovery/supported-scim-protocol-features"},{"title":"List supported resource types","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/ResourceTypes","href":"/api-reference/discovery/list-supported-resource-types"},{"title":"Get one resource type","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/ResourceTypes/{resourceTypeId}","href":"/api-reference/discovery/get-one-resource-type"},{"title":"List attribute schemas","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/Schemas","href":"/api-reference/discovery/list-attribute-schemas"},{"title":"Get one attribute schema","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/Schemas/{schemaUri}","href":"/api-reference/discovery/get-one-attribute-schema"}]},{"group":"Users","pages":[{"title":"List or filter users","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/Users","href":"/api-reference/users/list-or-filter-users"},{"title":"Create or adopt a user","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml post /v1/organization/scim/v2/Users","href":"/api-reference/users/create-or-adopt-a-user"},{"title":"Get one user","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/Users/{userId}","href":"/api-reference/users/get-one-user"},{"title":"Replace a user","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml put /v1/organization/scim/v2/Users/{userId}","href":"/api-reference/users/replace-a-user"},{"title":"Deprovision a user","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml delete /v1/organization/scim/v2/Users/{userId}","href":"/api-reference/users/deprovision-a-user"},{"title":"Partially update a user","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml patch /v1/organization/scim/v2/Users/{userId}","href":"/api-reference/users/partially-update-a-user"},{"title":"Search users with a request body","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml post /v1/organization/scim/v2/Users/.search","href":"/api-reference/users/search-users-with-a-request-body"}]},{"group":"Groups","pages":[{"title":"List or filter groups","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/Groups","href":"/api-reference/groups/list-or-filter-groups"},{"title":"Create a group","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml post /v1/organization/scim/v2/Groups","href":"/api-reference/groups/create-a-group"},{"title":"Get one group","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml get /v1/organization/scim/v2/Groups/{groupId}","href":"/api-reference/groups/get-one-group"},{"title":"Replace a group","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml put /v1/organization/scim/v2/Groups/{groupId}","href":"/api-reference/groups/replace-a-group"},{"title":"Delete a group","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml delete /v1/organization/scim/v2/Groups/{groupId}","href":"/api-reference/groups/delete-a-group"},{"title":"Partially update a group","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml patch /v1/organization/scim/v2/Groups/{groupId}","href":"/api-reference/groups/partially-update-a-group"},{"title":"Search groups with a request body","deprecated":null,"version":null,"openapi":"/api-reference/scim-openapi.yaml post /v1/organization/scim/v2/Groups/.search","href":"/api-reference/groups/search-groups-with-a-request-body"}]}]}]},{"tab":"CLI reference","pages":[{"title":"CLI reference","href":"/cli-reference/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"FAQs","hidden":true,"pages":[{"title":"FAQs","href":"/faqs"}]}]},"basePath":"","title":"Set ownership rules - Plerion, Simplify Cloud Security - documentation","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}