---
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 `clsGenerate` as the WSDL declares it. It is the page a reader uses to answer "what can this service be asked to do, and in what shape".

| Field | Value |
| --- | --- |
| **Service** | `clsGenerate` |
| **WSDL document** | `Services/SAIF.Services.Web.Proxies/Service References/Document/clsGenerate.wsdl` |
| **SOAP namespace** | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/` |
| **Port type / binding name** | `clsGenerateSoap` |
| **Binding** | SOAP 1.1 (`clsGenerateSoap`) and SOAP 1.2 (`clsGenerateSoap12`) both declared |
| **Encoding style** | Document / Literal |
| **Parameter style** | Wrapped |
| **Operations declared** | 10 |

The target namespace embeds a `localhost` URL, which is a publisher-side artifact recorded here verbatim.

## Contract source

The `Services/SAIF.Services.Web.Proxies/Service References/Document/clsGenerate.wsdl` document is the authoritative source for every operation, message, and SOAP action recorded on this page. `Reference.cs` is not used as a source, except to confirm type names, the base type, accessibility, and `ref` signatures.

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| `previewPDF` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/previewPDF` | `inPackage`, `inXML`, `inApplication` (`string`) | `base64Binary` | None declared | No |
| `previewDocument` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/previewDocument` | `inPackage`, `inXML`, `inOutputProfile`, `inApplication` (`string`) | `base64Binary` | None declared | Yes — [details](reference.md#previewdocument) |
| `distributeDocument` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/distributeDocument` | `inPackage`, `inXML`, `inPrinter` (`string`); `inMode: PlexMode`; `inCopies: short`; `inScaleMode: ScaleMode`; `inOutputProfile`, `inImportInfo` (`string`); `inEmailInfo: EmailInfoClass`; `inFaxInfo: FaxInfoClass`; `inIDMPath` (`string`); `inTray: PaperTray`; `inDeferredInfo: DeferredPrintInfoClass`; `inApplication` (`string`) | empty | None declared | Yes — [details](reference.md#distributedocument) |
| `printPDF` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/printPDF` | `inFile: base64Binary`, `inPrinter: string`, `inMode: PlexMode`, `inCopies: short`, `inScaleMode: ScaleMode` | empty | None declared | No |
| `publishDocument` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/publishDocument` | `inDocumentName`, `inOutputProfile`, `inXML`, `inApplication` (`string`) | `string`, plus echoed input parts | None declared | No |
| `previewHTML` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/previewHTML` | `inDocumentName`, `inOutputProfile`, `inXML`, `inApplication` (`string`) | `base64Binary`, plus echoed parts | None declared | No |
| `publishAndReturnDocument` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/publishAndReturnDocument` | `inDocumentName`, `inOutputProfile`, `inXML`, `inApplication` (`string`) | `base64Binary`, plus echoed parts | None declared | No |
| `documentsForCategory` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/documentsForCategory` | `inDocumentCategory`, `inApplication` (`string`) | `ArrayOfString`, plus echoed parts | None declared | Yes — [details](reference.md#documentsforcategory) |
| `outputProfilesForDocument` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/outputProfilesForDocument` | `inDocumentName`, `inApplication` (`string`) | `ArrayOfString`, plus echoed parts | None declared | No |
| `categoriesForUser` | `http://localhost:8000/wsDocuments/clsGenerate.asmx?WSDL/categoriesForUser` | `inApplication` (`string`) | `ArrayOfString`, plus echoed `inApplication` | None declared | Yes — [details](reference.md#categoriesforuser) |

Several responses echo their input parts, so the generated methods take those parameters by `ref` — this is why the wrapper calls `categoriesForUser(ref app)` and `documentsForCategory(ref category, ref app)`.

## Messages and types

| Type | Kind | Members | Used by |
| --- | --- | --- | --- |
| `PlexMode` | Enumeration | `Simplex`, `Duplex`, `DuplexHorizontal` | `distributeDocument`, `printPDF` |
| `ScaleMode` | Enumeration | `FitToPrintableArea`, `ShrinkToPrintableArea`, `None`, `Both` | `distributeDocument`, `printPDF` |
| `PaperTray` | Enumeration | `Tray1`, `Tray2`, `Tray3`, `Tray4`, `Envelope` | `distributeDocument` |
| `EmailInfoClass` | Complex type | `ToAddress`, `Subject`, `Body`, `CC`, `BCC`, `AttachmentFileName` | `distributeDocument` |
| `FaxInfoClass` | Complex type | `Attachment`, `CoverSheetNote`, `ToCompanyName`, `ToFaxNumber`, `ToName`, `ToVoiceNumber` | `distributeDocument` |
| `DeferredPrintInfoClass` | Complex type | `CreateUser`, `Database`, `DocumentDescr`, `Sort0Value` … `Sort9Value` | `distributeDocument` |
| `ArrayOfString` | Complex type | `string[]` | `documentsForCategory`, `outputProfilesForDocument`, `categoriesForUser` |

### EmailInfoClass

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `ToAddress` | `string` | Not stated in the WSDL | Recipient email address |
| `Subject` | `string` | Not stated in the WSDL | Email subject line |
| `Body` | `string` | Not stated in the WSDL | Email body |
| `CC` | `string` | Not stated in the WSDL | CC recipients |
| `BCC` | `string` | Not stated in the WSDL | BCC recipients |
| `AttachmentFileName` | `string` | Not stated in the WSDL | The attachment's file name — never set by this repository's call site, see [Tech debt](tech-debt.md) |

### FaxInfoClass

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `Attachment` | `string` | Not stated in the WSDL | Fax attachment reference |
| `CoverSheetNote` | `string` | Not stated in the WSDL | Fax cover sheet note |
| `ToCompanyName` | `string` | Not stated in the WSDL | Recipient company name |
| `ToFaxNumber` | `string` | Not stated in the WSDL | Recipient fax number |
| `ToName` | `string` | Not stated in the WSDL | Recipient name |
| `ToVoiceNumber` | `string` | Not stated in the WSDL | Recipient voice callback number |

### DeferredPrintInfoClass

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `CreateUser` | `string` | Not stated in the WSDL | The user requesting the deferred print job |
| `Database` | `string` | Not stated in the WSDL | The database context for the deferred print job |
| `DocumentDescr` | `string` | Not stated in the WSDL | The deferred print job's description |
| `Sort0Value` … `Sort9Value` | `string` | Not stated in the WSDL | Up to ten sort-key values for deferred print sequencing |

## 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 sites handle it.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTP |
| Message version | SOAP 1.1 (as configured; SOAP 1.2 is also declared) |
| 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 | No — the remote `clsGenerate` service is outside this run's scope and its live contract cannot be compared |
| Consequence of drift | A remote change to `previewDocument`, `distributeDocument`, `documentsForCategory`, or `categoriesForUser` would not be detected until a document generation or distribution call fails at runtime |

## 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)
- [Business rules](business-rules.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `**` could not be confirmed; treat as unknown
> until verified.

## Sources
- `Services/SAIF.Services.Web.Proxies/Service References/Document/clsGenerate.wsdl`
- `Services/SAIF.Services.Web.Proxies/Service References/Document/Reference.cs`
