diff --git a/.fern/metadata.json b/.fern/metadata.json index 799f59f..f4d3ea9 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -7,9 +7,9 @@ "client_class_name": "CloudPDFClient", "environment_class_name": "CloudPDFEnvironment" }, - "originGitCommit": "0606e988ebff3773183ef02e0a820c36b3a25f8d", + "originGitCommit": "622018abaf6e4578d1f4d8377982c48b92c9ced3", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "3.0.0a19", + "requestedVersion": "3.0.0a20", "ciProvider": "github" } \ No newline at end of file diff --git a/README.md b/README.md index 856135d..2d5906b 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ The official Python SDK for the CloudPDF API. - [Installation](#installation) - [Reference](#reference) - [Usage](#usage) +- [Environments](#environments) - [Async Client](#async-client) - [Exception Handling](#exception-handling) - [Advanced](#advanced) @@ -39,7 +40,6 @@ from cloudpdf.doc import DocChangesRequestChangesItem client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", ) client.doc.changes( @@ -53,6 +53,19 @@ client.doc.changes( ) ``` +## Environments + +This SDK allows you to configure different environments for API requests. + +```python +from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment + +client = CloudPDFClient( + environment=CloudPDFEnvironment.SAAS, +) +``` + ## Async Client The SDK also exports an `async` client so that you can make non-blocking calls to our API. Note that if you are constructing an Async httpx client class to pass into this client, use `httpx.AsyncClient()` instead of `httpx.Client()` (e.g. for the `httpx_client` parameter of this client). @@ -65,7 +78,6 @@ from cloudpdf import AsyncCloudPDFClient client = AsyncCloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", ) diff --git a/cloudpdf-generation.json b/cloudpdf-generation.json index ff822b1..7dc68e2 100644 --- a/cloudpdf-generation.json +++ b/cloudpdf-generation.json @@ -1,12 +1,12 @@ { "language": "python", - "canonicalVersion": "3.0.0-next.19", - "sdkVersion": "3.0.0a19", + "canonicalVersion": "3.0.0-next.20", + "sdkVersion": "3.0.0a20", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "e88e02ed71f422ad08b2393abeda474e8dcf6707b6e753af74ba2f40da8e7d6b", - "gitCommit": "0606e988ebff3773183ef02e0a820c36b3a25f8d", + "openapiSha256": "47d739acb956ce8ba0c3990117e505be2e9406038d9e0cd1729608921a40b2d9", + "gitCommit": "622018abaf6e4578d1f4d8377982c48b92c9ced3", "gitCommitIsDirty": false }, "fern": { diff --git a/pyproject.toml b/pyproject.toml index 7b11b2b..fa5dd48 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ dynamic = ["version"] [tool.poetry] name = "cloudpdf" -version = "3.0.0a19" +version = "3.0.0a20" description = "The official Python SDK for the CloudPDF API." readme = "README.md" authors = ["CloudPDF "] diff --git a/reference.md b/reference.md index 8d3dcb3..7a297c7 100644 --- a/reference.md +++ b/reference.md @@ -14,10 +14,11 @@ ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.deployment.license_status() @@ -63,10 +64,11 @@ client.deployment.license_status() ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.head( @@ -143,11 +145,12 @@ Each change stands on its own and names itself by `opId`: a refused change rolls ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment from cloudpdf.doc import DocChangesRequestChangesItem client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.changes( @@ -232,10 +235,11 @@ client.doc.changes( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.download( @@ -321,10 +325,11 @@ The link opens the layer as it is when created: once the layer changes, it answe ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.download_link( @@ -404,10 +409,11 @@ client.doc.download_link( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.manifest( @@ -493,10 +499,11 @@ Render parameters (viewport, format) pass as flat dotted query keys, e.g. `?view ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.render( @@ -577,10 +584,11 @@ client.doc.render( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.text( @@ -676,10 +684,11 @@ Unauthenticated, but requires a browser Origin header, checked against the grant ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.exchange( @@ -766,10 +775,11 @@ client.grants.exchange( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.list( @@ -854,7 +864,7 @@ client.grants.list(
-The returned id is what a link page or an embed opens. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. +The returned id is what a link page or an embed opens. Its scope gives only document permissions the caller holds itself, as tokens.issue does. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does.
@@ -870,10 +880,11 @@ The returned id is what a link page or an embed opens. Mounted only when the dep ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.create( @@ -1036,10 +1047,11 @@ client.grants.create( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.get( @@ -1103,10 +1115,11 @@ client.grants.get( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.delete( @@ -1170,10 +1183,11 @@ client.grants.delete( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.update( @@ -1355,10 +1369,11 @@ Archiving is final: an archived grant never exchanges again, and to give access ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.archive( @@ -1423,10 +1438,11 @@ client.grants.archive( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tenants.list() @@ -1487,10 +1503,11 @@ client.tenants.list() ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tenants.create( @@ -1553,10 +1570,11 @@ client.tenants.create( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tenants.get( @@ -1625,10 +1643,11 @@ Destroys the tenant and everything in its namespace — documents, layers, store ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tenants.delete( @@ -1683,10 +1702,11 @@ client.tenants.delete( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tenants.resume( @@ -1755,10 +1775,11 @@ Instantly reversible with resume. The API token is exempt, so a suspended tenant ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tenants.suspend( @@ -1835,10 +1856,11 @@ Facts only — no limits or billing state. Views count grant exchanges plus auth ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tenants.usage( @@ -1902,10 +1924,11 @@ client.tenants.usage( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.list( @@ -2016,10 +2039,11 @@ client.documents.list( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.get( @@ -2083,10 +2107,11 @@ client.documents.get( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.delete( @@ -2164,10 +2189,11 @@ A document that is being deleted answers 404. ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.update( @@ -2230,6 +2256,20 @@ client.documents.update(
+#### 📝 Description + +
+
+ +
+
+ +An upload token commits only the documents it started; any other document answers 404. +
+
+
+
+ #### 🔌 Usage
@@ -2240,10 +2280,11 @@ client.documents.update( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.commit( @@ -2316,10 +2357,11 @@ client.documents.commit( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.download( @@ -2383,10 +2425,11 @@ client.documents.download( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.thumbnail( @@ -2448,7 +2491,7 @@ client.documents.thumbnail(
-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. +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. An upload token sends files only to the documents it started.
@@ -2464,10 +2507,11 @@ This bounded origin-mediated fallback must only be used after documents.init ret ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.upload_proxy( @@ -2554,11 +2598,12 @@ Default mode is synchronous and bounded: the response returns only after the tra ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment from cloudpdf.documents import DocumentsImportFromRequestSource_Url client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.import_from( @@ -2678,6 +2723,20 @@ client.documents.import_from(
+#### 📝 Description + +
+
+ +
+
+ +With an upload token, the document goes into the token's folder with the token's metadata, whatever the request says; contentLength must be within the token's maxBytes, and the token makes at most maxFiles documents (403 after). docId, idempotencyKey and dedupMode reuse-existing are refused (400): each could reach a document the token didn't make. +
+
+
+
+ #### 🔌 Usage
@@ -2688,10 +2747,11 @@ client.documents.import_from( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.init( @@ -2829,10 +2889,11 @@ client.documents.init( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.folders.list( @@ -2925,10 +2986,11 @@ client.folders.list( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.folders.create( @@ -3000,10 +3062,11 @@ client.folders.create( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.folders.get( @@ -3081,10 +3144,11 @@ Without recursive, a folder with anything inside is refused: 409 Conflict with ` ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.folders.delete( @@ -3170,10 +3234,11 @@ client.folders.delete( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.folders.update( @@ -3260,10 +3325,11 @@ Up to 1,000 ids in total. A folder moves with everything in it. 404 NotFound nam ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.folders.move_into( @@ -3342,7 +3408,7 @@ client.folders.move_into(
-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. +Authority mints only downward: kind "doc" gives only document permissions the caller holds itself, kind "tenant" requires the API token, and kind "upload" requires docs.create instead of tokens.issue-doc, since an upload token can do only what docs.create allows. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key.
@@ -3358,10 +3424,11 @@ kind "tenant" requires the API token — authority mints only downward. Mounted ```python from cloudpdf import CloudPDFClient, TokensIssueRequest_Doc +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tokens.issue( @@ -3446,10 +3513,11 @@ Mounted only when the deployment enables token revocation. ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.tokens.revoke( @@ -3544,10 +3612,11 @@ Returns one entry per page plus the audit-log cursor for reconciling subsequent ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.list_all( @@ -3619,10 +3688,11 @@ client.doc.annotations.list_all( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.list( @@ -3717,10 +3787,11 @@ Doc JWTs may instead carry collab scopes (annotations:create:self, …) that ref ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.create( @@ -3820,10 +3891,11 @@ client.doc.annotations.create( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.delete( @@ -3921,10 +3993,11 @@ client.doc.annotations.delete( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.update( @@ -4033,10 +4106,11 @@ client.doc.annotations.update( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.read_appearance( @@ -4140,10 +4214,11 @@ A file that decodes past the server's limit is refused (PayloadTooLarge). ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.read_file( @@ -4233,10 +4308,11 @@ client.doc.annotations.read_file( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.export_appearance( @@ -4328,10 +4404,11 @@ client.doc.annotations.export_appearance( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.flatten( @@ -4431,10 +4508,11 @@ client.doc.annotations.flatten( ```python from cloudpdf import CloudPDFClient, AnnotationRef_ObjectNumber, PageRef +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.annotations.reorder( @@ -4564,10 +4642,11 @@ A file that decodes past the server's limit is refused (PayloadTooLarge). ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.attachments.download( @@ -4662,10 +4741,11 @@ A file-attachment annotation's file is listed with the annotation; read its byte ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.attachments.list( @@ -4719,6 +4799,172 @@ client.doc.attachments.list(
+ +
+ + +## Doc Fonts +
client.doc.fonts.list(...) -> DocFontsList200Response +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment + +client = CloudPDFClient( + token="", + environment=CloudPDFEnvironment.SAAS, +) + +client.doc.fonts.list( + doc_id="docId", + layer_name="layerName", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**doc_id:** `str` + +
+
+ +
+
+ +**layer_name:** `str` + +
+
+ +
+
+ +**document_password:** `typing.Optional[str]` — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.doc.fonts.resolve(...) -> DocFontsResolve200Response +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from cloudpdf import CloudPDFClient, FontResolveRun +from cloudpdf.environment import CloudPDFEnvironment + +client = CloudPDFClient( + token="", + environment=CloudPDFEnvironment.SAAS, +) + +client.doc.fonts.resolve( + doc_id="docId", + layer_name="layerName", + runs=[ + FontResolveRun( + text="text", + ) + ], +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**doc_id:** `str` + +
+
+ +
+
+ +**layer_name:** `str` + +
+
+ +
+
+ +**request:** `DocFontsResolveRequest` + +
+
+ +
+
+ +**document_password:** `typing.Optional[str]` — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ +
@@ -4738,10 +4984,11 @@ client.doc.attachments.list( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.forms.list( @@ -4813,10 +5060,11 @@ client.doc.forms.list( ```python from cloudpdf import CloudPDFClient, FormFieldRef_ObjectNumber +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.forms.reorder_calculations( @@ -4918,10 +5166,11 @@ client.doc.forms.reorder_calculations( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.forms.set_value( @@ -5021,10 +5270,11 @@ client.doc.forms.set_value( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.forms.reset( @@ -5112,10 +5362,11 @@ client.doc.forms.reset( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.forms.delete_widget( @@ -5213,10 +5464,11 @@ client.doc.forms.delete_widget( ```python from cloudpdf import CloudPDFClient, WidgetPatch +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.forms.update_widget( @@ -5323,10 +5575,11 @@ client.doc.forms.update_widget( ```python from cloudpdf import CloudPDFClient, AnnotationRef_ObjectNumber, PageRef +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.forms.reorder_widgets( @@ -5442,10 +5695,11 @@ client.doc.forms.reorder_widgets( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.metadata.get( @@ -5518,10 +5772,11 @@ client.doc.metadata.get( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.outline.get( @@ -5594,10 +5849,11 @@ client.doc.outline.get( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.pages.set_scale( @@ -5694,10 +5950,11 @@ client.doc.pages.set_scale( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.pages.viewports( @@ -5792,10 +6049,11 @@ A read, not a mutation: the source document is untouched and no event is publish ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.pages.extract( @@ -5878,10 +6136,11 @@ client.doc.pages.extract( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.pages.flatten( @@ -5972,10 +6231,11 @@ client.doc.pages.flatten( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.pages.set_name( @@ -6066,10 +6326,11 @@ client.doc.pages.set_name( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.pages.remove_name( @@ -6161,10 +6422,11 @@ client.doc.pages.remove_name( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.redactions.apply( @@ -6275,10 +6537,11 @@ Describes the bytes the layer is over: the base version's signatures plus the la ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.signatures.list( @@ -6350,10 +6613,11 @@ client.doc.signatures.list( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.signatures.cancel( @@ -6448,11 +6712,12 @@ client.doc.signatures.cancel( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment from cloudpdf.doc.signatures import DocSignaturesCompleteRequestExpectedVersion client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.signatures.complete( @@ -6568,10 +6833,11 @@ Exactly one of `since.signature=` or `since.revision=`; the layer' ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.signatures.analysis( @@ -6681,10 +6947,11 @@ Multipart: a JSON `body` part (field, subFilter, digest, contentsSize, signer, c ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.signatures.prepare( @@ -6780,10 +7047,11 @@ Every completed signature makes a new version of its layer; another layer's vers ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.versions.list( @@ -6869,10 +7137,11 @@ Exactly one of `since.signature` / `since.revision`; `until=` defaults ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.versions.analysis( @@ -6993,10 +7262,11 @@ client.doc.versions.analysis( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.versions.download( @@ -7077,10 +7347,11 @@ client.doc.versions.download( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.versions.revision( @@ -7170,10 +7441,11 @@ client.doc.versions.revision( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.versions.signatures( @@ -7268,10 +7540,11 @@ client.doc.versions.signatures( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.versions.signature_contents( @@ -7375,10 +7648,11 @@ What a CMS verifier compares its message digest to. ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.versions.signature_digest( @@ -7459,6 +7733,191 @@ client.doc.versions.signature_digest( + + + + +## Doc Fonts Programs +
client.doc.fonts.programs.download(...) -> typing.Iterator[bytes] +
+
+ +#### 📝 Description + +
+
+ +
+
+ +A document token needs any one of the listed capabilities: one that may write text in the document. A file the list says can't be downloaded (`canDownload: false`) is not found. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment + +client = CloudPDFClient( + token="", + environment=CloudPDFEnvironment.SAAS, +) + +client.doc.fonts.programs.download( + doc_id="docId", + layer_name="layerName", + display_hash="displayHash", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**doc_id:** `str` + +
+
+ +
+
+ +**layer_name:** `str` + +
+
+ +
+
+ +**display_hash:** `str` + +
+
+ +
+
+ +**document_password:** `typing.Optional[str]` — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.doc.fonts.programs.get(...) -> DocFontsProgramsGet200Response +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment + +client = CloudPDFClient( + token="", + environment=CloudPDFEnvironment.SAAS, +) + +client.doc.fonts.programs.get( + doc_id="docId", + layer_name="layerName", + display_hash="displayHash", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**doc_id:** `str` + +
+
+ +
+
+ +**layer_name:** `str` + +
+
+ +
+
+ +**display_hash:** `str` + +
+
+ +
+
+ +**document_password:** `typing.Optional[str]` — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ +
@@ -7478,10 +7937,11 @@ client.doc.versions.signature_digest( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.doc.metadata.custom.get( @@ -7554,10 +8014,11 @@ client.doc.metadata.custom.get( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.layers.list( @@ -7645,10 +8106,11 @@ client.documents.layers.list( ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.documents.layers.delete( @@ -7736,10 +8198,11 @@ An archived grant's visitors are listed too. ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.visitors.list( @@ -7833,10 +8296,11 @@ Their handle brings them back as a new visitor, who is asked again. Deleting a v ```python from cloudpdf import CloudPDFClient +from cloudpdf.environment import CloudPDFEnvironment client = CloudPDFClient( token="", - base_url="https://yourhost.com/path/to/api", + environment=CloudPDFEnvironment.SAAS, ) client.grants.visitors.delete( diff --git a/src/cloudpdf/__init__.py b/src/cloudpdf/__init__.py index cf78df4..98ab693 100644 --- a/src/cloudpdf/__init__.py +++ b/src/cloudpdf/__init__.py @@ -930,8 +930,32 @@ ChangeItemOutlineMove, ChangeItemOutlineRestore, ChangeItemOutlineUpdate, + ChangeItemPagesCopy, + ChangeItemPagesCopyLayout, + ChangeItemPagesCopyLayoutLabelsItem, + ChangeItemPagesCopyLayoutLabelsItemStyle, + ChangeItemPagesCopyLayoutNamedPagesItem, + ChangeItemPagesCopyLayoutNamedPagesItemTarget, + ChangeItemPagesCopyLayoutNamedPagesItemTargetDangling, + ChangeItemPagesCopyLayoutNamedPagesItemTargetPage, + ChangeItemPagesCopyLayoutNamedPagesItemTargetTemplate, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template, + ChangeItemPagesCopyLayoutPagesItem, + ChangeItemPagesCopyLayoutPagesItemBoxes, + ChangeItemPagesCopyLayoutPagesItemBoxesArt, + ChangeItemPagesCopyLayoutPagesItemBoxesBleed, + ChangeItemPagesCopyLayoutPagesItemBoxesCrop, + ChangeItemPagesCopyLayoutPagesItemBoxesMedia, + ChangeItemPagesCopyLayoutPagesItemBoxesTrim, + ChangeItemPagesCopyLayoutPagesItemPdfCropBox, + ChangeItemPagesCopyLayoutPagesItemSize, + ChangeItemPagesCopyLayoutPagesItemTabOrder, ChangeItemPagesDelete, ChangeItemPagesDeleteLayout, + ChangeItemPagesDeleteLayoutLabelsItem, + ChangeItemPagesDeleteLayoutLabelsItemStyle, ChangeItemPagesDeleteLayoutNamedPagesItem, ChangeItemPagesDeleteLayoutNamedPagesItemTarget, ChangeItemPagesDeleteLayoutNamedPagesItemTargetDangling, @@ -953,6 +977,8 @@ ChangeItemPagesInsert, ChangeItemPagesInsertBlank, ChangeItemPagesInsertBlankLayout, + ChangeItemPagesInsertBlankLayoutLabelsItem, + ChangeItemPagesInsertBlankLayoutLabelsItemStyle, ChangeItemPagesInsertBlankLayoutNamedPagesItem, ChangeItemPagesInsertBlankLayoutNamedPagesItemTarget, ChangeItemPagesInsertBlankLayoutNamedPagesItemTargetDangling, @@ -972,6 +998,8 @@ ChangeItemPagesInsertBlankLayoutPagesItemSize, ChangeItemPagesInsertBlankLayoutPagesItemTabOrder, ChangeItemPagesInsertLayout, + ChangeItemPagesInsertLayoutLabelsItem, + ChangeItemPagesInsertLayoutLabelsItemStyle, ChangeItemPagesInsertLayoutNamedPagesItem, ChangeItemPagesInsertLayoutNamedPagesItemTarget, ChangeItemPagesInsertLayoutNamedPagesItemTargetDangling, @@ -992,6 +1020,8 @@ ChangeItemPagesInsertLayoutPagesItemTabOrder, ChangeItemPagesReorder, ChangeItemPagesReorderLayout, + ChangeItemPagesReorderLayoutLabelsItem, + ChangeItemPagesReorderLayoutLabelsItemStyle, ChangeItemPagesReorderLayoutNamedPagesItem, ChangeItemPagesReorderLayoutNamedPagesItemTarget, ChangeItemPagesReorderLayoutNamedPagesItemTargetDangling, @@ -1012,6 +1042,8 @@ ChangeItemPagesReorderLayoutPagesItemTabOrder, ChangeItemPagesRestore, ChangeItemPagesRestoreLayout, + ChangeItemPagesRestoreLayoutLabelsItem, + ChangeItemPagesRestoreLayoutLabelsItemStyle, ChangeItemPagesRestoreLayoutNamedPagesItem, ChangeItemPagesRestoreLayoutNamedPagesItemTarget, ChangeItemPagesRestoreLayoutNamedPagesItemTargetDangling, @@ -1032,6 +1064,8 @@ ChangeItemPagesRestoreLayoutPagesItemTabOrder, ChangeItemPagesRotate, ChangeItemPagesRotateLayout, + ChangeItemPagesRotateLayoutLabelsItem, + ChangeItemPagesRotateLayoutLabelsItemStyle, ChangeItemPagesRotateLayoutNamedPagesItem, ChangeItemPagesRotateLayoutNamedPagesItemTarget, ChangeItemPagesRotateLayoutNamedPagesItemTargetDangling, @@ -1083,6 +1117,7 @@ ChangeItem_OutlineMove, ChangeItem_OutlineRestore, ChangeItem_OutlineUpdate, + ChangeItem_PagesCopy, ChangeItem_PagesDelete, ChangeItem_PagesInsert, ChangeItem_PagesInsertBlank, @@ -1122,6 +1157,7 @@ ChangeOpOutlineDelete, ChangeOpOutlineMove, ChangeOpOutlineUpdate, + ChangeOpPagesCopy, ChangeOpPagesDelete, ChangeOpPagesInsert, ChangeOpPagesInsertBlank, @@ -1156,6 +1192,7 @@ ChangeOp_OutlineDelete, ChangeOp_OutlineMove, ChangeOp_OutlineUpdate, + ChangeOp_PagesCopy, ChangeOp_PagesDelete, ChangeOp_PagesInsert, ChangeOp_PagesInsertBlank, @@ -1217,6 +1254,16 @@ DocDownloadLink404Response, DocDownloadLink501Response, DocDownloadResponse, + DocFontsList200Response, + DocFontsList404Response, + DocFontsProgramsDownload403Response, + DocFontsProgramsDownload404Response, + DocFontsProgramsGet200Response, + DocFontsProgramsGet404Response, + DocFontsResolve200Response, + DocFontsResolve400Response, + DocFontsResolve404Response, + DocFontsResolveRequest, DocFormsDeleteWidget200Response, DocFormsDeleteWidget400Response, DocFormsDeleteWidget404Response, @@ -1289,6 +1336,8 @@ DocPagesFlattenRequest, DocPagesRemoveName200Response, DocPagesRemoveName200ResponseLayout, + DocPagesRemoveName200ResponseLayoutLabelsItem, + DocPagesRemoveName200ResponseLayoutLabelsItemStyle, DocPagesRemoveName200ResponseLayoutNamedPagesItem, DocPagesRemoveName200ResponseLayoutNamedPagesItemTarget, DocPagesRemoveName200ResponseLayoutNamedPagesItemTargetDangling, @@ -1312,6 +1361,8 @@ DocPagesRemoveNameRequest, DocPagesSetName200Response, DocPagesSetName200ResponseLayout, + DocPagesSetName200ResponseLayoutLabelsItem, + DocPagesSetName200ResponseLayoutLabelsItemStyle, DocPagesSetName200ResponseLayoutNamedPagesItem, DocPagesSetName200ResponseLayoutNamedPagesItemTarget, DocPagesSetName200ResponseLayoutNamedPagesItemTargetDangling, @@ -1561,6 +1612,7 @@ DocumentsInit200Response_Deduped, DocumentsInit200Response_Resumed, DocumentsInit400Response, + DocumentsInit403Response, DocumentsLayersDelete403Response, DocumentsLayersDelete404Response, DocumentsLayersDelete409Response, @@ -1585,6 +1637,7 @@ DocumentsUpdate404Response, DocumentsUploadProxy200Response, DocumentsUploadProxy400Response, + DocumentsUploadProxy404Response, DocumentsUploadProxy409Response, EngineErrorPayload, EngineErrorPayloadCode, @@ -1624,6 +1677,22 @@ FoldersUpdate403Response, FoldersUpdate404Response, FoldersUpdate409Response, + Font, + FontList, + FontProgram, + FontProgramEmbedded, + FontProgramEmbeddingPermission, + FontProgramFormat, + FontProgramInfo, + FontProgramInfoCoversItem, + FontProgramInfoEmbedded, + FontProgramInfoEmbeddingPermission, + FontProgramInfoFormat, + FontResolution, + FontResolveRequest, + FontResolveRun, + FontRestrictionsItem, + FontSource, FormField, FormFieldCheckbox, FormFieldCheckboxDefaultValueEntry, @@ -1907,6 +1976,7 @@ GrantsUpdate200ResponseGrantVisitorIdentityFieldsOrganizationalUnit, GrantsUpdate200ResponseGrantVisitorIdentityFieldsTitle, GrantsUpdate400Response, + GrantsUpdate403Response, GrantsUpdate404Response, GrantsUpdate409Response, GrantsVisitorsDeleteResponse, @@ -2043,6 +2113,7 @@ PdfLinkTarget_Unsupported, PdfLinkTarget_Uri, PdfPageActions, + ResolvedFontRun, TenantsCreate200Response, TenantsCreate200ResponseTenant, TenantsCreate200ResponseTenantStatus, @@ -2069,8 +2140,10 @@ TokensIssueRequest, TokensIssueRequestDoc, TokensIssueRequestTenant, + TokensIssueRequestUpload, TokensIssueRequest_Doc, TokensIssueRequest_Tenant, + TokensIssueRequest_Upload, TokensRevokeResponse, WidgetActionsPatch, WidgetAnnotation, @@ -2132,6 +2205,7 @@ ListDocumentsRequestSort, ListDocumentsRequestState, ) + from .environment import CloudPDFEnvironment from .grants import ( GrantsCreateRequestLayerMode, GrantsCreateRequestVisitorIdentity, @@ -3081,8 +3155,32 @@ "ChangeItemOutlineMove": ".types", "ChangeItemOutlineRestore": ".types", "ChangeItemOutlineUpdate": ".types", + "ChangeItemPagesCopy": ".types", + "ChangeItemPagesCopyLayout": ".types", + "ChangeItemPagesCopyLayoutLabelsItem": ".types", + "ChangeItemPagesCopyLayoutLabelsItemStyle": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItem": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetDangling": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetPage": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetTemplate": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page": ".types", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template": ".types", + "ChangeItemPagesCopyLayoutPagesItem": ".types", + "ChangeItemPagesCopyLayoutPagesItemBoxes": ".types", + "ChangeItemPagesCopyLayoutPagesItemBoxesArt": ".types", + "ChangeItemPagesCopyLayoutPagesItemBoxesBleed": ".types", + "ChangeItemPagesCopyLayoutPagesItemBoxesCrop": ".types", + "ChangeItemPagesCopyLayoutPagesItemBoxesMedia": ".types", + "ChangeItemPagesCopyLayoutPagesItemBoxesTrim": ".types", + "ChangeItemPagesCopyLayoutPagesItemPdfCropBox": ".types", + "ChangeItemPagesCopyLayoutPagesItemSize": ".types", + "ChangeItemPagesCopyLayoutPagesItemTabOrder": ".types", "ChangeItemPagesDelete": ".types", "ChangeItemPagesDeleteLayout": ".types", + "ChangeItemPagesDeleteLayoutLabelsItem": ".types", + "ChangeItemPagesDeleteLayoutLabelsItemStyle": ".types", "ChangeItemPagesDeleteLayoutNamedPagesItem": ".types", "ChangeItemPagesDeleteLayoutNamedPagesItemTarget": ".types", "ChangeItemPagesDeleteLayoutNamedPagesItemTargetDangling": ".types", @@ -3104,6 +3202,8 @@ "ChangeItemPagesInsert": ".types", "ChangeItemPagesInsertBlank": ".types", "ChangeItemPagesInsertBlankLayout": ".types", + "ChangeItemPagesInsertBlankLayoutLabelsItem": ".types", + "ChangeItemPagesInsertBlankLayoutLabelsItemStyle": ".types", "ChangeItemPagesInsertBlankLayoutNamedPagesItem": ".types", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTarget": ".types", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTargetDangling": ".types", @@ -3123,6 +3223,8 @@ "ChangeItemPagesInsertBlankLayoutPagesItemSize": ".types", "ChangeItemPagesInsertBlankLayoutPagesItemTabOrder": ".types", "ChangeItemPagesInsertLayout": ".types", + "ChangeItemPagesInsertLayoutLabelsItem": ".types", + "ChangeItemPagesInsertLayoutLabelsItemStyle": ".types", "ChangeItemPagesInsertLayoutNamedPagesItem": ".types", "ChangeItemPagesInsertLayoutNamedPagesItemTarget": ".types", "ChangeItemPagesInsertLayoutNamedPagesItemTargetDangling": ".types", @@ -3143,6 +3245,8 @@ "ChangeItemPagesInsertLayoutPagesItemTabOrder": ".types", "ChangeItemPagesReorder": ".types", "ChangeItemPagesReorderLayout": ".types", + "ChangeItemPagesReorderLayoutLabelsItem": ".types", + "ChangeItemPagesReorderLayoutLabelsItemStyle": ".types", "ChangeItemPagesReorderLayoutNamedPagesItem": ".types", "ChangeItemPagesReorderLayoutNamedPagesItemTarget": ".types", "ChangeItemPagesReorderLayoutNamedPagesItemTargetDangling": ".types", @@ -3163,6 +3267,8 @@ "ChangeItemPagesReorderLayoutPagesItemTabOrder": ".types", "ChangeItemPagesRestore": ".types", "ChangeItemPagesRestoreLayout": ".types", + "ChangeItemPagesRestoreLayoutLabelsItem": ".types", + "ChangeItemPagesRestoreLayoutLabelsItemStyle": ".types", "ChangeItemPagesRestoreLayoutNamedPagesItem": ".types", "ChangeItemPagesRestoreLayoutNamedPagesItemTarget": ".types", "ChangeItemPagesRestoreLayoutNamedPagesItemTargetDangling": ".types", @@ -3183,6 +3289,8 @@ "ChangeItemPagesRestoreLayoutPagesItemTabOrder": ".types", "ChangeItemPagesRotate": ".types", "ChangeItemPagesRotateLayout": ".types", + "ChangeItemPagesRotateLayoutLabelsItem": ".types", + "ChangeItemPagesRotateLayoutLabelsItemStyle": ".types", "ChangeItemPagesRotateLayoutNamedPagesItem": ".types", "ChangeItemPagesRotateLayoutNamedPagesItemTarget": ".types", "ChangeItemPagesRotateLayoutNamedPagesItemTargetDangling": ".types", @@ -3234,6 +3342,7 @@ "ChangeItem_OutlineMove": ".types", "ChangeItem_OutlineRestore": ".types", "ChangeItem_OutlineUpdate": ".types", + "ChangeItem_PagesCopy": ".types", "ChangeItem_PagesDelete": ".types", "ChangeItem_PagesInsert": ".types", "ChangeItem_PagesInsertBlank": ".types", @@ -3273,6 +3382,7 @@ "ChangeOpOutlineDelete": ".types", "ChangeOpOutlineMove": ".types", "ChangeOpOutlineUpdate": ".types", + "ChangeOpPagesCopy": ".types", "ChangeOpPagesDelete": ".types", "ChangeOpPagesInsert": ".types", "ChangeOpPagesInsertBlank": ".types", @@ -3307,6 +3417,7 @@ "ChangeOp_OutlineDelete": ".types", "ChangeOp_OutlineMove": ".types", "ChangeOp_OutlineUpdate": ".types", + "ChangeOp_PagesCopy": ".types", "ChangeOp_PagesDelete": ".types", "ChangeOp_PagesInsert": ".types", "ChangeOp_PagesInsertBlank": ".types", @@ -3314,6 +3425,7 @@ "ChangeOp_PagesRotate": ".types", "ChangeResult": ".types", "CloudPDFClient": ".client", + "CloudPDFEnvironment": ".environment", "ConflictError": ".errors", "ContentTooLargeError": ".errors", "DefaultAioHttpClient": "._default_clients", @@ -3374,6 +3486,16 @@ "DocDownloadLink404Response": ".types", "DocDownloadLink501Response": ".types", "DocDownloadResponse": ".types", + "DocFontsList200Response": ".types", + "DocFontsList404Response": ".types", + "DocFontsProgramsDownload403Response": ".types", + "DocFontsProgramsDownload404Response": ".types", + "DocFontsProgramsGet200Response": ".types", + "DocFontsProgramsGet404Response": ".types", + "DocFontsResolve200Response": ".types", + "DocFontsResolve400Response": ".types", + "DocFontsResolve404Response": ".types", + "DocFontsResolveRequest": ".types", "DocFormsDeleteWidget200Response": ".types", "DocFormsDeleteWidget400Response": ".types", "DocFormsDeleteWidget404Response": ".types", @@ -3446,6 +3568,8 @@ "DocPagesFlattenRequest": ".types", "DocPagesRemoveName200Response": ".types", "DocPagesRemoveName200ResponseLayout": ".types", + "DocPagesRemoveName200ResponseLayoutLabelsItem": ".types", + "DocPagesRemoveName200ResponseLayoutLabelsItemStyle": ".types", "DocPagesRemoveName200ResponseLayoutNamedPagesItem": ".types", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTarget": ".types", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTargetDangling": ".types", @@ -3469,6 +3593,8 @@ "DocPagesRemoveNameRequest": ".types", "DocPagesSetName200Response": ".types", "DocPagesSetName200ResponseLayout": ".types", + "DocPagesSetName200ResponseLayoutLabelsItem": ".types", + "DocPagesSetName200ResponseLayoutLabelsItemStyle": ".types", "DocPagesSetName200ResponseLayoutNamedPagesItem": ".types", "DocPagesSetName200ResponseLayoutNamedPagesItemTarget": ".types", "DocPagesSetName200ResponseLayoutNamedPagesItemTargetDangling": ".types", @@ -3726,6 +3852,7 @@ "DocumentsInit200Response_Deduped": ".types", "DocumentsInit200Response_Resumed": ".types", "DocumentsInit400Response": ".types", + "DocumentsInit403Response": ".types", "DocumentsInitRequestDedupMode": ".documents", "DocumentsInitRequestUploadPreference": ".documents", "DocumentsLayersDelete403Response": ".types", @@ -3752,6 +3879,7 @@ "DocumentsUpdate404Response": ".types", "DocumentsUploadProxy200Response": ".types", "DocumentsUploadProxy400Response": ".types", + "DocumentsUploadProxy404Response": ".types", "DocumentsUploadProxy409Response": ".types", "EngineErrorPayload": ".types", "EngineErrorPayloadCode": ".types", @@ -3791,6 +3919,22 @@ "FoldersUpdate403Response": ".types", "FoldersUpdate404Response": ".types", "FoldersUpdate409Response": ".types", + "Font": ".types", + "FontList": ".types", + "FontProgram": ".types", + "FontProgramEmbedded": ".types", + "FontProgramEmbeddingPermission": ".types", + "FontProgramFormat": ".types", + "FontProgramInfo": ".types", + "FontProgramInfoCoversItem": ".types", + "FontProgramInfoEmbedded": ".types", + "FontProgramInfoEmbeddingPermission": ".types", + "FontProgramInfoFormat": ".types", + "FontResolution": ".types", + "FontResolveRequest": ".types", + "FontResolveRun": ".types", + "FontRestrictionsItem": ".types", + "FontSource": ".types", "ForbiddenError": ".errors", "FormField": ".types", "FormFieldCheckbox": ".types", @@ -4086,6 +4230,7 @@ "GrantsUpdate200ResponseGrantVisitorIdentityFieldsOrganizationalUnit": ".types", "GrantsUpdate200ResponseGrantVisitorIdentityFieldsTitle": ".types", "GrantsUpdate400Response": ".types", + "GrantsUpdate403Response": ".types", "GrantsUpdate404Response": ".types", "GrantsUpdate409Response": ".types", "GrantsUpdateRequestLayerMode": ".grants", @@ -4236,6 +4381,7 @@ "PdfLinkTarget_Unsupported": ".types", "PdfLinkTarget_Uri": ".types", "PdfPageActions": ".types", + "ResolvedFontRun": ".types", "TenantsCreate200Response": ".types", "TenantsCreate200ResponseTenant": ".types", "TenantsCreate200ResponseTenantStatus": ".types", @@ -4262,8 +4408,10 @@ "TokensIssueRequest": ".types", "TokensIssueRequestDoc": ".types", "TokensIssueRequestTenant": ".types", + "TokensIssueRequestUpload": ".types", "TokensIssueRequest_Doc": ".types", "TokensIssueRequest_Tenant": ".types", + "TokensIssueRequest_Upload": ".types", "TokensRevokeResponse": ".types", "UnprocessableEntityError": ".errors", "WidgetActionsPatch": ".types", @@ -5254,8 +5402,32 @@ def __dir__(): "ChangeItemOutlineMove", "ChangeItemOutlineRestore", "ChangeItemOutlineUpdate", + "ChangeItemPagesCopy", + "ChangeItemPagesCopyLayout", + "ChangeItemPagesCopyLayoutLabelsItem", + "ChangeItemPagesCopyLayoutLabelsItemStyle", + "ChangeItemPagesCopyLayoutNamedPagesItem", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetDangling", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetPage", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetTemplate", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template", + "ChangeItemPagesCopyLayoutPagesItem", + "ChangeItemPagesCopyLayoutPagesItemBoxes", + "ChangeItemPagesCopyLayoutPagesItemBoxesArt", + "ChangeItemPagesCopyLayoutPagesItemBoxesBleed", + "ChangeItemPagesCopyLayoutPagesItemBoxesCrop", + "ChangeItemPagesCopyLayoutPagesItemBoxesMedia", + "ChangeItemPagesCopyLayoutPagesItemBoxesTrim", + "ChangeItemPagesCopyLayoutPagesItemPdfCropBox", + "ChangeItemPagesCopyLayoutPagesItemSize", + "ChangeItemPagesCopyLayoutPagesItemTabOrder", "ChangeItemPagesDelete", "ChangeItemPagesDeleteLayout", + "ChangeItemPagesDeleteLayoutLabelsItem", + "ChangeItemPagesDeleteLayoutLabelsItemStyle", "ChangeItemPagesDeleteLayoutNamedPagesItem", "ChangeItemPagesDeleteLayoutNamedPagesItemTarget", "ChangeItemPagesDeleteLayoutNamedPagesItemTargetDangling", @@ -5277,6 +5449,8 @@ def __dir__(): "ChangeItemPagesInsert", "ChangeItemPagesInsertBlank", "ChangeItemPagesInsertBlankLayout", + "ChangeItemPagesInsertBlankLayoutLabelsItem", + "ChangeItemPagesInsertBlankLayoutLabelsItemStyle", "ChangeItemPagesInsertBlankLayoutNamedPagesItem", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTarget", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTargetDangling", @@ -5296,6 +5470,8 @@ def __dir__(): "ChangeItemPagesInsertBlankLayoutPagesItemSize", "ChangeItemPagesInsertBlankLayoutPagesItemTabOrder", "ChangeItemPagesInsertLayout", + "ChangeItemPagesInsertLayoutLabelsItem", + "ChangeItemPagesInsertLayoutLabelsItemStyle", "ChangeItemPagesInsertLayoutNamedPagesItem", "ChangeItemPagesInsertLayoutNamedPagesItemTarget", "ChangeItemPagesInsertLayoutNamedPagesItemTargetDangling", @@ -5316,6 +5492,8 @@ def __dir__(): "ChangeItemPagesInsertLayoutPagesItemTabOrder", "ChangeItemPagesReorder", "ChangeItemPagesReorderLayout", + "ChangeItemPagesReorderLayoutLabelsItem", + "ChangeItemPagesReorderLayoutLabelsItemStyle", "ChangeItemPagesReorderLayoutNamedPagesItem", "ChangeItemPagesReorderLayoutNamedPagesItemTarget", "ChangeItemPagesReorderLayoutNamedPagesItemTargetDangling", @@ -5336,6 +5514,8 @@ def __dir__(): "ChangeItemPagesReorderLayoutPagesItemTabOrder", "ChangeItemPagesRestore", "ChangeItemPagesRestoreLayout", + "ChangeItemPagesRestoreLayoutLabelsItem", + "ChangeItemPagesRestoreLayoutLabelsItemStyle", "ChangeItemPagesRestoreLayoutNamedPagesItem", "ChangeItemPagesRestoreLayoutNamedPagesItemTarget", "ChangeItemPagesRestoreLayoutNamedPagesItemTargetDangling", @@ -5356,6 +5536,8 @@ def __dir__(): "ChangeItemPagesRestoreLayoutPagesItemTabOrder", "ChangeItemPagesRotate", "ChangeItemPagesRotateLayout", + "ChangeItemPagesRotateLayoutLabelsItem", + "ChangeItemPagesRotateLayoutLabelsItemStyle", "ChangeItemPagesRotateLayoutNamedPagesItem", "ChangeItemPagesRotateLayoutNamedPagesItemTarget", "ChangeItemPagesRotateLayoutNamedPagesItemTargetDangling", @@ -5407,6 +5589,7 @@ def __dir__(): "ChangeItem_OutlineMove", "ChangeItem_OutlineRestore", "ChangeItem_OutlineUpdate", + "ChangeItem_PagesCopy", "ChangeItem_PagesDelete", "ChangeItem_PagesInsert", "ChangeItem_PagesInsertBlank", @@ -5446,6 +5629,7 @@ def __dir__(): "ChangeOpOutlineDelete", "ChangeOpOutlineMove", "ChangeOpOutlineUpdate", + "ChangeOpPagesCopy", "ChangeOpPagesDelete", "ChangeOpPagesInsert", "ChangeOpPagesInsertBlank", @@ -5480,6 +5664,7 @@ def __dir__(): "ChangeOp_OutlineDelete", "ChangeOp_OutlineMove", "ChangeOp_OutlineUpdate", + "ChangeOp_PagesCopy", "ChangeOp_PagesDelete", "ChangeOp_PagesInsert", "ChangeOp_PagesInsertBlank", @@ -5487,6 +5672,7 @@ def __dir__(): "ChangeOp_PagesRotate", "ChangeResult", "CloudPDFClient", + "CloudPDFEnvironment", "ConflictError", "ContentTooLargeError", "DefaultAioHttpClient", @@ -5547,6 +5733,16 @@ def __dir__(): "DocDownloadLink404Response", "DocDownloadLink501Response", "DocDownloadResponse", + "DocFontsList200Response", + "DocFontsList404Response", + "DocFontsProgramsDownload403Response", + "DocFontsProgramsDownload404Response", + "DocFontsProgramsGet200Response", + "DocFontsProgramsGet404Response", + "DocFontsResolve200Response", + "DocFontsResolve400Response", + "DocFontsResolve404Response", + "DocFontsResolveRequest", "DocFormsDeleteWidget200Response", "DocFormsDeleteWidget400Response", "DocFormsDeleteWidget404Response", @@ -5619,6 +5815,8 @@ def __dir__(): "DocPagesFlattenRequest", "DocPagesRemoveName200Response", "DocPagesRemoveName200ResponseLayout", + "DocPagesRemoveName200ResponseLayoutLabelsItem", + "DocPagesRemoveName200ResponseLayoutLabelsItemStyle", "DocPagesRemoveName200ResponseLayoutNamedPagesItem", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTarget", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTargetDangling", @@ -5642,6 +5840,8 @@ def __dir__(): "DocPagesRemoveNameRequest", "DocPagesSetName200Response", "DocPagesSetName200ResponseLayout", + "DocPagesSetName200ResponseLayoutLabelsItem", + "DocPagesSetName200ResponseLayoutLabelsItemStyle", "DocPagesSetName200ResponseLayoutNamedPagesItem", "DocPagesSetName200ResponseLayoutNamedPagesItemTarget", "DocPagesSetName200ResponseLayoutNamedPagesItemTargetDangling", @@ -5899,6 +6099,7 @@ def __dir__(): "DocumentsInit200Response_Deduped", "DocumentsInit200Response_Resumed", "DocumentsInit400Response", + "DocumentsInit403Response", "DocumentsInitRequestDedupMode", "DocumentsInitRequestUploadPreference", "DocumentsLayersDelete403Response", @@ -5925,6 +6126,7 @@ def __dir__(): "DocumentsUpdate404Response", "DocumentsUploadProxy200Response", "DocumentsUploadProxy400Response", + "DocumentsUploadProxy404Response", "DocumentsUploadProxy409Response", "EngineErrorPayload", "EngineErrorPayloadCode", @@ -5964,6 +6166,22 @@ def __dir__(): "FoldersUpdate403Response", "FoldersUpdate404Response", "FoldersUpdate409Response", + "Font", + "FontList", + "FontProgram", + "FontProgramEmbedded", + "FontProgramEmbeddingPermission", + "FontProgramFormat", + "FontProgramInfo", + "FontProgramInfoCoversItem", + "FontProgramInfoEmbedded", + "FontProgramInfoEmbeddingPermission", + "FontProgramInfoFormat", + "FontResolution", + "FontResolveRequest", + "FontResolveRun", + "FontRestrictionsItem", + "FontSource", "ForbiddenError", "FormField", "FormFieldCheckbox", @@ -6259,6 +6477,7 @@ def __dir__(): "GrantsUpdate200ResponseGrantVisitorIdentityFieldsOrganizationalUnit", "GrantsUpdate200ResponseGrantVisitorIdentityFieldsTitle", "GrantsUpdate400Response", + "GrantsUpdate403Response", "GrantsUpdate404Response", "GrantsUpdate409Response", "GrantsUpdateRequestLayerMode", @@ -6409,6 +6628,7 @@ def __dir__(): "PdfLinkTarget_Unsupported", "PdfLinkTarget_Uri", "PdfPageActions", + "ResolvedFontRun", "TenantsCreate200Response", "TenantsCreate200ResponseTenant", "TenantsCreate200ResponseTenantStatus", @@ -6435,8 +6655,10 @@ def __dir__(): "TokensIssueRequest", "TokensIssueRequestDoc", "TokensIssueRequestTenant", + "TokensIssueRequestUpload", "TokensIssueRequest_Doc", "TokensIssueRequest_Tenant", + "TokensIssueRequest_Upload", "TokensRevokeResponse", "UnprocessableEntityError", "WidgetActionsPatch", diff --git a/src/cloudpdf/client.py b/src/cloudpdf/client.py index 51b5574..6c58b47 100644 --- a/src/cloudpdf/client.py +++ b/src/cloudpdf/client.py @@ -7,6 +7,7 @@ import httpx from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .core.logging import LogConfig, Logger +from .environment import CloudPDFEnvironment if typing.TYPE_CHECKING: from .deployment.client import AsyncDeploymentClient, DeploymentClient @@ -24,9 +25,18 @@ class CloudPDFClient: Parameters ---------- - base_url : str + base_url : typing.Optional[str] The base url to use for requests from the client. + environment : CloudPDFEnvironment + The environment to use for requests from the client. from .environment import CloudPDFEnvironment + + + + Defaults to CloudPDFEnvironment.SAAS + + + token : typing.Optional[typing.Union[str, typing.Callable[[], str]]] headers : typing.Optional[typing.Dict[str, str]] Additional headers to send with every request. @@ -58,14 +68,14 @@ class CloudPDFClient: client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) """ def __init__( self, *, - base_url: str, + base_url: typing.Optional[str] = None, + environment: CloudPDFEnvironment = CloudPDFEnvironment.SAAS, token: typing.Optional[typing.Union[str, typing.Callable[[], str]]] = None, headers: typing.Optional[typing.Dict[str, str]] = None, timeout: typing.Optional[float] = None, @@ -79,7 +89,7 @@ def __init__( _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None _defaulted_max_retries = max_retries if max_retries is not None else 2 self._client_wrapper = SyncClientWrapper( - base_url=base_url, + base_url=_get_base_url(base_url=base_url, environment=environment), token=token, headers=headers, httpx_client=httpx_client @@ -182,9 +192,18 @@ class AsyncCloudPDFClient: Parameters ---------- - base_url : str + base_url : typing.Optional[str] The base url to use for requests from the client. + environment : CloudPDFEnvironment + The environment to use for requests from the client. from .environment import CloudPDFEnvironment + + + + Defaults to CloudPDFEnvironment.SAAS + + + token : typing.Optional[typing.Union[str, typing.Callable[[], str]]] headers : typing.Optional[typing.Dict[str, str]] Additional headers to send with every request. @@ -219,14 +238,14 @@ class AsyncCloudPDFClient: client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) """ def __init__( self, *, - base_url: str, + base_url: typing.Optional[str] = None, + environment: CloudPDFEnvironment = CloudPDFEnvironment.SAAS, token: typing.Optional[typing.Union[str, typing.Callable[[], str]]] = None, headers: typing.Optional[typing.Dict[str, str]] = None, async_token: typing.Optional[typing.Callable[[], typing.Awaitable[str]]] = None, @@ -241,7 +260,7 @@ def __init__( _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None _defaulted_max_retries = max_retries if max_retries is not None else 2 self._client_wrapper = AsyncClientWrapper( - base_url=base_url, + base_url=_get_base_url(base_url=base_url, environment=environment), token=token, headers=headers, async_token=async_token, @@ -317,3 +336,12 @@ def tokens(self): self._tokens = AsyncTokensClient(client_wrapper=self._client_wrapper) return self._tokens + + +def _get_base_url(*, base_url: typing.Optional[str] = None, environment: CloudPDFEnvironment) -> str: + if base_url is not None: + return base_url + elif environment is not None: + return environment.value + else: + raise Exception("Please pass in either base_url or environment to construct the client") diff --git a/src/cloudpdf/core/client_wrapper.py b/src/cloudpdf/core/client_wrapper.py index f5111a1..0a6dd79 100644 --- a/src/cloudpdf/core/client_wrapper.py +++ b/src/cloudpdf/core/client_wrapper.py @@ -33,12 +33,12 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "cloudpdf/3.0.0a19", + "User-Agent": "cloudpdf/3.0.0a20", "X-Fern-Language": "Python", "X-Fern-Runtime": f"python/{platform.python_version()}", "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", "X-Fern-SDK-Name": "cloudpdf", - "X-Fern-SDK-Version": "3.0.0a19", + "X-Fern-SDK-Version": "3.0.0a20", **(self.get_custom_headers() or {}), } token = self._get_token() diff --git a/src/cloudpdf/deployment/client.py b/src/cloudpdf/deployment/client.py index b90ca77..3a3a8a9 100644 --- a/src/cloudpdf/deployment/client.py +++ b/src/cloudpdf/deployment/client.py @@ -43,7 +43,6 @@ def license_status( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.deployment.license_status() """ @@ -88,7 +87,6 @@ async def license_status( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/__init__.py b/src/cloudpdf/doc/__init__.py index 8ddd863..4a20d7c 100644 --- a/src/cloudpdf/doc/__init__.py +++ b/src/cloudpdf/doc/__init__.py @@ -7,7 +7,7 @@ if typing.TYPE_CHECKING: from .types import DocChangesRequestChangesItem - from . import annotations, attachments, forms, metadata, outline, pages, redactions, signatures, versions + from . import annotations, attachments, fonts, forms, metadata, outline, pages, redactions, signatures, versions from .pages import ( DocPagesSetScaleRequestMeasure, DocPagesSetScaleRequestMeasureAngleItem, @@ -62,6 +62,7 @@ "SignatureDigestVersionsRequestAlgorithm": ".versions", "annotations": ".annotations", "attachments": ".attachments", + "fonts": ".fonts", "forms": ".forms", "metadata": ".metadata", "outline": ".outline", @@ -122,6 +123,7 @@ def __dir__(): "SignatureDigestVersionsRequestAlgorithm", "annotations", "attachments", + "fonts", "forms", "metadata", "outline", diff --git a/src/cloudpdf/doc/annotations/client.py b/src/cloudpdf/doc/annotations/client.py index 99e38bf..cb602c4 100644 --- a/src/cloudpdf/doc/annotations/client.py +++ b/src/cloudpdf/doc/annotations/client.py @@ -72,7 +72,6 @@ def list_all( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.list_all( doc_id="docId", @@ -120,7 +119,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.list( doc_id="docId", @@ -178,7 +176,6 @@ def create( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.create( doc_id="docId", @@ -242,7 +239,6 @@ def delete( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.delete( doc_id="docId", @@ -309,7 +305,6 @@ def update( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.update( doc_id="docId", @@ -371,7 +366,6 @@ def read_appearance( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.read_appearance( doc_id="docId", @@ -432,7 +426,6 @@ def read_file( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.read_file( doc_id="docId", @@ -490,7 +483,6 @@ def export_appearance( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.export_appearance( doc_id="docId", @@ -552,7 +544,6 @@ def flatten( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.flatten( doc_id="docId", @@ -618,7 +609,6 @@ def reorder( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.annotations.reorder( doc_id="docId", @@ -700,7 +690,6 @@ async def list_all( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -756,7 +745,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -822,7 +810,6 @@ async def create( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -894,7 +881,6 @@ async def delete( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -969,7 +955,6 @@ async def update( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -1039,7 +1024,6 @@ async def read_appearance( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -1109,7 +1093,6 @@ async def read_file( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -1176,7 +1159,6 @@ async def export_appearance( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -1247,7 +1229,6 @@ async def flatten( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -1321,7 +1302,6 @@ async def reorder( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/attachments/client.py b/src/cloudpdf/doc/attachments/client.py index 675c19d..96b809e 100644 --- a/src/cloudpdf/doc/attachments/client.py +++ b/src/cloudpdf/doc/attachments/client.py @@ -61,7 +61,6 @@ def download( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.attachments.download( doc_id="docId", @@ -108,7 +107,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.attachments.list( doc_id="docId", @@ -176,7 +174,6 @@ async def download( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -232,7 +229,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/client.py b/src/cloudpdf/doc/client.py index 884494c..5f91844 100644 --- a/src/cloudpdf/doc/client.py +++ b/src/cloudpdf/doc/client.py @@ -17,6 +17,7 @@ if typing.TYPE_CHECKING: from .annotations.client import AnnotationsClient, AsyncAnnotationsClient from .attachments.client import AsyncAttachmentsClient, AttachmentsClient + from .fonts.client import AsyncFontsClient, FontsClient from .forms.client import AsyncFormsClient, FormsClient from .metadata.client import AsyncMetadataClient, MetadataClient from .outline.client import AsyncOutlineClient, OutlineClient @@ -34,6 +35,7 @@ def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper self._annotations: typing.Optional[AnnotationsClient] = None self._attachments: typing.Optional[AttachmentsClient] = None + self._fonts: typing.Optional[FontsClient] = None self._forms: typing.Optional[FormsClient] = None self._metadata: typing.Optional[MetadataClient] = None self._outline: typing.Optional[OutlineClient] = None @@ -82,7 +84,6 @@ def head( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.head( doc_id="docId", @@ -129,7 +130,6 @@ def changes( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.changes( doc_id="docId", @@ -178,7 +178,6 @@ def download( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.download( doc_id="docId", @@ -227,7 +226,6 @@ def download_link( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.download_link( doc_id="docId", @@ -275,7 +273,6 @@ def manifest( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.manifest( doc_id="docId", @@ -325,7 +322,6 @@ def render( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.render( doc_id="docId", @@ -374,7 +370,6 @@ def text( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.text( doc_id="docId", @@ -403,6 +398,14 @@ def attachments(self): self._attachments = AttachmentsClient(client_wrapper=self._client_wrapper) return self._attachments + @property + def fonts(self): + if self._fonts is None: + from .fonts.client import FontsClient # noqa: E402 + + self._fonts = FontsClient(client_wrapper=self._client_wrapper) + return self._fonts + @property def forms(self): if self._forms is None: @@ -466,6 +469,7 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper self._annotations: typing.Optional[AsyncAnnotationsClient] = None self._attachments: typing.Optional[AsyncAttachmentsClient] = None + self._fonts: typing.Optional[AsyncFontsClient] = None self._forms: typing.Optional[AsyncFormsClient] = None self._metadata: typing.Optional[AsyncMetadataClient] = None self._outline: typing.Optional[AsyncOutlineClient] = None @@ -516,7 +520,6 @@ async def head( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -573,7 +576,6 @@ async def changes( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -630,7 +632,6 @@ async def download( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -688,7 +689,6 @@ async def download_link( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -744,7 +744,6 @@ async def manifest( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -802,7 +801,6 @@ async def render( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -860,7 +858,6 @@ async def text( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -895,6 +892,14 @@ def attachments(self): self._attachments = AsyncAttachmentsClient(client_wrapper=self._client_wrapper) return self._attachments + @property + def fonts(self): + if self._fonts is None: + from .fonts.client import AsyncFontsClient # noqa: E402 + + self._fonts = AsyncFontsClient(client_wrapper=self._client_wrapper) + return self._fonts + @property def forms(self): if self._forms is None: diff --git a/src/cloudpdf/doc/fonts/__init__.py b/src/cloudpdf/doc/fonts/__init__.py new file mode 100644 index 0000000..3bb262a --- /dev/null +++ b/src/cloudpdf/doc/fonts/__init__.py @@ -0,0 +1,34 @@ +# This file was auto-generated by Fern from our API Definition. + +# isort: skip_file + +import typing +from importlib import import_module + +if typing.TYPE_CHECKING: + from . import programs +_dynamic_imports: typing.Dict[str, str] = {"programs": ".programs"} + + +def __getattr__(attr_name: str) -> typing.Any: + module_name = _dynamic_imports.get(attr_name) + if module_name is None: + raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") + try: + module = import_module(module_name, __package__) + if module_name == f".{attr_name}": + return module + else: + return getattr(module, attr_name) + except ImportError as e: + raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e + except AttributeError as e: + raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e + + +def __dir__(): + lazy_attrs = list(_dynamic_imports.keys()) + return sorted(lazy_attrs) + + +__all__ = ["programs"] diff --git a/src/cloudpdf/doc/fonts/client.py b/src/cloudpdf/doc/fonts/client.py new file mode 100644 index 0000000..f0ffb3e --- /dev/null +++ b/src/cloudpdf/doc/fonts/client.py @@ -0,0 +1,290 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import typing + +from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ...core.request_options import RequestOptions +from ...types.annotation_ref import AnnotationRef +from ...types.doc_fonts_list200response import DocFontsList200Response +from ...types.doc_fonts_resolve200response import DocFontsResolve200Response +from ...types.font_resolve_run import FontResolveRun +from .raw_client import AsyncRawFontsClient, RawFontsClient + +if typing.TYPE_CHECKING: + from .programs.client import AsyncProgramsClient, ProgramsClient +# this is used as the default value for optional parameters +OMIT = typing.cast(typing.Any, ...) + + +class FontsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._raw_client = RawFontsClient(client_wrapper=client_wrapper) + self._client_wrapper = client_wrapper + self._programs: typing.Optional[ProgramsClient] = None + + @property + def with_raw_response(self) -> RawFontsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + RawFontsClient + """ + return self._raw_client + + def list( + self, + doc_id: str, + layer_name: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> DocFontsList200Response: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + DocFontsList200Response + OK + + Examples + -------- + from cloudpdf import CloudPDFClient + + client = CloudPDFClient( + token="YOUR_TOKEN", + ) + client.doc.fonts.list( + doc_id="docId", + layer_name="layerName", + ) + """ + _response = self._raw_client.list( + doc_id, layer_name, document_password=document_password, request_options=request_options + ) + return _response.data + + def resolve( + self, + doc_id: str, + layer_name: str, + *, + runs: typing.Sequence[FontResolveRun], + document_password: typing.Optional[str] = None, + annotation: typing.Optional[AnnotationRef] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> DocFontsResolve200Response: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + runs : typing.Sequence[FontResolveRun] + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + annotation : typing.Optional[AnnotationRef] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + DocFontsResolve200Response + OK + + Examples + -------- + from cloudpdf import CloudPDFClient, FontResolveRun + + client = CloudPDFClient( + token="YOUR_TOKEN", + ) + client.doc.fonts.resolve( + doc_id="docId", + layer_name="layerName", + runs=[ + FontResolveRun( + text="text", + ) + ], + ) + """ + _response = self._raw_client.resolve( + doc_id, + layer_name, + runs=runs, + document_password=document_password, + annotation=annotation, + request_options=request_options, + ) + return _response.data + + @property + def programs(self): + if self._programs is None: + from .programs.client import ProgramsClient # noqa: E402 + + self._programs = ProgramsClient(client_wrapper=self._client_wrapper) + return self._programs + + +class AsyncFontsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._raw_client = AsyncRawFontsClient(client_wrapper=client_wrapper) + self._client_wrapper = client_wrapper + self._programs: typing.Optional[AsyncProgramsClient] = None + + @property + def with_raw_response(self) -> AsyncRawFontsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + AsyncRawFontsClient + """ + return self._raw_client + + async def list( + self, + doc_id: str, + layer_name: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> DocFontsList200Response: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + DocFontsList200Response + OK + + Examples + -------- + import asyncio + + from cloudpdf import AsyncCloudPDFClient + + client = AsyncCloudPDFClient( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.doc.fonts.list( + doc_id="docId", + layer_name="layerName", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.list( + doc_id, layer_name, document_password=document_password, request_options=request_options + ) + return _response.data + + async def resolve( + self, + doc_id: str, + layer_name: str, + *, + runs: typing.Sequence[FontResolveRun], + document_password: typing.Optional[str] = None, + annotation: typing.Optional[AnnotationRef] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> DocFontsResolve200Response: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + runs : typing.Sequence[FontResolveRun] + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + annotation : typing.Optional[AnnotationRef] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + DocFontsResolve200Response + OK + + Examples + -------- + import asyncio + + from cloudpdf import AsyncCloudPDFClient, FontResolveRun + + client = AsyncCloudPDFClient( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.doc.fonts.resolve( + doc_id="docId", + layer_name="layerName", + runs=[ + FontResolveRun( + text="text", + ) + ], + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.resolve( + doc_id, + layer_name, + runs=runs, + document_password=document_password, + annotation=annotation, + request_options=request_options, + ) + return _response.data + + @property + def programs(self): + if self._programs is None: + from .programs.client import AsyncProgramsClient # noqa: E402 + + self._programs = AsyncProgramsClient(client_wrapper=self._client_wrapper) + return self._programs diff --git a/src/cloudpdf/doc/fonts/programs/__init__.py b/src/cloudpdf/doc/fonts/programs/__init__.py new file mode 100644 index 0000000..5cde020 --- /dev/null +++ b/src/cloudpdf/doc/fonts/programs/__init__.py @@ -0,0 +1,4 @@ +# This file was auto-generated by Fern from our API Definition. + +# isort: skip_file + diff --git a/src/cloudpdf/doc/fonts/programs/client.py b/src/cloudpdf/doc/fonts/programs/client.py new file mode 100644 index 0000000..71c3ab2 --- /dev/null +++ b/src/cloudpdf/doc/fonts/programs/client.py @@ -0,0 +1,249 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from ....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ....core.request_options import RequestOptions +from ....types.doc_fonts_programs_get200response import DocFontsProgramsGet200Response +from .raw_client import AsyncRawProgramsClient, RawProgramsClient + + +class ProgramsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._raw_client = RawProgramsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> RawProgramsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + RawProgramsClient + """ + return self._raw_client + + def download( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> typing.Iterator[bytes]: + """ + A document token needs any one of the listed capabilities: one that may write text in the document. A file the list says can't be downloaded (`canDownload: false`) is not found. + + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. + + Returns + ------- + typing.Iterator[bytes] + OK + + Examples + -------- + from cloudpdf import CloudPDFClient + + client = CloudPDFClient( + token="YOUR_TOKEN", + ) + client.doc.fonts.programs.download( + doc_id="docId", + layer_name="layerName", + display_hash="displayHash", + ) + """ + with self._raw_client.download( + doc_id, layer_name, display_hash, document_password=document_password, request_options=request_options + ) as r: + yield from r.data + + def get( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> DocFontsProgramsGet200Response: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + DocFontsProgramsGet200Response + OK + + Examples + -------- + from cloudpdf import CloudPDFClient + + client = CloudPDFClient( + token="YOUR_TOKEN", + ) + client.doc.fonts.programs.get( + doc_id="docId", + layer_name="layerName", + display_hash="displayHash", + ) + """ + _response = self._raw_client.get( + doc_id, layer_name, display_hash, document_password=document_password, request_options=request_options + ) + return _response.data + + +class AsyncProgramsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._raw_client = AsyncRawProgramsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> AsyncRawProgramsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + AsyncRawProgramsClient + """ + return self._raw_client + + async def download( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> typing.AsyncIterator[bytes]: + """ + A document token needs any one of the listed capabilities: one that may write text in the document. A file the list says can't be downloaded (`canDownload: false`) is not found. + + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. + + Returns + ------- + typing.AsyncIterator[bytes] + OK + + Examples + -------- + import asyncio + + from cloudpdf import AsyncCloudPDFClient + + client = AsyncCloudPDFClient( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.doc.fonts.programs.download( + doc_id="docId", + layer_name="layerName", + display_hash="displayHash", + ) + + + asyncio.run(main()) + """ + async with self._raw_client.download( + doc_id, layer_name, display_hash, document_password=document_password, request_options=request_options + ) as r: + async for _chunk in r.data: + yield _chunk + + async def get( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> DocFontsProgramsGet200Response: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + DocFontsProgramsGet200Response + OK + + Examples + -------- + import asyncio + + from cloudpdf import AsyncCloudPDFClient + + client = AsyncCloudPDFClient( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.doc.fonts.programs.get( + doc_id="docId", + layer_name="layerName", + display_hash="displayHash", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.get( + doc_id, layer_name, display_hash, document_password=document_password, request_options=request_options + ) + return _response.data diff --git a/src/cloudpdf/doc/fonts/programs/raw_client.py b/src/cloudpdf/doc/fonts/programs/raw_client.py new file mode 100644 index 0000000..4d83a38 --- /dev/null +++ b/src/cloudpdf/doc/fonts/programs/raw_client.py @@ -0,0 +1,336 @@ +# This file was auto-generated by Fern from our API Definition. + +import contextlib +import typing +from json.decoder import JSONDecodeError + +from ....core.api_error import ApiError +from ....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ....core.http_response import AsyncHttpResponse, HttpResponse +from ....core.jsonable_encoder import encode_path_param +from ....core.parse_error import ParsingError +from ....core.pydantic_utilities import parse_obj_as +from ....core.request_options import RequestOptions +from ....errors.forbidden_error import ForbiddenError +from ....errors.not_found_error import NotFoundError +from ....types.doc_fonts_programs_get200response import DocFontsProgramsGet200Response +from pydantic import ValidationError + + +class RawProgramsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._client_wrapper = client_wrapper + + @contextlib.contextmanager + def download( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> typing.Iterator[HttpResponse[typing.Iterator[bytes]]]: + """ + A document token needs any one of the listed capabilities: one that may write text in the document. A file the list says can't be downloaded (`canDownload: false`) is not found. + + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. + + Returns + ------- + typing.Iterator[HttpResponse[typing.Iterator[bytes]]] + OK + """ + with self._client_wrapper.httpx_client.stream( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/font-program-files/{encode_path_param(display_hash)}", + method="GET", + headers={ + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + ) as _response: + + def _stream() -> HttpResponse[typing.Iterator[bytes]]: + try: + if 200 <= _response.status_code < 300: + _chunk_size = request_options.get("chunk_size", None) if request_options is not None else None + return HttpResponse( + response=_response, data=(_chunk for _chunk in _response.iter_bytes(chunk_size=_chunk_size)) + ) + _response.read() + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, + headers=dict(_response.headers), + body=_response.json(), + cause=e, + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + yield _stream() + + def get( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[DocFontsProgramsGet200Response]: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[DocFontsProgramsGet200Response] + OK + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/font-programs/{encode_path_param(display_hash)}", + method="GET", + headers={ + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + DocFontsProgramsGet200Response, + parse_obj_as( + type_=DocFontsProgramsGet200Response, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + +class AsyncRawProgramsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._client_wrapper = client_wrapper + + @contextlib.asynccontextmanager + async def download( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[bytes]]]: + """ + A document token needs any one of the listed capabilities: one that may write text in the document. A file the list says can't be downloaded (`canDownload: false`) is not found. + + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. + + Returns + ------- + typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[bytes]]] + OK + """ + async with self._client_wrapper.httpx_client.stream( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/font-program-files/{encode_path_param(display_hash)}", + method="GET", + headers={ + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + ) as _response: + + async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[bytes]]: + try: + if 200 <= _response.status_code < 300: + _chunk_size = request_options.get("chunk_size", None) if request_options is not None else None + return AsyncHttpResponse( + response=_response, + data=(_chunk async for _chunk in _response.aiter_bytes(chunk_size=_chunk_size)), + ) + await _response.aread() + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, + headers=dict(_response.headers), + body=_response.json(), + cause=e, + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + yield await _stream() + + async def get( + self, + doc_id: str, + layer_name: str, + display_hash: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[DocFontsProgramsGet200Response]: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + display_hash : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[DocFontsProgramsGet200Response] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/font-programs/{encode_path_param(display_hash)}", + method="GET", + headers={ + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + DocFontsProgramsGet200Response, + parse_obj_as( + type_=DocFontsProgramsGet200Response, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/cloudpdf/doc/fonts/raw_client.py b/src/cloudpdf/doc/fonts/raw_client.py new file mode 100644 index 0000000..11ff67f --- /dev/null +++ b/src/cloudpdf/doc/fonts/raw_client.py @@ -0,0 +1,343 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing +from json.decoder import JSONDecodeError + +from ...core.api_error import ApiError +from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ...core.http_response import AsyncHttpResponse, HttpResponse +from ...core.jsonable_encoder import encode_path_param +from ...core.parse_error import ParsingError +from ...core.pydantic_utilities import parse_obj_as +from ...core.request_options import RequestOptions +from ...core.serialization import convert_and_respect_annotation_metadata +from ...errors.bad_request_error import BadRequestError +from ...errors.not_found_error import NotFoundError +from ...types.annotation_ref import AnnotationRef +from ...types.doc_fonts_list200response import DocFontsList200Response +from ...types.doc_fonts_resolve200response import DocFontsResolve200Response +from ...types.font_resolve_run import FontResolveRun +from pydantic import ValidationError + +# this is used as the default value for optional parameters +OMIT = typing.cast(typing.Any, ...) + + +class RawFontsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._client_wrapper = client_wrapper + + def list( + self, + doc_id: str, + layer_name: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[DocFontsList200Response]: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[DocFontsList200Response] + OK + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/fonts", + method="GET", + headers={ + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + DocFontsList200Response, + parse_obj_as( + type_=DocFontsList200Response, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def resolve( + self, + doc_id: str, + layer_name: str, + *, + runs: typing.Sequence[FontResolveRun], + document_password: typing.Optional[str] = None, + annotation: typing.Optional[AnnotationRef] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[DocFontsResolve200Response]: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + runs : typing.Sequence[FontResolveRun] + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + annotation : typing.Optional[AnnotationRef] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[DocFontsResolve200Response] + OK + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/fonts/resolve", + method="POST", + json={ + "annotation": convert_and_respect_annotation_metadata( + object_=annotation, annotation=AnnotationRef, direction="write" + ), + "runs": convert_and_respect_annotation_metadata( + object_=runs, annotation=typing.Sequence[FontResolveRun], direction="write" + ), + }, + headers={ + "content-type": "application/json", + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + DocFontsResolve200Response, + parse_obj_as( + type_=DocFontsResolve200Response, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + +class AsyncRawFontsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._client_wrapper = client_wrapper + + async def list( + self, + doc_id: str, + layer_name: str, + *, + document_password: typing.Optional[str] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[DocFontsList200Response]: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[DocFontsList200Response] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/fonts", + method="GET", + headers={ + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + DocFontsList200Response, + parse_obj_as( + type_=DocFontsList200Response, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def resolve( + self, + doc_id: str, + layer_name: str, + *, + runs: typing.Sequence[FontResolveRun], + document_password: typing.Optional[str] = None, + annotation: typing.Optional[AnnotationRef] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[DocFontsResolve200Response]: + """ + Parameters + ---------- + doc_id : str + + layer_name : str + + runs : typing.Sequence[FontResolveRun] + + document_password : typing.Optional[str] + Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + + annotation : typing.Optional[AnnotationRef] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[DocFontsResolve200Response] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/docs/{encode_path_param(doc_id)}/layers/{encode_path_param(layer_name)}/fonts/resolve", + method="POST", + json={ + "annotation": convert_and_respect_annotation_metadata( + object_=annotation, annotation=AnnotationRef, direction="write" + ), + "runs": convert_and_respect_annotation_metadata( + object_=runs, annotation=typing.Sequence[FontResolveRun], direction="write" + ), + }, + headers={ + "content-type": "application/json", + "X-Document-Password": str(document_password) if document_password is not None else None, + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + DocFontsResolve200Response, + parse_obj_as( + type_=DocFontsResolve200Response, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/cloudpdf/doc/forms/client.py b/src/cloudpdf/doc/forms/client.py index c67fac7..d2306e4 100644 --- a/src/cloudpdf/doc/forms/client.py +++ b/src/cloudpdf/doc/forms/client.py @@ -70,7 +70,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.forms.list( doc_id="docId", @@ -124,7 +123,6 @@ def reorder_calculations( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.forms.reorder_calculations( doc_id="docId", @@ -190,7 +188,6 @@ def set_value( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.forms.set_value( doc_id="docId", @@ -249,7 +246,6 @@ def reset( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.forms.reset( doc_id="docId", @@ -310,7 +306,6 @@ def delete_widget( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.forms.delete_widget( doc_id="docId", @@ -377,7 +372,6 @@ def update_widget( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.forms.update_widget( doc_id="docId", @@ -445,7 +439,6 @@ def reorder_widgets( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.forms.reorder_widgets( doc_id="docId", @@ -525,7 +518,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -587,7 +579,6 @@ async def reorder_calculations( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -661,7 +652,6 @@ async def set_value( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -728,7 +718,6 @@ async def reset( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -797,7 +786,6 @@ async def delete_widget( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -872,7 +860,6 @@ async def update_widget( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -948,7 +935,6 @@ async def reorder_widgets( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/metadata/client.py b/src/cloudpdf/doc/metadata/client.py index 6062e10..54ce4eb 100644 --- a/src/cloudpdf/doc/metadata/client.py +++ b/src/cloudpdf/doc/metadata/client.py @@ -62,7 +62,6 @@ def get( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.metadata.get( doc_id="docId", @@ -134,7 +133,6 @@ async def get( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/metadata/custom/client.py b/src/cloudpdf/doc/metadata/custom/client.py index 97a1a3a..7b91282 100644 --- a/src/cloudpdf/doc/metadata/custom/client.py +++ b/src/cloudpdf/doc/metadata/custom/client.py @@ -55,7 +55,6 @@ def get( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.metadata.custom.get( doc_id="docId", @@ -117,7 +116,6 @@ async def get( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/outline/client.py b/src/cloudpdf/doc/outline/client.py index afd4955..128fa01 100644 --- a/src/cloudpdf/doc/outline/client.py +++ b/src/cloudpdf/doc/outline/client.py @@ -55,7 +55,6 @@ def get( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.outline.get( doc_id="docId", @@ -117,7 +116,6 @@ async def get( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/pages/client.py b/src/cloudpdf/doc/pages/client.py index e1bc706..6e9115b 100644 --- a/src/cloudpdf/doc/pages/client.py +++ b/src/cloudpdf/doc/pages/client.py @@ -78,7 +78,6 @@ def set_scale( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.pages.set_scale( doc_id="docId", @@ -133,7 +132,6 @@ def viewports( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.pages.viewports( doc_id="docId", @@ -183,7 +181,6 @@ def extract( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.pages.extract( doc_id="docId", @@ -235,7 +232,6 @@ def flatten( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.pages.flatten( doc_id="docId", @@ -292,7 +288,6 @@ def set_name( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.pages.set_name( doc_id="docId", @@ -349,7 +344,6 @@ def remove_name( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.pages.remove_name( doc_id="docId", @@ -428,7 +422,6 @@ async def set_scale( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -491,7 +484,6 @@ async def viewports( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -549,7 +541,6 @@ async def extract( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -610,7 +601,6 @@ async def flatten( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -675,7 +665,6 @@ async def set_name( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -740,7 +729,6 @@ async def remove_name( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/redactions/client.py b/src/cloudpdf/doc/redactions/client.py index 03e21a4..2e21649 100644 --- a/src/cloudpdf/doc/redactions/client.py +++ b/src/cloudpdf/doc/redactions/client.py @@ -70,7 +70,6 @@ def apply( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.redactions.apply( doc_id="docId", @@ -148,7 +147,6 @@ async def apply( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/signatures/client.py b/src/cloudpdf/doc/signatures/client.py index f729fb9..ffa87ec 100644 --- a/src/cloudpdf/doc/signatures/client.py +++ b/src/cloudpdf/doc/signatures/client.py @@ -67,7 +67,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.list( doc_id="docId", @@ -114,7 +113,6 @@ def cancel( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.cancel( doc_id="docId", @@ -171,7 +169,6 @@ def complete( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.complete( doc_id="docId", @@ -238,7 +235,6 @@ def analysis( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.analysis( doc_id="docId", @@ -294,7 +290,6 @@ def prepare( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.signatures.prepare( doc_id="docId", @@ -358,7 +353,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -413,7 +407,6 @@ async def cancel( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -478,7 +471,6 @@ async def complete( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -553,7 +545,6 @@ async def analysis( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -617,7 +608,6 @@ async def prepare( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/doc/versions/client.py b/src/cloudpdf/doc/versions/client.py index 4759fa4..480c0fa 100644 --- a/src/cloudpdf/doc/versions/client.py +++ b/src/cloudpdf/doc/versions/client.py @@ -61,7 +61,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.versions.list( doc_id="docId", @@ -125,7 +124,6 @@ def analysis( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.versions.analysis( doc_id="docId", @@ -182,7 +180,6 @@ def download( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.versions.download( doc_id="docId", @@ -233,7 +230,6 @@ def revision( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.versions.revision( doc_id="docId", @@ -282,7 +278,6 @@ def signatures( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.versions.signatures( doc_id="docId", @@ -335,7 +330,6 @@ def signature_contents( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.versions.signature_contents( doc_id="docId", @@ -392,7 +386,6 @@ def signature_digest( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.doc.versions.signature_digest( doc_id="docId", @@ -465,7 +458,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -537,7 +529,6 @@ async def analysis( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -602,7 +593,6 @@ async def download( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -662,7 +652,6 @@ async def revision( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -720,7 +709,6 @@ async def signatures( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -781,7 +769,6 @@ async def signature_contents( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -847,7 +834,6 @@ async def signature_digest( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/documents/client.py b/src/cloudpdf/documents/client.py index b5ce5db..fed7935 100644 --- a/src/cloudpdf/documents/client.py +++ b/src/cloudpdf/documents/client.py @@ -99,7 +99,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.list( tenant_id="tenantId", @@ -142,7 +141,6 @@ def get( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.get( tenant_id="tenantId", @@ -173,7 +171,6 @@ def delete(self, tenant_id: str, id: str, *, request_options: typing.Optional[Re client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.delete( tenant_id="tenantId", @@ -212,7 +209,6 @@ def update( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.update( tenant_id="tenantId", @@ -227,6 +223,8 @@ def commit( self, tenant_id: str, id: str, *, sha256: str, request_options: typing.Optional[RequestOptions] = None ) -> DocumentsCommit200Response: """ + An upload token commits only the documents it started; any other document answers 404. + Parameters ---------- tenant_id : str @@ -249,7 +247,6 @@ def commit( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.commit( tenant_id="tenantId", @@ -284,7 +281,6 @@ def download( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.download( tenant_id="tenantId", @@ -318,7 +314,6 @@ def thumbnail( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.thumbnail( tenant_id="tenantId", @@ -332,7 +327,7 @@ def upload_proxy( self, tenant_id: str, id: str, *, file: core.File, request_options: typing.Optional[RequestOptions] = None ) -> DocumentsUploadProxy200Response: """ - 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. + 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. An upload token sends files only to the documents it started. Parameters ---------- @@ -357,7 +352,6 @@ def upload_proxy( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.upload_proxy( tenant_id="tenantId", @@ -429,7 +423,6 @@ def import_from( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.import_from( tenant_id="tenantId", @@ -470,6 +463,8 @@ def init( request_options: typing.Optional[RequestOptions] = None, ) -> DocumentsInit200Response: """ + With an upload token, the document goes into the token's folder with the token's metadata, whatever the request says; contentLength must be within the token's maxBytes, and the token makes at most maxFiles documents (403 after). docId, idempotencyKey and dedupMode reuse-existing are refused (400): each could reach a document the token didn't make. + Parameters ---------- tenant_id : str @@ -511,7 +506,6 @@ def init( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.init( tenant_id="tenantId", @@ -614,7 +608,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -665,7 +658,6 @@ async def get( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -704,7 +696,6 @@ async def delete(self, tenant_id: str, id: str, *, request_options: typing.Optio client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -751,7 +742,6 @@ async def update( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -772,6 +762,8 @@ async def commit( self, tenant_id: str, id: str, *, sha256: str, request_options: typing.Optional[RequestOptions] = None ) -> DocumentsCommit200Response: """ + An upload token commits only the documents it started; any other document answers 404. + Parameters ---------- tenant_id : str @@ -796,7 +788,6 @@ async def commit( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -839,7 +830,6 @@ async def download( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -882,7 +872,6 @@ async def thumbnail( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -903,7 +892,7 @@ async def upload_proxy( self, tenant_id: str, id: str, *, file: core.File, request_options: typing.Optional[RequestOptions] = None ) -> DocumentsUploadProxy200Response: """ - 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. + 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. An upload token sends files only to the documents it started. Parameters ---------- @@ -930,7 +919,6 @@ async def upload_proxy( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -1010,7 +998,6 @@ async def import_from( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -1057,6 +1044,8 @@ async def init( request_options: typing.Optional[RequestOptions] = None, ) -> DocumentsInit200Response: """ + With an upload token, the document goes into the token's folder with the token's metadata, whatever the request says; contentLength must be within the token's maxBytes, and the token makes at most maxFiles documents (403 after). docId, idempotencyKey and dedupMode reuse-existing are refused (400): each could reach a document the token didn't make. + Parameters ---------- tenant_id : str @@ -1100,7 +1089,6 @@ async def init( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/documents/layers/client.py b/src/cloudpdf/documents/layers/client.py index 6732ae5..e5f0ba6 100644 --- a/src/cloudpdf/documents/layers/client.py +++ b/src/cloudpdf/documents/layers/client.py @@ -60,7 +60,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.layers.list( tenant_id="tenantId", @@ -97,7 +96,6 @@ def delete( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.documents.layers.delete( tenant_id="tenantId", @@ -163,7 +161,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -208,7 +205,6 @@ async def delete( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/documents/raw_client.py b/src/cloudpdf/documents/raw_client.py index 721849b..2046bd1 100644 --- a/src/cloudpdf/documents/raw_client.py +++ b/src/cloudpdf/documents/raw_client.py @@ -345,6 +345,8 @@ def commit( self, tenant_id: str, id: str, *, sha256: str, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[DocumentsCommit200Response]: """ + An upload token commits only the documents it started; any other document answers 404. + Parameters ---------- tenant_id : str @@ -549,7 +551,7 @@ def upload_proxy( self, tenant_id: str, id: str, *, file: core.File, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[DocumentsUploadProxy200Response]: """ - 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. + 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. An upload token sends files only to the documents it started. Parameters ---------- @@ -600,6 +602,17 @@ def upload_proxy( ), ), ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 409: raise ConflictError( headers=dict(_response.headers), @@ -768,6 +781,8 @@ def init( request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[DocumentsInit200Response]: """ + With an upload token, the document goes into the token's folder with the token's metadata, whatever the request says; contentLength must be within the token's maxBytes, and the token makes at most maxFiles documents (403 after). docId, idempotencyKey and dedupMode reuse-existing are refused (400): each could reach a document the token didn't make. + Parameters ---------- tenant_id : str @@ -845,6 +860,17 @@ def init( ), ), ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -1159,6 +1185,8 @@ async def commit( self, tenant_id: str, id: str, *, sha256: str, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[DocumentsCommit200Response]: """ + An upload token commits only the documents it started; any other document answers 404. + Parameters ---------- tenant_id : str @@ -1365,7 +1393,7 @@ async def upload_proxy( self, tenant_id: str, id: str, *, file: core.File, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[DocumentsUploadProxy200Response]: """ - 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. + 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. An upload token sends files only to the documents it started. Parameters ---------- @@ -1416,6 +1444,17 @@ async def upload_proxy( ), ), ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 409: raise ConflictError( headers=dict(_response.headers), @@ -1584,6 +1623,8 @@ async def init( request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[DocumentsInit200Response]: """ + With an upload token, the document goes into the token's folder with the token's metadata, whatever the request says; contentLength must be within the token's maxBytes, and the token makes at most maxFiles documents (403 after). docId, idempotencyKey and dedupMode reuse-existing are refused (400): each could reach a document the token didn't make. + Parameters ---------- tenant_id : str @@ -1661,6 +1702,17 @@ async def init( ), ), ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) diff --git a/src/cloudpdf/environment.py b/src/cloudpdf/environment.py new file mode 100644 index 0000000..f59699d --- /dev/null +++ b/src/cloudpdf/environment.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum + + +class CloudPDFEnvironment(enum.Enum): + SAAS = "https://engine.cloudpdf.com" diff --git a/src/cloudpdf/folders/client.py b/src/cloudpdf/folders/client.py index 4caace4..133b142 100644 --- a/src/cloudpdf/folders/client.py +++ b/src/cloudpdf/folders/client.py @@ -64,7 +64,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.folders.list( tenant_id="tenantId", @@ -110,7 +109,6 @@ def create( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.folders.create( tenant_id="tenantId", @@ -144,7 +142,6 @@ def get( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.folders.get( tenant_id="tenantId", @@ -187,7 +184,6 @@ def delete( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.folders.delete( tenant_id="tenantId", @@ -226,7 +222,6 @@ def update( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.folders.update( tenant_id="tenantId", @@ -273,7 +268,6 @@ def move_into( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.folders.move_into( tenant_id="tenantId", @@ -338,7 +332,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -392,7 +385,6 @@ async def create( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -436,7 +428,6 @@ async def get( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -487,7 +478,6 @@ async def delete( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -536,7 +526,6 @@ async def update( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -591,7 +580,6 @@ async def move_into( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/grants/client.py b/src/cloudpdf/grants/client.py index 2de9e0b..d022154 100644 --- a/src/cloudpdf/grants/client.py +++ b/src/cloudpdf/grants/client.py @@ -82,7 +82,6 @@ def exchange( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.exchange( grant="grant", @@ -135,7 +134,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.list( tenant_id="tenantId", @@ -166,7 +164,7 @@ def create( request_options: typing.Optional[RequestOptions] = None, ) -> GrantsCreate200Response: """ - The returned id is what a link page or an embed opens. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. + The returned id is what a link page or an embed opens. Its scope gives only document permissions the caller holds itself, as tokens.issue does. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. Parameters ---------- @@ -212,7 +210,6 @@ def create( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.create( tenant_id="tenantId", @@ -263,7 +260,6 @@ def get( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.get( tenant_id="tenantId", @@ -294,7 +290,6 @@ def delete(self, tenant_id: str, grant_id: str, *, request_options: typing.Optio client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.delete( tenant_id="tenantId", @@ -371,7 +366,6 @@ def update( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.update( tenant_id="tenantId", @@ -424,7 +418,6 @@ def archive( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.archive( tenant_id="tenantId", @@ -501,7 +494,6 @@ async def exchange( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -562,7 +554,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -599,7 +590,7 @@ async def create( request_options: typing.Optional[RequestOptions] = None, ) -> GrantsCreate200Response: """ - The returned id is what a link page or an embed opens. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. + The returned id is what a link page or an embed opens. Its scope gives only document permissions the caller holds itself, as tokens.issue does. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. Parameters ---------- @@ -647,7 +638,6 @@ async def create( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -706,7 +696,6 @@ async def get( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -747,7 +736,6 @@ async def delete( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -832,7 +820,6 @@ async def update( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -893,7 +880,6 @@ async def archive( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/grants/raw_client.py b/src/cloudpdf/grants/raw_client.py index 34e6f99..cdea14c 100644 --- a/src/cloudpdf/grants/raw_client.py +++ b/src/cloudpdf/grants/raw_client.py @@ -258,7 +258,7 @@ def create( request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[GrantsCreate200Response]: """ - The returned id is what a link page or an embed opens. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. + The returned id is what a link page or an embed opens. Its scope gives only document permissions the caller holds itself, as tokens.issue does. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. Parameters ---------- @@ -601,6 +601,17 @@ def update( ), ), ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 404: raise NotFoundError( headers=dict(_response.headers), @@ -909,7 +920,7 @@ async def create( request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[GrantsCreate200Response]: """ - The returned id is what a link page or an embed opens. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. + The returned id is what a link page or an embed opens. Its scope gives only document permissions the caller holds itself, as tokens.issue does. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. Parameters ---------- @@ -1252,6 +1263,17 @@ async def update( ), ), ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 404: raise NotFoundError( headers=dict(_response.headers), diff --git a/src/cloudpdf/grants/visitors/client.py b/src/cloudpdf/grants/visitors/client.py index 625bf19..a229f4c 100644 --- a/src/cloudpdf/grants/visitors/client.py +++ b/src/cloudpdf/grants/visitors/client.py @@ -59,7 +59,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.visitors.list( tenant_id="tenantId", @@ -98,7 +97,6 @@ def delete( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.grants.visitors.delete( tenant_id="tenantId", @@ -163,7 +161,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -210,7 +207,6 @@ async def delete( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/tenants/client.py b/src/cloudpdf/tenants/client.py index ad95ca4..1428534 100644 --- a/src/cloudpdf/tenants/client.py +++ b/src/cloudpdf/tenants/client.py @@ -57,7 +57,6 @@ def list( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tenants.list() """ @@ -88,7 +87,6 @@ def create( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tenants.create( id="id", @@ -117,7 +115,6 @@ def get(self, tenant_id: str, *, request_options: typing.Optional[RequestOptions client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tenants.get( tenant_id="tenantId", @@ -147,7 +144,6 @@ def delete(self, tenant_id: str, *, request_options: typing.Optional[RequestOpti client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tenants.delete( tenant_id="tenantId", @@ -175,7 +171,6 @@ def resume(self, tenant_id: str, *, request_options: typing.Optional[RequestOpti client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tenants.resume( tenant_id="tenantId", @@ -213,7 +208,6 @@ def suspend( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tenants.suspend( tenant_id="tenantId", @@ -252,7 +246,6 @@ def usage( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tenants.usage( tenant_id="tenantId", @@ -307,7 +300,6 @@ async def list( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -346,7 +338,6 @@ async def create( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -385,7 +376,6 @@ async def get( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -423,7 +413,6 @@ async def delete(self, tenant_id: str, *, request_options: typing.Optional[Reque client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -459,7 +448,6 @@ async def resume(self, tenant_id: str, *, request_options: typing.Optional[Reque client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -505,7 +493,6 @@ async def suspend( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -552,7 +539,6 @@ async def usage( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/tokens/client.py b/src/cloudpdf/tokens/client.py index fbc025a..2d8824c 100644 --- a/src/cloudpdf/tokens/client.py +++ b/src/cloudpdf/tokens/client.py @@ -31,7 +31,7 @@ def issue( self, tenant_id: str, *, request: TokensIssueRequest, request_options: typing.Optional[RequestOptions] = None ) -> TokensIssue200Response: """ - 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. + Authority mints only downward: kind "doc" gives only document permissions the caller holds itself, kind "tenant" requires the API token, and kind "upload" requires docs.create instead of tokens.issue-doc, since an upload token can do only what docs.create allows. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key. Parameters ---------- @@ -53,7 +53,6 @@ def issue( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tokens.issue( tenant_id="tenantId", @@ -103,7 +102,6 @@ def revoke( client = CloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) client.tokens.revoke( tenant_id="tenantId", @@ -135,7 +133,7 @@ async def issue( self, tenant_id: str, *, request: TokensIssueRequest, request_options: typing.Optional[RequestOptions] = None ) -> TokensIssue200Response: """ - 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. + Authority mints only downward: kind "doc" gives only document permissions the caller holds itself, kind "tenant" requires the API token, and kind "upload" requires docs.create instead of tokens.issue-doc, since an upload token can do only what docs.create allows. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key. Parameters ---------- @@ -159,7 +157,6 @@ async def issue( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) @@ -217,7 +214,6 @@ async def revoke( client = AsyncCloudPDFClient( token="YOUR_TOKEN", - base_url="https://yourhost.com/path/to/api", ) diff --git a/src/cloudpdf/tokens/raw_client.py b/src/cloudpdf/tokens/raw_client.py index d861831..7732380 100644 --- a/src/cloudpdf/tokens/raw_client.py +++ b/src/cloudpdf/tokens/raw_client.py @@ -30,7 +30,7 @@ def issue( self, tenant_id: str, *, request: TokensIssueRequest, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[TokensIssue200Response]: """ - 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. + Authority mints only downward: kind "doc" gives only document permissions the caller holds itself, kind "tenant" requires the API token, and kind "upload" requires docs.create instead of tokens.issue-doc, since an upload token can do only what docs.create allows. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key. Parameters ---------- @@ -184,7 +184,7 @@ async def issue( self, tenant_id: str, *, request: TokensIssueRequest, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[TokensIssue200Response]: """ - 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. + Authority mints only downward: kind "doc" gives only document permissions the caller holds itself, kind "tenant" requires the API token, and kind "upload" requires docs.create instead of tokens.issue-doc, since an upload token can do only what docs.create allows. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key. Parameters ---------- diff --git a/src/cloudpdf/types/__init__.py b/src/cloudpdf/types/__init__.py index 00497a5..ff10871 100644 --- a/src/cloudpdf/types/__init__.py +++ b/src/cloudpdf/types/__init__.py @@ -1262,6 +1262,7 @@ ChangeItem_OutlineMove, ChangeItem_OutlineRestore, ChangeItem_OutlineUpdate, + ChangeItem_PagesCopy, ChangeItem_PagesDelete, ChangeItem_PagesInsert, ChangeItem_PagesInsertBlank, @@ -1305,8 +1306,40 @@ from .change_item_outline_move import ChangeItemOutlineMove from .change_item_outline_restore import ChangeItemOutlineRestore from .change_item_outline_update import ChangeItemOutlineUpdate + from .change_item_pages_copy import ChangeItemPagesCopy + from .change_item_pages_copy_layout import ChangeItemPagesCopyLayout + from .change_item_pages_copy_layout_labels_item import ChangeItemPagesCopyLayoutLabelsItem + from .change_item_pages_copy_layout_labels_item_style import ChangeItemPagesCopyLayoutLabelsItemStyle + from .change_item_pages_copy_layout_named_pages_item import ChangeItemPagesCopyLayoutNamedPagesItem + from .change_item_pages_copy_layout_named_pages_item_target import ( + ChangeItemPagesCopyLayoutNamedPagesItemTarget, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template, + ) + from .change_item_pages_copy_layout_named_pages_item_target_dangling import ( + ChangeItemPagesCopyLayoutNamedPagesItemTargetDangling, + ) + from .change_item_pages_copy_layout_named_pages_item_target_page import ( + ChangeItemPagesCopyLayoutNamedPagesItemTargetPage, + ) + from .change_item_pages_copy_layout_named_pages_item_target_template import ( + ChangeItemPagesCopyLayoutNamedPagesItemTargetTemplate, + ) + from .change_item_pages_copy_layout_pages_item import ChangeItemPagesCopyLayoutPagesItem + from .change_item_pages_copy_layout_pages_item_boxes import ChangeItemPagesCopyLayoutPagesItemBoxes + from .change_item_pages_copy_layout_pages_item_boxes_art import ChangeItemPagesCopyLayoutPagesItemBoxesArt + from .change_item_pages_copy_layout_pages_item_boxes_bleed import ChangeItemPagesCopyLayoutPagesItemBoxesBleed + from .change_item_pages_copy_layout_pages_item_boxes_crop import ChangeItemPagesCopyLayoutPagesItemBoxesCrop + from .change_item_pages_copy_layout_pages_item_boxes_media import ChangeItemPagesCopyLayoutPagesItemBoxesMedia + from .change_item_pages_copy_layout_pages_item_boxes_trim import ChangeItemPagesCopyLayoutPagesItemBoxesTrim + from .change_item_pages_copy_layout_pages_item_pdf_crop_box import ChangeItemPagesCopyLayoutPagesItemPdfCropBox + from .change_item_pages_copy_layout_pages_item_size import ChangeItemPagesCopyLayoutPagesItemSize + from .change_item_pages_copy_layout_pages_item_tab_order import ChangeItemPagesCopyLayoutPagesItemTabOrder from .change_item_pages_delete import ChangeItemPagesDelete from .change_item_pages_delete_layout import ChangeItemPagesDeleteLayout + from .change_item_pages_delete_layout_labels_item import ChangeItemPagesDeleteLayoutLabelsItem + from .change_item_pages_delete_layout_labels_item_style import ChangeItemPagesDeleteLayoutLabelsItemStyle from .change_item_pages_delete_layout_named_pages_item import ChangeItemPagesDeleteLayoutNamedPagesItem from .change_item_pages_delete_layout_named_pages_item_target import ( ChangeItemPagesDeleteLayoutNamedPagesItemTarget, @@ -1336,6 +1369,8 @@ from .change_item_pages_insert import ChangeItemPagesInsert from .change_item_pages_insert_blank import ChangeItemPagesInsertBlank from .change_item_pages_insert_blank_layout import ChangeItemPagesInsertBlankLayout + from .change_item_pages_insert_blank_layout_labels_item import ChangeItemPagesInsertBlankLayoutLabelsItem + from .change_item_pages_insert_blank_layout_labels_item_style import ChangeItemPagesInsertBlankLayoutLabelsItemStyle from .change_item_pages_insert_blank_layout_named_pages_item import ChangeItemPagesInsertBlankLayoutNamedPagesItem from .change_item_pages_insert_blank_layout_named_pages_item_target import ( ChangeItemPagesInsertBlankLayoutNamedPagesItemTarget, @@ -1377,6 +1412,8 @@ ChangeItemPagesInsertBlankLayoutPagesItemTabOrder, ) from .change_item_pages_insert_layout import ChangeItemPagesInsertLayout + from .change_item_pages_insert_layout_labels_item import ChangeItemPagesInsertLayoutLabelsItem + from .change_item_pages_insert_layout_labels_item_style import ChangeItemPagesInsertLayoutLabelsItemStyle from .change_item_pages_insert_layout_named_pages_item import ChangeItemPagesInsertLayoutNamedPagesItem from .change_item_pages_insert_layout_named_pages_item_target import ( ChangeItemPagesInsertLayoutNamedPagesItemTarget, @@ -1405,6 +1442,8 @@ from .change_item_pages_insert_layout_pages_item_tab_order import ChangeItemPagesInsertLayoutPagesItemTabOrder from .change_item_pages_reorder import ChangeItemPagesReorder from .change_item_pages_reorder_layout import ChangeItemPagesReorderLayout + from .change_item_pages_reorder_layout_labels_item import ChangeItemPagesReorderLayoutLabelsItem + from .change_item_pages_reorder_layout_labels_item_style import ChangeItemPagesReorderLayoutLabelsItemStyle from .change_item_pages_reorder_layout_named_pages_item import ChangeItemPagesReorderLayoutNamedPagesItem from .change_item_pages_reorder_layout_named_pages_item_target import ( ChangeItemPagesReorderLayoutNamedPagesItemTarget, @@ -1435,6 +1474,8 @@ from .change_item_pages_reorder_layout_pages_item_tab_order import ChangeItemPagesReorderLayoutPagesItemTabOrder from .change_item_pages_restore import ChangeItemPagesRestore from .change_item_pages_restore_layout import ChangeItemPagesRestoreLayout + from .change_item_pages_restore_layout_labels_item import ChangeItemPagesRestoreLayoutLabelsItem + from .change_item_pages_restore_layout_labels_item_style import ChangeItemPagesRestoreLayoutLabelsItemStyle from .change_item_pages_restore_layout_named_pages_item import ChangeItemPagesRestoreLayoutNamedPagesItem from .change_item_pages_restore_layout_named_pages_item_target import ( ChangeItemPagesRestoreLayoutNamedPagesItemTarget, @@ -1465,6 +1506,8 @@ from .change_item_pages_restore_layout_pages_item_tab_order import ChangeItemPagesRestoreLayoutPagesItemTabOrder from .change_item_pages_rotate import ChangeItemPagesRotate from .change_item_pages_rotate_layout import ChangeItemPagesRotateLayout + from .change_item_pages_rotate_layout_labels_item import ChangeItemPagesRotateLayoutLabelsItem + from .change_item_pages_rotate_layout_labels_item_style import ChangeItemPagesRotateLayoutLabelsItemStyle from .change_item_pages_rotate_layout_named_pages_item import ChangeItemPagesRotateLayoutNamedPagesItem from .change_item_pages_rotate_layout_named_pages_item_target import ( ChangeItemPagesRotateLayoutNamedPagesItemTarget, @@ -1521,6 +1564,7 @@ ChangeOp_OutlineDelete, ChangeOp_OutlineMove, ChangeOp_OutlineUpdate, + ChangeOp_PagesCopy, ChangeOp_PagesDelete, ChangeOp_PagesInsert, ChangeOp_PagesInsertBlank, @@ -1558,6 +1602,7 @@ from .change_op_outline_delete import ChangeOpOutlineDelete from .change_op_outline_move import ChangeOpOutlineMove from .change_op_outline_update import ChangeOpOutlineUpdate + from .change_op_pages_copy import ChangeOpPagesCopy from .change_op_pages_delete import ChangeOpPagesDelete from .change_op_pages_insert import ChangeOpPagesInsert from .change_op_pages_insert_blank import ChangeOpPagesInsertBlank @@ -1626,6 +1671,16 @@ from .doc_download_link404response import DocDownloadLink404Response from .doc_download_link501response import DocDownloadLink501Response from .doc_download_response import DocDownloadResponse + from .doc_fonts_list200response import DocFontsList200Response + from .doc_fonts_list404response import DocFontsList404Response + from .doc_fonts_programs_download403response import DocFontsProgramsDownload403Response + from .doc_fonts_programs_download404response import DocFontsProgramsDownload404Response + from .doc_fonts_programs_get200response import DocFontsProgramsGet200Response + from .doc_fonts_programs_get404response import DocFontsProgramsGet404Response + from .doc_fonts_resolve200response import DocFontsResolve200Response + from .doc_fonts_resolve400response import DocFontsResolve400Response + from .doc_fonts_resolve404response import DocFontsResolve404Response + from .doc_fonts_resolve_request import DocFontsResolveRequest from .doc_forms_delete_widget200response import DocFormsDeleteWidget200Response from .doc_forms_delete_widget400response import DocFormsDeleteWidget400Response from .doc_forms_delete_widget404response import DocFormsDeleteWidget404Response @@ -1704,6 +1759,10 @@ from .doc_pages_flatten_request import DocPagesFlattenRequest from .doc_pages_remove_name200response import DocPagesRemoveName200Response from .doc_pages_remove_name200response_layout import DocPagesRemoveName200ResponseLayout + from .doc_pages_remove_name200response_layout_labels_item import DocPagesRemoveName200ResponseLayoutLabelsItem + from .doc_pages_remove_name200response_layout_labels_item_style import ( + DocPagesRemoveName200ResponseLayoutLabelsItemStyle, + ) from .doc_pages_remove_name200response_layout_named_pages_item import ( DocPagesRemoveName200ResponseLayoutNamedPagesItem, ) @@ -1755,6 +1814,8 @@ from .doc_pages_remove_name_request import DocPagesRemoveNameRequest from .doc_pages_set_name200response import DocPagesSetName200Response from .doc_pages_set_name200response_layout import DocPagesSetName200ResponseLayout + from .doc_pages_set_name200response_layout_labels_item import DocPagesSetName200ResponseLayoutLabelsItem + from .doc_pages_set_name200response_layout_labels_item_style import DocPagesSetName200ResponseLayoutLabelsItemStyle from .doc_pages_set_name200response_layout_named_pages_item import DocPagesSetName200ResponseLayoutNamedPagesItem from .doc_pages_set_name200response_layout_named_pages_item_target import ( DocPagesSetName200ResponseLayoutNamedPagesItemTarget, @@ -2180,6 +2241,7 @@ ) from .documents_init200response_resumed_upload_proxy import DocumentsInit200ResponseResumedUploadProxy from .documents_init400response import DocumentsInit400Response + from .documents_init403response import DocumentsInit403Response from .documents_layers_delete403response import DocumentsLayersDelete403Response from .documents_layers_delete404response import DocumentsLayersDelete404Response from .documents_layers_delete409response import DocumentsLayersDelete409Response @@ -2206,6 +2268,7 @@ from .documents_update404response import DocumentsUpdate404Response from .documents_upload_proxy200response import DocumentsUploadProxy200Response from .documents_upload_proxy400response import DocumentsUploadProxy400Response + from .documents_upload_proxy404response import DocumentsUploadProxy404Response from .documents_upload_proxy409response import DocumentsUploadProxy409Response from .engine_error_payload import EngineErrorPayload from .engine_error_payload_code import EngineErrorPayloadCode @@ -2245,6 +2308,22 @@ from .folders_update403response import FoldersUpdate403Response from .folders_update404response import FoldersUpdate404Response from .folders_update409response import FoldersUpdate409Response + from .font import Font + from .font_list import FontList + from .font_program import FontProgram + from .font_program_embedded import FontProgramEmbedded + from .font_program_embedding_permission import FontProgramEmbeddingPermission + from .font_program_format import FontProgramFormat + from .font_program_info import FontProgramInfo + from .font_program_info_covers_item import FontProgramInfoCoversItem + from .font_program_info_embedded import FontProgramInfoEmbedded + from .font_program_info_embedding_permission import FontProgramInfoEmbeddingPermission + from .font_program_info_format import FontProgramInfoFormat + from .font_resolution import FontResolution + from .font_resolve_request import FontResolveRequest + from .font_resolve_run import FontResolveRun + from .font_restrictions_item import FontRestrictionsItem + from .font_source import FontSource from .form_field import ( FormField, FormField_Checkbox, @@ -2638,6 +2717,7 @@ GrantsUpdate200ResponseGrantVisitorIdentityFieldsTitle, ) from .grants_update400response import GrantsUpdate400Response + from .grants_update403response import GrantsUpdate403Response from .grants_update404response import GrantsUpdate404Response from .grants_update409response import GrantsUpdate409Response from .grants_visitors_delete_response import GrantsVisitorsDeleteResponse @@ -2782,6 +2862,7 @@ from .pdf_link_target_writable_named_name import PdfLinkTargetWritableNamedName from .pdf_link_target_writable_uri import PdfLinkTargetWritableUri from .pdf_page_actions import PdfPageActions + from .resolved_font_run import ResolvedFontRun from .tenants_create200response import TenantsCreate200Response from .tenants_create200response_tenant import TenantsCreate200ResponseTenant from .tenants_create200response_tenant_status import TenantsCreate200ResponseTenantStatus @@ -2805,9 +2886,15 @@ from .tokens_issue400response import TokensIssue400Response from .tokens_issue403response import TokensIssue403Response from .tokens_issue404response import TokensIssue404Response - from .tokens_issue_request import TokensIssueRequest, TokensIssueRequest_Doc, TokensIssueRequest_Tenant + from .tokens_issue_request import ( + TokensIssueRequest, + TokensIssueRequest_Doc, + TokensIssueRequest_Tenant, + TokensIssueRequest_Upload, + ) from .tokens_issue_request_doc import TokensIssueRequestDoc from .tokens_issue_request_tenant import TokensIssueRequestTenant + from .tokens_issue_request_upload import TokensIssueRequestUpload from .tokens_revoke_response import TokensRevokeResponse from .widget_actions_patch import WidgetActionsPatch from .widget_annotation import WidgetAnnotation @@ -3762,8 +3849,32 @@ "ChangeItemOutlineMove": ".change_item_outline_move", "ChangeItemOutlineRestore": ".change_item_outline_restore", "ChangeItemOutlineUpdate": ".change_item_outline_update", + "ChangeItemPagesCopy": ".change_item_pages_copy", + "ChangeItemPagesCopyLayout": ".change_item_pages_copy_layout", + "ChangeItemPagesCopyLayoutLabelsItem": ".change_item_pages_copy_layout_labels_item", + "ChangeItemPagesCopyLayoutLabelsItemStyle": ".change_item_pages_copy_layout_labels_item_style", + "ChangeItemPagesCopyLayoutNamedPagesItem": ".change_item_pages_copy_layout_named_pages_item", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget": ".change_item_pages_copy_layout_named_pages_item_target", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetDangling": ".change_item_pages_copy_layout_named_pages_item_target_dangling", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetPage": ".change_item_pages_copy_layout_named_pages_item_target_page", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetTemplate": ".change_item_pages_copy_layout_named_pages_item_target_template", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling": ".change_item_pages_copy_layout_named_pages_item_target", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page": ".change_item_pages_copy_layout_named_pages_item_target", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template": ".change_item_pages_copy_layout_named_pages_item_target", + "ChangeItemPagesCopyLayoutPagesItem": ".change_item_pages_copy_layout_pages_item", + "ChangeItemPagesCopyLayoutPagesItemBoxes": ".change_item_pages_copy_layout_pages_item_boxes", + "ChangeItemPagesCopyLayoutPagesItemBoxesArt": ".change_item_pages_copy_layout_pages_item_boxes_art", + "ChangeItemPagesCopyLayoutPagesItemBoxesBleed": ".change_item_pages_copy_layout_pages_item_boxes_bleed", + "ChangeItemPagesCopyLayoutPagesItemBoxesCrop": ".change_item_pages_copy_layout_pages_item_boxes_crop", + "ChangeItemPagesCopyLayoutPagesItemBoxesMedia": ".change_item_pages_copy_layout_pages_item_boxes_media", + "ChangeItemPagesCopyLayoutPagesItemBoxesTrim": ".change_item_pages_copy_layout_pages_item_boxes_trim", + "ChangeItemPagesCopyLayoutPagesItemPdfCropBox": ".change_item_pages_copy_layout_pages_item_pdf_crop_box", + "ChangeItemPagesCopyLayoutPagesItemSize": ".change_item_pages_copy_layout_pages_item_size", + "ChangeItemPagesCopyLayoutPagesItemTabOrder": ".change_item_pages_copy_layout_pages_item_tab_order", "ChangeItemPagesDelete": ".change_item_pages_delete", "ChangeItemPagesDeleteLayout": ".change_item_pages_delete_layout", + "ChangeItemPagesDeleteLayoutLabelsItem": ".change_item_pages_delete_layout_labels_item", + "ChangeItemPagesDeleteLayoutLabelsItemStyle": ".change_item_pages_delete_layout_labels_item_style", "ChangeItemPagesDeleteLayoutNamedPagesItem": ".change_item_pages_delete_layout_named_pages_item", "ChangeItemPagesDeleteLayoutNamedPagesItemTarget": ".change_item_pages_delete_layout_named_pages_item_target", "ChangeItemPagesDeleteLayoutNamedPagesItemTargetDangling": ".change_item_pages_delete_layout_named_pages_item_target_dangling", @@ -3785,6 +3896,8 @@ "ChangeItemPagesInsert": ".change_item_pages_insert", "ChangeItemPagesInsertBlank": ".change_item_pages_insert_blank", "ChangeItemPagesInsertBlankLayout": ".change_item_pages_insert_blank_layout", + "ChangeItemPagesInsertBlankLayoutLabelsItem": ".change_item_pages_insert_blank_layout_labels_item", + "ChangeItemPagesInsertBlankLayoutLabelsItemStyle": ".change_item_pages_insert_blank_layout_labels_item_style", "ChangeItemPagesInsertBlankLayoutNamedPagesItem": ".change_item_pages_insert_blank_layout_named_pages_item", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTarget": ".change_item_pages_insert_blank_layout_named_pages_item_target", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTargetDangling": ".change_item_pages_insert_blank_layout_named_pages_item_target_dangling", @@ -3804,6 +3917,8 @@ "ChangeItemPagesInsertBlankLayoutPagesItemSize": ".change_item_pages_insert_blank_layout_pages_item_size", "ChangeItemPagesInsertBlankLayoutPagesItemTabOrder": ".change_item_pages_insert_blank_layout_pages_item_tab_order", "ChangeItemPagesInsertLayout": ".change_item_pages_insert_layout", + "ChangeItemPagesInsertLayoutLabelsItem": ".change_item_pages_insert_layout_labels_item", + "ChangeItemPagesInsertLayoutLabelsItemStyle": ".change_item_pages_insert_layout_labels_item_style", "ChangeItemPagesInsertLayoutNamedPagesItem": ".change_item_pages_insert_layout_named_pages_item", "ChangeItemPagesInsertLayoutNamedPagesItemTarget": ".change_item_pages_insert_layout_named_pages_item_target", "ChangeItemPagesInsertLayoutNamedPagesItemTargetDangling": ".change_item_pages_insert_layout_named_pages_item_target_dangling", @@ -3824,6 +3939,8 @@ "ChangeItemPagesInsertLayoutPagesItemTabOrder": ".change_item_pages_insert_layout_pages_item_tab_order", "ChangeItemPagesReorder": ".change_item_pages_reorder", "ChangeItemPagesReorderLayout": ".change_item_pages_reorder_layout", + "ChangeItemPagesReorderLayoutLabelsItem": ".change_item_pages_reorder_layout_labels_item", + "ChangeItemPagesReorderLayoutLabelsItemStyle": ".change_item_pages_reorder_layout_labels_item_style", "ChangeItemPagesReorderLayoutNamedPagesItem": ".change_item_pages_reorder_layout_named_pages_item", "ChangeItemPagesReorderLayoutNamedPagesItemTarget": ".change_item_pages_reorder_layout_named_pages_item_target", "ChangeItemPagesReorderLayoutNamedPagesItemTargetDangling": ".change_item_pages_reorder_layout_named_pages_item_target_dangling", @@ -3844,6 +3961,8 @@ "ChangeItemPagesReorderLayoutPagesItemTabOrder": ".change_item_pages_reorder_layout_pages_item_tab_order", "ChangeItemPagesRestore": ".change_item_pages_restore", "ChangeItemPagesRestoreLayout": ".change_item_pages_restore_layout", + "ChangeItemPagesRestoreLayoutLabelsItem": ".change_item_pages_restore_layout_labels_item", + "ChangeItemPagesRestoreLayoutLabelsItemStyle": ".change_item_pages_restore_layout_labels_item_style", "ChangeItemPagesRestoreLayoutNamedPagesItem": ".change_item_pages_restore_layout_named_pages_item", "ChangeItemPagesRestoreLayoutNamedPagesItemTarget": ".change_item_pages_restore_layout_named_pages_item_target", "ChangeItemPagesRestoreLayoutNamedPagesItemTargetDangling": ".change_item_pages_restore_layout_named_pages_item_target_dangling", @@ -3864,6 +3983,8 @@ "ChangeItemPagesRestoreLayoutPagesItemTabOrder": ".change_item_pages_restore_layout_pages_item_tab_order", "ChangeItemPagesRotate": ".change_item_pages_rotate", "ChangeItemPagesRotateLayout": ".change_item_pages_rotate_layout", + "ChangeItemPagesRotateLayoutLabelsItem": ".change_item_pages_rotate_layout_labels_item", + "ChangeItemPagesRotateLayoutLabelsItemStyle": ".change_item_pages_rotate_layout_labels_item_style", "ChangeItemPagesRotateLayoutNamedPagesItem": ".change_item_pages_rotate_layout_named_pages_item", "ChangeItemPagesRotateLayoutNamedPagesItemTarget": ".change_item_pages_rotate_layout_named_pages_item_target", "ChangeItemPagesRotateLayoutNamedPagesItemTargetDangling": ".change_item_pages_rotate_layout_named_pages_item_target_dangling", @@ -3915,6 +4036,7 @@ "ChangeItem_OutlineMove": ".change_item", "ChangeItem_OutlineRestore": ".change_item", "ChangeItem_OutlineUpdate": ".change_item", + "ChangeItem_PagesCopy": ".change_item", "ChangeItem_PagesDelete": ".change_item", "ChangeItem_PagesInsert": ".change_item", "ChangeItem_PagesInsertBlank": ".change_item", @@ -3954,6 +4076,7 @@ "ChangeOpOutlineDelete": ".change_op_outline_delete", "ChangeOpOutlineMove": ".change_op_outline_move", "ChangeOpOutlineUpdate": ".change_op_outline_update", + "ChangeOpPagesCopy": ".change_op_pages_copy", "ChangeOpPagesDelete": ".change_op_pages_delete", "ChangeOpPagesInsert": ".change_op_pages_insert", "ChangeOpPagesInsertBlank": ".change_op_pages_insert_blank", @@ -3988,6 +4111,7 @@ "ChangeOp_OutlineDelete": ".change_op", "ChangeOp_OutlineMove": ".change_op", "ChangeOp_OutlineUpdate": ".change_op", + "ChangeOp_PagesCopy": ".change_op", "ChangeOp_PagesDelete": ".change_op", "ChangeOp_PagesInsert": ".change_op", "ChangeOp_PagesInsertBlank": ".change_op", @@ -4049,6 +4173,16 @@ "DocDownloadLink404Response": ".doc_download_link404response", "DocDownloadLink501Response": ".doc_download_link501response", "DocDownloadResponse": ".doc_download_response", + "DocFontsList200Response": ".doc_fonts_list200response", + "DocFontsList404Response": ".doc_fonts_list404response", + "DocFontsProgramsDownload403Response": ".doc_fonts_programs_download403response", + "DocFontsProgramsDownload404Response": ".doc_fonts_programs_download404response", + "DocFontsProgramsGet200Response": ".doc_fonts_programs_get200response", + "DocFontsProgramsGet404Response": ".doc_fonts_programs_get404response", + "DocFontsResolve200Response": ".doc_fonts_resolve200response", + "DocFontsResolve400Response": ".doc_fonts_resolve400response", + "DocFontsResolve404Response": ".doc_fonts_resolve404response", + "DocFontsResolveRequest": ".doc_fonts_resolve_request", "DocFormsDeleteWidget200Response": ".doc_forms_delete_widget200response", "DocFormsDeleteWidget400Response": ".doc_forms_delete_widget400response", "DocFormsDeleteWidget404Response": ".doc_forms_delete_widget404response", @@ -4121,6 +4255,8 @@ "DocPagesFlattenRequest": ".doc_pages_flatten_request", "DocPagesRemoveName200Response": ".doc_pages_remove_name200response", "DocPagesRemoveName200ResponseLayout": ".doc_pages_remove_name200response_layout", + "DocPagesRemoveName200ResponseLayoutLabelsItem": ".doc_pages_remove_name200response_layout_labels_item", + "DocPagesRemoveName200ResponseLayoutLabelsItemStyle": ".doc_pages_remove_name200response_layout_labels_item_style", "DocPagesRemoveName200ResponseLayoutNamedPagesItem": ".doc_pages_remove_name200response_layout_named_pages_item", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTarget": ".doc_pages_remove_name200response_layout_named_pages_item_target", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTargetDangling": ".doc_pages_remove_name200response_layout_named_pages_item_target_dangling", @@ -4144,6 +4280,8 @@ "DocPagesRemoveNameRequest": ".doc_pages_remove_name_request", "DocPagesSetName200Response": ".doc_pages_set_name200response", "DocPagesSetName200ResponseLayout": ".doc_pages_set_name200response_layout", + "DocPagesSetName200ResponseLayoutLabelsItem": ".doc_pages_set_name200response_layout_labels_item", + "DocPagesSetName200ResponseLayoutLabelsItemStyle": ".doc_pages_set_name200response_layout_labels_item_style", "DocPagesSetName200ResponseLayoutNamedPagesItem": ".doc_pages_set_name200response_layout_named_pages_item", "DocPagesSetName200ResponseLayoutNamedPagesItemTarget": ".doc_pages_set_name200response_layout_named_pages_item_target", "DocPagesSetName200ResponseLayoutNamedPagesItemTargetDangling": ".doc_pages_set_name200response_layout_named_pages_item_target_dangling", @@ -4393,6 +4531,7 @@ "DocumentsInit200Response_Deduped": ".documents_init200response", "DocumentsInit200Response_Resumed": ".documents_init200response", "DocumentsInit400Response": ".documents_init400response", + "DocumentsInit403Response": ".documents_init403response", "DocumentsLayersDelete403Response": ".documents_layers_delete403response", "DocumentsLayersDelete404Response": ".documents_layers_delete404response", "DocumentsLayersDelete409Response": ".documents_layers_delete409response", @@ -4417,6 +4556,7 @@ "DocumentsUpdate404Response": ".documents_update404response", "DocumentsUploadProxy200Response": ".documents_upload_proxy200response", "DocumentsUploadProxy400Response": ".documents_upload_proxy400response", + "DocumentsUploadProxy404Response": ".documents_upload_proxy404response", "DocumentsUploadProxy409Response": ".documents_upload_proxy409response", "EngineErrorPayload": ".engine_error_payload", "EngineErrorPayloadCode": ".engine_error_payload_code", @@ -4456,6 +4596,22 @@ "FoldersUpdate403Response": ".folders_update403response", "FoldersUpdate404Response": ".folders_update404response", "FoldersUpdate409Response": ".folders_update409response", + "Font": ".font", + "FontList": ".font_list", + "FontProgram": ".font_program", + "FontProgramEmbedded": ".font_program_embedded", + "FontProgramEmbeddingPermission": ".font_program_embedding_permission", + "FontProgramFormat": ".font_program_format", + "FontProgramInfo": ".font_program_info", + "FontProgramInfoCoversItem": ".font_program_info_covers_item", + "FontProgramInfoEmbedded": ".font_program_info_embedded", + "FontProgramInfoEmbeddingPermission": ".font_program_info_embedding_permission", + "FontProgramInfoFormat": ".font_program_info_format", + "FontResolution": ".font_resolution", + "FontResolveRequest": ".font_resolve_request", + "FontResolveRun": ".font_resolve_run", + "FontRestrictionsItem": ".font_restrictions_item", + "FontSource": ".font_source", "FormField": ".form_field", "FormFieldCheckbox": ".form_field_checkbox", "FormFieldCheckboxDefaultValueEntry": ".form_field_checkbox_default_value_entry", @@ -4739,6 +4895,7 @@ "GrantsUpdate200ResponseGrantVisitorIdentityFieldsOrganizationalUnit": ".grants_update200response_grant_visitor_identity_fields_organizational_unit", "GrantsUpdate200ResponseGrantVisitorIdentityFieldsTitle": ".grants_update200response_grant_visitor_identity_fields_title", "GrantsUpdate400Response": ".grants_update400response", + "GrantsUpdate403Response": ".grants_update403response", "GrantsUpdate404Response": ".grants_update404response", "GrantsUpdate409Response": ".grants_update409response", "GrantsVisitorsDeleteResponse": ".grants_visitors_delete_response", @@ -4875,6 +5032,7 @@ "PdfLinkTarget_Unsupported": ".pdf_link_target", "PdfLinkTarget_Uri": ".pdf_link_target", "PdfPageActions": ".pdf_page_actions", + "ResolvedFontRun": ".resolved_font_run", "TenantsCreate200Response": ".tenants_create200response", "TenantsCreate200ResponseTenant": ".tenants_create200response_tenant", "TenantsCreate200ResponseTenantStatus": ".tenants_create200response_tenant_status", @@ -4901,8 +5059,10 @@ "TokensIssueRequest": ".tokens_issue_request", "TokensIssueRequestDoc": ".tokens_issue_request_doc", "TokensIssueRequestTenant": ".tokens_issue_request_tenant", + "TokensIssueRequestUpload": ".tokens_issue_request_upload", "TokensIssueRequest_Doc": ".tokens_issue_request", "TokensIssueRequest_Tenant": ".tokens_issue_request", + "TokensIssueRequest_Upload": ".tokens_issue_request", "TokensRevokeResponse": ".tokens_revoke_response", "WidgetActionsPatch": ".widget_actions_patch", "WidgetAnnotation": ".widget_annotation", @@ -5881,8 +6041,32 @@ def __dir__(): "ChangeItemOutlineMove", "ChangeItemOutlineRestore", "ChangeItemOutlineUpdate", + "ChangeItemPagesCopy", + "ChangeItemPagesCopyLayout", + "ChangeItemPagesCopyLayoutLabelsItem", + "ChangeItemPagesCopyLayoutLabelsItemStyle", + "ChangeItemPagesCopyLayoutNamedPagesItem", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetDangling", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetPage", + "ChangeItemPagesCopyLayoutNamedPagesItemTargetTemplate", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page", + "ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template", + "ChangeItemPagesCopyLayoutPagesItem", + "ChangeItemPagesCopyLayoutPagesItemBoxes", + "ChangeItemPagesCopyLayoutPagesItemBoxesArt", + "ChangeItemPagesCopyLayoutPagesItemBoxesBleed", + "ChangeItemPagesCopyLayoutPagesItemBoxesCrop", + "ChangeItemPagesCopyLayoutPagesItemBoxesMedia", + "ChangeItemPagesCopyLayoutPagesItemBoxesTrim", + "ChangeItemPagesCopyLayoutPagesItemPdfCropBox", + "ChangeItemPagesCopyLayoutPagesItemSize", + "ChangeItemPagesCopyLayoutPagesItemTabOrder", "ChangeItemPagesDelete", "ChangeItemPagesDeleteLayout", + "ChangeItemPagesDeleteLayoutLabelsItem", + "ChangeItemPagesDeleteLayoutLabelsItemStyle", "ChangeItemPagesDeleteLayoutNamedPagesItem", "ChangeItemPagesDeleteLayoutNamedPagesItemTarget", "ChangeItemPagesDeleteLayoutNamedPagesItemTargetDangling", @@ -5904,6 +6088,8 @@ def __dir__(): "ChangeItemPagesInsert", "ChangeItemPagesInsertBlank", "ChangeItemPagesInsertBlankLayout", + "ChangeItemPagesInsertBlankLayoutLabelsItem", + "ChangeItemPagesInsertBlankLayoutLabelsItemStyle", "ChangeItemPagesInsertBlankLayoutNamedPagesItem", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTarget", "ChangeItemPagesInsertBlankLayoutNamedPagesItemTargetDangling", @@ -5923,6 +6109,8 @@ def __dir__(): "ChangeItemPagesInsertBlankLayoutPagesItemSize", "ChangeItemPagesInsertBlankLayoutPagesItemTabOrder", "ChangeItemPagesInsertLayout", + "ChangeItemPagesInsertLayoutLabelsItem", + "ChangeItemPagesInsertLayoutLabelsItemStyle", "ChangeItemPagesInsertLayoutNamedPagesItem", "ChangeItemPagesInsertLayoutNamedPagesItemTarget", "ChangeItemPagesInsertLayoutNamedPagesItemTargetDangling", @@ -5943,6 +6131,8 @@ def __dir__(): "ChangeItemPagesInsertLayoutPagesItemTabOrder", "ChangeItemPagesReorder", "ChangeItemPagesReorderLayout", + "ChangeItemPagesReorderLayoutLabelsItem", + "ChangeItemPagesReorderLayoutLabelsItemStyle", "ChangeItemPagesReorderLayoutNamedPagesItem", "ChangeItemPagesReorderLayoutNamedPagesItemTarget", "ChangeItemPagesReorderLayoutNamedPagesItemTargetDangling", @@ -5963,6 +6153,8 @@ def __dir__(): "ChangeItemPagesReorderLayoutPagesItemTabOrder", "ChangeItemPagesRestore", "ChangeItemPagesRestoreLayout", + "ChangeItemPagesRestoreLayoutLabelsItem", + "ChangeItemPagesRestoreLayoutLabelsItemStyle", "ChangeItemPagesRestoreLayoutNamedPagesItem", "ChangeItemPagesRestoreLayoutNamedPagesItemTarget", "ChangeItemPagesRestoreLayoutNamedPagesItemTargetDangling", @@ -5983,6 +6175,8 @@ def __dir__(): "ChangeItemPagesRestoreLayoutPagesItemTabOrder", "ChangeItemPagesRotate", "ChangeItemPagesRotateLayout", + "ChangeItemPagesRotateLayoutLabelsItem", + "ChangeItemPagesRotateLayoutLabelsItemStyle", "ChangeItemPagesRotateLayoutNamedPagesItem", "ChangeItemPagesRotateLayoutNamedPagesItemTarget", "ChangeItemPagesRotateLayoutNamedPagesItemTargetDangling", @@ -6034,6 +6228,7 @@ def __dir__(): "ChangeItem_OutlineMove", "ChangeItem_OutlineRestore", "ChangeItem_OutlineUpdate", + "ChangeItem_PagesCopy", "ChangeItem_PagesDelete", "ChangeItem_PagesInsert", "ChangeItem_PagesInsertBlank", @@ -6073,6 +6268,7 @@ def __dir__(): "ChangeOpOutlineDelete", "ChangeOpOutlineMove", "ChangeOpOutlineUpdate", + "ChangeOpPagesCopy", "ChangeOpPagesDelete", "ChangeOpPagesInsert", "ChangeOpPagesInsertBlank", @@ -6107,6 +6303,7 @@ def __dir__(): "ChangeOp_OutlineDelete", "ChangeOp_OutlineMove", "ChangeOp_OutlineUpdate", + "ChangeOp_PagesCopy", "ChangeOp_PagesDelete", "ChangeOp_PagesInsert", "ChangeOp_PagesInsertBlank", @@ -6168,6 +6365,16 @@ def __dir__(): "DocDownloadLink404Response", "DocDownloadLink501Response", "DocDownloadResponse", + "DocFontsList200Response", + "DocFontsList404Response", + "DocFontsProgramsDownload403Response", + "DocFontsProgramsDownload404Response", + "DocFontsProgramsGet200Response", + "DocFontsProgramsGet404Response", + "DocFontsResolve200Response", + "DocFontsResolve400Response", + "DocFontsResolve404Response", + "DocFontsResolveRequest", "DocFormsDeleteWidget200Response", "DocFormsDeleteWidget400Response", "DocFormsDeleteWidget404Response", @@ -6240,6 +6447,8 @@ def __dir__(): "DocPagesFlattenRequest", "DocPagesRemoveName200Response", "DocPagesRemoveName200ResponseLayout", + "DocPagesRemoveName200ResponseLayoutLabelsItem", + "DocPagesRemoveName200ResponseLayoutLabelsItemStyle", "DocPagesRemoveName200ResponseLayoutNamedPagesItem", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTarget", "DocPagesRemoveName200ResponseLayoutNamedPagesItemTargetDangling", @@ -6263,6 +6472,8 @@ def __dir__(): "DocPagesRemoveNameRequest", "DocPagesSetName200Response", "DocPagesSetName200ResponseLayout", + "DocPagesSetName200ResponseLayoutLabelsItem", + "DocPagesSetName200ResponseLayoutLabelsItemStyle", "DocPagesSetName200ResponseLayoutNamedPagesItem", "DocPagesSetName200ResponseLayoutNamedPagesItemTarget", "DocPagesSetName200ResponseLayoutNamedPagesItemTargetDangling", @@ -6512,6 +6723,7 @@ def __dir__(): "DocumentsInit200Response_Deduped", "DocumentsInit200Response_Resumed", "DocumentsInit400Response", + "DocumentsInit403Response", "DocumentsLayersDelete403Response", "DocumentsLayersDelete404Response", "DocumentsLayersDelete409Response", @@ -6536,6 +6748,7 @@ def __dir__(): "DocumentsUpdate404Response", "DocumentsUploadProxy200Response", "DocumentsUploadProxy400Response", + "DocumentsUploadProxy404Response", "DocumentsUploadProxy409Response", "EngineErrorPayload", "EngineErrorPayloadCode", @@ -6575,6 +6788,22 @@ def __dir__(): "FoldersUpdate403Response", "FoldersUpdate404Response", "FoldersUpdate409Response", + "Font", + "FontList", + "FontProgram", + "FontProgramEmbedded", + "FontProgramEmbeddingPermission", + "FontProgramFormat", + "FontProgramInfo", + "FontProgramInfoCoversItem", + "FontProgramInfoEmbedded", + "FontProgramInfoEmbeddingPermission", + "FontProgramInfoFormat", + "FontResolution", + "FontResolveRequest", + "FontResolveRun", + "FontRestrictionsItem", + "FontSource", "FormField", "FormFieldCheckbox", "FormFieldCheckboxDefaultValueEntry", @@ -6858,6 +7087,7 @@ def __dir__(): "GrantsUpdate200ResponseGrantVisitorIdentityFieldsOrganizationalUnit", "GrantsUpdate200ResponseGrantVisitorIdentityFieldsTitle", "GrantsUpdate400Response", + "GrantsUpdate403Response", "GrantsUpdate404Response", "GrantsUpdate409Response", "GrantsVisitorsDeleteResponse", @@ -6994,6 +7224,7 @@ def __dir__(): "PdfLinkTarget_Unsupported", "PdfLinkTarget_Uri", "PdfPageActions", + "ResolvedFontRun", "TenantsCreate200Response", "TenantsCreate200ResponseTenant", "TenantsCreate200ResponseTenantStatus", @@ -7020,8 +7251,10 @@ def __dir__(): "TokensIssueRequest", "TokensIssueRequestDoc", "TokensIssueRequestTenant", + "TokensIssueRequestUpload", "TokensIssueRequest_Doc", "TokensIssueRequest_Tenant", + "TokensIssueRequest_Upload", "TokensRevokeResponse", "WidgetActionsPatch", "WidgetAnnotation", diff --git a/src/cloudpdf/types/annotation.py b/src/cloudpdf/types/annotation.py index 527f149..ccda78c 100644 --- a/src/cloudpdf/types/annotation.py +++ b/src/cloudpdf/types/annotation.py @@ -138,6 +138,11 @@ class Annotation_Highlight(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationHighlightRect contents: typing.Optional[str] = None @@ -212,6 +217,11 @@ class Annotation_Underline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationUnderlineRect contents: typing.Optional[str] = None @@ -286,6 +296,11 @@ class Annotation_Squiggly(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationSquigglyRect contents: typing.Optional[str] = None @@ -360,6 +375,11 @@ class Annotation_Strikeout(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationStrikeoutRect contents: typing.Optional[str] = None @@ -435,6 +455,11 @@ class Annotation_Circle(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationCircleRect contents: typing.Optional[str] = None @@ -521,6 +546,11 @@ class Annotation_Square(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationSquareRect contents: typing.Optional[str] = None @@ -607,6 +637,11 @@ class Annotation_Polygon(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationPolygonRect contents: typing.Optional[str] = None @@ -703,6 +738,11 @@ class Annotation_Polyline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationPolylineRect contents: typing.Optional[str] = None @@ -799,6 +839,11 @@ class Annotation_Line(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationLineRect contents: typing.Optional[str] = None @@ -901,6 +946,11 @@ class Annotation_Link(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationLinkRect contents: typing.Optional[str] = None @@ -969,6 +1019,11 @@ class Annotation_Ink(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationInkRect contents: typing.Optional[str] = None @@ -1054,6 +1109,11 @@ class Annotation_FreeText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationFreeTextRect contents: typing.Optional[str] = None @@ -1163,6 +1223,11 @@ class Annotation_Caret(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationCaretRect contents: typing.Optional[str] = None @@ -1235,6 +1300,11 @@ class Annotation_Text(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationTextRect contents: typing.Optional[str] = None @@ -1310,6 +1380,11 @@ class Annotation_Stamp(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationStampRect contents: typing.Optional[str] = None @@ -1382,6 +1457,11 @@ class Annotation_FileAttachment(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationFileAttachmentRect contents: typing.Optional[str] = None @@ -1453,6 +1533,11 @@ class Annotation_Widget(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: WidgetAnnotationRect contents: typing.Optional[str] = None @@ -1557,6 +1642,11 @@ class Annotation_Redact(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationRedactRect contents: typing.Optional[str] = None @@ -1644,6 +1734,11 @@ class Annotation_Popup(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationPopupRect contents: typing.Optional[str] = None @@ -1713,6 +1808,11 @@ class Annotation_Unsupported(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationUnsupportedRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_caret.py b/src/cloudpdf/types/annotation_caret.py index 3e1277f..b5c8368 100644 --- a/src/cloudpdf/types/annotation_caret.py +++ b/src/cloudpdf/types/annotation_caret.py @@ -26,6 +26,11 @@ class AnnotationCaret(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationCaretRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_circle.py b/src/cloudpdf/types/annotation_circle.py index c6c2674..34ad4f1 100644 --- a/src/cloudpdf/types/annotation_circle.py +++ b/src/cloudpdf/types/annotation_circle.py @@ -26,6 +26,11 @@ class AnnotationCircle(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationCircleRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft.py b/src/cloudpdf/types/annotation_draft.py index e99c3de..c6b7ecc 100644 --- a/src/cloudpdf/types/annotation_draft.py +++ b/src/cloudpdf/types/annotation_draft.py @@ -131,6 +131,9 @@ class AnnotationDraft_Highlight(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftHighlightRect] = None contents: typing.Optional[str] = None @@ -215,6 +218,9 @@ class AnnotationDraft_Underline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftUnderlineRect] = None contents: typing.Optional[str] = None @@ -299,6 +305,9 @@ class AnnotationDraft_Squiggly(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftSquigglyRect] = None contents: typing.Optional[str] = None @@ -383,6 +392,9 @@ class AnnotationDraft_Strikeout(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftStrikeoutRect] = None contents: typing.Optional[str] = None @@ -468,6 +480,9 @@ class AnnotationDraft_Circle(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftCircleRect] = None contents: typing.Optional[str] = None @@ -566,6 +581,9 @@ class AnnotationDraft_Square(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftSquareRect] = None contents: typing.Optional[str] = None @@ -664,6 +682,9 @@ class AnnotationDraft_Polygon(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftPolygonRect] = None contents: typing.Optional[str] = None @@ -772,6 +793,9 @@ class AnnotationDraft_Polyline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftPolylineRect] = None contents: typing.Optional[str] = None @@ -882,6 +906,9 @@ class AnnotationDraft_Line(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftLineRect] = None contents: typing.Optional[str] = None @@ -1000,6 +1027,9 @@ class AnnotationDraft_Link(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftLinkRect contents: typing.Optional[str] = None @@ -1078,6 +1108,9 @@ class AnnotationDraft_Ink(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftInkRect] = None contents: typing.Optional[str] = None @@ -1175,6 +1208,9 @@ class AnnotationDraft_FreeText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftFreeTextRect] = None contents: typing.Optional[str] = None @@ -1308,6 +1344,9 @@ class AnnotationDraft_Caret(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftCaretRect] = None contents: typing.Optional[str] = None @@ -1390,6 +1429,9 @@ class AnnotationDraft_Text(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftTextRect contents: typing.Optional[str] = None @@ -1475,6 +1517,9 @@ class AnnotationDraft_Stamp(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftStampRect] = None contents: typing.Optional[str] = None @@ -1557,6 +1602,9 @@ class AnnotationDraft_FileAttachment(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftFileAttachmentRect contents: typing.Optional[str] = None @@ -1638,6 +1686,9 @@ class AnnotationDraft_Widget(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftWidgetRect] = None contents: typing.Optional[str] = None @@ -1756,6 +1807,9 @@ class AnnotationDraft_Redact(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftRedactRect] = None contents: typing.Optional[str] = None @@ -1861,6 +1915,9 @@ class AnnotationDraft_Popup(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftPopupRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_caret.py b/src/cloudpdf/types/annotation_draft_caret.py index 20e6a1f..b372aae 100644 --- a/src/cloudpdf/types/annotation_draft_caret.py +++ b/src/cloudpdf/types/annotation_draft_caret.py @@ -22,6 +22,9 @@ class AnnotationDraftCaret(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftCaretRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_circle.py b/src/cloudpdf/types/annotation_draft_circle.py index dd0ec44..86e91f6 100644 --- a/src/cloudpdf/types/annotation_draft_circle.py +++ b/src/cloudpdf/types/annotation_draft_circle.py @@ -22,6 +22,9 @@ class AnnotationDraftCircle(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftCircleRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_file_attachment.py b/src/cloudpdf/types/annotation_draft_file_attachment.py index 90ed7c7..7c407ff 100644 --- a/src/cloudpdf/types/annotation_draft_file_attachment.py +++ b/src/cloudpdf/types/annotation_draft_file_attachment.py @@ -22,6 +22,9 @@ class AnnotationDraftFileAttachment(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftFileAttachmentRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_free_text.py b/src/cloudpdf/types/annotation_draft_free_text.py index 00ebe57..3e7febd 100644 --- a/src/cloudpdf/types/annotation_draft_free_text.py +++ b/src/cloudpdf/types/annotation_draft_free_text.py @@ -27,6 +27,9 @@ class AnnotationDraftFreeText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftFreeTextRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_highlight.py b/src/cloudpdf/types/annotation_draft_highlight.py index 21ac4bf..4c03ce6 100644 --- a/src/cloudpdf/types/annotation_draft_highlight.py +++ b/src/cloudpdf/types/annotation_draft_highlight.py @@ -21,6 +21,9 @@ class AnnotationDraftHighlight(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftHighlightRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_ink.py b/src/cloudpdf/types/annotation_draft_ink.py index ddd4da8..3474bc2 100644 --- a/src/cloudpdf/types/annotation_draft_ink.py +++ b/src/cloudpdf/types/annotation_draft_ink.py @@ -23,6 +23,9 @@ class AnnotationDraftInk(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftInkRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_line.py b/src/cloudpdf/types/annotation_draft_line.py index ebfdf5f..98603c5 100644 --- a/src/cloudpdf/types/annotation_draft_line.py +++ b/src/cloudpdf/types/annotation_draft_line.py @@ -28,6 +28,9 @@ class AnnotationDraftLine(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftLineRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_link.py b/src/cloudpdf/types/annotation_draft_link.py index be3c43a..e562764 100644 --- a/src/cloudpdf/types/annotation_draft_link.py +++ b/src/cloudpdf/types/annotation_draft_link.py @@ -21,6 +21,9 @@ class AnnotationDraftLink(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftLinkRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_polygon.py b/src/cloudpdf/types/annotation_draft_polygon.py index cdf294c..f2ce75d 100644 --- a/src/cloudpdf/types/annotation_draft_polygon.py +++ b/src/cloudpdf/types/annotation_draft_polygon.py @@ -25,6 +25,9 @@ class AnnotationDraftPolygon(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftPolygonRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_polyline.py b/src/cloudpdf/types/annotation_draft_polyline.py index 700e19b..dadc453 100644 --- a/src/cloudpdf/types/annotation_draft_polyline.py +++ b/src/cloudpdf/types/annotation_draft_polyline.py @@ -26,6 +26,9 @@ class AnnotationDraftPolyline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftPolylineRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_popup.py b/src/cloudpdf/types/annotation_draft_popup.py index 16fde92..66ededc 100644 --- a/src/cloudpdf/types/annotation_draft_popup.py +++ b/src/cloudpdf/types/annotation_draft_popup.py @@ -21,6 +21,9 @@ class AnnotationDraftPopup(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftPopupRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_redact.py b/src/cloudpdf/types/annotation_draft_redact.py index 8e332bc..767cff2 100644 --- a/src/cloudpdf/types/annotation_draft_redact.py +++ b/src/cloudpdf/types/annotation_draft_redact.py @@ -22,6 +22,9 @@ class AnnotationDraftRedact(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftRedactRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_square.py b/src/cloudpdf/types/annotation_draft_square.py index a1f47c7..015ae0f 100644 --- a/src/cloudpdf/types/annotation_draft_square.py +++ b/src/cloudpdf/types/annotation_draft_square.py @@ -22,6 +22,9 @@ class AnnotationDraftSquare(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftSquareRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_squiggly.py b/src/cloudpdf/types/annotation_draft_squiggly.py index 6f07bed..5796acc 100644 --- a/src/cloudpdf/types/annotation_draft_squiggly.py +++ b/src/cloudpdf/types/annotation_draft_squiggly.py @@ -21,6 +21,9 @@ class AnnotationDraftSquiggly(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftSquigglyRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_stamp.py b/src/cloudpdf/types/annotation_draft_stamp.py index ff3bc38..f6ae008 100644 --- a/src/cloudpdf/types/annotation_draft_stamp.py +++ b/src/cloudpdf/types/annotation_draft_stamp.py @@ -22,6 +22,9 @@ class AnnotationDraftStamp(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftStampRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_strikeout.py b/src/cloudpdf/types/annotation_draft_strikeout.py index 0a28f1b..b1c2348 100644 --- a/src/cloudpdf/types/annotation_draft_strikeout.py +++ b/src/cloudpdf/types/annotation_draft_strikeout.py @@ -22,6 +22,9 @@ class AnnotationDraftStrikeout(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftStrikeoutRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_text.py b/src/cloudpdf/types/annotation_draft_text.py index 0983475..b078bb1 100644 --- a/src/cloudpdf/types/annotation_draft_text.py +++ b/src/cloudpdf/types/annotation_draft_text.py @@ -21,6 +21,9 @@ class AnnotationDraftText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: AnnotationDraftTextRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_underline.py b/src/cloudpdf/types/annotation_draft_underline.py index 9f28411..2ae53ee 100644 --- a/src/cloudpdf/types/annotation_draft_underline.py +++ b/src/cloudpdf/types/annotation_draft_underline.py @@ -21,6 +21,9 @@ class AnnotationDraftUnderline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftUnderlineRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_draft_widget.py b/src/cloudpdf/types/annotation_draft_widget.py index 95ea4c4..e612252 100644 --- a/src/cloudpdf/types/annotation_draft_widget.py +++ b/src/cloudpdf/types/annotation_draft_widget.py @@ -25,6 +25,9 @@ class AnnotationDraftWidget(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationDraftWidgetRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_file_attachment.py b/src/cloudpdf/types/annotation_file_attachment.py index 9a4a276..6d596bc 100644 --- a/src/cloudpdf/types/annotation_file_attachment.py +++ b/src/cloudpdf/types/annotation_file_attachment.py @@ -26,6 +26,11 @@ class AnnotationFileAttachment(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationFileAttachmentRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_free_text.py b/src/cloudpdf/types/annotation_free_text.py index 9e527a0..4a4770d 100644 --- a/src/cloudpdf/types/annotation_free_text.py +++ b/src/cloudpdf/types/annotation_free_text.py @@ -31,6 +31,11 @@ class AnnotationFreeText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationFreeTextRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_highlight.py b/src/cloudpdf/types/annotation_highlight.py index 7c2c914..acfa0d9 100644 --- a/src/cloudpdf/types/annotation_highlight.py +++ b/src/cloudpdf/types/annotation_highlight.py @@ -25,6 +25,11 @@ class AnnotationHighlight(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationHighlightRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_ink.py b/src/cloudpdf/types/annotation_ink.py index 87bc9ca..ade8608 100644 --- a/src/cloudpdf/types/annotation_ink.py +++ b/src/cloudpdf/types/annotation_ink.py @@ -27,6 +27,11 @@ class AnnotationInk(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationInkRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_line.py b/src/cloudpdf/types/annotation_line.py index b23f1a7..97d447e 100644 --- a/src/cloudpdf/types/annotation_line.py +++ b/src/cloudpdf/types/annotation_line.py @@ -32,6 +32,11 @@ class AnnotationLine(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationLineRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_link.py b/src/cloudpdf/types/annotation_link.py index cddd3ea..58e24ce 100644 --- a/src/cloudpdf/types/annotation_link.py +++ b/src/cloudpdf/types/annotation_link.py @@ -25,6 +25,11 @@ class AnnotationLink(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationLinkRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_mutation_meta.py b/src/cloudpdf/types/annotation_mutation_meta.py index 344b08d..b067db8 100644 --- a/src/cloudpdf/types/annotation_mutation_meta.py +++ b/src/cloudpdf/types/annotation_mutation_meta.py @@ -20,6 +20,11 @@ class AnnotationMutationMeta(UniversalBaseModel): ] = None op_id: typing_extensions.Annotated[str, FieldMetadata(alias="opId"), pydantic.Field(alias="opId")] undoable: bool + missing_characters: typing_extensions.Annotated[ + typing.Optional[typing.List[str]], + FieldMetadata(alias="missingCharacters"), + pydantic.Field(alias="missingCharacters"), + ] = None changed: typing.List[AnnotationRef] if IS_PYDANTIC_V2: diff --git a/src/cloudpdf/types/annotation_patch.py b/src/cloudpdf/types/annotation_patch.py index 288455a..1f62581 100644 --- a/src/cloudpdf/types/annotation_patch.py +++ b/src/cloudpdf/types/annotation_patch.py @@ -131,6 +131,9 @@ class AnnotationPatch_Highlight(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchHighlightRect] = None contents: typing.Optional[str] = None @@ -215,6 +218,9 @@ class AnnotationPatch_Underline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchUnderlineRect] = None contents: typing.Optional[str] = None @@ -299,6 +305,9 @@ class AnnotationPatch_Squiggly(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchSquigglyRect] = None contents: typing.Optional[str] = None @@ -383,6 +392,9 @@ class AnnotationPatch_Strikeout(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchStrikeoutRect] = None contents: typing.Optional[str] = None @@ -468,6 +480,9 @@ class AnnotationPatch_Circle(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchCircleRect] = None contents: typing.Optional[str] = None @@ -566,6 +581,9 @@ class AnnotationPatch_Square(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchSquareRect] = None contents: typing.Optional[str] = None @@ -664,6 +682,9 @@ class AnnotationPatch_Polygon(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchPolygonRect] = None contents: typing.Optional[str] = None @@ -772,6 +793,9 @@ class AnnotationPatch_Polyline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchPolylineRect] = None contents: typing.Optional[str] = None @@ -882,6 +906,9 @@ class AnnotationPatch_Line(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchLineRect] = None contents: typing.Optional[str] = None @@ -1002,6 +1029,9 @@ class AnnotationPatch_Link(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchLinkRect] = None contents: typing.Optional[str] = None @@ -1080,6 +1110,9 @@ class AnnotationPatch_Ink(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchInkRect] = None contents: typing.Optional[str] = None @@ -1175,6 +1208,9 @@ class AnnotationPatch_FreeText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchFreeTextRect] = None contents: typing.Optional[str] = None @@ -1308,6 +1344,9 @@ class AnnotationPatch_Caret(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchCaretRect] = None contents: typing.Optional[str] = None @@ -1390,6 +1429,9 @@ class AnnotationPatch_Text(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchTextRect] = None contents: typing.Optional[str] = None @@ -1475,6 +1517,9 @@ class AnnotationPatch_Stamp(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchStampRect] = None contents: typing.Optional[str] = None @@ -1557,6 +1602,9 @@ class AnnotationPatch_FileAttachment(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchFileAttachmentRect] = None contents: typing.Optional[str] = None @@ -1638,6 +1686,9 @@ class AnnotationPatch_Widget(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[WidgetPatchRect] = None contents: typing.Optional[str] = None @@ -1748,6 +1799,9 @@ class AnnotationPatch_Redact(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchRedactRect] = None contents: typing.Optional[str] = None @@ -1853,6 +1907,9 @@ class AnnotationPatch_Popup(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchPopupRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_caret.py b/src/cloudpdf/types/annotation_patch_caret.py index c46911a..d3199d1 100644 --- a/src/cloudpdf/types/annotation_patch_caret.py +++ b/src/cloudpdf/types/annotation_patch_caret.py @@ -22,6 +22,9 @@ class AnnotationPatchCaret(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchCaretRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_circle.py b/src/cloudpdf/types/annotation_patch_circle.py index 96079d9..71b193f 100644 --- a/src/cloudpdf/types/annotation_patch_circle.py +++ b/src/cloudpdf/types/annotation_patch_circle.py @@ -22,6 +22,9 @@ class AnnotationPatchCircle(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchCircleRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_file_attachment.py b/src/cloudpdf/types/annotation_patch_file_attachment.py index 6a0792d..d6b837d 100644 --- a/src/cloudpdf/types/annotation_patch_file_attachment.py +++ b/src/cloudpdf/types/annotation_patch_file_attachment.py @@ -22,6 +22,9 @@ class AnnotationPatchFileAttachment(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchFileAttachmentRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_free_text.py b/src/cloudpdf/types/annotation_patch_free_text.py index d8854fe..f0f2b34 100644 --- a/src/cloudpdf/types/annotation_patch_free_text.py +++ b/src/cloudpdf/types/annotation_patch_free_text.py @@ -27,6 +27,9 @@ class AnnotationPatchFreeText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchFreeTextRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_highlight.py b/src/cloudpdf/types/annotation_patch_highlight.py index 9b57b8d..93113df 100644 --- a/src/cloudpdf/types/annotation_patch_highlight.py +++ b/src/cloudpdf/types/annotation_patch_highlight.py @@ -21,6 +21,9 @@ class AnnotationPatchHighlight(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchHighlightRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_ink.py b/src/cloudpdf/types/annotation_patch_ink.py index 17ac03d..66945be 100644 --- a/src/cloudpdf/types/annotation_patch_ink.py +++ b/src/cloudpdf/types/annotation_patch_ink.py @@ -23,6 +23,9 @@ class AnnotationPatchInk(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchInkRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_line.py b/src/cloudpdf/types/annotation_patch_line.py index 2d5562b..4cfc0c0 100644 --- a/src/cloudpdf/types/annotation_patch_line.py +++ b/src/cloudpdf/types/annotation_patch_line.py @@ -28,6 +28,9 @@ class AnnotationPatchLine(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchLineRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_link.py b/src/cloudpdf/types/annotation_patch_link.py index d2ae791..7e264a8 100644 --- a/src/cloudpdf/types/annotation_patch_link.py +++ b/src/cloudpdf/types/annotation_patch_link.py @@ -21,6 +21,9 @@ class AnnotationPatchLink(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchLinkRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_polygon.py b/src/cloudpdf/types/annotation_patch_polygon.py index cfd0ebe..261cf7e 100644 --- a/src/cloudpdf/types/annotation_patch_polygon.py +++ b/src/cloudpdf/types/annotation_patch_polygon.py @@ -25,6 +25,9 @@ class AnnotationPatchPolygon(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchPolygonRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_polyline.py b/src/cloudpdf/types/annotation_patch_polyline.py index 7df8db0..6acfb21 100644 --- a/src/cloudpdf/types/annotation_patch_polyline.py +++ b/src/cloudpdf/types/annotation_patch_polyline.py @@ -26,6 +26,9 @@ class AnnotationPatchPolyline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchPolylineRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_popup.py b/src/cloudpdf/types/annotation_patch_popup.py index e27f82a..57dad7b 100644 --- a/src/cloudpdf/types/annotation_patch_popup.py +++ b/src/cloudpdf/types/annotation_patch_popup.py @@ -21,6 +21,9 @@ class AnnotationPatchPopup(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchPopupRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_redact.py b/src/cloudpdf/types/annotation_patch_redact.py index 9fb6dd9..6c37340 100644 --- a/src/cloudpdf/types/annotation_patch_redact.py +++ b/src/cloudpdf/types/annotation_patch_redact.py @@ -22,6 +22,9 @@ class AnnotationPatchRedact(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchRedactRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_square.py b/src/cloudpdf/types/annotation_patch_square.py index 9b9521a..0edb914 100644 --- a/src/cloudpdf/types/annotation_patch_square.py +++ b/src/cloudpdf/types/annotation_patch_square.py @@ -22,6 +22,9 @@ class AnnotationPatchSquare(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchSquareRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_squiggly.py b/src/cloudpdf/types/annotation_patch_squiggly.py index d6f189a..2999543 100644 --- a/src/cloudpdf/types/annotation_patch_squiggly.py +++ b/src/cloudpdf/types/annotation_patch_squiggly.py @@ -21,6 +21,9 @@ class AnnotationPatchSquiggly(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchSquigglyRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_stamp.py b/src/cloudpdf/types/annotation_patch_stamp.py index 770049b..4ab5445 100644 --- a/src/cloudpdf/types/annotation_patch_stamp.py +++ b/src/cloudpdf/types/annotation_patch_stamp.py @@ -22,6 +22,9 @@ class AnnotationPatchStamp(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchStampRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_strikeout.py b/src/cloudpdf/types/annotation_patch_strikeout.py index a7fddac..06c213d 100644 --- a/src/cloudpdf/types/annotation_patch_strikeout.py +++ b/src/cloudpdf/types/annotation_patch_strikeout.py @@ -22,6 +22,9 @@ class AnnotationPatchStrikeout(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchStrikeoutRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_text.py b/src/cloudpdf/types/annotation_patch_text.py index b61c6ec..a16d437 100644 --- a/src/cloudpdf/types/annotation_patch_text.py +++ b/src/cloudpdf/types/annotation_patch_text.py @@ -21,6 +21,9 @@ class AnnotationPatchText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchTextRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_patch_underline.py b/src/cloudpdf/types/annotation_patch_underline.py index ddd78c7..7bef133 100644 --- a/src/cloudpdf/types/annotation_patch_underline.py +++ b/src/cloudpdf/types/annotation_patch_underline.py @@ -21,6 +21,9 @@ class AnnotationPatchUnderline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[AnnotationPatchUnderlineRect] = None contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_polygon.py b/src/cloudpdf/types/annotation_polygon.py index b73687b..aea9017 100644 --- a/src/cloudpdf/types/annotation_polygon.py +++ b/src/cloudpdf/types/annotation_polygon.py @@ -29,6 +29,11 @@ class AnnotationPolygon(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationPolygonRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_polyline.py b/src/cloudpdf/types/annotation_polyline.py index 02584f9..88a3ff8 100644 --- a/src/cloudpdf/types/annotation_polyline.py +++ b/src/cloudpdf/types/annotation_polyline.py @@ -30,6 +30,11 @@ class AnnotationPolyline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationPolylineRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_popup.py b/src/cloudpdf/types/annotation_popup.py index 47a0a36..cd68c29 100644 --- a/src/cloudpdf/types/annotation_popup.py +++ b/src/cloudpdf/types/annotation_popup.py @@ -24,6 +24,11 @@ class AnnotationPopup(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationPopupRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_redact.py b/src/cloudpdf/types/annotation_redact.py index 42d9340..a152a5f 100644 --- a/src/cloudpdf/types/annotation_redact.py +++ b/src/cloudpdf/types/annotation_redact.py @@ -26,6 +26,11 @@ class AnnotationRedact(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationRedactRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_square.py b/src/cloudpdf/types/annotation_square.py index cfaeef2..7a70af2 100644 --- a/src/cloudpdf/types/annotation_square.py +++ b/src/cloudpdf/types/annotation_square.py @@ -26,6 +26,11 @@ class AnnotationSquare(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationSquareRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_squiggly.py b/src/cloudpdf/types/annotation_squiggly.py index 3a22048..53ab823 100644 --- a/src/cloudpdf/types/annotation_squiggly.py +++ b/src/cloudpdf/types/annotation_squiggly.py @@ -25,6 +25,11 @@ class AnnotationSquiggly(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationSquigglyRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_stamp.py b/src/cloudpdf/types/annotation_stamp.py index e7f2613..07da24f 100644 --- a/src/cloudpdf/types/annotation_stamp.py +++ b/src/cloudpdf/types/annotation_stamp.py @@ -26,6 +26,11 @@ class AnnotationStamp(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationStampRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_strikeout.py b/src/cloudpdf/types/annotation_strikeout.py index 3d3d65f..fe0f02a 100644 --- a/src/cloudpdf/types/annotation_strikeout.py +++ b/src/cloudpdf/types/annotation_strikeout.py @@ -26,6 +26,11 @@ class AnnotationStrikeout(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationStrikeoutRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_text.py b/src/cloudpdf/types/annotation_text.py index f0bd9be..203dc60 100644 --- a/src/cloudpdf/types/annotation_text.py +++ b/src/cloudpdf/types/annotation_text.py @@ -25,6 +25,11 @@ class AnnotationText(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationTextRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_underline.py b/src/cloudpdf/types/annotation_underline.py index 4016ac8..dd5b050 100644 --- a/src/cloudpdf/types/annotation_underline.py +++ b/src/cloudpdf/types/annotation_underline.py @@ -25,6 +25,11 @@ class AnnotationUnderline(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationUnderlineRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/annotation_unsupported.py b/src/cloudpdf/types/annotation_unsupported.py index 09809e3..6862f80 100644 --- a/src/cloudpdf/types/annotation_unsupported.py +++ b/src/cloudpdf/types/annotation_unsupported.py @@ -24,6 +24,11 @@ class AnnotationUnsupported(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: AnnotationUnsupportedRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/attachment_mutation_meta.py b/src/cloudpdf/types/attachment_mutation_meta.py index f036021..a5efeb8 100644 --- a/src/cloudpdf/types/attachment_mutation_meta.py +++ b/src/cloudpdf/types/attachment_mutation_meta.py @@ -20,6 +20,11 @@ class AttachmentMutationMeta(UniversalBaseModel): ] = None op_id: typing_extensions.Annotated[str, FieldMetadata(alias="opId"), pydantic.Field(alias="opId")] undoable: bool + missing_characters: typing_extensions.Annotated[ + typing.Optional[typing.List[str]], + FieldMetadata(alias="missingCharacters"), + pydantic.Field(alias="missingCharacters"), + ] = None changed: typing.List[AttachmentRef] if IS_PYDANTIC_V2: diff --git a/src/cloudpdf/types/cache_delta.py b/src/cloudpdf/types/cache_delta.py index e77645b..30dc9fe 100644 --- a/src/cloudpdf/types/cache_delta.py +++ b/src/cloudpdf/types/cache_delta.py @@ -32,6 +32,9 @@ class CacheDelta(UniversalBaseModel): outline_version: typing_extensions.Annotated[ typing.Optional[int], FieldMetadata(alias="outlineVersion"), pydantic.Field(alias="outlineVersion") ] = None + fonts_version: typing_extensions.Annotated[ + typing.Optional[int], FieldMetadata(alias="fontsVersion"), pydantic.Field(alias="fontsVersion") + ] = None layer_version: typing_extensions.Annotated[ typing.Optional[int], FieldMetadata(alias="layerVersion"), pydantic.Field(alias="layerVersion") ] = None diff --git a/src/cloudpdf/types/change_item.py b/src/cloudpdf/types/change_item.py index 146c0dd..7df37cb 100644 --- a/src/cloudpdf/types/change_item.py +++ b/src/cloudpdf/types/change_item.py @@ -15,6 +15,7 @@ from .attachment_mutation_meta import AttachmentMutationMeta from .change_item_annotations_update_appearance import ChangeItemAnnotationsUpdateAppearance from .change_item_forms_update_widget_appearance import ChangeItemFormsUpdateWidgetAppearance +from .change_item_pages_copy_layout import ChangeItemPagesCopyLayout from .change_item_pages_delete_layout import ChangeItemPagesDeleteLayout from .change_item_pages_insert_blank_layout import ChangeItemPagesInsertBlankLayout from .change_item_pages_insert_layout import ChangeItemPagesInsertLayout @@ -613,6 +614,24 @@ class Config: extra = pydantic.Extra.allow +class ChangeItem_PagesCopy(UniversalBaseModel): + type: typing.Literal["pages.copy"] = "pages.copy" + inserted_pages: typing_extensions.Annotated[ + typing.List[PageRef], FieldMetadata(alias="insertedPages"), pydantic.Field(alias="insertedPages") + ] + layout: ChangeItemPagesCopyLayout + meta: MutationMeta + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + class ChangeItem_PagesRestore(UniversalBaseModel): type: typing.Literal["pages.restore"] = "pages.restore" pages: typing.List[PageRef] @@ -709,6 +728,7 @@ class Config: ChangeItem_PagesDelete, ChangeItem_PagesInsertBlank, ChangeItem_PagesInsert, + ChangeItem_PagesCopy, ChangeItem_PagesRestore, ChangeItem_AttachmentsCreate, ChangeItem_AttachmentsDelete, diff --git a/src/cloudpdf/types/change_item_pages_copy.py b/src/cloudpdf/types/change_item_pages_copy.py new file mode 100644 index 0000000..e105fed --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy.py @@ -0,0 +1,28 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_copy_layout import ChangeItemPagesCopyLayout +from .mutation_meta import MutationMeta +from .page_ref import PageRef + + +class ChangeItemPagesCopy(UniversalBaseModel): + inserted_pages: typing_extensions.Annotated[ + typing.List[PageRef], FieldMetadata(alias="insertedPages"), pydantic.Field(alias="insertedPages") + ] + layout: ChangeItemPagesCopyLayout + meta: MutationMeta + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout.py b/src/cloudpdf/types/change_item_pages_copy_layout.py new file mode 100644 index 0000000..fec3551 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout.py @@ -0,0 +1,31 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_copy_layout_labels_item import ChangeItemPagesCopyLayoutLabelsItem +from .change_item_pages_copy_layout_named_pages_item import ChangeItemPagesCopyLayoutNamedPagesItem +from .change_item_pages_copy_layout_pages_item import ChangeItemPagesCopyLayoutPagesItem + + +class ChangeItemPagesCopyLayout(UniversalBaseModel): + page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] + pages: typing.List[ChangeItemPagesCopyLayoutPagesItem] + labels: typing.List[ChangeItemPagesCopyLayoutLabelsItem] + named_pages: typing_extensions.Annotated[ + typing.List[ChangeItemPagesCopyLayoutNamedPagesItem], + FieldMetadata(alias="namedPages"), + pydantic.Field(alias="namedPages"), + ] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_labels_item.py b/src/cloudpdf/types/change_item_pages_copy_layout_labels_item.py new file mode 100644 index 0000000..aea8d31 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_copy_layout_labels_item_style import ChangeItemPagesCopyLayoutLabelsItemStyle + + +class ChangeItemPagesCopyLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[ChangeItemPagesCopyLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_labels_item_style.py b/src/cloudpdf/types/change_item_pages_copy_layout_labels_item_style.py new file mode 100644 index 0000000..47aa886 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesCopyLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item.py b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item.py new file mode 100644 index 0000000..5c78a90 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .change_item_pages_copy_layout_named_pages_item_target import ChangeItemPagesCopyLayoutNamedPagesItemTarget + + +class ChangeItemPagesCopyLayoutNamedPagesItem(UniversalBaseModel): + name: str + target: ChangeItemPagesCopyLayoutNamedPagesItemTarget + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target.py b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target.py new file mode 100644 index 0000000..9a24d59 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target.py @@ -0,0 +1,64 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .page_ref import PageRef + + +class ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page(UniversalBaseModel): + kind: typing.Literal["page"] = "page" + page: PageRef + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template(UniversalBaseModel): + kind: typing.Literal["template"] = "template" + object_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="objectNumber"), pydantic.Field(alias="objectNumber") + ] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling(UniversalBaseModel): + kind: typing.Literal["dangling"] = "dangling" + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +ChangeItemPagesCopyLayoutNamedPagesItemTarget = typing_extensions.Annotated[ + typing.Union[ + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Page, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Template, + ChangeItemPagesCopyLayoutNamedPagesItemTarget_Dangling, + ], + pydantic.Field(discriminator="kind"), +] diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_dangling.py b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_dangling.py new file mode 100644 index 0000000..55b8225 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_dangling.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutNamedPagesItemTargetDangling(UniversalBaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_page.py b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_page.py new file mode 100644 index 0000000..b37ceb5 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_page.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_ref import PageRef + + +class ChangeItemPagesCopyLayoutNamedPagesItemTargetPage(UniversalBaseModel): + page: PageRef + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_template.py b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_template.py new file mode 100644 index 0000000..451f30c --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_named_pages_item_target_template.py @@ -0,0 +1,23 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata + + +class ChangeItemPagesCopyLayoutNamedPagesItemTargetTemplate(UniversalBaseModel): + object_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="objectNumber"), pydantic.Field(alias="objectNumber") + ] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item.py new file mode 100644 index 0000000..4c48439 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item.py @@ -0,0 +1,44 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_copy_layout_pages_item_boxes import ChangeItemPagesCopyLayoutPagesItemBoxes +from .change_item_pages_copy_layout_pages_item_pdf_crop_box import ChangeItemPagesCopyLayoutPagesItemPdfCropBox +from .change_item_pages_copy_layout_pages_item_size import ChangeItemPagesCopyLayoutPagesItemSize +from .change_item_pages_copy_layout_pages_item_tab_order import ChangeItemPagesCopyLayoutPagesItemTabOrder +from .page_ref import PageRef +from .pdf_page_actions import PdfPageActions + + +class ChangeItemPagesCopyLayoutPagesItem(UniversalBaseModel): + index: int + ref: PageRef + label: typing.Optional[str] = None + size: ChangeItemPagesCopyLayoutPagesItemSize + rotation: float + user_unit: typing_extensions.Annotated[float, FieldMetadata(alias="userUnit"), pydantic.Field(alias="userUnit")] + tab_order: typing_extensions.Annotated[ + typing.Optional[ChangeItemPagesCopyLayoutPagesItemTabOrder], + FieldMetadata(alias="tabOrder"), + pydantic.Field(alias="tabOrder"), + ] = None + boxes: ChangeItemPagesCopyLayoutPagesItemBoxes + pdf_crop_box: typing_extensions.Annotated[ + ChangeItemPagesCopyLayoutPagesItemPdfCropBox, + FieldMetadata(alias="pdfCropBox"), + pydantic.Field(alias="pdfCropBox"), + ] + actions: typing.Optional[PdfPageActions] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes.py new file mode 100644 index 0000000..ed31292 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes.py @@ -0,0 +1,28 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .change_item_pages_copy_layout_pages_item_boxes_art import ChangeItemPagesCopyLayoutPagesItemBoxesArt +from .change_item_pages_copy_layout_pages_item_boxes_bleed import ChangeItemPagesCopyLayoutPagesItemBoxesBleed +from .change_item_pages_copy_layout_pages_item_boxes_crop import ChangeItemPagesCopyLayoutPagesItemBoxesCrop +from .change_item_pages_copy_layout_pages_item_boxes_media import ChangeItemPagesCopyLayoutPagesItemBoxesMedia +from .change_item_pages_copy_layout_pages_item_boxes_trim import ChangeItemPagesCopyLayoutPagesItemBoxesTrim + + +class ChangeItemPagesCopyLayoutPagesItemBoxes(UniversalBaseModel): + media: ChangeItemPagesCopyLayoutPagesItemBoxesMedia + crop: ChangeItemPagesCopyLayoutPagesItemBoxesCrop + bleed: ChangeItemPagesCopyLayoutPagesItemBoxesBleed + trim: ChangeItemPagesCopyLayoutPagesItemBoxesTrim + art: ChangeItemPagesCopyLayoutPagesItemBoxesArt + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_art.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_art.py new file mode 100644 index 0000000..9901b9b --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_art.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutPagesItemBoxesArt(UniversalBaseModel): + x: float + y: float + width: float + height: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_bleed.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_bleed.py new file mode 100644 index 0000000..dcd1044 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_bleed.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutPagesItemBoxesBleed(UniversalBaseModel): + x: float + y: float + width: float + height: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_crop.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_crop.py new file mode 100644 index 0000000..62927c2 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_crop.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutPagesItemBoxesCrop(UniversalBaseModel): + x: float + y: float + width: float + height: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_media.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_media.py new file mode 100644 index 0000000..3aea9a5 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_media.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutPagesItemBoxesMedia(UniversalBaseModel): + x: float + y: float + width: float + height: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_trim.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_trim.py new file mode 100644 index 0000000..49405af --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_boxes_trim.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutPagesItemBoxesTrim(UniversalBaseModel): + x: float + y: float + width: float + height: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_pdf_crop_box.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_pdf_crop_box.py new file mode 100644 index 0000000..76a88cb --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_pdf_crop_box.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutPagesItemPdfCropBox(UniversalBaseModel): + left: float + bottom: float + right: float + top: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_size.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_size.py new file mode 100644 index 0000000..11f9fb5 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_size.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ChangeItemPagesCopyLayoutPagesItemSize(UniversalBaseModel): + width: float + height: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_tab_order.py b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_tab_order.py new file mode 100644 index 0000000..cc56e5f --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_copy_layout_pages_item_tab_order.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesCopyLayoutPagesItemTabOrder = typing.Union[ + typing.Literal["rows", "columns", "structure", "annotations", "widgets"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_pages_delete_layout.py b/src/cloudpdf/types/change_item_pages_delete_layout.py index a0bef8b..b44f629 100644 --- a/src/cloudpdf/types/change_item_pages_delete_layout.py +++ b/src/cloudpdf/types/change_item_pages_delete_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .change_item_pages_delete_layout_labels_item import ChangeItemPagesDeleteLayoutLabelsItem from .change_item_pages_delete_layout_named_pages_item import ChangeItemPagesDeleteLayoutNamedPagesItem from .change_item_pages_delete_layout_pages_item import ChangeItemPagesDeleteLayoutPagesItem @@ -13,6 +14,7 @@ class ChangeItemPagesDeleteLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[ChangeItemPagesDeleteLayoutPagesItem] + labels: typing.List[ChangeItemPagesDeleteLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[ChangeItemPagesDeleteLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/change_item_pages_delete_layout_labels_item.py b/src/cloudpdf/types/change_item_pages_delete_layout_labels_item.py new file mode 100644 index 0000000..67e9afb --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_delete_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_delete_layout_labels_item_style import ChangeItemPagesDeleteLayoutLabelsItemStyle + + +class ChangeItemPagesDeleteLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[ChangeItemPagesDeleteLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_delete_layout_labels_item_style.py b/src/cloudpdf/types/change_item_pages_delete_layout_labels_item_style.py new file mode 100644 index 0000000..8def37b --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_delete_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesDeleteLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_pages_insert_blank_layout.py b/src/cloudpdf/types/change_item_pages_insert_blank_layout.py index db75fd9..363085c 100644 --- a/src/cloudpdf/types/change_item_pages_insert_blank_layout.py +++ b/src/cloudpdf/types/change_item_pages_insert_blank_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .change_item_pages_insert_blank_layout_labels_item import ChangeItemPagesInsertBlankLayoutLabelsItem from .change_item_pages_insert_blank_layout_named_pages_item import ChangeItemPagesInsertBlankLayoutNamedPagesItem from .change_item_pages_insert_blank_layout_pages_item import ChangeItemPagesInsertBlankLayoutPagesItem @@ -13,6 +14,7 @@ class ChangeItemPagesInsertBlankLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[ChangeItemPagesInsertBlankLayoutPagesItem] + labels: typing.List[ChangeItemPagesInsertBlankLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[ChangeItemPagesInsertBlankLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/change_item_pages_insert_blank_layout_labels_item.py b/src/cloudpdf/types/change_item_pages_insert_blank_layout_labels_item.py new file mode 100644 index 0000000..c17e5d8 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_insert_blank_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_insert_blank_layout_labels_item_style import ChangeItemPagesInsertBlankLayoutLabelsItemStyle + + +class ChangeItemPagesInsertBlankLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[ChangeItemPagesInsertBlankLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_insert_blank_layout_labels_item_style.py b/src/cloudpdf/types/change_item_pages_insert_blank_layout_labels_item_style.py new file mode 100644 index 0000000..5a0b801 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_insert_blank_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesInsertBlankLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_pages_insert_layout.py b/src/cloudpdf/types/change_item_pages_insert_layout.py index 4e9eba2..53b1b74 100644 --- a/src/cloudpdf/types/change_item_pages_insert_layout.py +++ b/src/cloudpdf/types/change_item_pages_insert_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .change_item_pages_insert_layout_labels_item import ChangeItemPagesInsertLayoutLabelsItem from .change_item_pages_insert_layout_named_pages_item import ChangeItemPagesInsertLayoutNamedPagesItem from .change_item_pages_insert_layout_pages_item import ChangeItemPagesInsertLayoutPagesItem @@ -13,6 +14,7 @@ class ChangeItemPagesInsertLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[ChangeItemPagesInsertLayoutPagesItem] + labels: typing.List[ChangeItemPagesInsertLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[ChangeItemPagesInsertLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/change_item_pages_insert_layout_labels_item.py b/src/cloudpdf/types/change_item_pages_insert_layout_labels_item.py new file mode 100644 index 0000000..4ca5f05 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_insert_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_insert_layout_labels_item_style import ChangeItemPagesInsertLayoutLabelsItemStyle + + +class ChangeItemPagesInsertLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[ChangeItemPagesInsertLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_insert_layout_labels_item_style.py b/src/cloudpdf/types/change_item_pages_insert_layout_labels_item_style.py new file mode 100644 index 0000000..fe2dfff --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_insert_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesInsertLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_pages_reorder_layout.py b/src/cloudpdf/types/change_item_pages_reorder_layout.py index d098edd..d9af3c3 100644 --- a/src/cloudpdf/types/change_item_pages_reorder_layout.py +++ b/src/cloudpdf/types/change_item_pages_reorder_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .change_item_pages_reorder_layout_labels_item import ChangeItemPagesReorderLayoutLabelsItem from .change_item_pages_reorder_layout_named_pages_item import ChangeItemPagesReorderLayoutNamedPagesItem from .change_item_pages_reorder_layout_pages_item import ChangeItemPagesReorderLayoutPagesItem @@ -13,6 +14,7 @@ class ChangeItemPagesReorderLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[ChangeItemPagesReorderLayoutPagesItem] + labels: typing.List[ChangeItemPagesReorderLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[ChangeItemPagesReorderLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/change_item_pages_reorder_layout_labels_item.py b/src/cloudpdf/types/change_item_pages_reorder_layout_labels_item.py new file mode 100644 index 0000000..277f5ce --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_reorder_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_reorder_layout_labels_item_style import ChangeItemPagesReorderLayoutLabelsItemStyle + + +class ChangeItemPagesReorderLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[ChangeItemPagesReorderLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_reorder_layout_labels_item_style.py b/src/cloudpdf/types/change_item_pages_reorder_layout_labels_item_style.py new file mode 100644 index 0000000..70b30b8 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_reorder_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesReorderLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_pages_restore_layout.py b/src/cloudpdf/types/change_item_pages_restore_layout.py index 369cf36..bf41b47 100644 --- a/src/cloudpdf/types/change_item_pages_restore_layout.py +++ b/src/cloudpdf/types/change_item_pages_restore_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .change_item_pages_restore_layout_labels_item import ChangeItemPagesRestoreLayoutLabelsItem from .change_item_pages_restore_layout_named_pages_item import ChangeItemPagesRestoreLayoutNamedPagesItem from .change_item_pages_restore_layout_pages_item import ChangeItemPagesRestoreLayoutPagesItem @@ -13,6 +14,7 @@ class ChangeItemPagesRestoreLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[ChangeItemPagesRestoreLayoutPagesItem] + labels: typing.List[ChangeItemPagesRestoreLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[ChangeItemPagesRestoreLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/change_item_pages_restore_layout_labels_item.py b/src/cloudpdf/types/change_item_pages_restore_layout_labels_item.py new file mode 100644 index 0000000..a2fcbf6 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_restore_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_restore_layout_labels_item_style import ChangeItemPagesRestoreLayoutLabelsItemStyle + + +class ChangeItemPagesRestoreLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[ChangeItemPagesRestoreLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_restore_layout_labels_item_style.py b/src/cloudpdf/types/change_item_pages_restore_layout_labels_item_style.py new file mode 100644 index 0000000..5e78dec --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_restore_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesRestoreLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_pages_rotate_layout.py b/src/cloudpdf/types/change_item_pages_rotate_layout.py index 8dacd87..27fef87 100644 --- a/src/cloudpdf/types/change_item_pages_rotate_layout.py +++ b/src/cloudpdf/types/change_item_pages_rotate_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .change_item_pages_rotate_layout_labels_item import ChangeItemPagesRotateLayoutLabelsItem from .change_item_pages_rotate_layout_named_pages_item import ChangeItemPagesRotateLayoutNamedPagesItem from .change_item_pages_rotate_layout_pages_item import ChangeItemPagesRotateLayoutPagesItem @@ -13,6 +14,7 @@ class ChangeItemPagesRotateLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[ChangeItemPagesRotateLayoutPagesItem] + labels: typing.List[ChangeItemPagesRotateLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[ChangeItemPagesRotateLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/change_item_pages_rotate_layout_labels_item.py b/src/cloudpdf/types/change_item_pages_rotate_layout_labels_item.py new file mode 100644 index 0000000..3f742bc --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_rotate_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .change_item_pages_rotate_layout_labels_item_style import ChangeItemPagesRotateLayoutLabelsItemStyle + + +class ChangeItemPagesRotateLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[ChangeItemPagesRotateLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_item_pages_rotate_layout_labels_item_style.py b/src/cloudpdf/types/change_item_pages_rotate_layout_labels_item_style.py new file mode 100644 index 0000000..7637c43 --- /dev/null +++ b/src/cloudpdf/types/change_item_pages_rotate_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ChangeItemPagesRotateLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/change_item_skipped_op.py b/src/cloudpdf/types/change_item_skipped_op.py index 6230647..64da815 100644 --- a/src/cloudpdf/types/change_item_skipped_op.py +++ b/src/cloudpdf/types/change_item_skipped_op.py @@ -33,6 +33,7 @@ "pages.delete", "pages.insertBlank", "pages.insert", + "pages.copy", "attachments.create", "attachments.delete", "annotations.restore", diff --git a/src/cloudpdf/types/change_op.py b/src/cloudpdf/types/change_op.py index 4bf2000..14d3cf7 100644 --- a/src/cloudpdf/types/change_op.py +++ b/src/cloudpdf/types/change_op.py @@ -491,6 +491,27 @@ class ChangeOp_PagesInsert(UniversalBaseModel): type: typing.Literal["pages.insert"] = "pages.insert" resources: ChangeOpPagesInsertResources position: typing.Optional[PagePosition] = None + object_numbers: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], FieldMetadata(alias="objectNumbers"), pydantic.Field(alias="objectNumbers") + ] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class ChangeOp_PagesCopy(UniversalBaseModel): + type: typing.Literal["pages.copy"] = "pages.copy" + pages: typing.List[PageRef] + position: typing.Optional[PagePosition] = None + object_numbers: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], FieldMetadata(alias="objectNumbers"), pydantic.Field(alias="objectNumbers") + ] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -562,6 +583,7 @@ class Config: ChangeOp_PagesDelete, ChangeOp_PagesInsertBlank, ChangeOp_PagesInsert, + ChangeOp_PagesCopy, ChangeOp_AttachmentsCreate, ChangeOp_AttachmentsDelete, ], diff --git a/src/cloudpdf/types/change_op_pages_copy.py b/src/cloudpdf/types/change_op_pages_copy.py new file mode 100644 index 0000000..47b03a8 --- /dev/null +++ b/src/cloudpdf/types/change_op_pages_copy.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .page_position import PagePosition +from .page_ref import PageRef + + +class ChangeOpPagesCopy(UniversalBaseModel): + pages: typing.List[PageRef] + position: typing.Optional[PagePosition] = None + object_numbers: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], FieldMetadata(alias="objectNumbers"), pydantic.Field(alias="objectNumbers") + ] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/change_op_pages_insert.py b/src/cloudpdf/types/change_op_pages_insert.py index 02bb6c6..fd25bb1 100644 --- a/src/cloudpdf/types/change_op_pages_insert.py +++ b/src/cloudpdf/types/change_op_pages_insert.py @@ -3,7 +3,9 @@ import typing import pydantic +import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata from .change_op_pages_insert_resources import ChangeOpPagesInsertResources from .page_position import PagePosition @@ -11,6 +13,9 @@ class ChangeOpPagesInsert(UniversalBaseModel): resources: ChangeOpPagesInsertResources position: typing.Optional[PagePosition] = None + object_numbers: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], FieldMetadata(alias="objectNumbers"), pydantic.Field(alias="objectNumbers") + ] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/cloudpdf/types/doc_fonts_list200response.py b/src/cloudpdf/types/doc_fonts_list200response.py new file mode 100644 index 0000000..0b808c5 --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_list200response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .font_list import FontList + +DocFontsList200Response = FontList diff --git a/src/cloudpdf/types/doc_fonts_list404response.py b/src/cloudpdf/types/doc_fonts_list404response.py new file mode 100644 index 0000000..3ca31e7 --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_list404response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .engine_error_payload import EngineErrorPayload + +DocFontsList404Response = EngineErrorPayload diff --git a/src/cloudpdf/types/doc_fonts_programs_download403response.py b/src/cloudpdf/types/doc_fonts_programs_download403response.py new file mode 100644 index 0000000..72ca99b --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_programs_download403response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .engine_error_payload import EngineErrorPayload + +DocFontsProgramsDownload403Response = EngineErrorPayload diff --git a/src/cloudpdf/types/doc_fonts_programs_download404response.py b/src/cloudpdf/types/doc_fonts_programs_download404response.py new file mode 100644 index 0000000..d05ced0 --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_programs_download404response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .engine_error_payload import EngineErrorPayload + +DocFontsProgramsDownload404Response = EngineErrorPayload diff --git a/src/cloudpdf/types/doc_fonts_programs_get200response.py b/src/cloudpdf/types/doc_fonts_programs_get200response.py new file mode 100644 index 0000000..443547a --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_programs_get200response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .font_program_info import FontProgramInfo + +DocFontsProgramsGet200Response = FontProgramInfo diff --git a/src/cloudpdf/types/doc_fonts_programs_get404response.py b/src/cloudpdf/types/doc_fonts_programs_get404response.py new file mode 100644 index 0000000..46558c1 --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_programs_get404response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .engine_error_payload import EngineErrorPayload + +DocFontsProgramsGet404Response = EngineErrorPayload diff --git a/src/cloudpdf/types/doc_fonts_resolve200response.py b/src/cloudpdf/types/doc_fonts_resolve200response.py new file mode 100644 index 0000000..8f91abe --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_resolve200response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .font_resolution import FontResolution + +DocFontsResolve200Response = FontResolution diff --git a/src/cloudpdf/types/doc_fonts_resolve400response.py b/src/cloudpdf/types/doc_fonts_resolve400response.py new file mode 100644 index 0000000..a729340 --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_resolve400response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .engine_error_payload import EngineErrorPayload + +DocFontsResolve400Response = EngineErrorPayload diff --git a/src/cloudpdf/types/doc_fonts_resolve404response.py b/src/cloudpdf/types/doc_fonts_resolve404response.py new file mode 100644 index 0000000..8fd2df2 --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_resolve404response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .engine_error_payload import EngineErrorPayload + +DocFontsResolve404Response = EngineErrorPayload diff --git a/src/cloudpdf/types/doc_fonts_resolve_request.py b/src/cloudpdf/types/doc_fonts_resolve_request.py new file mode 100644 index 0000000..c88b8ea --- /dev/null +++ b/src/cloudpdf/types/doc_fonts_resolve_request.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .font_resolve_request import FontResolveRequest + +DocFontsResolveRequest = FontResolveRequest diff --git a/src/cloudpdf/types/doc_manifest200response.py b/src/cloudpdf/types/doc_manifest200response.py index cb3abee..7afca43 100644 --- a/src/cloudpdf/types/doc_manifest200response.py +++ b/src/cloudpdf/types/doc_manifest200response.py @@ -34,6 +34,12 @@ class DocManifest200Response(UniversalBaseModel): outline_version: typing_extensions.Annotated[ typing.Optional[int], FieldMetadata(alias="outlineVersion"), pydantic.Field(alias="outlineVersion") ] = None + fonts_version: typing_extensions.Annotated[ + typing.Optional[int], FieldMetadata(alias="fontsVersion"), pydantic.Field(alias="fontsVersion") + ] = None + server_fonts: typing_extensions.Annotated[ + str, FieldMetadata(alias="serverFonts"), pydantic.Field(alias="serverFonts") + ] audit_head: typing_extensions.Annotated[int, FieldMetadata(alias="auditHead"), pydantic.Field(alias="auditHead")] base_sha: typing_extensions.Annotated[str, FieldMetadata(alias="baseSha"), pydantic.Field(alias="baseSha")] layer_version: typing_extensions.Annotated[ diff --git a/src/cloudpdf/types/doc_pages_remove_name200response_layout.py b/src/cloudpdf/types/doc_pages_remove_name200response_layout.py index a58f749..433d65f 100644 --- a/src/cloudpdf/types/doc_pages_remove_name200response_layout.py +++ b/src/cloudpdf/types/doc_pages_remove_name200response_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .doc_pages_remove_name200response_layout_labels_item import DocPagesRemoveName200ResponseLayoutLabelsItem from .doc_pages_remove_name200response_layout_named_pages_item import DocPagesRemoveName200ResponseLayoutNamedPagesItem from .doc_pages_remove_name200response_layout_pages_item import DocPagesRemoveName200ResponseLayoutPagesItem @@ -13,6 +14,7 @@ class DocPagesRemoveName200ResponseLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[DocPagesRemoveName200ResponseLayoutPagesItem] + labels: typing.List[DocPagesRemoveName200ResponseLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[DocPagesRemoveName200ResponseLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/doc_pages_remove_name200response_layout_labels_item.py b/src/cloudpdf/types/doc_pages_remove_name200response_layout_labels_item.py new file mode 100644 index 0000000..8126f78 --- /dev/null +++ b/src/cloudpdf/types/doc_pages_remove_name200response_layout_labels_item.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .doc_pages_remove_name200response_layout_labels_item_style import ( + DocPagesRemoveName200ResponseLayoutLabelsItemStyle, +) + + +class DocPagesRemoveName200ResponseLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[DocPagesRemoveName200ResponseLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/doc_pages_remove_name200response_layout_labels_item_style.py b/src/cloudpdf/types/doc_pages_remove_name200response_layout_labels_item_style.py new file mode 100644 index 0000000..21bbdcd --- /dev/null +++ b/src/cloudpdf/types/doc_pages_remove_name200response_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +DocPagesRemoveName200ResponseLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/doc_pages_set_name200response_layout.py b/src/cloudpdf/types/doc_pages_set_name200response_layout.py index 2e92191..0d24f04 100644 --- a/src/cloudpdf/types/doc_pages_set_name200response_layout.py +++ b/src/cloudpdf/types/doc_pages_set_name200response_layout.py @@ -6,6 +6,7 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from ..core.serialization import FieldMetadata +from .doc_pages_set_name200response_layout_labels_item import DocPagesSetName200ResponseLayoutLabelsItem from .doc_pages_set_name200response_layout_named_pages_item import DocPagesSetName200ResponseLayoutNamedPagesItem from .doc_pages_set_name200response_layout_pages_item import DocPagesSetName200ResponseLayoutPagesItem @@ -13,6 +14,7 @@ class DocPagesSetName200ResponseLayout(UniversalBaseModel): page_count: typing_extensions.Annotated[int, FieldMetadata(alias="pageCount"), pydantic.Field(alias="pageCount")] pages: typing.List[DocPagesSetName200ResponseLayoutPagesItem] + labels: typing.List[DocPagesSetName200ResponseLayoutLabelsItem] named_pages: typing_extensions.Annotated[ typing.List[DocPagesSetName200ResponseLayoutNamedPagesItem], FieldMetadata(alias="namedPages"), diff --git a/src/cloudpdf/types/doc_pages_set_name200response_layout_labels_item.py b/src/cloudpdf/types/doc_pages_set_name200response_layout_labels_item.py new file mode 100644 index 0000000..cbe77be --- /dev/null +++ b/src/cloudpdf/types/doc_pages_set_name200response_layout_labels_item.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .doc_pages_set_name200response_layout_labels_item_style import DocPagesSetName200ResponseLayoutLabelsItemStyle + + +class DocPagesSetName200ResponseLayoutLabelsItem(UniversalBaseModel): + first_page: typing_extensions.Annotated[int, FieldMetadata(alias="firstPage"), pydantic.Field(alias="firstPage")] + style: typing.Optional[DocPagesSetName200ResponseLayoutLabelsItemStyle] = None + first_number: typing_extensions.Annotated[ + int, FieldMetadata(alias="firstNumber"), pydantic.Field(alias="firstNumber") + ] + prefix: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/doc_pages_set_name200response_layout_labels_item_style.py b/src/cloudpdf/types/doc_pages_set_name200response_layout_labels_item_style.py new file mode 100644 index 0000000..3bbcd98 --- /dev/null +++ b/src/cloudpdf/types/doc_pages_set_name200response_layout_labels_item_style.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +DocPagesSetName200ResponseLayoutLabelsItemStyle = typing.Union[ + typing.Literal["decimal", "upperRoman", "lowerRoman", "upperLetters", "lowerLetters"], typing.Any +] diff --git a/src/cloudpdf/types/documents_init403response.py b/src/cloudpdf/types/documents_init403response.py new file mode 100644 index 0000000..23a02f7 --- /dev/null +++ b/src/cloudpdf/types/documents_init403response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .admin_error_payload import AdminErrorPayload + +DocumentsInit403Response = AdminErrorPayload diff --git a/src/cloudpdf/types/documents_upload_proxy404response.py b/src/cloudpdf/types/documents_upload_proxy404response.py new file mode 100644 index 0000000..fc7597b --- /dev/null +++ b/src/cloudpdf/types/documents_upload_proxy404response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .admin_error_payload import AdminErrorPayload + +DocumentsUploadProxy404Response = AdminErrorPayload diff --git a/src/cloudpdf/types/font.py b/src/cloudpdf/types/font.py new file mode 100644 index 0000000..b82e7aa --- /dev/null +++ b/src/cloudpdf/types/font.py @@ -0,0 +1,34 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .font_program import FontProgram +from .font_restrictions_item import FontRestrictionsItem +from .font_source import FontSource + + +class Font(UniversalBaseModel): + name: str + source: FontSource + family_name: typing_extensions.Annotated[str, FieldMetadata(alias="familyName"), pydantic.Field(alias="familyName")] + weight: int + italic: bool + post_script_name: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="postScriptName"), pydantic.Field(alias="postScriptName") + ] = None + can_choose: typing_extensions.Annotated[bool, FieldMetadata(alias="canChoose"), pydantic.Field(alias="canChoose")] + restrictions: typing.List[FontRestrictionsItem] + programs: typing.List[FontProgram] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_list.py b/src/cloudpdf/types/font_list.py new file mode 100644 index 0000000..dd5e5c2 --- /dev/null +++ b/src/cloudpdf/types/font_list.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .font import Font +from .font_program import FontProgram + + +class FontList(UniversalBaseModel): + fonts: typing.List[Font] + fallbacks: typing.List[str] + last_resort: typing_extensions.Annotated[ + FontProgram, FieldMetadata(alias="lastResort"), pydantic.Field(alias="lastResort") + ] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_program.py b/src/cloudpdf/types/font_program.py new file mode 100644 index 0000000..69470b9 --- /dev/null +++ b/src/cloudpdf/types/font_program.py @@ -0,0 +1,39 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .font_program_embedded import FontProgramEmbedded +from .font_program_embedding_permission import FontProgramEmbeddingPermission +from .font_program_format import FontProgramFormat + + +class FontProgram(UniversalBaseModel): + display_hash: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="displayHash"), pydantic.Field(alias="displayHash") + ] = None + source_hash: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="sourceHash"), pydantic.Field(alias="sourceHash") + ] = None + embedded: FontProgramEmbedded + format: typing.Optional[FontProgramFormat] = None + embedding_permission: typing_extensions.Annotated[ + typing.Optional[FontProgramEmbeddingPermission], + FieldMetadata(alias="embeddingPermission"), + pydantic.Field(alias="embeddingPermission"), + ] = None + can_download: typing_extensions.Annotated[ + bool, FieldMetadata(alias="canDownload"), pydantic.Field(alias="canDownload") + ] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_program_embedded.py b/src/cloudpdf/types/font_program_embedded.py new file mode 100644 index 0000000..d91e599 --- /dev/null +++ b/src/cloudpdf/types/font_program_embedded.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontProgramEmbedded = typing.Union[typing.Literal["whole", "subset", "none"], typing.Any] diff --git a/src/cloudpdf/types/font_program_embedding_permission.py b/src/cloudpdf/types/font_program_embedding_permission.py new file mode 100644 index 0000000..4072d36 --- /dev/null +++ b/src/cloudpdf/types/font_program_embedding_permission.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontProgramEmbeddingPermission = typing.Union[ + typing.Literal["installable", "editable", "preview-and-print"], typing.Any +] diff --git a/src/cloudpdf/types/font_program_format.py b/src/cloudpdf/types/font_program_format.py new file mode 100644 index 0000000..c59b903 --- /dev/null +++ b/src/cloudpdf/types/font_program_format.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontProgramFormat = typing.Union[typing.Literal["truetype", "opentype", "cff", "type1", "type3"], typing.Any] diff --git a/src/cloudpdf/types/font_program_info.py b/src/cloudpdf/types/font_program_info.py new file mode 100644 index 0000000..3ae680c --- /dev/null +++ b/src/cloudpdf/types/font_program_info.py @@ -0,0 +1,43 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .font_program_info_covers_item import FontProgramInfoCoversItem +from .font_program_info_embedded import FontProgramInfoEmbedded +from .font_program_info_embedding_permission import FontProgramInfoEmbeddingPermission +from .font_program_info_format import FontProgramInfoFormat + + +class FontProgramInfo(UniversalBaseModel): + display_hash: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="displayHash"), pydantic.Field(alias="displayHash") + ] = None + source_hash: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="sourceHash"), pydantic.Field(alias="sourceHash") + ] = None + embedded: FontProgramInfoEmbedded + format: typing.Optional[FontProgramInfoFormat] = None + embedding_permission: typing_extensions.Annotated[ + typing.Optional[FontProgramInfoEmbeddingPermission], + FieldMetadata(alias="embeddingPermission"), + pydantic.Field(alias="embeddingPermission"), + ] = None + can_download: typing_extensions.Annotated[ + bool, FieldMetadata(alias="canDownload"), pydantic.Field(alias="canDownload") + ] + covers: typing.List[FontProgramInfoCoversItem] + ascent: float + descent: float + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_program_info_covers_item.py b/src/cloudpdf/types/font_program_info_covers_item.py new file mode 100644 index 0000000..1f12479 --- /dev/null +++ b/src/cloudpdf/types/font_program_info_covers_item.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class FontProgramInfoCoversItem(UniversalBaseModel): + start: int + count: int + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_program_info_embedded.py b/src/cloudpdf/types/font_program_info_embedded.py new file mode 100644 index 0000000..e6b2618 --- /dev/null +++ b/src/cloudpdf/types/font_program_info_embedded.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontProgramInfoEmbedded = typing.Union[typing.Literal["whole", "subset", "none"], typing.Any] diff --git a/src/cloudpdf/types/font_program_info_embedding_permission.py b/src/cloudpdf/types/font_program_info_embedding_permission.py new file mode 100644 index 0000000..eba0e3e --- /dev/null +++ b/src/cloudpdf/types/font_program_info_embedding_permission.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontProgramInfoEmbeddingPermission = typing.Union[ + typing.Literal["installable", "editable", "preview-and-print"], typing.Any +] diff --git a/src/cloudpdf/types/font_program_info_format.py b/src/cloudpdf/types/font_program_info_format.py new file mode 100644 index 0000000..391cbde --- /dev/null +++ b/src/cloudpdf/types/font_program_info_format.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontProgramInfoFormat = typing.Union[typing.Literal["truetype", "opentype", "cff", "type1", "type3"], typing.Any] diff --git a/src/cloudpdf/types/font_resolution.py b/src/cloudpdf/types/font_resolution.py new file mode 100644 index 0000000..eb2f85b --- /dev/null +++ b/src/cloudpdf/types/font_resolution.py @@ -0,0 +1,25 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .resolved_font_run import ResolvedFontRun + + +class FontResolution(UniversalBaseModel): + runs: typing.List[ResolvedFontRun] + missing_characters: typing_extensions.Annotated[ + typing.List[str], FieldMetadata(alias="missingCharacters"), pydantic.Field(alias="missingCharacters") + ] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_resolve_request.py b/src/cloudpdf/types/font_resolve_request.py new file mode 100644 index 0000000..fe9377a --- /dev/null +++ b/src/cloudpdf/types/font_resolve_request.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .annotation_ref import AnnotationRef +from .font_resolve_run import FontResolveRun + + +class FontResolveRequest(UniversalBaseModel): + annotation: typing.Optional[AnnotationRef] = None + runs: typing.List[FontResolveRun] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_resolve_run.py b/src/cloudpdf/types/font_resolve_run.py new file mode 100644 index 0000000..1c3e440 --- /dev/null +++ b/src/cloudpdf/types/font_resolve_run.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata + + +class FontResolveRun(UniversalBaseModel): + text: str + font_family: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="fontFamily"), pydantic.Field(alias="fontFamily") + ] = None + family: typing.Optional[str] = None + weight: typing.Optional[float] = None + italic: typing.Optional[bool] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/font_restrictions_item.py b/src/cloudpdf/types/font_restrictions_item.py new file mode 100644 index 0000000..1821284 --- /dev/null +++ b/src/cloudpdf/types/font_restrictions_item.py @@ -0,0 +1,8 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontRestrictionsItem = typing.Union[ + typing.Literal["subset", "not-embedded", "preview-and-print", "unsupported-format", "no-unicode-map", "not-served"], + typing.Any, +] diff --git a/src/cloudpdf/types/font_source.py b/src/cloudpdf/types/font_source.py new file mode 100644 index 0000000..050bbd1 --- /dev/null +++ b/src/cloudpdf/types/font_source.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FontSource = typing.Union[typing.Literal["standard", "engine", "document"], typing.Any] diff --git a/src/cloudpdf/types/form_mutation_meta.py b/src/cloudpdf/types/form_mutation_meta.py index a11b30a..4ce0e04 100644 --- a/src/cloudpdf/types/form_mutation_meta.py +++ b/src/cloudpdf/types/form_mutation_meta.py @@ -21,6 +21,11 @@ class FormMutationMeta(UniversalBaseModel): ] = None op_id: typing_extensions.Annotated[str, FieldMetadata(alias="opId"), pydantic.Field(alias="opId")] undoable: bool + missing_characters: typing_extensions.Annotated[ + typing.Optional[typing.List[str]], + FieldMetadata(alias="missingCharacters"), + pydantic.Field(alias="missingCharacters"), + ] = None changed_fields: typing_extensions.Annotated[ typing.List[FormFieldRef], FieldMetadata(alias="changedFields"), pydantic.Field(alias="changedFields") ] diff --git a/src/cloudpdf/types/grants_update403response.py b/src/cloudpdf/types/grants_update403response.py new file mode 100644 index 0000000..e9071fe --- /dev/null +++ b/src/cloudpdf/types/grants_update403response.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +from .admin_error_payload import AdminErrorPayload + +GrantsUpdate403Response = AdminErrorPayload diff --git a/src/cloudpdf/types/mutation_meta.py b/src/cloudpdf/types/mutation_meta.py index 08dd558..e7c61c7 100644 --- a/src/cloudpdf/types/mutation_meta.py +++ b/src/cloudpdf/types/mutation_meta.py @@ -19,6 +19,11 @@ class MutationMeta(UniversalBaseModel): ] = None op_id: typing_extensions.Annotated[str, FieldMetadata(alias="opId"), pydantic.Field(alias="opId")] undoable: bool + missing_characters: typing_extensions.Annotated[ + typing.Optional[typing.List[str]], + FieldMetadata(alias="missingCharacters"), + pydantic.Field(alias="missingCharacters"), + ] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/cloudpdf/types/outline_mutation_meta.py b/src/cloudpdf/types/outline_mutation_meta.py index b4a9118..7f2602f 100644 --- a/src/cloudpdf/types/outline_mutation_meta.py +++ b/src/cloudpdf/types/outline_mutation_meta.py @@ -20,6 +20,11 @@ class OutlineMutationMeta(UniversalBaseModel): ] = None op_id: typing_extensions.Annotated[str, FieldMetadata(alias="opId"), pydantic.Field(alias="opId")] undoable: bool + missing_characters: typing_extensions.Annotated[ + typing.Optional[typing.List[str]], + FieldMetadata(alias="missingCharacters"), + pydantic.Field(alias="missingCharacters"), + ] = None changed: typing.List[OutlineItemRef] if IS_PYDANTIC_V2: diff --git a/src/cloudpdf/types/resolved_font_run.py b/src/cloudpdf/types/resolved_font_run.py new file mode 100644 index 0000000..b9bbc54 --- /dev/null +++ b/src/cloudpdf/types/resolved_font_run.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ResolvedFontRun(UniversalBaseModel): + font: str + weight: float + italic: bool + substituted: bool + program: typing.Optional[str] = None + fallbacks: typing.List[str] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/tokens_issue_request.py b/src/cloudpdf/types/tokens_issue_request.py index aff7bda..76b30d5 100644 --- a/src/cloudpdf/types/tokens_issue_request.py +++ b/src/cloudpdf/types/tokens_issue_request.py @@ -49,6 +49,33 @@ class Config: extra = pydantic.Extra.allow +class TokensIssueRequest_Upload(UniversalBaseModel): + kind: typing.Literal["upload"] = "upload" + sub: str + folder_id: typing_extensions.Annotated[ + typing.Optional[str], FieldMetadata(alias="folderId"), pydantic.Field(alias="folderId") + ] = None + metadata: typing.Optional[typing.Dict[str, typing.Any]] = None + max_files: typing_extensions.Annotated[ + typing.Optional[int], FieldMetadata(alias="maxFiles"), pydantic.Field(alias="maxFiles") + ] = None + max_bytes: typing_extensions.Annotated[ + typing.Optional[int], FieldMetadata(alias="maxBytes"), pydantic.Field(alias="maxBytes") + ] = None + origins: typing.Optional[typing.List[str]] = None + expires_in: typing_extensions.Annotated[int, FieldMetadata(alias="expiresIn"), pydantic.Field(alias="expiresIn")] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + TokensIssueRequest = typing_extensions.Annotated[ - typing.Union[TokensIssueRequest_Doc, TokensIssueRequest_Tenant], pydantic.Field(discriminator="kind") + typing.Union[TokensIssueRequest_Doc, TokensIssueRequest_Tenant, TokensIssueRequest_Upload], + pydantic.Field(discriminator="kind"), ] diff --git a/src/cloudpdf/types/tokens_issue_request_upload.py b/src/cloudpdf/types/tokens_issue_request_upload.py new file mode 100644 index 0000000..a9a6a5e --- /dev/null +++ b/src/cloudpdf/types/tokens_issue_request_upload.py @@ -0,0 +1,39 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata + + +class TokensIssueRequestUpload(UniversalBaseModel): + sub: str + folder_id: typing_extensions.Annotated[ + typing.Optional[str], + FieldMetadata(alias="folderId"), + pydantic.Field(alias="folderId", description="A folder id, or root for the top level."), + ] = None + """ + A folder id, or root for the top level. + """ + + metadata: typing.Optional[typing.Dict[str, typing.Any]] = None + max_files: typing_extensions.Annotated[ + typing.Optional[int], FieldMetadata(alias="maxFiles"), pydantic.Field(alias="maxFiles") + ] = None + max_bytes: typing_extensions.Annotated[ + typing.Optional[int], FieldMetadata(alias="maxBytes"), pydantic.Field(alias="maxBytes") + ] = None + origins: typing.Optional[typing.List[str]] = None + expires_in: typing_extensions.Annotated[int, FieldMetadata(alias="expiresIn"), pydantic.Field(alias="expiresIn")] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/cloudpdf/types/widget_annotation.py b/src/cloudpdf/types/widget_annotation.py index ffc7379..4d98c14 100644 --- a/src/cloudpdf/types/widget_annotation.py +++ b/src/cloudpdf/types/widget_annotation.py @@ -32,6 +32,11 @@ class WidgetAnnotation(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[str], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.List[int]], + FieldMetadata(alias="structurePosition"), + pydantic.Field(alias="structurePosition"), + ] = None nm: typing.Optional[str] = None rect: WidgetAnnotationRect contents: typing.Optional[str] = None diff --git a/src/cloudpdf/types/widget_patch.py b/src/cloudpdf/types/widget_patch.py index 6eb7b76..3cc7848 100644 --- a/src/cloudpdf/types/widget_patch.py +++ b/src/cloudpdf/types/widget_patch.py @@ -27,6 +27,9 @@ class WidgetPatch(UniversalBaseModel): appearance_state: typing_extensions.Annotated[ typing.Optional[typing.Any], FieldMetadata(alias="appearanceState"), pydantic.Field(alias="appearanceState") ] = None + structure_position: typing_extensions.Annotated[ + typing.Optional[typing.Any], FieldMetadata(alias="structurePosition"), pydantic.Field(alias="structurePosition") + ] = None nm: typing.Optional[str] = None rect: typing.Optional[WidgetPatchRect] = None contents: typing.Optional[str] = None