{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://dpone.dev/schemas/schema-migration/bundle-policy.schema.json",
  "title": "dpone schema migration bundle policy",
  "type": "object",
  "required": ["schema_version", "profile"],
  "additionalProperties": false,
  "properties": {
    "schema_version": {
      "const": "dpone.schema_migration_bundle_policy.v1"
    },
    "profile": {
      "enum": ["advisory", "pr_review", "stage_certified", "prod_strict", "regulated"]
    },
    "require_attestation": {"type": "boolean"},
    "required_artifacts": {
      "type": "array",
      "minItems": 1,
      "items": {
        "enum": [
          "migration_pack",
          "impact_plan",
          "approval",
          "environment_contract",
          "certification",
          "rehearsal_certificate",
          "post_apply_certificate",
          "watch_certificate",
          "remediation_certificate",
          "backup_certificate",
          "contract_gate",
          "consumer_gate",
          "consumer_test_kit",
          "consumer_certification",
          "compatibility_view_gate",
          "contract_adoption_status",
          "contract_retirement_gate",
          "data_product_slo_gate",
          "data_product_incident_report",
          "data_product_error_budget_gate",
          "data_product_incident_lifecycle",
          "data_product_release_closeout_gate",
          "data_product_fleet_gate",
          "data_product_fleet_report",
          "data_product_reliability_export",
          "data_product_route_delivery_receipt",
          "data_product_assertion_gate",
          "data_product_assertion_report",
          "data_product_policy_gate",
          "data_product_policy_report",
          "data_product_waiver",
          "data_product_authority_gate",
          "data_product_approval_quorum",
          "data_product_evidence_signature",
          "data_product_governance_export_payload",
          "data_product_governance_publish_receipt",
          "data_product_governance_publish_verification",
          "data_product_access_gate",
          "data_product_access_report",
          "data_product_privacy_impact_assessment",
          "data_product_access_enforcement_certificate",
          "data_product_access_drift_report",
          "recovery_point",
          "recovery_chain_verification",
          "fixture_build",
          "quality_profile",
          "promotion"
        ]
      }
    },
    "require_approved_risks": {
      "enum": ["none", "impact_required"]
    },
    "fail_on_warnings": {"type": "boolean"},
    "require_trusted_provenance": {"type": "boolean"},
    "target_environment": {"type": "string", "minLength": 1},
    "approval": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "require_approved_by": {"type": "boolean"},
        "require_not_expired": {"type": "boolean"}
      }
    }
  }
}
