AmpelOracle — 50-tool compliance traffic-light: Go/Caution/Stop signals for ESG, MiCA, AML.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Detailed Ampel for a specific DORA article. Each check with GREEN/YELLOW/RED conditions and evidence.
e.g. Art. 28
Entity ID
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Detailed Ampel for a specific DORA article. Each check with GREEN/YELLOW/RED conditions and evidence.
| Argument | Type | Description |
|---|---|---|
| article | string | e.g. Art. 28 |
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"article": {
"type": "string",
"description": "e.g. Art. 28"
},
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}Re-run full assessment for an entity. Recomputes Ampel statuses from all available evidence.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}Chain-linked audit log with integrity check.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max entries |
| entity_id | string |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Max entries"
},
"entity_id": {
"type": "string"
}
},
"additionalProperties": false
}Live Azure AD integration: MFA registration %, risky users, conditional access policies. DORA Art. 9 evidence. Requires Azure AD config in integrations_config.json.
| Argument | Type | Description |
|---|---|---|
| force_refresh | boolean | Force fresh API call (default true) |
{
"type": "object",
"properties": {
"force_refresh": {
"type": "boolean",
"description": "Force fresh API call (default true)"
}
},
"additionalProperties": false
}Approve BaFin report for submission (4-eyes principle). Creates signed approval evidence.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | |
| report_id | string | |
| approver_name | string | |
| approver_role | string |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string"
},
"report_id": {
"type": "string"
},
"approver_name": {
"type": "string"
},
"approver_role": {
"type": "string"
}
},
"additionalProperties": false
}Generate ITS 2024/1772 compliant BaFin incident report draft. All mandatory fields per DORA Art. 19/20. Preview mode — requires board approval.
| Argument | Type | Description |
|---|---|---|
| title | string | |
| entity_id | string | |
| root_cause | string | |
| description | string | |
| incident_id | string | |
| remediation | string | |
| report_type | string | initial | intermediate | final |
| classification | string | major | significant | minor |
| affected_clients | string | |
| affected_services | string |
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"entity_id": {
"type": "string"
},
"root_cause": {
"type": "string"
},
"description": {
"type": "string"
},
"incident_id": {
"type": "string"
},
"remediation": {
"type": "string"
},
"report_type": {
"type": "string",
"description": "initial | intermediate | final"
},
"classification": {
"type": "string",
"description": "major | significant | minor"
},
"affected_clients": {
"type": "string"
},
"affected_services": {
"type": "string"
}
},
"additionalProperties": false
}Executive board summary: overall score, top 5 risks, overdue findings, SLA breaches, concentration risk, evidence health, owner workload. Designed for management/board reporting.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}Approve or reject a bridge resolution. On approval: creates signed evidence, upgrades Ampel to GREEN, logs to audit chain.
| Argument | Type | Description |
|---|---|---|
| reject | boolean | Set true to reject instead of approve |
| approved_by | string | Name + role of approver (e.g. Dr. Mueller, CISO) |
| resolution_id | string | Resolution ID from bridge_resolve |
| rejection_reason | string | Reason for rejection (if rejecting) |
{
"type": "object",
"properties": {
"reject": {
"type": "boolean",
"description": "Set true to reject instead of approve"
},
"approved_by": {
"type": "string",
"description": "Name + role of approver (e.g. Dr. Mueller, CISO)"
},
"resolution_id": {
"type": "string",
"description": "Resolution ID from bridge_resolve"
},
"rejection_reason": {
"type": "string",
"description": "Reason for rejection (if rejecting)"
}
},
"additionalProperties": false
}Bridge gap analysis: classifies gaps by DATA/EVIDENCE/POLICY/WORKFLOW with closure path, owner, effort level.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}Start bridge resolution workflow. Generates templates (Risk Acceptance, Contract Renegotiation, Concentration Policy, Exit Strategy), tracks approval process. Call bridge_approve to sign off.
| Argument | Type | Description |
|---|---|---|
| check_id | string | Check to resolve: art30_c1, art30_c2, art30_c3, art8_c3, art31_c1 |
| entity_id | string | Entity ID (optional) |
| expiry_days | integer | Days until resolution expires (default 30) |
{
"type": "object",
"properties": {
"check_id": {
"type": "string",
"description": "Check to resolve: art30_c1, art30_c2, art30_c3, art8_c3, art31_c1"
},
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
},
"expiry_days": {
"type": "integer",
"description": "Days until resolution expires (default 30)"
}
},
"additionalProperties": false
}Check status of all bridge resolution workflows for an entity. Shows open, pending, closed, rejected.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}Oracle Event Bus status: events, cross-refs, connected oracles.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID for cross-refs |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID for cross-refs"
}
},
"additionalProperties": false
}Check DORA Art. 30 contract clauses for a provider. Returns PASS/WARN/BLOCK with missing clauses and bridge classification.
| Argument | Type | Description |
|---|---|---|
| is_cif | boolean | Is this a CIF (Critical/Important Function) provider? |
| entity_id | string | |
| cif_clauses | array | CIF clauses if applicable |
| provider_id | string | Provider ID |
| exit_strategy | boolean | Exit strategy documented? |
| standard_clauses | array | Present standard clauses: service_description, data_location, data_protection, service_availability_sla, incident_notification, audit_right, termination_notice, cooperation_with_authorities |
{
"type": "object",
"properties": {
"is_cif": {
"type": "boolean",
"description": "Is this a CIF (Critical/Important Function) provider?"
},
"entity_id": {
"type": "string"
},
"cif_clauses": {
"type": "array",
"items": {
"type": "string"
},
"description": "CIF clauses if applicable"
},
"provider_id": {
"type": "string",
"description": "Provider ID"
},
"exit_strategy": {
"type": "boolean",
"description": "Exit strategy documented?"
},
"standard_clauses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Present standard clauses: service_description, data_location, data_protection, service_availability_sla, incident_notification, audit_right, termination_notice, cooperation_with_authorities"
}
},
"additionalProperties": false
}Collect live Art. 10 evidence from NVD, CISA KEV, CERT-Bund. Auto-assesses.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}Analyze contract against 15 DORA Art. 30 mandatory clauses. Returns compliance status per clause with confidence score, extracted text, gap reasoning, suggested fix.
| Argument | Type | Description |
|---|---|---|
| document_id | string | Document ID from contract_upload |
{
"type": "object",
"properties": {
"document_id": {
"type": "string",
"description": "Document ID from contract_upload"
}
},
"additionalProperties": false
}Overview of all analyzed contracts per entity. Shows clause gaps, review status, document versions.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}Upload contract text for DORA Art. 30 analysis. Creates document record with SHA-256 hash, version tracking, audit trail.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
| file_name | string | Original file name |
| contract_text | string | Contract text (extracted from PDF) |
| document_type | string | ict_outsourcing_agreement | dpa | sla | master_service_agreement |
| provider_name | string | Provider name |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
},
"file_name": {
"type": "string",
"description": "Original file name"
},
"contract_text": {
"type": "string",
"description": "Contract text (extracted from PDF)"
},
"document_type": {
"type": "string",
"description": "ict_outsourcing_agreement | dpa | sla | master_service_agreement"
},
"provider_name": {
"type": "string",
"description": "Provider name"
}
},
"additionalProperties": false
}Register a new regulated entity.
| Argument | Type | Description |
|---|---|---|
| lei | string | |
| name | string | Entity name |
| entity_type | string | Type |
| jurisdiction | string |
{
"type": "object",
"properties": {
"lei": {
"type": "string"
},
"name": {
"type": "string",
"description": "Entity name"
},
"entity_type": {
"type": "string",
"description": "Type"
},
"jurisdiction": {
"type": "string"
}
},
"additionalProperties": false
}Create temporary trial entity (48h) for self-service DORA assessment. No login needed.
| Argument | Type | Description |
|---|---|---|
| providers | string | Comma-separated provider names: AWS,SWIFT,Finastra |
| entity_name | string | Institute name |
| entity_type | string | credit_institution|payment_institution|insurance_undertaking|asset_management|credit_institution_casp |
| jurisdiction | string | DE|AT|FR|etc |
{
"type": "object",
"properties": {
"providers": {
"enum": [
"AWS",
"SWIFT"
],
"type": "string",
"description": "Comma-separated provider names: AWS,SWIFT,Finastra"
},
"entity_name": {
"type": "string",
"description": "Institute name"
},
"entity_type": {
"type": "string",
"description": "credit_institution|payment_institution|insurance_undertaking|asset_management|credit_institution_casp"
},
"jurisdiction": {
"type": "string",
"description": "DE|AT|FR|etc"
}
},
"additionalProperties": false
}Enterprise cross-oracle assessment. Runs 18 checks across CyberShield (NIS2/ISO 27001), SupplyChainOracle (LkSG/CSRD), HealthGuard (MDR/GDPR), CFOCoPilot (XRechnung), TaxOracle (DAC6), LegalTechOracle (DORA contracts). Auto-stores evidence and updates Ampel status.
| Argument | Type | Description |
|---|---|---|
| checks | string | Comma-separated check IDs or omit for all |
| entity_id | string | Entity to assess |
{
"type": "object",
"properties": {
"checks": {
"type": "string",
"description": "Comma-separated check IDs or omit for all"
},
"entity_id": {
"type": "string",
"description": "Entity to assess"
}
},
"additionalProperties": false
}Tag findings with cross-regulation impact (DORA + MiCA + AMLR). Shows which DORA findings also affect MiCA insider info or AMLR screening.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}Map CVE/vulnerability to internal ICT providers and systems. Auto-creates findings for critical matches. DORA Art. 10.
| Argument | Type | Description |
|---|---|---|
| cve_id | string | CVE identifier |
| vendor | string | Vendor/software name to check |
| entity_id | string |
{
"type": "object",
"properties": {
"cve_id": {
"type": "string",
"description": "CVE identifier"
},
"vendor": {
"type": "string",
"description": "Vendor/software name to check"
},
"entity_id": {
"type": "string"
}
},
"additionalProperties": false
}Full provider dependency graph: providers, systems, checks, blast radius, SPOF detection.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}List all registered regulated entities.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get findings, SLA breaches, escalation status per entity.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (empty=all) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (empty=all)"
}
},
"additionalProperties": false
}Export evidence pack for article/check/entity. Pruefer-ready: evidence, assessments, findings, audit trail, signatures.
| Argument | Type | Description |
|---|---|---|
| article | string | DORA article e.g. Art. 10 |
| check_id | string | Specific check ID |
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"article": {
"type": "string",
"description": "DORA article e.g. Art. 10"
},
"check_id": {
"type": "string",
"description": "Specific check ID"
},
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}All evidence artefacts for an entity with hashes and expiry dates.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}Run freshness watchdog. Expires stale evidence, downgrades GREEN->YELLOW->GREY if evidence too old.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional, checks all) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional, checks all)"
}
},
"additionalProperties": false
}DORA compliance gaps. RED/GREY/YELLOW items with priority and required actions.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}Generate data-driven DORA Ampel PDF report. Score, gap analysis, provider register, audit trail integrity.
| Argument | Type | Description |
|---|---|---|
| format | string | json (meta) or pdf (download) |
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"format": {
"type": "string",
"default": "json",
"description": "json (meta) or pdf (download)"
},
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}Generate watermarked trial report with score, gaps, and CTA.
| Argument | Type | Description |
|---|---|---|
| trial_id | string | |
| entity_id | string |
{
"type": "object",
"properties": {
"trial_id": {
"type": "string"
},
"entity_id": {
"type": "string"
}
},
"additionalProperties": false
}Server + DB status.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}DORA incident lifecycle: log, classify, notify (BaFin), close. Each step creates signed evidence.
| Argument | Type | Description |
|---|---|---|
| title | string | |
| action | string | log | classify | notify | close |
| severity | string | |
| entity_id | string | Entity ID |
| root_cause | string | |
| description | string | |
| incident_id | string | |
| report_type | string | |
| classification | string | |
| lessons_learned | string |
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"action": {
"type": "string",
"description": "log | classify | notify | close"
},
"severity": {
"type": "string"
},
"entity_id": {
"type": "string",
"description": "Entity ID"
},
"root_cause": {
"type": "string"
},
"description": {
"type": "string"
},
"incident_id": {
"type": "string"
},
"report_type": {
"type": "string"
},
"classification": {
"type": "string"
},
"lessons_learned": {
"type": "string"
}
},
"additionalProperties": false
}LLM-based DORA Art. 30 contract analysis. Paste contract text, get clause-by-clause PRESENT/PARTIAL/MISSING for all 15 mandatory clauses. Uses Claude API.
| Argument | Type | Description |
|---|---|---|
| contract_text | string | Contract text (plain text from PDF). Paste key sections. |
| provider_name | string | Provider name e.g. Salesforce |
{
"type": "object",
"properties": {
"contract_text": {
"type": "string",
"description": "Contract text (plain text from PDF). Paste key sections."
},
"provider_name": {
"type": "string",
"description": "Provider name e.g. Salesforce"
}
},
"additionalProperties": false
}Full entity onboarding: creates initial RED assessments for all 39 checks, collects auto-evidence from live sources, re-assesses, and returns readiness score.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID to onboard |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID to onboard"
}
},
"additionalProperties": false
}Quick connectivity test.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Generate DORA policy/framework document draft for a specific article. 8 templates available (Art. 5,6,8,10,11,17,28,30). Uses entity data for customization.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | |
| dora_article | string | dora_art5|dora_art6|dora_art8|dora_art10|dora_art11|dora_art17|dora_art28|dora_art30 |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string"
},
"dora_article": {
"type": "string",
"description": "dora_art5|dora_art6|dora_art8|dora_art10|dora_art11|dora_art17|dora_art28|dora_art30"
}
},
"additionalProperties": false
}Enrich provider dependencies with OECD economic risk: GDP, unemployment, CLI per provider country. DORA Art. 28-31 relevant.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}Full DORA readiness score + Ampel per article. Returns GREEN/YELLOW/RED/GREY for all 26 articles, score 0-100, days until deadline.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID (optional) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID (optional)"
}
},
"additionalProperties": false
}AI Regulatory Watchdog: scrapes EBA/ESMA/BaFin/CERT-Bund for DORA updates. Returns alerts with affected articles and severity. Run daily via cron or on-demand.
| Argument | Type | Description |
|---|---|---|
| days_back | integer | Check items from last N days (default: 7) |
{
"type": "object",
"properties": {
"days_back": {
"type": "integer",
"description": "Check items from last N days (default: 7)"
}
},
"additionalProperties": false
}Register an ICT third-party provider for DORA Art. 28 Register of Information. Stores provider data and creates evidence.
| Argument | Type | Description |
|---|---|---|
| lei | string | Legal Entity Identifier |
| services | string | Services provided |
| entity_id | string | |
| criticality | string | critical, important, standard |
| contract_end | string | |
| headquarters | string | Country e.g. Luxembourg, Germany |
| data_location | string | Where data is stored e.g. EU (Frankfurt) |
| provider_name | string | Provider name e.g. Amazon Web Services EMEA SARL |
| provider_type | string | cloud_infrastructure, saas_application, core_banking, cybersecurity, etc. |
| certifications | string | |
Show cross-regulation impacts for a specific DORA article. Maps DORA → MiCA + AMLR.
| Argument | Type | Description |
|---|---|---|
| dora_article | string | DORA article ID (e.g. dora_art28) |
{
"type": "object",
"properties": {
"dora_article": {
"type": "string",
"description": "DORA article ID (e.g. dora_art28)"
}
},
"additionalProperties": false
}Re-test a finding: collect fresh evidence, reassess check, auto-close if GREEN. Full closed-loop.
| Argument | Type | Description |
|---|---|---|
| finding_id | string | Finding ID to re-test |
{
"type": "object",
"properties": {
"finding_id": {
"type": "string",
"description": "Finding ID to re-test"
}
},
"additionalProperties": false
}Trigger escalation engine: auto-create findings, check SLA, escalate.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Run complete DORA+MiCA assessment for trial entity. Returns score, gaps, automation potential.
| Argument | Type | Description |
|---|---|---|
| trial_id | string | |
| entity_id | string |
{
"type": "object",
"properties": {
"trial_id": {
"type": "string"
},
"entity_id": {
"type": "string"
}
},
"additionalProperties": false
}Score trend over time: weekly deltas, trajectory, peer benchmark. Shows improvement or decline.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}ServiceNow incident + change management sync. DORA Art. 17/21 evidence. Returns 30-day incident stats, classification, resolution rates.
| Argument | Type | Description |
|---|---|---|
| days_back | integer | Days to look back (default 30) |
{
"type": "object",
"properties": {
"days_back": {
"type": "integer",
"description": "Days to look back (default 30)"
}
},
"additionalProperties": false
}Update finding lifecycle: claim, set remediation plan, request re-test, close, or accept risk. Status flow: open -> in_progress -> retest_pending -> closed | risk_accepted.
| Argument | Type | Description |
|---|---|---|
| actor | string | Who is performing this action |
| owner | string | New owner (for claim) |
| action | string | claim | plan | request_retest | close | accept_risk |
| reason | string | Close reason (for close) |
| finding_id | string | Finding ID |
| accepted_by | string | Name (for accept_risk) |
| expiry_days | integer | Risk acceptance expiry days (default 90) |
| remediation_plan | string | Remediation plan text (for plan) |
{
"type": "object",
"properties": {
"actor": {
"type": "string",
"description": "Who is performing this action"
},
"owner": {
"type": "string",
"description": "New owner (for claim)"
},
"action": {
"type": "string",
"description": "claim | plan | request_retest | close | accept_risk"
},
"reason": {
"type": "string",
"description": "Close reason (for close)"
},
"finding_id": {
"type": "string",
"description": "Finding ID"
},
"accepted_by": {
"type": "string",
"description": "Name (for accept_risk)"
},
"expiry_days": {
"type": "integer",
"description": "Risk acceptance expiry days (default 90)"
},
"remediation_plan": {
"type": "string",
"description": "Remediation plan text (for plan)"
}
},
"additionalProperties": false
}Simulate provider failure: which articles/checks are affected, score impact, risk level.
| Argument | Type | Description |
|---|---|---|
| entity_id | string | Entity ID |
| provider_name | string | Provider name (e.g. AWS, Finastra) |
{
"type": "object",
"properties": {
"entity_id": {
"type": "string",
"description": "Entity ID"
},
"provider_name": {
"type": "string",
"description": "Provider name (e.g. AWS, Finastra)"
}
},
"additionalProperties": false
}Simulate stale evidence: what happens if a check stays stale for N days.
| Argument | Type | Description |
|---|---|---|
| days | integer | Days stale (default 30) |
| check_id | string | Check ID |
| entity_id | string | Entity ID |
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"description": "Days stale (default 30)"
},
"check_id": {
"type": "string",
"description": "Check ID"
},
"entity_id": {
"type": "string",
"description": "Entity ID"
}
},
"additionalProperties": false
}| contract_start |
| string |
| annual_cost_eur | number |
| substitutability | string |
{
"type": "object",
"properties": {
"lei": {
"type": "string",
"description": "Legal Entity Identifier"
},
"services": {
"type": "string",
"description": "Services provided"
},
"entity_id": {
"type": "string"
},
"criticality": {
"type": "string",
"description": "critical, important, standard"
},
"contract_end": {
"type": "string"
},
"headquarters": {
"type": "string",
"description": "Country e.g. Luxembourg, Germany"
},
"data_location": {
"type": "string",
"description": "Where data is stored e.g. EU (Frankfurt)"
},
"provider_name": {
"type": "string",
"description": "Provider name e.g. Amazon Web Services EMEA SARL"
},
"provider_type": {
"type": "string",
"description": "cloud_infrastructure, saas_application, core_banking, cybersecurity, etc."
},
"certifications": {
"type": "string"
},
"contract_start": {
"type": "string"
},
"annual_cost_eur": {
"type": "number"
},
"substitutability": {
"type": "string"
}
},
"additionalProperties": false
}