{"id":24284,"library":"py-ocsf-models","title":"py-ocsf-models","description":"Python implementation of the OCSF (Open Cybersecurity Schema Framework) models. Provides Pydantic v2-based data models representing OCSF schema objects (e.g., DetectionFinding, ComplianceFinding). Current version 0.9.0, supports Python 3.10–3.14, maintained by Prowler Cloud.","status":"active","version":"0.9.0","language":"python","source_language":"en","source_url":"https://github.com/prowler-cloud/py-ocsf-models","tags":["ocsf","cybersecurity","schema","pydantic","models"],"install":[{"cmd":"pip install py-ocsf-models","lang":"bash","label":"pip"}],"dependencies":[{"reason":"Core dependency for model definitions","package":"pydantic","optional":false},{"reason":"Used for security-related features","package":"cryptography","optional":true}],"imports":[{"note":"Top-level import may not work; models are under nested modules","wrong":"from py_ocsf_models import DetectionFinding","symbol":"DetectionFinding","correct":"from py_ocsf_models.events.findings.detection_finding import DetectionFinding"},{"note":"Introduced in 0.5.0","wrong":null,"symbol":"ComplianceFinding","correct":"from py_ocsf_models.events.findings.compliance_finding import ComplianceFinding"}],"quickstart":{"code":"from py_ocsf_models.events.findings.detection_finding import DetectionFinding\n\nfinding = DetectionFinding(\n    metadata={'product': {'name': 'Test', 'vendor_name': 'Acme'}},\n    severity='Medium',\n    confidence='High',\n    time=1234567890,\n    type_uid=1\n)\nprint(finding.model_dump(mode='json'))","lang":"python","description":"Create a simple DetectionFinding instance and serialize to JSON."},"warnings":[{"fix":"Upgrade to >=0.8.0 and use model_validate (v2 style) instead of parse_raw (v1).","message":"Pydantic v2 migration: Prior to 0.8.0, models used Pydantic v1. If you have serialized objects with Pydantic v1, they may not deserialize correctly with v2. Use model_validate instead of parse_raw.","severity":"gotcha","affected_versions":"<0.8.0"},{"fix":"Use Python >=3.10.","message":"Python 3.9 support was removed in 0.9.0. Required Python >=3.10 now.","severity":"gotcha","affected_versions":">=0.9.0"},{"fix":"Remove product_uid from any model instantiation.","message":"The product_uid field was removed from DetectionFinding in 0.4.0. Do not rely on it.","severity":"deprecated","affected_versions":">=0.4.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use: from py_ocsf_models.events.findings.detection_finding import DetectionFinding","cause":"Incorrect import path; symbols are nested under 'events' submodule.","error":"ImportError: cannot import name 'DetectionFinding' from 'py_ocsf_models'"},{"fix":"Ensure you pass type_uid, time, metadata, severity, confidence (or adjust to match required fields). Check the model's schema.","cause":"DetectionFinding requires type_uid field (an integer). Not all OCSF fields are optional; required fields must be provided.","error":"pydantic_core._pydantic_core.ValidationError: 1 validation error for DetectionFinding\ntype_uid\n  Field required [type=missing, input_value={...}, input_type=dict]"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}