{
  "tenant": "default-tenant",
  "permissions": [
    "records.read",
    "records.write",
    "approvals.review",
    "reports.read",
    "admin.manage",
    "pipeline.manage",
    "quote.approve",
    "crm.govern",
    "crm.release.approve",
    "crm.evidence.manage",
    "crm.accounts.read",
    "crm.accounts.write",
    "crm.contacts.read",
    "crm.leads.assign",
    "crm.opportunities.manage",
    "crm.forecasts.commit",
    "crm.forecasts.approve",
    "crm.custom-fields.manage",
    "crm.saved-views.manage",
    "crm.team-permissions.manage",
    "crm.audit-timeline.read",
    "tenant.scope.enforce",
    "records.read.scoped",
    "records.write.scoped",
    "records.read.field-protected",
    "records.write.field-protected",
    "security.events.review",
    "governance.approvals.manage",
    "integrations.manage",
    "metadata.configure",
    "support.breakglass.request",
    "platform.quotas.manage",
    "platform.jobs.replay",
    "crm.forecast.commit",
    "crm.timeline.manage",
    "crm.account-plan.manage"
  ],
  "routes": [
    {
      "id": "system.health",
      "resource": "system",
      "method": "GET",
      "path": "/api/v1/health",
      "version": "v1",
      "description": "Versioned API health endpoint",
      "middleware": [],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": false,
      "tenantRequired": false,
      "rbacAbac": "not-required",
      "idempotencyRequired": false
    },
    {
      "id": "accounts.list",
      "resource": "accounts",
      "method": "GET",
      "path": "/api/v1/accounts",
      "version": "v1",
      "description": "List accounts records",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": true,
        "filtering": true,
        "sorting": true
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "accounts.get",
      "resource": "accounts",
      "method": "GET",
      "path": "/api/v1/accounts/{id}",
      "version": "v1",
      "description": "Get accounts by id",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "accounts.create",
      "resource": "accounts",
      "method": "POST",
      "path": "/api/v1/accounts",
      "version": "v1",
      "description": "Create accounts",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "accounts.update",
      "resource": "accounts",
      "method": "PATCH",
      "path": "/api/v1/accounts/{id}",
      "version": "v1",
      "description": "Update accounts",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "accounts.delete",
      "resource": "accounts",
      "method": "DELETE",
      "path": "/api/v1/accounts/{id}",
      "version": "v1",
      "description": "Delete accounts",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "contacts.list",
      "resource": "contacts",
      "method": "GET",
      "path": "/api/v1/contacts",
      "version": "v1",
      "description": "List contacts records",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": true,
        "filtering": true,
        "sorting": true
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "contacts.get",
      "resource": "contacts",
      "method": "GET",
      "path": "/api/v1/contacts/{id}",
      "version": "v1",
      "description": "Get contacts by id",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "contacts.create",
      "resource": "contacts",
      "method": "POST",
      "path": "/api/v1/contacts",
      "version": "v1",
      "description": "Create contacts",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "contacts.update",
      "resource": "contacts",
      "method": "PATCH",
      "path": "/api/v1/contacts/{id}",
      "version": "v1",
      "description": "Update contacts",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "contacts.delete",
      "resource": "contacts",
      "method": "DELETE",
      "path": "/api/v1/contacts/{id}",
      "version": "v1",
      "description": "Delete contacts",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "leads.list",
      "resource": "leads",
      "method": "GET",
      "path": "/api/v1/leads",
      "version": "v1",
      "description": "List leads records",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": true,
        "filtering": true,
        "sorting": true
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "leads.get",
      "resource": "leads",
      "method": "GET",
      "path": "/api/v1/leads/{id}",
      "version": "v1",
      "description": "Get leads by id",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "leads.create",
      "resource": "leads",
      "method": "POST",
      "path": "/api/v1/leads",
      "version": "v1",
      "description": "Create leads",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "leads.update",
      "resource": "leads",
      "method": "PATCH",
      "path": "/api/v1/leads/{id}",
      "version": "v1",
      "description": "Update leads",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "leads.delete",
      "resource": "leads",
      "method": "DELETE",
      "path": "/api/v1/leads/{id}",
      "version": "v1",
      "description": "Delete leads",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "opportunities.list",
      "resource": "opportunities",
      "method": "GET",
      "path": "/api/v1/opportunities",
      "version": "v1",
      "description": "List opportunities records",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": true,
        "filtering": true,
        "sorting": true
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "opportunities.get",
      "resource": "opportunities",
      "method": "GET",
      "path": "/api/v1/opportunities/{id}",
      "version": "v1",
      "description": "Get opportunities by id",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "opportunities.create",
      "resource": "opportunities",
      "method": "POST",
      "path": "/api/v1/opportunities",
      "version": "v1",
      "description": "Create opportunities",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "opportunities.update",
      "resource": "opportunities",
      "method": "PATCH",
      "path": "/api/v1/opportunities/{id}",
      "version": "v1",
      "description": "Update opportunities",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "opportunities.delete",
      "resource": "opportunities",
      "method": "DELETE",
      "path": "/api/v1/opportunities/{id}",
      "version": "v1",
      "description": "Delete opportunities",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "activities.list",
      "resource": "activities",
      "method": "GET",
      "path": "/api/v1/activities",
      "version": "v1",
      "description": "List activities records",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": true,
        "filtering": true,
        "sorting": true
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "activities.get",
      "resource": "activities",
      "method": "GET",
      "path": "/api/v1/activities/{id}",
      "version": "v1",
      "description": "Get activities by id",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "activities.create",
      "resource": "activities",
      "method": "POST",
      "path": "/api/v1/activities",
      "version": "v1",
      "description": "Create activities",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "activities.update",
      "resource": "activities",
      "method": "PATCH",
      "path": "/api/v1/activities/{id}",
      "version": "v1",
      "description": "Update activities",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "activities.delete",
      "resource": "activities",
      "method": "DELETE",
      "path": "/api/v1/activities/{id}",
      "version": "v1",
      "description": "Delete activities",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "tasks.list",
      "resource": "tasks",
      "method": "GET",
      "path": "/api/v1/tasks",
      "version": "v1",
      "description": "List tasks records",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": true,
        "filtering": true,
        "sorting": true
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "tasks.get",
      "resource": "tasks",
      "method": "GET",
      "path": "/api/v1/tasks/{id}",
      "version": "v1",
      "description": "Get tasks by id",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "tasks.create",
      "resource": "tasks",
      "method": "POST",
      "path": "/api/v1/tasks",
      "version": "v1",
      "description": "Create tasks",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "tasks.update",
      "resource": "tasks",
      "method": "PATCH",
      "path": "/api/v1/tasks/{id}",
      "version": "v1",
      "description": "Update tasks",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess",
        "validatePayload"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "tasks.delete",
      "resource": "tasks",
      "method": "DELETE",
      "path": "/api/v1/tasks/{id}",
      "version": "v1",
      "description": "Delete tasks",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": true
    },
    {
      "id": "reports.list",
      "resource": "reports",
      "method": "GET",
      "path": "/api/v1/reports",
      "version": "v1",
      "description": "List reports records",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": true,
        "filtering": true,
        "sorting": true
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    },
    {
      "id": "reports.get",
      "resource": "reports",
      "method": "GET",
      "path": "/api/v1/reports/{id}",
      "version": "v1",
      "description": "Get reports by id",
      "middleware": [
        "authenticate",
        "enforceTenant",
        "authorizeAccess"
      ],
      "supports": {
        "pagination": false,
        "filtering": false,
        "sorting": false
      },
      "authRequired": true,
      "tenantRequired": true,
      "rbacAbac": "enforced",
      "idempotencyRequired": false
    }
  ]
}