---
title: Contract
summary: The WSDL-declared operations, message types, faults, and binding of the called service.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Contract

This page documents the contract of `WCFHost PDFService`† as `PDFService.wsdl` declares it.

## Contract source

The contract source for `PDFService` is its captured WSDL document, imported alongside the schemas that define its message types.

| Field | Value |
| --- | --- |
| **Service** | `PDFService` |
| **WSDL document** | `Services/SAIF.Services.Web.Proxies/Service References/PDFService/PDFService.wsdl` |
| **SOAP namespace** | `http://tempuri.org/` |
| **Port type / binding name** | `IPDFService` / `BasicHttpBinding_IPDFService` |
| **Binding** | SOAP 1.1 over HTTP |
| **Encoding style** | `Document` / `Literal` |
| **Parameter style** | Wrapped |
| **Operations declared** | 1 |

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| `LoadCache` | `http://tempuri.org/IPDFService/LoadCache` | `PDFCacheArgs args` (0..1, nillable) | `PDFCacheResult` (0..1, nillable) | None declared | Yes — [details](reference.md#loadcache) |

## Messages and types

| Type | Kind | Members | Used by |
| --- | --- | --- | --- |
| `PDFCacheArgs` | Complex type | `CachePriority` (int), `DataEnvironment` (string), `DataUser` (string), `IFN` (string), `ImageSeqNum` (long), `ScheduleRequest` (bool), `TowerID` (long), `WaitCacheEnabled` (bool), `WaitCacheRetryAttempts` (int), `WaitCacheRetryInterval` (int) | `LoadCache` |
| `PDFCacheResult` | Complex type | `File` (base64Binary), `Messages` (`ArrayOfstring`), `Result` (`LoadDocumentResult`) | `LoadCache` |
| `LoadDocumentResult` | Enumeration | `None`, `Success_Loaded`, `Success_Scheduled`, `Warning_NotScheduled`, `Warning_RetryTimeoutExceeded`, `Error_AccessDenied`, `Error_Processing`, `Error` | `PDFCacheResult.Result` |

### PDFCacheArgs

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `CachePriority` | int | Not stated in the WSDL | Requested cache priority; the wrapper hard-codes `10000` |
| `DataEnvironment` | string | Not stated in the WSDL | Target database environment the wrapper supplies from its own constructor argument |
| `DataUser` | string | Not stated in the WSDL | Data-user label; the wrapper hard-codes `"IMG"` |
| `IFN` | string | Not stated in the WSDL | Not set by the wrapper |
| `ImageSeqNum` | long | Not stated in the WSDL | The image sequence number to load, supplied by the caller of `PdfServiceProxy.GetImage` |
| `ScheduleRequest` | bool | Not stated in the WSDL | Not set by the wrapper |
| `TowerID` | long | Not stated in the WSDL | Not set by the wrapper |
| `WaitCacheEnabled` | bool | Not stated in the WSDL | The wrapper hard-codes `true` |
| `WaitCacheRetryAttempts` | int | Not stated in the WSDL | The wrapper passes its `maxWaitTimeInSeconds` parameter (default 10) |
| `WaitCacheRetryInterval` | int | Not stated in the WSDL | The wrapper hard-codes `1000` (milliseconds) |

### PDFCacheResult

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `File` | base64Binary | Not stated in the WSDL | The cached document image bytes; the only member the wrapper reads |
| `Messages` | `ArrayOfstring` | Not stated in the WSDL | Diagnostic messages from the remote service; ignored by the wrapper |
| `Result` | `LoadDocumentResult` | Not stated in the WSDL | In-band success/failure signal; ignored by the wrapper |

## Faults

The WSDL declares no faults. A failure reaches this repository as a generic SOAP fault surfaced by the proxy; see [Consumption](consumption.md) for how the call site handles it.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTP |
| Message version | SOAP 1.1 |
| Security mode | None declared in the WSDL — set in code, see [Architecture](architecture.md) |
| Declared message size limits | None declared in the WSDL |

## Contract drift risk

| Aspect | Finding |
| --- | --- |
| WSDL captured at | Not determined from source |
| Live service documented by this run | No |
| Verification possible | Not determined from source — the remote service is outside this run's scope |
| Consequence of drift | If the remote contract changed, the sole wrapper method (`GetImage`) could fail or silently mismap fields, but because no repository code calls the wrapper today, drift has no observable effect in this repository |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI.

## Sources
- `Services/SAIF.Services.Web.Proxies/Service References/PDFService/PDFService.wsdl`
- `Services/SAIF.Services.Web.Proxies/Service References/PDFService/PDFService.xsd`
- `Services/SAIF.Services.Web.Proxies/Service References/PDFService/PDFService2.xsd`
- `Services/SAIF.Services.Web.Proxies/Service References/PDFService/PDFService1.xsd`
- `Services/SAIF.Services.Web.Proxies/Service References/PDFService/PDFService3.xsd`
- `Services/SAIF.Services.Web.Proxies/PDFServiceProxy.cs`
