Skip to content

Latest commit

 

History

History
2551 lines (1860 loc) · 34.8 KB

File metadata and controls

2551 lines (1860 loc) · 34.8 KB

Reference

Deployment

client.Deployment.LicenseStatusAsync() -> WithRawResponseTask<DeploymentLicenseStatusResponse>

🔌 Usage

await client.Deployment.LicenseStatusAsync();

Doc

client.Doc.HeadAsync(HeadDocRequest { ... }) -> WithRawResponseTask<DocHead200Response>

🔌 Usage

await client.Doc.HeadAsync(new HeadDocRequest { DocId = "docId" });

⚙️ Parameters

request: HeadDocRequest

client.Doc.DownloadAsync(DownloadDocRequest { ... }) -> WithRawResponseTask<Stream>

🔌 Usage

await client.Doc.DownloadAsync(new DownloadDocRequest { DocId = "docId", LayerName = "layerName" });

⚙️ Parameters

request: DownloadDocRequest

client.Doc.ManifestAsync(ManifestDocRequest { ... }) -> WithRawResponseTask<DocManifest200Response>

🔌 Usage

await client.Doc.ManifestAsync(new ManifestDocRequest { DocId = "docId", LayerName = "layerName" });

⚙️ Parameters

request: ManifestDocRequest

client.Doc.RenderAsync(RenderDocRequest { ... }) -> WithRawResponseTask<Stream>

📝 Description

Render parameters (viewport, format) pass as flat dotted query keys, e.g. ?viewport.kind=width&viewport.width=800; the full grammar is documented with the viewer.

🔌 Usage

await client.Doc.RenderAsync(
    new RenderDocRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
    }
);

⚙️ Parameters

request: RenderDocRequest

client.Doc.TextAsync(TextDocRequest { ... }) -> WithRawResponseTask<DocText200Response>

🔌 Usage

await client.Doc.TextAsync(
    new TextDocRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
    }
);

⚙️ Parameters

request: TextDocRequest

Shares

client.Shares.ExchangeAsync(SharesExchangeRequest { ... }) -> WithRawResponseTask<SharesExchange200Response>

📝 Description

Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode).

🔌 Usage

await client.Shares.ExchangeAsync(new SharesExchangeRequest { ShareToken = "shareToken" });

⚙️ Parameters

request: SharesExchangeRequest

client.Shares.ListAsync(ListSharesRequest { ... }) -> WithRawResponseTask<SharesList200Response>

🔌 Usage

await client.Shares.ListAsync(new ListSharesRequest { TenantId = "tenantId" });

⚙️ Parameters

request: ListSharesRequest

client.Shares.CreateAsync(SharesCreateRequest { ... }) -> WithRawResponseTask<SharesCreate200Response>

📝 Description

The returned share id IS the public share token. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does.

🔌 Usage

await client.Shares.CreateAsync(
    new SharesCreateRequest
    {
        TenantId = "tenantId",
        DocId = "docId",
        Scope = new List<string>() { "scope" },
    }
);

⚙️ Parameters

request: SharesCreateRequest

client.Shares.GetAsync(GetSharesRequest { ... }) -> WithRawResponseTask<SharesGet200Response>

🔌 Usage

await client.Shares.GetAsync(new GetSharesRequest { TenantId = "tenantId", ShareId = "shareId" });

⚙️ Parameters

request: GetSharesRequest

client.Shares.DeleteAsync(DeleteSharesRequest { ... }) -> WithRawResponseTask

🔌 Usage

await client.Shares.DeleteAsync(
    new DeleteSharesRequest { TenantId = "tenantId", ShareId = "shareId" }
);

⚙️ Parameters

request: DeleteSharesRequest

client.Shares.UpdateAsync(SharesUpdateRequest { ... }) -> WithRawResponseTask<SharesUpdate200Response>

🔌 Usage

await client.Shares.UpdateAsync(
    new SharesUpdateRequest { TenantId = "tenantId", ShareId = "shareId" }
);

⚙️ Parameters

request: SharesUpdateRequest

Tenants

client.Tenants.ListAsync(ListTenantsRequest { ... }) -> WithRawResponseTask<TenantsList200Response>

🔌 Usage

await client.Tenants.ListAsync(new ListTenantsRequest());

⚙️ Parameters

request: ListTenantsRequest

client.Tenants.CreateAsync(TenantsCreateRequest { ... }) -> WithRawResponseTask<TenantsCreate200Response>

🔌 Usage

await client.Tenants.CreateAsync(new TenantsCreateRequest { Id = "id" });

⚙️ Parameters

request: TenantsCreateRequest

client.Tenants.GetAsync(GetTenantsRequest { ... }) -> WithRawResponseTask<TenantsGet200Response>

🔌 Usage

await client.Tenants.GetAsync(new GetTenantsRequest { TenantId = "tenantId" });

⚙️ Parameters

request: GetTenantsRequest

client.Tenants.DeleteAsync(DeleteTenantsRequest { ... }) -> WithRawResponseTask

📝 Description

Destroys the tenant and everything in its namespace — documents, layers, stored bytes, audit history. Irreversible.

🔌 Usage

await client.Tenants.DeleteAsync(new DeleteTenantsRequest { TenantId = "tenantId" });

⚙️ Parameters

request: DeleteTenantsRequest

client.Tenants.ResumeAsync(ResumeTenantsRequest { ... }) -> WithRawResponseTask

🔌 Usage

await client.Tenants.ResumeAsync(new ResumeTenantsRequest { TenantId = "tenantId" });

⚙️ Parameters

request: ResumeTenantsRequest

client.Tenants.SuspendAsync(TenantsSuspendRequest { ... }) -> WithRawResponseTask

📝 Description

Instantly reversible with resume. The API token is exempt, so a suspended tenant can still be inspected, exported, resumed, or deleted.

🔌 Usage

await client.Tenants.SuspendAsync(new TenantsSuspendRequest { TenantId = "tenantId" });

⚙️ Parameters

request: TenantsSuspendRequest

client.Tenants.UsageAsync(UsageTenantsRequest { ... }) -> WithRawResponseTask<TenantsUsage200Response>

📝 Description

Facts only — no limits or billing state. Views count share exchanges plus authorized /v1/access grants, deduplicated across the two.

🔌 Usage

await client.Tenants.UsageAsync(new UsageTenantsRequest { TenantId = "tenantId" });

⚙️ Parameters

request: UsageTenantsRequest

Documents

client.Documents.ListAsync(ListDocumentsRequest { ... }) -> WithRawResponseTask<DocumentsList200Response>

🔌 Usage

await client.Documents.ListAsync(new ListDocumentsRequest { TenantId = "tenantId" });

⚙️ Parameters

request: ListDocumentsRequest

client.Documents.GetAsync(GetDocumentsRequest { ... }) -> WithRawResponseTask<DocumentsGet200Response>

🔌 Usage

await client.Documents.GetAsync(new GetDocumentsRequest { TenantId = "tenantId", Id = "id" });

⚙️ Parameters

request: GetDocumentsRequest

client.Documents.DeleteAsync(DeleteDocumentsRequest { ... }) -> WithRawResponseTask

🔌 Usage

await client.Documents.DeleteAsync(new DeleteDocumentsRequest { TenantId = "tenantId", Id = "id" });

⚙️ Parameters

request: DeleteDocumentsRequest

client.Documents.CommitAsync(DocumentsCommitRequest { ... }) -> WithRawResponseTask<DocumentsCommit200Response>

🔌 Usage

await client.Documents.CommitAsync(
    new DocumentsCommitRequest
    {
        TenantId = "tenantId",
        Id = "id",
        Sha256 = "sha256",
    }
);

⚙️ Parameters

request: DocumentsCommitRequest

client.Documents.DownloadAsync(DownloadDocumentsRequest { ... }) -> WithRawResponseTask<Stream>

🔌 Usage

await client.Documents.DownloadAsync(
    new DownloadDocumentsRequest { TenantId = "tenantId", Id = "id" }
);

⚙️ Parameters

request: DownloadDocumentsRequest

client.Documents.ThumbnailAsync(ThumbnailDocumentsRequest { ... }) -> WithRawResponseTask<Stream>

🔌 Usage

await client.Documents.ThumbnailAsync(
    new ThumbnailDocumentsRequest { TenantId = "tenantId", Id = "id" }
);

⚙️ Parameters

request: ThumbnailDocumentsRequest

client.Documents.UploadProxyAsync(UploadProxyDocumentsRequest { ... }) -> WithRawResponseTask<DocumentsUploadProxy200Response>

📝 Description

This bounded origin-mediated fallback must only be used after documents.init returns upload.kind=proxy. Auto mode prefers a presigned object-store PUT whenever available.

🔌 Usage

await client.Documents.UploadProxyAsync(
    new UploadProxyDocumentsRequest { TenantId = "tenantId", Id = "id" }
);

⚙️ Parameters

request: UploadProxyDocumentsRequest

client.Documents.ImportFromAsync(DocumentsImportFromRequest { ... }) -> WithRawResponseTask<DocumentsImportFrom200Response>

📝 Description

Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id).

🔌 Usage

await client.Documents.ImportFromAsync(
    new DocumentsImportFromRequest
    {
        TenantId = "tenantId",
        Source = new DocumentsImportFromRequestSource(
            new DocumentsImportFromRequestSource.Url(
                new DocumentsImportFromRequestSourceUrl { Url = "url" }
            )
        ),
    }
);

⚙️ Parameters

request: DocumentsImportFromRequest

client.Documents.InitAsync(DocumentsInitRequest { ... }) -> WithRawResponseTask<DocumentsInit200Response>

🔌 Usage

await client.Documents.InitAsync(
    new DocumentsInitRequest
    {
        TenantId = "tenantId",
        ContentLength = 1.1,
        ContentSha256 = "contentSha256",
    }
);

⚙️ Parameters

request: DocumentsInitRequest

Tokens

client.Tokens.IssueAsync(IssueTokensRequest { ... }) -> WithRawResponseTask<TokensIssue200Response>

📝 Description

kind "tenant" requires the API token — authority mints only downward. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key.

🔌 Usage

await client.Tokens.IssueAsync(
    new IssueTokensRequest
    {
        TenantId = "tenantId",
        Body = new TokensIssueRequest(
            new TokensIssueRequest.Doc(
                new TokensIssueRequestDoc
                {
                    Sub = "sub",
                    DocId = "docId",
                    Scope = new List<string>() { "scope" },
                    ExpiresIn = 1,
                }
            )
        ),
    }
);

⚙️ Parameters

request: IssueTokensRequest

client.Tokens.RevokeAsync(TokensRevokeRequest { ... }) -> WithRawResponseTask

📝 Description

Mounted only when the deployment enables token revocation.

🔌 Usage

await client.Tokens.RevokeAsync(new TokensRevokeRequest { TenantId = "tenantId", Jti = "jti" });

⚙️ Parameters

request: TokensRevokeRequest

Doc Annotations

client.Doc.Annotations.ListAllAsync(ListAllAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsListAll200Response>

📝 Description

Returns one entry per page plus the audit-log cursor for reconciling subsequent document events. Page order is unspecified; join by pageState.pageObjectNumber when display order matters.

🔌 Usage

await client.Doc.Annotations.ListAllAsync(
    new ListAllAnnotationsRequest { DocId = "docId", LayerName = "layerName" }
);

⚙️ Parameters

request: ListAllAnnotationsRequest

client.Doc.Annotations.ListAsync(ListAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsList200Response>

🔌 Usage

await client.Doc.Annotations.ListAsync(
    new ListAnnotationsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
    }
);

⚙️ Parameters

request: ListAnnotationsRequest

client.Doc.Annotations.CreateAsync(CreateAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsCreate200Response>

📝 Description

Doc JWTs may instead carry collab scopes (annotations:create:self, …) that refine per-annotation authorship rules; the API token is exempt from both.

🔌 Usage

await client.Doc.Annotations.CreateAsync(
    new CreateAnnotationsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: CreateAnnotationsRequest

client.Doc.Annotations.DeleteAsync(DeleteAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsDelete200Response>

🔌 Usage

await client.Doc.Annotations.DeleteAsync(
    new DeleteAnnotationsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
        AnnotKey = "annotKey",
    }
);

⚙️ Parameters

request: DeleteAnnotationsRequest

client.Doc.Annotations.UpdateAsync(UpdateAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsUpdate200Response>

🔌 Usage

await client.Doc.Annotations.UpdateAsync(
    new UpdateAnnotationsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
        AnnotKey = "annotKey",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: UpdateAnnotationsRequest

client.Doc.Annotations.ExportAppearanceAsync(ExportAppearanceAnnotationsRequest { ... }) -> WithRawResponseTask<Stream>

🔌 Usage

await client.Doc.Annotations.ExportAppearanceAsync(
    new ExportAppearanceAnnotationsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
        Body = new Dictionary<string, object?>()
        {
            {
                "string",
                new Dictionary<object, object?>() { { "key", "value" } }
            },
        },
    }
);

⚙️ Parameters

request: ExportAppearanceAnnotationsRequest

client.Doc.Annotations.FlattenAsync(FlattenAnnotationsRequest { ... }) -> WithRawResponseTask<DocAnnotationsFlatten200Response>

🔌 Usage

await client.Doc.Annotations.FlattenAsync(
    new FlattenAnnotationsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Pon = 1,
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: FlattenAnnotationsRequest

Doc Forms

client.Doc.Forms.GetAsync(GetFormsRequest { ... }) -> WithRawResponseTask<DocFormsGet200Response>

🔌 Usage

await client.Doc.Forms.GetAsync(new GetFormsRequest { DocId = "docId", LayerName = "layerName" });

⚙️ Parameters

request: GetFormsRequest

client.Doc.Forms.ExportDataAsync(ExportDataFormsRequest { ... }) -> WithRawResponseTask<Stream>

🔌 Usage

await client.Doc.Forms.ExportDataAsync(
    new ExportDataFormsRequest { DocId = "docId", LayerName = "layerName" }
);

⚙️ Parameters

request: ExportDataFormsRequest

client.Doc.Forms.ImportDataAsync(ImportDataFormsRequest { ... }) -> WithRawResponseTask<DocFormsImportData200Response>

🔌 Usage

await client.Doc.Forms.ImportDataAsync(
    new ImportDataFormsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: ImportDataFormsRequest

client.Doc.Forms.ResetAsync(ResetFormsRequest { ... }) -> WithRawResponseTask<DocFormsReset200Response>

🔌 Usage

await client.Doc.Forms.ResetAsync(
    new ResetFormsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        FieldKey = "fieldKey",
    }
);

⚙️ Parameters

request: ResetFormsRequest

client.Doc.Forms.SetValueAsync(SetValueFormsRequest { ... }) -> WithRawResponseTask<DocFormsSetValue200Response>

🔌 Usage

await client.Doc.Forms.SetValueAsync(
    new SetValueFormsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        FieldKey = "fieldKey",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: SetValueFormsRequest

Doc Metadata

client.Doc.Metadata.GetAsync(GetMetadataRequest { ... }) -> WithRawResponseTask<DocMetadataGet200Response>

🔌 Usage

await client.Doc.Metadata.GetAsync(
    new GetMetadataRequest { DocId = "docId", LayerName = "layerName" }
);

⚙️ Parameters

request: GetMetadataRequest

Doc Pages

client.Doc.Pages.DeleteAsync(DeletePagesRequest { ... }) -> WithRawResponseTask<DocPagesDelete200Response>

🔌 Usage

await client.Doc.Pages.DeleteAsync(
    new DeletePagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: DeletePagesRequest

client.Doc.Pages.ExtractAsync(ExtractPagesRequest { ... }) -> WithRawResponseTask<Stream>

📝 Description

A read, not a mutation: the source document is untouched and no event is published. Body is {"pageObjectNumbers": number[]}; the response body is the new PDF.

🔌 Usage

await client.Doc.Pages.ExtractAsync(
    new ExtractPagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>()
        {
            {
                "string",
                new Dictionary<object, object?>() { { "key", "value" } }
            },
        },
    }
);

⚙️ Parameters

request: ExtractPagesRequest

client.Doc.Pages.FlattenAsync(FlattenPagesRequest { ... }) -> WithRawResponseTask<DocPagesFlatten200Response>

🔌 Usage

await client.Doc.Pages.FlattenAsync(
    new FlattenPagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: FlattenPagesRequest

client.Doc.Pages.InsertAsync(InsertPagesRequest { ... }) -> WithRawResponseTask<DocPagesInsert200Response>

📝 Description

Multipart mutation envelope: a body field holding {"destIndex"?: number} (omitted → append) plus a resource:source file part carrying the standalone PDF whose pages are copied in. The inserted copies get fresh page object numbers, returned in insertion order.

🔌 Usage

await client.Doc.Pages.InsertAsync(
    new InsertPagesRequest { DocId = "docId", LayerName = "layerName" }
);

⚙️ Parameters

request: InsertPagesRequest

client.Doc.Pages.InsertBlankAsync(InsertBlankPagesRequest { ... }) -> WithRawResponseTask<DocPagesInsertBlank200Response>

📝 Description

Body is {"size": {"width", "height"}, "count"?, "destIndex"?} — size in PDF points, count in [1, 100], destIndex omitted → append.

🔌 Usage

await client.Doc.Pages.InsertBlankAsync(
    new InsertBlankPagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: InsertBlankPagesRequest

client.Doc.Pages.MoveAsync(MovePagesRequest { ... }) -> WithRawResponseTask<DocPagesMove200Response>

🔌 Usage

await client.Doc.Pages.MoveAsync(
    new MovePagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: MovePagesRequest

client.Doc.Pages.SetNameAsync(SetNamePagesRequest { ... }) -> WithRawResponseTask<DocPagesSetName200Response>

🔌 Usage

await client.Doc.Pages.SetNameAsync(
    new SetNamePagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: SetNamePagesRequest

client.Doc.Pages.RemoveNameAsync(RemoveNamePagesRequest { ... }) -> WithRawResponseTask<DocPagesRemoveName200Response>

🔌 Usage

await client.Doc.Pages.RemoveNameAsync(
    new RemoveNamePagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: RemoveNamePagesRequest

client.Doc.Pages.RotateAsync(RotatePagesRequest { ... }) -> WithRawResponseTask<DocPagesRotate200Response>

🔌 Usage

await client.Doc.Pages.RotateAsync(
    new RotatePagesRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: RotatePagesRequest

Doc Redactions

client.Doc.Redactions.ApplyAsync(ApplyRedactionsRequest { ... }) -> WithRawResponseTask<DocRedactionsApply200Response>

🔌 Usage

await client.Doc.Redactions.ApplyAsync(
    new ApplyRedactionsRequest
    {
        DocId = "docId",
        LayerName = "layerName",
        Body = new Dictionary<string, object?>() { { "key", "value" } },
    }
);

⚙️ Parameters

request: ApplyRedactionsRequest