{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/financegenius-ai/json-schema/financegenius-ai-integration-in-schema.json",
  "title": "IntegrationIn",
  "x-generated": "2026-11-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/financegenius-ai-openapi.json#/components/schemas/IntegrationIn",
  "properties": {
    "environment": {
      "type": "string",
      "enum": [
        "sandbox",
        "production"
      ],
      "title": "Environment"
    },
    "profile": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{1,39}$",
      "title": "Profile"
    },
    "api_base_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "title": "Api Base Url"
    },
    "landing_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "title": "Landing Url"
    },
    "inbound_verify_refs": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 4,
      "title": "Inbound Verify Refs"
    },
    "inbound_verify_kids": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 4,
      "title": "Inbound Verify Kids"
    },
    "outbound_sign_ref": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9:/_.-]{3,300}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Outbound Sign Ref"
    },
    "outbound_sign_kid": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Outbound Sign Kid"
    },
    "inbound_decrypt_refs": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 4,
      "title": "Inbound Decrypt Refs"
    },
    "inbound_decrypt_kids": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 4,
      "title": "Inbound Decrypt Kids"
    },
    "outbound_encrypt_ref": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9:/_.-]{3,300}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Outbound Encrypt Ref"
    },
    "outbound_encrypt_kid": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Outbound Encrypt Kid"
    },
    "shared_payload_key_ref": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9:/_.-]{3,300}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Shared Payload Key Ref"
    },
    "mtls_cert_ref": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9:/_.-]{3,300}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Mtls Cert Ref"
    },
    "mtls_key_ref": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9:/_.-]{3,300}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Mtls Key Ref"
    },
    "mtls_ca_ref": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9:/_.-]{3,300}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Mtls Ca Ref"
    },
    "egress_ips": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 8,
      "title": "Egress Ips"
    },
    "kfs_hosts": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 8,
      "title": "Kfs Hosts"
    },
    "pull_interval_minutes": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 1440.0,
          "minimum": 5.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Pull Interval Minutes"
    },
    "replay_window_seconds": {
      "type": "integer",
      "maximum": 900.0,
      "minimum": 30.0,
      "title": "Replay Window Seconds",
      "default": 300
    },
    "evidence_type": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "lender_email",
            "lender_portal",
            "lender_letter",
            "mis_row",
            "lender_spec"
          ]
        },
        {
          "type": "null"
        }
      ],
      "title": "Evidence Type"
    },
    "evidence_sha256": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Evidence Sha256"
    }
  },
  "type": "object",
  "required": [
    "environment",
    "profile"
  ]
}