diff --git a/.fern/metadata.json b/.fern/metadata.json index fcd8255..6b96f15 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -5,9 +5,9 @@ "generatorConfig": { "moduleName": "CloudPDF" }, - "originGitCommit": "81e6a2097d2997ef713a3013668e5eae0e748575", + "originGitCommit": "32635f40577b214f6a6b3189a2271425c3a574fd", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "3.0.0.alpha.5", + "requestedVersion": "3.0.0.alpha.6", "ciProvider": "github" } \ No newline at end of file diff --git a/cloudpdf-generation.json b/cloudpdf-generation.json index d92db07..bee3d02 100644 --- a/cloudpdf-generation.json +++ b/cloudpdf-generation.json @@ -1,12 +1,12 @@ { "language": "ruby", - "canonicalVersion": "3.0.0-next.5", - "sdkVersion": "3.0.0.alpha.5", + "canonicalVersion": "3.0.0-next.6", + "sdkVersion": "3.0.0.alpha.6", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "e86b3f1766a77c28cb782a6513b5a86998668cd4e688e5b5ac27342e58637cd7", - "gitCommit": "81e6a2097d2997ef713a3013668e5eae0e748575", + "openapiSha256": "b3e236a932673e27e05825352e1bc3675369d7505040bf7d7760e542aae8d38d", + "gitCommit": "32635f40577b214f6a6b3189a2271425c3a574fd", "gitCommitIsDirty": false }, "fern": { diff --git a/lib/CloudPDF/documents/client.rb b/lib/CloudPDF/documents/client.rb index a6e1b08..af6d79f 100644 --- a/lib/CloudPDF/documents/client.rb +++ b/lib/CloudPDF/documents/client.rb @@ -299,6 +299,55 @@ def upload_proxy(request_options: {}, **params) end end + # Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or + # failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the + # transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates + # scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source + # is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to + # resume the same document. URL sources are capabilities and never echoed back. Connection sources name + # operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment + # configuration); `revision` is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + # + # @param request_options [Hash] + # @param params [CloudPDF::Documents::Types::DocumentsImportFromRequest] + # @option request_options [String] :base_url + # @option request_options [Hash{String => Object}] :additional_headers + # @option request_options [Hash{String => Object}] :additional_query_parameters + # @option request_options [Hash{String => Object}] :additional_body_parameters + # @option request_options [Integer] :timeout_in_seconds + # @option params [String] :tenant_id + # + # @example + # client.documents.import_from(tenant_id: "tenantId") + # + # @return [CloudPDF::Types::DocumentsImportFrom200Response] + def import_from(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + request_data = CloudPDF::Documents::Types::DocumentsImportFromRequest.new(params).to_h + non_body_param_names = %w[tenantId] + body = request_data.except(*non_body_param_names) + + request = CloudPDF::Internal::JSON::Request.new( + base_url: request_options[:base_url], + method: "POST", + path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/documents/import", + body: body, + request_options: request_options + ) + begin + response = @client.send(request) + rescue Net::HTTPRequestTimeout + raise CloudPDF::Errors::TimeoutError + end + code = response.code.to_i + if code.between?(200, 299) + CloudPDF::Types::DocumentsImportFrom200Response.load(response.body) + else + error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) + raise error_class.new(response.body, code: code) + end + end + # @param request_options [Hash] # @param params [CloudPDF::Documents::Types::DocumentsInitRequest] # @option request_options [String] :base_url diff --git a/lib/CloudPDF/documents/types/documents_import_from_request.rb b/lib/CloudPDF/documents/types/documents_import_from_request.rb new file mode 100644 index 0000000..10abe82 --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_import_from_request.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + class DocumentsImportFromRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :source, -> { CloudPDF::Documents::Types::DocumentsImportFromRequestSource }, optional: false, nullable: false + + field :expected, -> { CloudPDF::Documents::Types::DocumentsImportFromRequestExpected }, optional: true, nullable: false + + field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false + + field :idempotency_key, -> { String }, optional: true, nullable: false, api_name: "idempotencyKey" + + field :dedup_mode, -> { CloudPDF::Documents::Types::DocumentsImportFromRequestDedupMode }, optional: true, nullable: false, api_name: "dedupMode" + + field :doc_id, -> { String }, optional: true, nullable: false, api_name: "docId" + + field :mode, -> { CloudPDF::Documents::Types::DocumentsImportFromRequestMode }, optional: true, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/documents/types/documents_import_from_request_dedup_mode.rb b/lib/CloudPDF/documents/types/documents_import_from_request_dedup_mode.rb new file mode 100644 index 0000000..5a03850 --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_import_from_request_dedup_mode.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + module DocumentsImportFromRequestDedupMode + extend CloudPDF::Internal::Types::Enum + + ALWAYS_CREATE = "always-create" + REUSE_EXISTING = "reuse-existing" + end + end + end +end diff --git a/lib/CloudPDF/documents/types/documents_import_from_request_expected.rb b/lib/CloudPDF/documents/types/documents_import_from_request_expected.rb new file mode 100644 index 0000000..2396861 --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_import_from_request_expected.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + class DocumentsImportFromRequestExpected < Internal::Types::Model + field :size_bytes, -> { Integer }, optional: true, nullable: false, api_name: "sizeBytes" + + field :sha256, -> { String }, optional: true, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/documents/types/documents_import_from_request_mode.rb b/lib/CloudPDF/documents/types/documents_import_from_request_mode.rb new file mode 100644 index 0000000..dc7945e --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_import_from_request_mode.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + module DocumentsImportFromRequestMode + extend CloudPDF::Internal::Types::Enum + + SYNC = "sync" + ASYNC = "async" + end + end + end +end diff --git a/lib/CloudPDF/documents/types/documents_import_from_request_source.rb b/lib/CloudPDF/documents/types/documents_import_from_request_source.rb new file mode 100644 index 0000000..3dcfda2 --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_import_from_request_source.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + class DocumentsImportFromRequestSource < Internal::Types::Model + extend CloudPDF::Internal::Types::Union + + discriminant :kind + + member -> { CloudPDF::Documents::Types::DocumentsImportFromRequestSourceURL }, key: "URL" + + member -> { CloudPDF::Documents::Types::DocumentsImportFromRequestSourceConnection }, key: "CONNECTION" + end + end + end +end diff --git a/lib/CloudPDF/documents/types/documents_import_from_request_source_connection.rb b/lib/CloudPDF/documents/types/documents_import_from_request_source_connection.rb new file mode 100644 index 0000000..7de9556 --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_import_from_request_source_connection.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + class DocumentsImportFromRequestSourceConnection < Internal::Types::Model + field :connection_id, -> { String }, optional: false, nullable: false, api_name: "connectionId" + + field :key, -> { String }, optional: false, nullable: false + + field :revision, -> { String }, optional: true, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/documents/types/documents_import_from_request_source_url.rb b/lib/CloudPDF/documents/types/documents_import_from_request_source_url.rb new file mode 100644 index 0000000..528ca08 --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_import_from_request_source_url.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + class DocumentsImportFromRequestSourceURL < Internal::Types::Model + field :url, -> { String }, optional: false, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from200response.rb b/lib/CloudPDF/types/documents_import_from200response.rb new file mode 100644 index 0000000..b52be35 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from200response.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom200Response < Internal::Types::Model + field :tag, -> { CloudPDF::Types::DocumentsImportFrom200ResponseTag }, optional: false, nullable: false + + field :document, -> { CloudPDF::Types::DocumentsImportFrom200ResponseDocument }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from200response_document.rb b/lib/CloudPDF/types/documents_import_from200response_document.rb new file mode 100644 index 0000000..9e46a41 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from200response_document.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom200ResponseDocument < Internal::Types::Model + field :id, -> { String }, optional: false, nullable: false + + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :state, -> { CloudPDF::Types::DocumentsImportFrom200ResponseDocumentState }, optional: false, nullable: false + + field :base_sha, -> { String }, optional: false, nullable: true, api_name: "baseSha" + + field :storage_size_bytes, -> { Integer }, optional: false, nullable: true, api_name: "storageSizeBytes" + + field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: true + + field :idempotency_key, -> { String }, optional: false, nullable: true, api_name: "idempotencyKey" + + field :failure_reason, -> { String }, optional: false, nullable: true, api_name: "failureReason" + + field :thumbnail_state, -> { CloudPDF::Types::DocumentsImportFrom200ResponseDocumentThumbnailState }, optional: true, nullable: false, api_name: "thumbnailState" + + field :thumbnail_url, -> { String }, optional: true, nullable: false, api_name: "thumbnailUrl" + + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" + + field :updated_at, -> { Integer }, optional: false, nullable: false, api_name: "updatedAt" + + field :created_by, -> { String }, optional: false, nullable: true, api_name: "createdBy" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from200response_document_state.rb b/lib/CloudPDF/types/documents_import_from200response_document_state.rb new file mode 100644 index 0000000..5e617d7 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from200response_document_state.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module DocumentsImportFrom200ResponseDocumentState + extend CloudPDF::Internal::Types::Enum + + PENDING = "pending" + READY = "ready" + FAILED = "failed" + DELETING = "deleting" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from200response_document_thumbnail_state.rb b/lib/CloudPDF/types/documents_import_from200response_document_thumbnail_state.rb new file mode 100644 index 0000000..7ef72b2 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from200response_document_thumbnail_state.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module DocumentsImportFrom200ResponseDocumentThumbnailState + extend CloudPDF::Internal::Types::Enum + + PENDING = "pending" + READY = "ready" + LOCKED = "locked" + FAILED = "failed" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from200response_tag.rb b/lib/CloudPDF/types/documents_import_from200response_tag.rb new file mode 100644 index 0000000..dbcbd41 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from200response_tag.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module DocumentsImportFrom200ResponseTag + extend CloudPDF::Internal::Types::Enum + + IMPORTED = "imported" + DEDUPED = "deduped" + ACCEPTED = "accepted" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from202response.rb b/lib/CloudPDF/types/documents_import_from202response.rb new file mode 100644 index 0000000..1bb06a2 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from202response.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom202Response < Internal::Types::Model + field :tag, -> { CloudPDF::Types::DocumentsImportFrom202ResponseTag }, optional: false, nullable: false + + field :document, -> { CloudPDF::Types::DocumentsImportFrom202ResponseDocument }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from202response_document.rb b/lib/CloudPDF/types/documents_import_from202response_document.rb new file mode 100644 index 0000000..63af689 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from202response_document.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom202ResponseDocument < Internal::Types::Model + field :id, -> { String }, optional: false, nullable: false + + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :state, -> { CloudPDF::Types::DocumentsImportFrom202ResponseDocumentState }, optional: false, nullable: false + + field :base_sha, -> { String }, optional: false, nullable: true, api_name: "baseSha" + + field :storage_size_bytes, -> { Integer }, optional: false, nullable: true, api_name: "storageSizeBytes" + + field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: true + + field :idempotency_key, -> { String }, optional: false, nullable: true, api_name: "idempotencyKey" + + field :failure_reason, -> { String }, optional: false, nullable: true, api_name: "failureReason" + + field :thumbnail_state, -> { CloudPDF::Types::DocumentsImportFrom202ResponseDocumentThumbnailState }, optional: true, nullable: false, api_name: "thumbnailState" + + field :thumbnail_url, -> { String }, optional: true, nullable: false, api_name: "thumbnailUrl" + + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" + + field :updated_at, -> { Integer }, optional: false, nullable: false, api_name: "updatedAt" + + field :created_by, -> { String }, optional: false, nullable: true, api_name: "createdBy" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from202response_document_state.rb b/lib/CloudPDF/types/documents_import_from202response_document_state.rb new file mode 100644 index 0000000..165b013 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from202response_document_state.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module DocumentsImportFrom202ResponseDocumentState + extend CloudPDF::Internal::Types::Enum + + PENDING = "pending" + READY = "ready" + FAILED = "failed" + DELETING = "deleting" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from202response_document_thumbnail_state.rb b/lib/CloudPDF/types/documents_import_from202response_document_thumbnail_state.rb new file mode 100644 index 0000000..6961369 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from202response_document_thumbnail_state.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module DocumentsImportFrom202ResponseDocumentThumbnailState + extend CloudPDF::Internal::Types::Enum + + PENDING = "pending" + READY = "ready" + LOCKED = "locked" + FAILED = "failed" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from202response_tag.rb b/lib/CloudPDF/types/documents_import_from202response_tag.rb new file mode 100644 index 0000000..4c0c947 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from202response_tag.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module DocumentsImportFrom202ResponseTag + extend CloudPDF::Internal::Types::Enum + + IMPORTED = "imported" + DEDUPED = "deduped" + ACCEPTED = "accepted" + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from400response.rb b/lib/CloudPDF/types/documents_import_from400response.rb new file mode 100644 index 0000000..aba9d64 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from400response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom400Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::DocumentsImportFrom400ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from400response_error.rb b/lib/CloudPDF/types/documents_import_from400response_error.rb new file mode 100644 index 0000000..89a7b64 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from400response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom400ResponseError < Internal::Types::Model + field :code, -> { String }, optional: false, nullable: false + + field :message, -> { String }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from403response.rb b/lib/CloudPDF/types/documents_import_from403response.rb new file mode 100644 index 0000000..ddb7dbc --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from403response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom403Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::DocumentsImportFrom403ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from403response_error.rb b/lib/CloudPDF/types/documents_import_from403response_error.rb new file mode 100644 index 0000000..bd0c2e2 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from403response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom403ResponseError < Internal::Types::Model + field :code, -> { String }, optional: false, nullable: false + + field :message, -> { String }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from502response.rb b/lib/CloudPDF/types/documents_import_from502response.rb new file mode 100644 index 0000000..47280a1 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from502response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom502Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::DocumentsImportFrom502ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_import_from502response_error.rb b/lib/CloudPDF/types/documents_import_from502response_error.rb new file mode 100644 index 0000000..4304b51 --- /dev/null +++ b/lib/CloudPDF/types/documents_import_from502response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsImportFrom502ResponseError < Internal::Types::Model + field :code, -> { String }, optional: false, nullable: false + + field :message, -> { String }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/version.rb b/lib/CloudPDF/version.rb index 7a5af25..0243f07 100644 --- a/lib/CloudPDF/version.rb +++ b/lib/CloudPDF/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module CloudPDF - VERSION = "3.0.0.alpha.5" + VERSION = "3.0.0.alpha.6" end diff --git a/lib/cloudpdf.rb b/lib/cloudpdf.rb index 2a7fc7c..3a8a7a2 100644 --- a/lib/cloudpdf.rb +++ b/lib/cloudpdf.rb @@ -36,6 +36,12 @@ require_relative "CloudPDF/internal/iterators/cursor_page_iterator" require_relative "CloudPDF/internal/iterators/offset_page_iterator" require_relative "CloudPDF/documents/types/list_documents_request_state" +require_relative "CloudPDF/documents/types/documents_import_from_request_source_url" +require_relative "CloudPDF/documents/types/documents_import_from_request_source_connection" +require_relative "CloudPDF/documents/types/documents_import_from_request_source" +require_relative "CloudPDF/documents/types/documents_import_from_request_expected" +require_relative "CloudPDF/documents/types/documents_import_from_request_dedup_mode" +require_relative "CloudPDF/documents/types/documents_import_from_request_mode" require_relative "CloudPDF/documents/types/documents_init_request_dedup_mode" require_relative "CloudPDF/documents/types/documents_init_request_upload_preference" require_relative "CloudPDF/doc/forms/types/export_data_forms_request_format" @@ -99,6 +105,22 @@ require_relative "CloudPDF/types/documents_upload_proxy400response" require_relative "CloudPDF/types/documents_upload_proxy409response_error" require_relative "CloudPDF/types/documents_upload_proxy409response" +require_relative "CloudPDF/types/documents_import_from200response_tag" +require_relative "CloudPDF/types/documents_import_from200response_document_state" +require_relative "CloudPDF/types/documents_import_from200response_document_thumbnail_state" +require_relative "CloudPDF/types/documents_import_from200response_document" +require_relative "CloudPDF/types/documents_import_from200response" +require_relative "CloudPDF/types/documents_import_from202response_tag" +require_relative "CloudPDF/types/documents_import_from202response_document_state" +require_relative "CloudPDF/types/documents_import_from202response_document_thumbnail_state" +require_relative "CloudPDF/types/documents_import_from202response_document" +require_relative "CloudPDF/types/documents_import_from202response" +require_relative "CloudPDF/types/documents_import_from400response_error" +require_relative "CloudPDF/types/documents_import_from400response" +require_relative "CloudPDF/types/documents_import_from403response_error" +require_relative "CloudPDF/types/documents_import_from403response" +require_relative "CloudPDF/types/documents_import_from502response_error" +require_relative "CloudPDF/types/documents_import_from502response" require_relative "CloudPDF/types/documents_list200response_documents_item_state" require_relative "CloudPDF/types/documents_list200response_documents_item_thumbnail_state" require_relative "CloudPDF/types/documents_list200response_documents_item" @@ -2006,6 +2028,7 @@ require_relative "CloudPDF/documents/types/download_documents_request" require_relative "CloudPDF/documents/types/thumbnail_documents_request" require_relative "CloudPDF/documents/types/upload_proxy_documents_request" +require_relative "CloudPDF/documents/types/documents_import_from_request" require_relative "CloudPDF/documents/types/documents_init_request" require_relative "CloudPDF/tokens/client" require_relative "CloudPDF/tokens/types/issue_tokens_request" diff --git a/reference.md b/reference.md index c9d92ee..a67c391 100644 --- a/reference.md +++ b/reference.md @@ -1747,6 +1747,124 @@ end + + + + +
client.documents.import_from(tenant_id:, request) -> CloudPDF::Types::DocumentsImportFrom200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); `revision` is provider-interpreted (S3 VersionId, GCS generation, Azure version id). +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.documents.import_from(tenant_id: "tenantId") +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**source:** `CloudPDF::Documents::Types::DocumentsImportFromRequestSource` + +
+
+ +
+
+ +**expected:** `CloudPDF::Documents::Types::DocumentsImportFromRequestExpected` + +
+
+ +
+
+ +**metadata:** `Internal::Types::Hash[String, Object]` + +
+
+ +
+
+ +**idempotency_key:** `String` + +
+
+ +
+
+ +**dedup_mode:** `CloudPDF::Documents::Types::DocumentsImportFromRequestDedupMode` + +
+
+ +
+
+ +**doc_id:** `String` + +
+
+ +
+
+ +**mode:** `CloudPDF::Documents::Types::DocumentsImportFromRequestMode` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Documents::RequestOptions` + +
+
+
+
+ +