# yaml-language-server: $schema=https://api.cerbos.dev/latest/cerbos/policy/v1/Policy.schema.json
---
apiVersion: api.cerbos.dev/v1
resourcePolicy:
  version: default
  resource: ad_report
  schemas:
    principalSchema:
      ref: cerbos:///principal.json
    resourceSchema:
      ref: cerbos:///shared_resource.json
  importDerivedRoles:
    - audience_development_multitenancy_roles
    - fansifter_multitenancy_roles
    - resource_owner
    - shared_resource_roles
  rules:
  - name: create
    actions: ["create"]
    derivedRoles: [
      "any_tenant_audience_development_admin",
      "any_tenant_audience_development_client",
      "any_tenant_audience_development_analyst",
      "any_tenant_fansifter_can_create_ad_reports"
    ]
    effect: EFFECT_ALLOW
  - name: edit
    actions: ["edit"]
    derivedRoles: ["identity_owned_resource"]
    effect: EFFECT_ALLOW
  - name: view
    actions: ["view"]
    derivedRoles: [
      "identity_owned_resource",
      "identity_shared_with",
      "audience_development_tenant_shared_with",
    ]
    effect: EFFECT_ALLOW
  - name: share
    actions: ["share"]
    effect: EFFECT_ALLOW
    derivedRoles: ["identity_owned_resource"]
  - name: delete
    actions: ["delete"]
    derivedRoles: ["identity_owned_resource"]
    effect: EFFECT_ALLOW
