From abb1426fd313d2c93d533611097a923225df8539 Mon Sep 17 00:00:00 2001 From: cloudpdf-sdk-bot Date: Wed, 12 Aug 2026 14:13:45 +0000 Subject: [PATCH] chore: generate CloudPDF Ruby SDK 3.0.0.alpha.3 --- .fern/metadata.json | 4 +- README.md | 10 +- cloudpdf-generation.json | 8 +- lib/CloudPDF/client.rb | 5 + lib/CloudPDF/documents/client.rb | 29 +- .../documents/types/documents_init_request.rb | 2 + ...ocuments_init_request_upload_preference.rb | 15 + .../types/upload_proxy_documents_request.rb | 15 + lib/CloudPDF/shares/client.rb | 264 ++++++ .../shares/types/delete_shares_request.rb | 13 + .../shares/types/get_shares_request.rb | 13 + .../shares/types/list_shares_request.rb | 17 + .../shares/types/shares_create_request.rb | 25 + .../shares/types/shares_exchange_request.rb | 13 + .../shares/types/shares_update_request.rb | 25 + lib/CloudPDF/tenants/client.rb | 117 +++ .../tenants/types/resume_tenants_request.rb | 11 + .../tenants/types/tenants_suspend_request.rb | 13 + .../tenants/types/usage_tenants_request.rb | 13 + ...ocuments_init200response_created_upload.rb | 2 +- ...s_init200response_created_upload_proxy.rb} | 2 +- ...ocuments_init200response_resumed_upload.rb | 2 +- ...s_init200response_resumed_upload_proxy.rb} | 2 +- .../documents_upload_direct400response.rb | 9 - ...b => documents_upload_proxy200response.rb} | 2 +- .../documents_upload_proxy400response.rb | 9 + ...ocuments_upload_proxy400response_error.rb} | 2 +- .../documents_upload_proxy409response.rb | 9 + ...documents_upload_proxy409response_error.rb | 11 + .../types/shares_create200response.rb | 9 + .../types/shares_create200response_share.rb | 37 + .../types/shares_create400response.rb | 9 + .../types/shares_create400response_error.rb | 11 + .../types/shares_create403response.rb | 9 + .../types/shares_create403response_error.rb | 11 + .../types/shares_create404response.rb | 9 + .../types/shares_create404response_error.rb | 11 + lib/CloudPDF/types/shares_delete_response.rb | 9 + .../types/shares_delete_response_error.rb | 11 + .../types/shares_exchange200response.rb | 15 + .../types/shares_exchange400response.rb | 9 + .../types/shares_exchange400response_error.rb | 11 + .../types/shares_exchange403response.rb | 9 + .../types/shares_exchange403response_error.rb | 11 + .../types/shares_exchange404response.rb | 9 + .../types/shares_exchange404response_error.rb | 11 + .../types/shares_exchange410response.rb | 9 + .../types/shares_exchange410response_error.rb | 11 + .../types/shares_exchange422response.rb | 9 + .../types/shares_exchange422response_error.rb | 11 + lib/CloudPDF/types/shares_get200response.rb | 9 + .../types/shares_get200response_share.rb | 37 + lib/CloudPDF/types/shares_get404response.rb | 9 + .../types/shares_get404response_error.rb | 11 + lib/CloudPDF/types/shares_list200response.rb | 11 + .../shares_list200response_shares_item.rb | 37 + lib/CloudPDF/types/shares_list400response.rb | 9 + .../types/shares_list400response_error.rb | 11 + .../types/shares_update200response.rb | 9 + .../types/shares_update200response_share.rb | 37 + .../types/shares_update400response.rb | 9 + .../types/shares_update400response_error.rb | 11 + .../types/shares_update404response.rb | 9 + .../types/shares_update404response_error.rb | 11 + .../types/tenants_create200response_tenant.rb | 2 + ...tenants_create200response_tenant_status.rb | 12 + .../types/tenants_get200response_tenant.rb | 2 + .../tenants_get200response_tenant_status.rb | 12 + .../tenants_list200response_tenants_item.rb | 2 + ...nts_list200response_tenants_item_status.rb | 12 + lib/CloudPDF/types/tenants_resume_response.rb | 9 + .../types/tenants_resume_response_error.rb | 11 + .../types/tenants_suspend_response.rb | 9 + .../types/tenants_suspend_response_error.rb | 11 + .../types/tenants_usage200response.rb | 15 + .../types/tenants_usage200response_metrics.rb | 13 + .../types/tenants_usage400response.rb | 9 + .../types/tenants_usage400response_error.rb | 11 + .../types/tenants_usage404response.rb | 9 + .../types/tenants_usage404response_error.rb | 11 + .../types/tokens_issue_request_doc.rb | 2 + ...ens_issue_request_tenant_scope_item_one.rb | 1 + lib/CloudPDF/version.rb | 2 +- lib/cloudpdf.rb | 72 +- reference.md | 762 ++++++++++++++++++ 85 files changed, 2074 insertions(+), 38 deletions(-) create mode 100644 lib/CloudPDF/documents/types/documents_init_request_upload_preference.rb create mode 100644 lib/CloudPDF/documents/types/upload_proxy_documents_request.rb create mode 100644 lib/CloudPDF/shares/client.rb create mode 100644 lib/CloudPDF/shares/types/delete_shares_request.rb create mode 100644 lib/CloudPDF/shares/types/get_shares_request.rb create mode 100644 lib/CloudPDF/shares/types/list_shares_request.rb create mode 100644 lib/CloudPDF/shares/types/shares_create_request.rb create mode 100644 lib/CloudPDF/shares/types/shares_exchange_request.rb create mode 100644 lib/CloudPDF/shares/types/shares_update_request.rb create mode 100644 lib/CloudPDF/tenants/types/resume_tenants_request.rb create mode 100644 lib/CloudPDF/tenants/types/tenants_suspend_request.rb create mode 100644 lib/CloudPDF/tenants/types/usage_tenants_request.rb rename lib/CloudPDF/types/{documents_init200response_created_upload_direct.rb => documents_init200response_created_upload_proxy.rb} (72%) rename lib/CloudPDF/types/{documents_init200response_resumed_upload_direct.rb => documents_init200response_resumed_upload_proxy.rb} (72%) delete mode 100644 lib/CloudPDF/types/documents_upload_direct400response.rb rename lib/CloudPDF/types/{documents_upload_direct200response.rb => documents_upload_proxy200response.rb} (68%) create mode 100644 lib/CloudPDF/types/documents_upload_proxy400response.rb rename lib/CloudPDF/types/{documents_upload_direct400response_error.rb => documents_upload_proxy400response_error.rb} (74%) create mode 100644 lib/CloudPDF/types/documents_upload_proxy409response.rb create mode 100644 lib/CloudPDF/types/documents_upload_proxy409response_error.rb create mode 100644 lib/CloudPDF/types/shares_create200response.rb create mode 100644 lib/CloudPDF/types/shares_create200response_share.rb create mode 100644 lib/CloudPDF/types/shares_create400response.rb create mode 100644 lib/CloudPDF/types/shares_create400response_error.rb create mode 100644 lib/CloudPDF/types/shares_create403response.rb create mode 100644 lib/CloudPDF/types/shares_create403response_error.rb create mode 100644 lib/CloudPDF/types/shares_create404response.rb create mode 100644 lib/CloudPDF/types/shares_create404response_error.rb create mode 100644 lib/CloudPDF/types/shares_delete_response.rb create mode 100644 lib/CloudPDF/types/shares_delete_response_error.rb create mode 100644 lib/CloudPDF/types/shares_exchange200response.rb create mode 100644 lib/CloudPDF/types/shares_exchange400response.rb create mode 100644 lib/CloudPDF/types/shares_exchange400response_error.rb create mode 100644 lib/CloudPDF/types/shares_exchange403response.rb create mode 100644 lib/CloudPDF/types/shares_exchange403response_error.rb create mode 100644 lib/CloudPDF/types/shares_exchange404response.rb create mode 100644 lib/CloudPDF/types/shares_exchange404response_error.rb create mode 100644 lib/CloudPDF/types/shares_exchange410response.rb create mode 100644 lib/CloudPDF/types/shares_exchange410response_error.rb create mode 100644 lib/CloudPDF/types/shares_exchange422response.rb create mode 100644 lib/CloudPDF/types/shares_exchange422response_error.rb create mode 100644 lib/CloudPDF/types/shares_get200response.rb create mode 100644 lib/CloudPDF/types/shares_get200response_share.rb create mode 100644 lib/CloudPDF/types/shares_get404response.rb create mode 100644 lib/CloudPDF/types/shares_get404response_error.rb create mode 100644 lib/CloudPDF/types/shares_list200response.rb create mode 100644 lib/CloudPDF/types/shares_list200response_shares_item.rb create mode 100644 lib/CloudPDF/types/shares_list400response.rb create mode 100644 lib/CloudPDF/types/shares_list400response_error.rb create mode 100644 lib/CloudPDF/types/shares_update200response.rb create mode 100644 lib/CloudPDF/types/shares_update200response_share.rb create mode 100644 lib/CloudPDF/types/shares_update400response.rb create mode 100644 lib/CloudPDF/types/shares_update400response_error.rb create mode 100644 lib/CloudPDF/types/shares_update404response.rb create mode 100644 lib/CloudPDF/types/shares_update404response_error.rb create mode 100644 lib/CloudPDF/types/tenants_create200response_tenant_status.rb create mode 100644 lib/CloudPDF/types/tenants_get200response_tenant_status.rb create mode 100644 lib/CloudPDF/types/tenants_list200response_tenants_item_status.rb create mode 100644 lib/CloudPDF/types/tenants_resume_response.rb create mode 100644 lib/CloudPDF/types/tenants_resume_response_error.rb create mode 100644 lib/CloudPDF/types/tenants_suspend_response.rb create mode 100644 lib/CloudPDF/types/tenants_suspend_response_error.rb create mode 100644 lib/CloudPDF/types/tenants_usage200response.rb create mode 100644 lib/CloudPDF/types/tenants_usage200response_metrics.rb create mode 100644 lib/CloudPDF/types/tenants_usage400response.rb create mode 100644 lib/CloudPDF/types/tenants_usage400response_error.rb create mode 100644 lib/CloudPDF/types/tenants_usage404response.rb create mode 100644 lib/CloudPDF/types/tenants_usage404response_error.rb diff --git a/.fern/metadata.json b/.fern/metadata.json index b51e640..fdb22eb 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -5,9 +5,9 @@ "generatorConfig": { "moduleName": "CloudPDF" }, - "originGitCommit": "a0adb9e77ef16feaef2358d71b247b4f5a98fd23", + "originGitCommit": "647a270b8920fbc1257ab4327af7042de5731a7f", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "3.0.0.alpha.1", + "requestedVersion": "3.0.0.alpha.3", "ciProvider": "github" } \ No newline at end of file diff --git a/README.md b/README.md index fe5a2ee..8fa4988 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ require "cloudpdf" client = CloudPDF::Client.new(token: "") -client.tenants.create(id: "id") +client.shares.exchange(share_token: "shareToken") ``` ## Environments @@ -58,7 +58,7 @@ client = CloudPDF::Client.new( ) begin - result = client.tenants.create + result = client.shares.exchange rescue CloudPDF::Errors::TimeoutError puts "API didn't respond before our timeout elapsed" rescue CloudPDF::Errors::ServiceUnavailableError @@ -108,7 +108,7 @@ The SDK defaults to a 60 second timeout. Use the `timeout` option to configure t ```ruby require "cloudpdf" -response = client.tenants.create( +response = client.shares.exchange( ..., timeout: 30 # 30 second timeout ) @@ -121,7 +121,7 @@ If you would like to send additional headers as part of the request, use the `ad ```ruby require "cloudpdf" -response = client.tenants.create( +response = client.shares.exchange( ..., request_options: { additional_headers: { @@ -138,7 +138,7 @@ If you would like to send additional query parameters as part of the request, us ```ruby require "cloudpdf" -response = client.tenants.create( +response = client.shares.exchange( ..., request_options: { additional_query_parameters: { diff --git a/cloudpdf-generation.json b/cloudpdf-generation.json index 959574d..cbcdf16 100644 --- a/cloudpdf-generation.json +++ b/cloudpdf-generation.json @@ -1,12 +1,12 @@ { "language": "ruby", - "canonicalVersion": "3.0.0-next.1", - "sdkVersion": "3.0.0.alpha.1", + "canonicalVersion": "3.0.0-next.3", + "sdkVersion": "3.0.0.alpha.3", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "6858ce7912e9063d8fb171ade95fc473db01c5971a3af241a612dda79cc05100", - "gitCommit": "a0adb9e77ef16feaef2358d71b247b4f5a98fd23", + "openapiSha256": "4bf35f30243e5a691f0a8c6b7fc3b4864276951350cf0f30f9b6501682e337d4", + "gitCommit": "647a270b8920fbc1257ab4327af7042de5731a7f", "gitCommitIsDirty": false }, "fern": { diff --git a/lib/CloudPDF/client.rb b/lib/CloudPDF/client.rb index f6c81ae..27e8b53 100644 --- a/lib/CloudPDF/client.rb +++ b/lib/CloudPDF/client.rb @@ -28,6 +28,11 @@ def doc @doc ||= CloudPDF::Doc::Client.new(client: @raw_client) end + # @return [CloudPDF::Shares::Client] + def shares + @shares ||= CloudPDF::Shares::Client.new(client: @raw_client) + end + # @return [CloudPDF::Tenants::Client] def tenants @tenants ||= CloudPDF::Tenants::Client.new(client: @raw_client) diff --git a/lib/CloudPDF/documents/client.rb b/lib/CloudPDF/documents/client.rb index 05a64d6..a6e1b08 100644 --- a/lib/CloudPDF/documents/client.rb +++ b/lib/CloudPDF/documents/client.rb @@ -249,8 +249,11 @@ def thumbnail(request_options: {}, **params) raise error_class.new(response.body, code: code) end + # 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. + # # @param request_options [Hash] - # @param params [Hash] + # @param params [void] # @option request_options [String] :base_url # @option request_options [Hash{String => Object}] :additional_headers # @option request_options [Hash{String => Object}] :additional_query_parameters @@ -258,14 +261,28 @@ def thumbnail(request_options: {}, **params) # @option request_options [Integer] :timeout_in_seconds # @option params [String] :tenant_id # @option params [String] :id + # @option params [#read] :file # - # @return [CloudPDF::Types::DocumentsUploadDirect200Response] - def upload_direct(request_options: {}, **params) + # @example + # client.documents.upload_proxy( + # tenant_id: "tenantId", + # id: "id", + # file: File.open("document.pdf", "rb") + # ) + # + # @return [CloudPDF::Types::DocumentsUploadProxy200Response] + def upload_proxy(request_options: {}, **params) params = CloudPDF::Internal::Types::Utils.normalize_keys(params) - request = CloudPDF::Internal::JSON::Request.new( + body = Internal::Multipart::FormData.new + + raise ArgumentError, "file is required" unless params[:file] + body.add_file(name: "file", file: params[:file], content_type: "application/pdf") + + request = CloudPDF::Internal::Multipart::Request.new( base_url: request_options[:base_url], method: "POST", - path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/documents/#{URI.encode_uri_component(params[:id].to_s)}/upload-direct", + path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/documents/#{URI.encode_uri_component(params[:id].to_s)}/upload-proxy", + body: body, request_options: request_options ) begin @@ -275,7 +292,7 @@ def upload_direct(request_options: {}, **params) end code = response.code.to_i if code.between?(200, 299) - CloudPDF::Types::DocumentsUploadDirect200Response.load(response.body) + CloudPDF::Types::DocumentsUploadProxy200Response.load(response.body) else error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) diff --git a/lib/CloudPDF/documents/types/documents_init_request.rb b/lib/CloudPDF/documents/types/documents_init_request.rb index ee30dd7..bba825f 100644 --- a/lib/CloudPDF/documents/types/documents_init_request.rb +++ b/lib/CloudPDF/documents/types/documents_init_request.rb @@ -19,6 +19,8 @@ class DocumentsInitRequest < Internal::Types::Model field :doc_id, -> { String }, optional: true, nullable: false, api_name: "docId" field :upload_ttl_sec, -> { Integer }, optional: true, nullable: false, api_name: "uploadTtlSec" + + field :upload_preference, -> { CloudPDF::Documents::Types::DocumentsInitRequestUploadPreference }, optional: true, nullable: false, api_name: "uploadPreference" end end end diff --git a/lib/CloudPDF/documents/types/documents_init_request_upload_preference.rb b/lib/CloudPDF/documents/types/documents_init_request_upload_preference.rb new file mode 100644 index 0000000..83e4b09 --- /dev/null +++ b/lib/CloudPDF/documents/types/documents_init_request_upload_preference.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + module DocumentsInitRequestUploadPreference + extend CloudPDF::Internal::Types::Enum + + AUTO = "auto" + PRESIGNED = "presigned" + PROXY = "proxy" + end + end + end +end diff --git a/lib/CloudPDF/documents/types/upload_proxy_documents_request.rb b/lib/CloudPDF/documents/types/upload_proxy_documents_request.rb new file mode 100644 index 0000000..5b60678 --- /dev/null +++ b/lib/CloudPDF/documents/types/upload_proxy_documents_request.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module CloudPDF + module Documents + module Types + class UploadProxyDocumentsRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :id, -> { String }, optional: false, nullable: false + + field :file, -> { Object }, optional: false, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/shares/client.rb b/lib/CloudPDF/shares/client.rb new file mode 100644 index 0000000..0423b9a --- /dev/null +++ b/lib/CloudPDF/shares/client.rb @@ -0,0 +1,264 @@ +# frozen_string_literal: true + +module CloudPDF + module Shares + class Client + # @param client [CloudPDF::Internal::Http::RawClient] + # + # @return [void] + def initialize(client:) + @client = client + end + + # Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, + # and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired + # until `password` is supplied. Mounted only when the deployment can sign (HS256 mode). + # + # @param request_options [Hash] + # @param params [CloudPDF::Shares::Types::SharesExchangeRequest] + # @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 + # + # @example + # client.shares.exchange(share_token: "shareToken") + # + # @return [CloudPDF::Types::SharesExchange200Response] + def exchange(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + request = CloudPDF::Internal::JSON::Request.new( + base_url: request_options[:base_url], + method: "POST", + path: "v1/share-sessions", + body: CloudPDF::Shares::Types::SharesExchangeRequest.new(params).to_h, + 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::SharesExchange200Response.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 [Hash] + # @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 + # @option params [Integer, nil] :limit + # @option params [String, nil] :cursor + # @option params [String, nil] :doc_id + # + # @example + # client.shares.list(tenant_id: "tenantId") + # + # @return [CloudPDF::Types::SharesList200Response] + def list(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + query_params = {} + query_params["limit"] = params[:limit] if params.key?(:limit) + query_params["cursor"] = params[:cursor] if params.key?(:cursor) + query_params["docId"] = params[:doc_id] if params.key?(:doc_id) + + request = CloudPDF::Internal::JSON::Request.new( + base_url: request_options[:base_url], + method: "GET", + path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/shares", + query: query_params, + 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::SharesList200Response.load(response.body) + else + error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) + raise error_class.new(response.body, code: code) + end + end + + # The returned share id IS the public share token. Mounted only when the deployment can sign (HS256 mode) — + # exchange mints session JWTs, so grants exist only where minting does. + # + # @param request_options [Hash] + # @param params [CloudPDF::Shares::Types::SharesCreateRequest] + # @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.shares.create( + # tenant_id: "tenantId", + # doc_id: "docId", + # scope: ["scope"] + # ) + # + # @return [CloudPDF::Types::SharesCreate200Response] + def create(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + request_data = CloudPDF::Shares::Types::SharesCreateRequest.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)}/shares", + 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::SharesCreate200Response.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 [Hash] + # @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 + # @option params [String] :share_id + # + # @example + # client.shares.get( + # tenant_id: "tenantId", + # share_id: "shareId" + # ) + # + # @return [CloudPDF::Types::SharesGet200Response] + def get(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + request = CloudPDF::Internal::JSON::Request.new( + base_url: request_options[:base_url], + method: "GET", + path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/shares/#{URI.encode_uri_component(params[:share_id].to_s)}", + 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::SharesGet200Response.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 [Hash] + # @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 + # @option params [String] :share_id + # + # @example + # client.shares.delete( + # tenant_id: "tenantId", + # share_id: "shareId" + # ) + # + # @return [untyped] + def delete(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + request = CloudPDF::Internal::JSON::Request.new( + base_url: request_options[:base_url], + method: "DELETE", + path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/shares/#{URI.encode_uri_component(params[:share_id].to_s)}", + request_options: request_options + ) + begin + response = @client.send(request) + rescue Net::HTTPRequestTimeout + raise CloudPDF::Errors::TimeoutError + end + code = response.code.to_i + return if code.between?(200, 299) + + error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) + raise error_class.new(response.body, code: code) + end + + # @param request_options [Hash] + # @param params [CloudPDF::Shares::Types::SharesUpdateRequest] + # @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 + # @option params [String] :share_id + # + # @example + # client.shares.update( + # tenant_id: "tenantId", + # share_id: "shareId" + # ) + # + # @return [CloudPDF::Types::SharesUpdate200Response] + def update(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + request_data = CloudPDF::Shares::Types::SharesUpdateRequest.new(params).to_h + non_body_param_names = %w[tenantId shareId] + body = request_data.except(*non_body_param_names) + + request = CloudPDF::Internal::JSON::Request.new( + base_url: request_options[:base_url], + method: "PATCH", + path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/shares/#{URI.encode_uri_component(params[:share_id].to_s)}", + 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::SharesUpdate200Response.load(response.body) + else + error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) + raise error_class.new(response.body, code: code) + end + end + end + end +end diff --git a/lib/CloudPDF/shares/types/delete_shares_request.rb b/lib/CloudPDF/shares/types/delete_shares_request.rb new file mode 100644 index 0000000..122bc9b --- /dev/null +++ b/lib/CloudPDF/shares/types/delete_shares_request.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Shares + module Types + class DeleteSharesRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :share_id, -> { String }, optional: false, nullable: false, api_name: "shareId" + end + end + end +end diff --git a/lib/CloudPDF/shares/types/get_shares_request.rb b/lib/CloudPDF/shares/types/get_shares_request.rb new file mode 100644 index 0000000..0d9c3b1 --- /dev/null +++ b/lib/CloudPDF/shares/types/get_shares_request.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Shares + module Types + class GetSharesRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :share_id, -> { String }, optional: false, nullable: false, api_name: "shareId" + end + end + end +end diff --git a/lib/CloudPDF/shares/types/list_shares_request.rb b/lib/CloudPDF/shares/types/list_shares_request.rb new file mode 100644 index 0000000..918633b --- /dev/null +++ b/lib/CloudPDF/shares/types/list_shares_request.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module CloudPDF + module Shares + module Types + class ListSharesRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :limit, -> { Integer }, optional: true, nullable: false + + field :cursor, -> { String }, optional: true, nullable: false + + field :doc_id, -> { String }, optional: true, nullable: false, api_name: "docId" + end + end + end +end diff --git a/lib/CloudPDF/shares/types/shares_create_request.rb b/lib/CloudPDF/shares/types/shares_create_request.rb new file mode 100644 index 0000000..f9ba0aa --- /dev/null +++ b/lib/CloudPDF/shares/types/shares_create_request.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module CloudPDF + module Shares + module Types + class SharesCreateRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :doc_id, -> { String }, optional: false, nullable: false, api_name: "docId" + + field :layer_name, -> { String }, optional: true, nullable: false, api_name: "layerName" + + field :scope, -> { Internal::Types::Array[String] }, optional: false, nullable: false + + field :origins, -> { Internal::Types::Array[String] }, optional: true, nullable: false + + field :password, -> { String }, optional: true, nullable: false + + field :session_ttl_seconds, -> { Integer }, optional: true, nullable: false, api_name: "sessionTtlSeconds" + + field :expires_at, -> { Integer }, optional: true, nullable: false, api_name: "expiresAt" + end + end + end +end diff --git a/lib/CloudPDF/shares/types/shares_exchange_request.rb b/lib/CloudPDF/shares/types/shares_exchange_request.rb new file mode 100644 index 0000000..e12cd74 --- /dev/null +++ b/lib/CloudPDF/shares/types/shares_exchange_request.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Shares + module Types + class SharesExchangeRequest < Internal::Types::Model + field :share_token, -> { String }, optional: false, nullable: false, api_name: "shareToken" + + field :password, -> { String }, optional: true, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/shares/types/shares_update_request.rb b/lib/CloudPDF/shares/types/shares_update_request.rb new file mode 100644 index 0000000..addf837 --- /dev/null +++ b/lib/CloudPDF/shares/types/shares_update_request.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module CloudPDF + module Shares + module Types + class SharesUpdateRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :share_id, -> { String }, optional: false, nullable: false, api_name: "shareId" + + field :scope, -> { Internal::Types::Array[String] }, optional: true, nullable: false + + field :origins, -> { Internal::Types::Array[String] }, optional: true, nullable: false + + field :password, -> { String }, optional: true, nullable: false + + field :session_ttl_seconds, -> { Integer }, optional: true, nullable: false, api_name: "sessionTtlSeconds" + + field :disabled, -> { Internal::Types::Boolean }, optional: true, nullable: false + + field :expires_at, -> { Integer }, optional: true, nullable: false, api_name: "expiresAt" + end + end + end +end diff --git a/lib/CloudPDF/tenants/client.rb b/lib/CloudPDF/tenants/client.rb index 251c46f..b7195ec 100644 --- a/lib/CloudPDF/tenants/client.rb +++ b/lib/CloudPDF/tenants/client.rb @@ -156,6 +156,123 @@ def delete(request_options: {}, **params) error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end + + # @param request_options [Hash] + # @param params [Hash] + # @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.tenants.resume(tenant_id: "tenantId") + # + # @return [untyped] + def resume(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + 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)}/resume", + request_options: request_options + ) + begin + response = @client.send(request) + rescue Net::HTTPRequestTimeout + raise CloudPDF::Errors::TimeoutError + end + code = response.code.to_i + return if code.between?(200, 299) + + error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) + raise error_class.new(response.body, code: code) + end + + # Instantly reversible with resume. The API token is exempt, so a suspended tenant can still be inspected, + # exported, resumed, or deleted. + # + # @param request_options [Hash] + # @param params [CloudPDF::Tenants::Types::TenantsSuspendRequest] + # @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.tenants.suspend(tenant_id: "tenantId") + # + # @return [untyped] + def suspend(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + request_data = CloudPDF::Tenants::Types::TenantsSuspendRequest.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)}/suspend", + body: body, + request_options: request_options + ) + begin + response = @client.send(request) + rescue Net::HTTPRequestTimeout + raise CloudPDF::Errors::TimeoutError + end + code = response.code.to_i + return if code.between?(200, 299) + + error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) + raise error_class.new(response.body, code: code) + end + + # Facts only — no limits or billing state. Views count share exchanges plus authorized /v1/access grants, + # deduplicated across the two. + # + # @param request_options [Hash] + # @param params [Hash] + # @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 + # @option params [String, nil] :period + # + # @example + # client.tenants.usage(tenant_id: "tenantId") + # + # @return [CloudPDF::Types::TenantsUsage200Response] + def usage(request_options: {}, **params) + params = CloudPDF::Internal::Types::Utils.normalize_keys(params) + query_params = {} + query_params["period"] = params[:period] if params.key?(:period) + + request = CloudPDF::Internal::JSON::Request.new( + base_url: request_options[:base_url], + method: "GET", + path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/usage", + query: query_params, + 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::TenantsUsage200Response.load(response.body) + else + error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code) + raise error_class.new(response.body, code: code) + end + end end end end diff --git a/lib/CloudPDF/tenants/types/resume_tenants_request.rb b/lib/CloudPDF/tenants/types/resume_tenants_request.rb new file mode 100644 index 0000000..9d5697b --- /dev/null +++ b/lib/CloudPDF/tenants/types/resume_tenants_request.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Tenants + module Types + class ResumeTenantsRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + end + end + end +end diff --git a/lib/CloudPDF/tenants/types/tenants_suspend_request.rb b/lib/CloudPDF/tenants/types/tenants_suspend_request.rb new file mode 100644 index 0000000..f4fa586 --- /dev/null +++ b/lib/CloudPDF/tenants/types/tenants_suspend_request.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Tenants + module Types + class TenantsSuspendRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :reason, -> { String }, optional: true, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/tenants/types/usage_tenants_request.rb b/lib/CloudPDF/tenants/types/usage_tenants_request.rb new file mode 100644 index 0000000..86f43ad --- /dev/null +++ b/lib/CloudPDF/tenants/types/usage_tenants_request.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Tenants + module Types + class UsageTenantsRequest < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :period, -> { String }, optional: true, nullable: false + end + end + end +end diff --git a/lib/CloudPDF/types/documents_init200response_created_upload.rb b/lib/CloudPDF/types/documents_init200response_created_upload.rb index 83dd837..0342c66 100644 --- a/lib/CloudPDF/types/documents_init200response_created_upload.rb +++ b/lib/CloudPDF/types/documents_init200response_created_upload.rb @@ -9,7 +9,7 @@ class DocumentsInit200ResponseCreatedUpload < Internal::Types::Model member -> { CloudPDF::Types::DocumentsInit200ResponseCreatedUploadPresigned }, key: "PRESIGNED" - member -> { CloudPDF::Types::DocumentsInit200ResponseCreatedUploadDirect }, key: "DIRECT" + member -> { CloudPDF::Types::DocumentsInit200ResponseCreatedUploadProxy }, key: "PROXY" end end end diff --git a/lib/CloudPDF/types/documents_init200response_created_upload_direct.rb b/lib/CloudPDF/types/documents_init200response_created_upload_proxy.rb similarity index 72% rename from lib/CloudPDF/types/documents_init200response_created_upload_direct.rb rename to lib/CloudPDF/types/documents_init200response_created_upload_proxy.rb index 99c69b9..dd5d67f 100644 --- a/lib/CloudPDF/types/documents_init200response_created_upload_direct.rb +++ b/lib/CloudPDF/types/documents_init200response_created_upload_proxy.rb @@ -2,7 +2,7 @@ module CloudPDF module Types - class DocumentsInit200ResponseCreatedUploadDirect < Internal::Types::Model + class DocumentsInit200ResponseCreatedUploadProxy < Internal::Types::Model field :url, -> { String }, optional: false, nullable: false field :key, -> { String }, optional: false, nullable: false diff --git a/lib/CloudPDF/types/documents_init200response_resumed_upload.rb b/lib/CloudPDF/types/documents_init200response_resumed_upload.rb index e81facd..04b318d 100644 --- a/lib/CloudPDF/types/documents_init200response_resumed_upload.rb +++ b/lib/CloudPDF/types/documents_init200response_resumed_upload.rb @@ -9,7 +9,7 @@ class DocumentsInit200ResponseResumedUpload < Internal::Types::Model member -> { CloudPDF::Types::DocumentsInit200ResponseResumedUploadPresigned }, key: "PRESIGNED" - member -> { CloudPDF::Types::DocumentsInit200ResponseResumedUploadDirect }, key: "DIRECT" + member -> { CloudPDF::Types::DocumentsInit200ResponseResumedUploadProxy }, key: "PROXY" end end end diff --git a/lib/CloudPDF/types/documents_init200response_resumed_upload_direct.rb b/lib/CloudPDF/types/documents_init200response_resumed_upload_proxy.rb similarity index 72% rename from lib/CloudPDF/types/documents_init200response_resumed_upload_direct.rb rename to lib/CloudPDF/types/documents_init200response_resumed_upload_proxy.rb index f9eb8ee..41b8b7f 100644 --- a/lib/CloudPDF/types/documents_init200response_resumed_upload_direct.rb +++ b/lib/CloudPDF/types/documents_init200response_resumed_upload_proxy.rb @@ -2,7 +2,7 @@ module CloudPDF module Types - class DocumentsInit200ResponseResumedUploadDirect < Internal::Types::Model + class DocumentsInit200ResponseResumedUploadProxy < Internal::Types::Model field :url, -> { String }, optional: false, nullable: false field :key, -> { String }, optional: false, nullable: false diff --git a/lib/CloudPDF/types/documents_upload_direct400response.rb b/lib/CloudPDF/types/documents_upload_direct400response.rb deleted file mode 100644 index 3ad8c35..0000000 --- a/lib/CloudPDF/types/documents_upload_direct400response.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -module CloudPDF - module Types - class DocumentsUploadDirect400Response < Internal::Types::Model - field :error, -> { CloudPDF::Types::DocumentsUploadDirect400ResponseError }, optional: false, nullable: false - end - end -end diff --git a/lib/CloudPDF/types/documents_upload_direct200response.rb b/lib/CloudPDF/types/documents_upload_proxy200response.rb similarity index 68% rename from lib/CloudPDF/types/documents_upload_direct200response.rb rename to lib/CloudPDF/types/documents_upload_proxy200response.rb index 45dc7fd..69034a4 100644 --- a/lib/CloudPDF/types/documents_upload_direct200response.rb +++ b/lib/CloudPDF/types/documents_upload_proxy200response.rb @@ -2,7 +2,7 @@ module CloudPDF module Types - class DocumentsUploadDirect200Response < Internal::Types::Model + class DocumentsUploadProxy200Response < Internal::Types::Model field :sha256, -> { String }, optional: false, nullable: false end end diff --git a/lib/CloudPDF/types/documents_upload_proxy400response.rb b/lib/CloudPDF/types/documents_upload_proxy400response.rb new file mode 100644 index 0000000..face4dc --- /dev/null +++ b/lib/CloudPDF/types/documents_upload_proxy400response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsUploadProxy400Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::DocumentsUploadProxy400ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_upload_direct400response_error.rb b/lib/CloudPDF/types/documents_upload_proxy400response_error.rb similarity index 74% rename from lib/CloudPDF/types/documents_upload_direct400response_error.rb rename to lib/CloudPDF/types/documents_upload_proxy400response_error.rb index b54d8e5..c847708 100644 --- a/lib/CloudPDF/types/documents_upload_direct400response_error.rb +++ b/lib/CloudPDF/types/documents_upload_proxy400response_error.rb @@ -2,7 +2,7 @@ module CloudPDF module Types - class DocumentsUploadDirect400ResponseError < Internal::Types::Model + class DocumentsUploadProxy400ResponseError < Internal::Types::Model field :code, -> { String }, optional: false, nullable: false field :message, -> { String }, optional: false, nullable: false diff --git a/lib/CloudPDF/types/documents_upload_proxy409response.rb b/lib/CloudPDF/types/documents_upload_proxy409response.rb new file mode 100644 index 0000000..b859139 --- /dev/null +++ b/lib/CloudPDF/types/documents_upload_proxy409response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsUploadProxy409Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::DocumentsUploadProxy409ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/documents_upload_proxy409response_error.rb b/lib/CloudPDF/types/documents_upload_proxy409response_error.rb new file mode 100644 index 0000000..65e958b --- /dev/null +++ b/lib/CloudPDF/types/documents_upload_proxy409response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class DocumentsUploadProxy409ResponseError < 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/shares_create200response.rb b/lib/CloudPDF/types/shares_create200response.rb new file mode 100644 index 0000000..4c994b5 --- /dev/null +++ b/lib/CloudPDF/types/shares_create200response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate200Response < Internal::Types::Model + field :share, -> { CloudPDF::Types::SharesCreate200ResponseShare }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_create200response_share.rb b/lib/CloudPDF/types/shares_create200response_share.rb new file mode 100644 index 0000000..bd8e696 --- /dev/null +++ b/lib/CloudPDF/types/shares_create200response_share.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate200ResponseShare < Internal::Types::Model + field :id, -> { String }, optional: false, nullable: false + + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :doc_id, -> { String }, optional: false, nullable: false, api_name: "docId" + + field :layer_name, -> { String }, optional: false, nullable: false, api_name: "layerName" + + field :scope, -> { Internal::Types::Array[String] }, optional: false, nullable: false + + field :origins, -> { Internal::Types::Array[String] }, optional: false, nullable: true + + field :password_protected, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "passwordProtected" + + field :session_ttl_seconds, -> { Integer }, optional: false, nullable: false, api_name: "sessionTtlSeconds" + + field :disabled, -> { Internal::Types::Boolean }, optional: false, nullable: false + + field :expires_at, -> { Integer }, optional: false, nullable: true, api_name: "expiresAt" + + field :exchange_count, -> { Integer }, optional: false, nullable: false, api_name: "exchangeCount" + + field :last_exchanged_at, -> { Integer }, optional: false, nullable: true, api_name: "lastExchangedAt" + + field :created_by, -> { String }, optional: false, nullable: false, api_name: "createdBy" + + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" + + field :updated_at, -> { Integer }, optional: false, nullable: false, api_name: "updatedAt" + end + end +end diff --git a/lib/CloudPDF/types/shares_create400response.rb b/lib/CloudPDF/types/shares_create400response.rb new file mode 100644 index 0000000..30d332f --- /dev/null +++ b/lib/CloudPDF/types/shares_create400response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate400Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesCreate400ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_create400response_error.rb b/lib/CloudPDF/types/shares_create400response_error.rb new file mode 100644 index 0000000..2e3680b --- /dev/null +++ b/lib/CloudPDF/types/shares_create400response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate400ResponseError < 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/shares_create403response.rb b/lib/CloudPDF/types/shares_create403response.rb new file mode 100644 index 0000000..fe4c117 --- /dev/null +++ b/lib/CloudPDF/types/shares_create403response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate403Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesCreate403ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_create403response_error.rb b/lib/CloudPDF/types/shares_create403response_error.rb new file mode 100644 index 0000000..560f510 --- /dev/null +++ b/lib/CloudPDF/types/shares_create403response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate403ResponseError < 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/shares_create404response.rb b/lib/CloudPDF/types/shares_create404response.rb new file mode 100644 index 0000000..76d0225 --- /dev/null +++ b/lib/CloudPDF/types/shares_create404response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate404Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesCreate404ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_create404response_error.rb b/lib/CloudPDF/types/shares_create404response_error.rb new file mode 100644 index 0000000..51e3b7e --- /dev/null +++ b/lib/CloudPDF/types/shares_create404response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesCreate404ResponseError < 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/shares_delete_response.rb b/lib/CloudPDF/types/shares_delete_response.rb new file mode 100644 index 0000000..b2e3044 --- /dev/null +++ b/lib/CloudPDF/types/shares_delete_response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesDeleteResponse < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesDeleteResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_delete_response_error.rb b/lib/CloudPDF/types/shares_delete_response_error.rb new file mode 100644 index 0000000..701e950 --- /dev/null +++ b/lib/CloudPDF/types/shares_delete_response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesDeleteResponseError < 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/shares_exchange200response.rb b/lib/CloudPDF/types/shares_exchange200response.rb new file mode 100644 index 0000000..81a2752 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange200response.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange200Response < Internal::Types::Model + field :token, -> { String }, optional: false, nullable: false + + field :doc_id, -> { String }, optional: false, nullable: false, api_name: "docId" + + field :layer_name, -> { String }, optional: false, nullable: false, api_name: "layerName" + + field :expires_at, -> { Integer }, optional: false, nullable: false, api_name: "expiresAt" + end + end +end diff --git a/lib/CloudPDF/types/shares_exchange400response.rb b/lib/CloudPDF/types/shares_exchange400response.rb new file mode 100644 index 0000000..adb1309 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange400response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange400Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesExchange400ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_exchange400response_error.rb b/lib/CloudPDF/types/shares_exchange400response_error.rb new file mode 100644 index 0000000..6fea253 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange400response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange400ResponseError < 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/shares_exchange403response.rb b/lib/CloudPDF/types/shares_exchange403response.rb new file mode 100644 index 0000000..d7b0d32 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange403response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange403Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesExchange403ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_exchange403response_error.rb b/lib/CloudPDF/types/shares_exchange403response_error.rb new file mode 100644 index 0000000..0f82b5c --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange403response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange403ResponseError < 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/shares_exchange404response.rb b/lib/CloudPDF/types/shares_exchange404response.rb new file mode 100644 index 0000000..3feec35 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange404response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange404Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesExchange404ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_exchange404response_error.rb b/lib/CloudPDF/types/shares_exchange404response_error.rb new file mode 100644 index 0000000..1b7f3b1 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange404response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange404ResponseError < 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/shares_exchange410response.rb b/lib/CloudPDF/types/shares_exchange410response.rb new file mode 100644 index 0000000..485d2d8 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange410response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange410Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesExchange410ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_exchange410response_error.rb b/lib/CloudPDF/types/shares_exchange410response_error.rb new file mode 100644 index 0000000..8663038 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange410response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange410ResponseError < 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/shares_exchange422response.rb b/lib/CloudPDF/types/shares_exchange422response.rb new file mode 100644 index 0000000..c047991 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange422response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange422Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesExchange422ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_exchange422response_error.rb b/lib/CloudPDF/types/shares_exchange422response_error.rb new file mode 100644 index 0000000..3ec9d18 --- /dev/null +++ b/lib/CloudPDF/types/shares_exchange422response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesExchange422ResponseError < 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/shares_get200response.rb b/lib/CloudPDF/types/shares_get200response.rb new file mode 100644 index 0000000..7f80f85 --- /dev/null +++ b/lib/CloudPDF/types/shares_get200response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesGet200Response < Internal::Types::Model + field :share, -> { CloudPDF::Types::SharesGet200ResponseShare }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_get200response_share.rb b/lib/CloudPDF/types/shares_get200response_share.rb new file mode 100644 index 0000000..14407fe --- /dev/null +++ b/lib/CloudPDF/types/shares_get200response_share.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesGet200ResponseShare < Internal::Types::Model + field :id, -> { String }, optional: false, nullable: false + + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :doc_id, -> { String }, optional: false, nullable: false, api_name: "docId" + + field :layer_name, -> { String }, optional: false, nullable: false, api_name: "layerName" + + field :scope, -> { Internal::Types::Array[String] }, optional: false, nullable: false + + field :origins, -> { Internal::Types::Array[String] }, optional: false, nullable: true + + field :password_protected, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "passwordProtected" + + field :session_ttl_seconds, -> { Integer }, optional: false, nullable: false, api_name: "sessionTtlSeconds" + + field :disabled, -> { Internal::Types::Boolean }, optional: false, nullable: false + + field :expires_at, -> { Integer }, optional: false, nullable: true, api_name: "expiresAt" + + field :exchange_count, -> { Integer }, optional: false, nullable: false, api_name: "exchangeCount" + + field :last_exchanged_at, -> { Integer }, optional: false, nullable: true, api_name: "lastExchangedAt" + + field :created_by, -> { String }, optional: false, nullable: false, api_name: "createdBy" + + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" + + field :updated_at, -> { Integer }, optional: false, nullable: false, api_name: "updatedAt" + end + end +end diff --git a/lib/CloudPDF/types/shares_get404response.rb b/lib/CloudPDF/types/shares_get404response.rb new file mode 100644 index 0000000..69b455e --- /dev/null +++ b/lib/CloudPDF/types/shares_get404response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesGet404Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesGet404ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_get404response_error.rb b/lib/CloudPDF/types/shares_get404response_error.rb new file mode 100644 index 0000000..e307495 --- /dev/null +++ b/lib/CloudPDF/types/shares_get404response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesGet404ResponseError < 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/shares_list200response.rb b/lib/CloudPDF/types/shares_list200response.rb new file mode 100644 index 0000000..83836d0 --- /dev/null +++ b/lib/CloudPDF/types/shares_list200response.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesList200Response < Internal::Types::Model + field :shares, -> { Internal::Types::Array[CloudPDF::Types::SharesList200ResponseSharesItem] }, optional: false, nullable: false + + field :next_cursor, -> { String }, optional: true, nullable: false, api_name: "nextCursor" + end + end +end diff --git a/lib/CloudPDF/types/shares_list200response_shares_item.rb b/lib/CloudPDF/types/shares_list200response_shares_item.rb new file mode 100644 index 0000000..b5f40d0 --- /dev/null +++ b/lib/CloudPDF/types/shares_list200response_shares_item.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesList200ResponseSharesItem < Internal::Types::Model + field :id, -> { String }, optional: false, nullable: false + + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :doc_id, -> { String }, optional: false, nullable: false, api_name: "docId" + + field :layer_name, -> { String }, optional: false, nullable: false, api_name: "layerName" + + field :scope, -> { Internal::Types::Array[String] }, optional: false, nullable: false + + field :origins, -> { Internal::Types::Array[String] }, optional: false, nullable: true + + field :password_protected, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "passwordProtected" + + field :session_ttl_seconds, -> { Integer }, optional: false, nullable: false, api_name: "sessionTtlSeconds" + + field :disabled, -> { Internal::Types::Boolean }, optional: false, nullable: false + + field :expires_at, -> { Integer }, optional: false, nullable: true, api_name: "expiresAt" + + field :exchange_count, -> { Integer }, optional: false, nullable: false, api_name: "exchangeCount" + + field :last_exchanged_at, -> { Integer }, optional: false, nullable: true, api_name: "lastExchangedAt" + + field :created_by, -> { String }, optional: false, nullable: false, api_name: "createdBy" + + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" + + field :updated_at, -> { Integer }, optional: false, nullable: false, api_name: "updatedAt" + end + end +end diff --git a/lib/CloudPDF/types/shares_list400response.rb b/lib/CloudPDF/types/shares_list400response.rb new file mode 100644 index 0000000..a829956 --- /dev/null +++ b/lib/CloudPDF/types/shares_list400response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesList400Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesList400ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_list400response_error.rb b/lib/CloudPDF/types/shares_list400response_error.rb new file mode 100644 index 0000000..d4cb215 --- /dev/null +++ b/lib/CloudPDF/types/shares_list400response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesList400ResponseError < 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/shares_update200response.rb b/lib/CloudPDF/types/shares_update200response.rb new file mode 100644 index 0000000..904b2d9 --- /dev/null +++ b/lib/CloudPDF/types/shares_update200response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesUpdate200Response < Internal::Types::Model + field :share, -> { CloudPDF::Types::SharesUpdate200ResponseShare }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_update200response_share.rb b/lib/CloudPDF/types/shares_update200response_share.rb new file mode 100644 index 0000000..22f05aa --- /dev/null +++ b/lib/CloudPDF/types/shares_update200response_share.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesUpdate200ResponseShare < Internal::Types::Model + field :id, -> { String }, optional: false, nullable: false + + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :doc_id, -> { String }, optional: false, nullable: false, api_name: "docId" + + field :layer_name, -> { String }, optional: false, nullable: false, api_name: "layerName" + + field :scope, -> { Internal::Types::Array[String] }, optional: false, nullable: false + + field :origins, -> { Internal::Types::Array[String] }, optional: false, nullable: true + + field :password_protected, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "passwordProtected" + + field :session_ttl_seconds, -> { Integer }, optional: false, nullable: false, api_name: "sessionTtlSeconds" + + field :disabled, -> { Internal::Types::Boolean }, optional: false, nullable: false + + field :expires_at, -> { Integer }, optional: false, nullable: true, api_name: "expiresAt" + + field :exchange_count, -> { Integer }, optional: false, nullable: false, api_name: "exchangeCount" + + field :last_exchanged_at, -> { Integer }, optional: false, nullable: true, api_name: "lastExchangedAt" + + field :created_by, -> { String }, optional: false, nullable: false, api_name: "createdBy" + + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" + + field :updated_at, -> { Integer }, optional: false, nullable: false, api_name: "updatedAt" + end + end +end diff --git a/lib/CloudPDF/types/shares_update400response.rb b/lib/CloudPDF/types/shares_update400response.rb new file mode 100644 index 0000000..bf0104c --- /dev/null +++ b/lib/CloudPDF/types/shares_update400response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesUpdate400Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesUpdate400ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_update400response_error.rb b/lib/CloudPDF/types/shares_update400response_error.rb new file mode 100644 index 0000000..6defe7b --- /dev/null +++ b/lib/CloudPDF/types/shares_update400response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesUpdate400ResponseError < 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/shares_update404response.rb b/lib/CloudPDF/types/shares_update404response.rb new file mode 100644 index 0000000..6228f45 --- /dev/null +++ b/lib/CloudPDF/types/shares_update404response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesUpdate404Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::SharesUpdate404ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/shares_update404response_error.rb b/lib/CloudPDF/types/shares_update404response_error.rb new file mode 100644 index 0000000..9f749b6 --- /dev/null +++ b/lib/CloudPDF/types/shares_update404response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class SharesUpdate404ResponseError < 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/tenants_create200response_tenant.rb b/lib/CloudPDF/types/tenants_create200response_tenant.rb index a2d6c8d..7fb6f96 100644 --- a/lib/CloudPDF/types/tenants_create200response_tenant.rb +++ b/lib/CloudPDF/types/tenants_create200response_tenant.rb @@ -9,6 +9,8 @@ class TenantsCreate200ResponseTenant < Internal::Types::Model field :auto_provisioned, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "autoProvisioned" + field :status, -> { CloudPDF::Types::TenantsCreate200ResponseTenantStatus }, optional: true, nullable: false + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" end end diff --git a/lib/CloudPDF/types/tenants_create200response_tenant_status.rb b/lib/CloudPDF/types/tenants_create200response_tenant_status.rb new file mode 100644 index 0000000..0acce36 --- /dev/null +++ b/lib/CloudPDF/types/tenants_create200response_tenant_status.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module TenantsCreate200ResponseTenantStatus + extend CloudPDF::Internal::Types::Enum + + ACTIVE = "active" + SUSPENDED = "suspended" + end + end +end diff --git a/lib/CloudPDF/types/tenants_get200response_tenant.rb b/lib/CloudPDF/types/tenants_get200response_tenant.rb index 6a0c34d..1427814 100644 --- a/lib/CloudPDF/types/tenants_get200response_tenant.rb +++ b/lib/CloudPDF/types/tenants_get200response_tenant.rb @@ -9,6 +9,8 @@ class TenantsGet200ResponseTenant < Internal::Types::Model field :auto_provisioned, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "autoProvisioned" + field :status, -> { CloudPDF::Types::TenantsGet200ResponseTenantStatus }, optional: true, nullable: false + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" end end diff --git a/lib/CloudPDF/types/tenants_get200response_tenant_status.rb b/lib/CloudPDF/types/tenants_get200response_tenant_status.rb new file mode 100644 index 0000000..532befa --- /dev/null +++ b/lib/CloudPDF/types/tenants_get200response_tenant_status.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module TenantsGet200ResponseTenantStatus + extend CloudPDF::Internal::Types::Enum + + ACTIVE = "active" + SUSPENDED = "suspended" + end + end +end diff --git a/lib/CloudPDF/types/tenants_list200response_tenants_item.rb b/lib/CloudPDF/types/tenants_list200response_tenants_item.rb index 61077f8..8fdd411 100644 --- a/lib/CloudPDF/types/tenants_list200response_tenants_item.rb +++ b/lib/CloudPDF/types/tenants_list200response_tenants_item.rb @@ -9,6 +9,8 @@ class TenantsList200ResponseTenantsItem < Internal::Types::Model field :auto_provisioned, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "autoProvisioned" + field :status, -> { CloudPDF::Types::TenantsList200ResponseTenantsItemStatus }, optional: true, nullable: false + field :created_at, -> { Integer }, optional: false, nullable: false, api_name: "createdAt" end end diff --git a/lib/CloudPDF/types/tenants_list200response_tenants_item_status.rb b/lib/CloudPDF/types/tenants_list200response_tenants_item_status.rb new file mode 100644 index 0000000..0917234 --- /dev/null +++ b/lib/CloudPDF/types/tenants_list200response_tenants_item_status.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + module TenantsList200ResponseTenantsItemStatus + extend CloudPDF::Internal::Types::Enum + + ACTIVE = "active" + SUSPENDED = "suspended" + end + end +end diff --git a/lib/CloudPDF/types/tenants_resume_response.rb b/lib/CloudPDF/types/tenants_resume_response.rb new file mode 100644 index 0000000..3159d08 --- /dev/null +++ b/lib/CloudPDF/types/tenants_resume_response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsResumeResponse < Internal::Types::Model + field :error, -> { CloudPDF::Types::TenantsResumeResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/tenants_resume_response_error.rb b/lib/CloudPDF/types/tenants_resume_response_error.rb new file mode 100644 index 0000000..c8dff95 --- /dev/null +++ b/lib/CloudPDF/types/tenants_resume_response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsResumeResponseError < 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/tenants_suspend_response.rb b/lib/CloudPDF/types/tenants_suspend_response.rb new file mode 100644 index 0000000..aff00a7 --- /dev/null +++ b/lib/CloudPDF/types/tenants_suspend_response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsSuspendResponse < Internal::Types::Model + field :error, -> { CloudPDF::Types::TenantsSuspendResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/tenants_suspend_response_error.rb b/lib/CloudPDF/types/tenants_suspend_response_error.rb new file mode 100644 index 0000000..252d084 --- /dev/null +++ b/lib/CloudPDF/types/tenants_suspend_response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsSuspendResponseError < 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/tenants_usage200response.rb b/lib/CloudPDF/types/tenants_usage200response.rb new file mode 100644 index 0000000..e5145ef --- /dev/null +++ b/lib/CloudPDF/types/tenants_usage200response.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsUsage200Response < Internal::Types::Model + field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId" + + field :period_start, -> { String }, optional: false, nullable: false, api_name: "periodStart" + + field :period_end, -> { String }, optional: false, nullable: false, api_name: "periodEnd" + + field :metrics, -> { CloudPDF::Types::TenantsUsage200ResponseMetrics }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/tenants_usage200response_metrics.rb b/lib/CloudPDF/types/tenants_usage200response_metrics.rb new file mode 100644 index 0000000..48aa2ef --- /dev/null +++ b/lib/CloudPDF/types/tenants_usage200response_metrics.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsUsage200ResponseMetrics < Internal::Types::Model + field :pdf_views, -> { Integer }, optional: false, nullable: false, api_name: "pdf.views" + + field :pdf_uploads, -> { Integer }, optional: false, nullable: false, api_name: "pdf.uploads" + + field :storage_bytes, -> { Integer }, optional: false, nullable: false, api_name: "storage.bytes" + end + end +end diff --git a/lib/CloudPDF/types/tenants_usage400response.rb b/lib/CloudPDF/types/tenants_usage400response.rb new file mode 100644 index 0000000..3e4c671 --- /dev/null +++ b/lib/CloudPDF/types/tenants_usage400response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsUsage400Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::TenantsUsage400ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/tenants_usage400response_error.rb b/lib/CloudPDF/types/tenants_usage400response_error.rb new file mode 100644 index 0000000..0463d34 --- /dev/null +++ b/lib/CloudPDF/types/tenants_usage400response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsUsage400ResponseError < 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/tenants_usage404response.rb b/lib/CloudPDF/types/tenants_usage404response.rb new file mode 100644 index 0000000..d7444df --- /dev/null +++ b/lib/CloudPDF/types/tenants_usage404response.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsUsage404Response < Internal::Types::Model + field :error, -> { CloudPDF::Types::TenantsUsage404ResponseError }, optional: false, nullable: false + end + end +end diff --git a/lib/CloudPDF/types/tenants_usage404response_error.rb b/lib/CloudPDF/types/tenants_usage404response_error.rb new file mode 100644 index 0000000..002614f --- /dev/null +++ b/lib/CloudPDF/types/tenants_usage404response_error.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module CloudPDF + module Types + class TenantsUsage404ResponseError < 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/tokens_issue_request_doc.rb b/lib/CloudPDF/types/tokens_issue_request_doc.rb index 143c751..63e600f 100644 --- a/lib/CloudPDF/types/tokens_issue_request_doc.rb +++ b/lib/CloudPDF/types/tokens_issue_request_doc.rb @@ -19,6 +19,8 @@ class TokensIssueRequestDoc < Internal::Types::Model field :groups, -> { Internal::Types::Array[String] }, optional: true, nullable: false + field :origins, -> { Internal::Types::Array[String] }, optional: true, nullable: false + field :expires_in, -> { Integer }, optional: false, nullable: false, api_name: "expiresIn" end end diff --git a/lib/CloudPDF/types/tokens_issue_request_tenant_scope_item_one.rb b/lib/CloudPDF/types/tokens_issue_request_tenant_scope_item_one.rb index c64317f..7043d30 100644 --- a/lib/CloudPDF/types/tokens_issue_request_tenant_scope_item_one.rb +++ b/lib/CloudPDF/types/tokens_issue_request_tenant_scope_item_one.rb @@ -10,6 +10,7 @@ module TokensIssueRequestTenantScopeItemOne DOCS_DELETE = "docs.delete" TOKENS_ISSUE_DOC = "tokens.issue-doc" TOKENS_REVOKE = "tokens.revoke" + SHARES_MANAGE = "shares.manage" end end end diff --git a/lib/CloudPDF/version.rb b/lib/CloudPDF/version.rb index 0e80f4b..a2ebf6b 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.1" + VERSION = "3.0.0.alpha.3" end diff --git a/lib/cloudpdf.rb b/lib/cloudpdf.rb index 9f3215f..6140d62 100644 --- a/lib/cloudpdf.rb +++ b/lib/cloudpdf.rb @@ -37,20 +37,24 @@ require_relative "CloudPDF/internal/iterators/offset_page_iterator" require_relative "CloudPDF/documents/types/list_documents_request_state" 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" require_relative "CloudPDF/types/admin_error_payload_error" require_relative "CloudPDF/types/admin_error_payload" require_relative "CloudPDF/types/engine_error_payload_name" require_relative "CloudPDF/types/engine_error_payload_code" require_relative "CloudPDF/types/engine_error_payload" +require_relative "CloudPDF/types/tenants_create200response_tenant_status" require_relative "CloudPDF/types/tenants_create200response_tenant" require_relative "CloudPDF/types/tenants_create200response" require_relative "CloudPDF/types/tenants_create400response_error" require_relative "CloudPDF/types/tenants_create400response" +require_relative "CloudPDF/types/tenants_list200response_tenants_item_status" require_relative "CloudPDF/types/tenants_list200response_tenants_item" require_relative "CloudPDF/types/tenants_list200response" require_relative "CloudPDF/types/tenants_list400response_error" require_relative "CloudPDF/types/tenants_list400response" +require_relative "CloudPDF/types/tenants_get200response_tenant_status" require_relative "CloudPDF/types/tenants_get200response_tenant" require_relative "CloudPDF/types/tenants_get200response" require_relative "CloudPDF/types/tenants_get404response_error" @@ -63,7 +67,7 @@ require_relative "CloudPDF/types/documents_init200response_created_upload_presigned_presigned_method" require_relative "CloudPDF/types/documents_init200response_created_upload_presigned_presigned" require_relative "CloudPDF/types/documents_init200response_created_upload_presigned" -require_relative "CloudPDF/types/documents_init200response_created_upload_direct" +require_relative "CloudPDF/types/documents_init200response_created_upload_proxy" require_relative "CloudPDF/types/documents_init200response_created_upload" require_relative "CloudPDF/types/documents_init200response_created" require_relative "CloudPDF/types/documents_init200response_resumed_document_state" @@ -72,7 +76,7 @@ require_relative "CloudPDF/types/documents_init200response_resumed_upload_presigned_presigned_method" require_relative "CloudPDF/types/documents_init200response_resumed_upload_presigned_presigned" require_relative "CloudPDF/types/documents_init200response_resumed_upload_presigned" -require_relative "CloudPDF/types/documents_init200response_resumed_upload_direct" +require_relative "CloudPDF/types/documents_init200response_resumed_upload_proxy" require_relative "CloudPDF/types/documents_init200response_resumed_upload" require_relative "CloudPDF/types/documents_init200response_resumed" require_relative "CloudPDF/types/documents_init200response_deduped_document_state" @@ -90,9 +94,11 @@ require_relative "CloudPDF/types/documents_commit400response" require_relative "CloudPDF/types/documents_commit404response_error" require_relative "CloudPDF/types/documents_commit404response" -require_relative "CloudPDF/types/documents_upload_direct200response" -require_relative "CloudPDF/types/documents_upload_direct400response_error" -require_relative "CloudPDF/types/documents_upload_direct400response" +require_relative "CloudPDF/types/documents_upload_proxy200response" +require_relative "CloudPDF/types/documents_upload_proxy400response_error" +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_list200response_documents_item_state" require_relative "CloudPDF/types/documents_list200response_documents_item_thumbnail_state" require_relative "CloudPDF/types/documents_list200response_documents_item" @@ -133,6 +139,51 @@ require_relative "CloudPDF/types/tokens_issue404response" require_relative "CloudPDF/types/tokens_revoke_response_error" require_relative "CloudPDF/types/tokens_revoke_response" +require_relative "CloudPDF/types/tenants_usage200response_metrics" +require_relative "CloudPDF/types/tenants_usage200response" +require_relative "CloudPDF/types/tenants_usage400response_error" +require_relative "CloudPDF/types/tenants_usage400response" +require_relative "CloudPDF/types/tenants_usage404response_error" +require_relative "CloudPDF/types/tenants_usage404response" +require_relative "CloudPDF/types/tenants_suspend_response_error" +require_relative "CloudPDF/types/tenants_suspend_response" +require_relative "CloudPDF/types/tenants_resume_response_error" +require_relative "CloudPDF/types/tenants_resume_response" +require_relative "CloudPDF/types/shares_create200response_share" +require_relative "CloudPDF/types/shares_create200response" +require_relative "CloudPDF/types/shares_create400response_error" +require_relative "CloudPDF/types/shares_create400response" +require_relative "CloudPDF/types/shares_create403response_error" +require_relative "CloudPDF/types/shares_create403response" +require_relative "CloudPDF/types/shares_create404response_error" +require_relative "CloudPDF/types/shares_create404response" +require_relative "CloudPDF/types/shares_list200response_shares_item" +require_relative "CloudPDF/types/shares_list200response" +require_relative "CloudPDF/types/shares_list400response_error" +require_relative "CloudPDF/types/shares_list400response" +require_relative "CloudPDF/types/shares_get200response_share" +require_relative "CloudPDF/types/shares_get200response" +require_relative "CloudPDF/types/shares_get404response_error" +require_relative "CloudPDF/types/shares_get404response" +require_relative "CloudPDF/types/shares_update200response_share" +require_relative "CloudPDF/types/shares_update200response" +require_relative "CloudPDF/types/shares_update400response_error" +require_relative "CloudPDF/types/shares_update400response" +require_relative "CloudPDF/types/shares_update404response_error" +require_relative "CloudPDF/types/shares_update404response" +require_relative "CloudPDF/types/shares_delete_response_error" +require_relative "CloudPDF/types/shares_delete_response" +require_relative "CloudPDF/types/shares_exchange200response" +require_relative "CloudPDF/types/shares_exchange400response_error" +require_relative "CloudPDF/types/shares_exchange400response" +require_relative "CloudPDF/types/shares_exchange403response_error" +require_relative "CloudPDF/types/shares_exchange403response" +require_relative "CloudPDF/types/shares_exchange404response_error" +require_relative "CloudPDF/types/shares_exchange404response" +require_relative "CloudPDF/types/shares_exchange410response_error" +require_relative "CloudPDF/types/shares_exchange410response" +require_relative "CloudPDF/types/shares_exchange422response_error" +require_relative "CloudPDF/types/shares_exchange422response" require_relative "CloudPDF/types/doc_head200response_state" require_relative "CloudPDF/types/doc_head200response_encryption_state" require_relative "CloudPDF/types/doc_head200response_encryption" @@ -1931,11 +1982,21 @@ require_relative "CloudPDF/doc/types/manifest_doc_request" require_relative "CloudPDF/doc/types/render_doc_request" require_relative "CloudPDF/doc/types/text_doc_request" +require_relative "CloudPDF/shares/client" +require_relative "CloudPDF/shares/types/shares_exchange_request" +require_relative "CloudPDF/shares/types/list_shares_request" +require_relative "CloudPDF/shares/types/shares_create_request" +require_relative "CloudPDF/shares/types/get_shares_request" +require_relative "CloudPDF/shares/types/delete_shares_request" +require_relative "CloudPDF/shares/types/shares_update_request" require_relative "CloudPDF/tenants/client" require_relative "CloudPDF/tenants/types/list_tenants_request" require_relative "CloudPDF/tenants/types/tenants_create_request" require_relative "CloudPDF/tenants/types/get_tenants_request" require_relative "CloudPDF/tenants/types/delete_tenants_request" +require_relative "CloudPDF/tenants/types/resume_tenants_request" +require_relative "CloudPDF/tenants/types/tenants_suspend_request" +require_relative "CloudPDF/tenants/types/usage_tenants_request" require_relative "CloudPDF/documents/client" require_relative "CloudPDF/documents/types/list_documents_request" require_relative "CloudPDF/documents/types/get_documents_request" @@ -1943,6 +2004,7 @@ require_relative "CloudPDF/documents/types/documents_commit_request" 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_init_request" require_relative "CloudPDF/tokens/client" require_relative "CloudPDF/tokens/types/issue_tokens_request" diff --git a/reference.md b/reference.md index 4b259d3..c9d92ee 100644 --- a/reference.md +++ b/reference.md @@ -393,6 +393,496 @@ client.doc.text( + + + + +## Shares +
client.shares.exchange(request) -> CloudPDF::Types::SharesExchange200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until `password` is supplied. Mounted only when the deployment can sign (HS256 mode). +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.shares.exchange(share_token: "shareToken") +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**share_token:** `String` + +
+
+ +
+
+ +**password:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Shares::RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.shares.list(tenant_id:) -> CloudPDF::Types::SharesList200Response +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.shares.list(tenant_id: "tenantId") +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**limit:** `Integer` + +
+
+ +
+
+ +**cursor:** `String` + +
+
+ +
+
+ +**doc_id:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Shares::RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.shares.create(tenant_id:, request) -> CloudPDF::Types::SharesCreate200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +The returned share id IS the public share token. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.shares.create( + tenant_id: "tenantId", + doc_id: "docId", + scope: ["scope"] +) +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**doc_id:** `String` + +
+
+ +
+
+ +**layer_name:** `String` + +
+
+ +
+
+ +**scope:** `Internal::Types::Array[String]` + +
+
+ +
+
+ +**origins:** `Internal::Types::Array[String]` + +
+
+ +
+
+ +**password:** `String` + +
+
+ +
+
+ +**session_ttl_seconds:** `Integer` + +
+
+ +
+
+ +**expires_at:** `Integer` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Shares::RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.shares.get(tenant_id:, share_id:) -> CloudPDF::Types::SharesGet200Response +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.shares.get( + tenant_id: "tenantId", + share_id: "shareId" +) +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**share_id:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Shares::RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.shares.delete(tenant_id:, share_id:) -> +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.shares.delete( + tenant_id: "tenantId", + share_id: "shareId" +) +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**share_id:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Shares::RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.shares.update(tenant_id:, share_id:, request) -> CloudPDF::Types::SharesUpdate200Response +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.shares.update( + tenant_id: "tenantId", + share_id: "shareId" +) +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**share_id:** `String` + +
+
+ +
+
+ +**scope:** `Internal::Types::Array[String]` + +
+
+ +
+
+ +**origins:** `Internal::Types::Array[String]` + +
+
+ +
+
+ +**password:** `String` + +
+
+ +
+
+ +**session_ttl_seconds:** `Integer` + +
+
+ +
+
+ +**disabled:** `Internal::Types::Boolean` + +
+
+ +
+
+ +**expires_at:** `Integer` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Shares::RequestOptions` + +
+
+
+
+ +
@@ -616,6 +1106,194 @@ client.tenants.delete(tenant_id: "tenantId") + + + + +
client.tenants.resume(tenant_id:) -> +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.tenants.resume(tenant_id: "tenantId") +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Tenants::RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.tenants.suspend(tenant_id:, request) -> +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Instantly reversible with resume. The API token is exempt, so a suspended tenant can still be inspected, exported, resumed, or deleted. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.tenants.suspend(tenant_id: "tenantId") +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**reason:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Tenants::RequestOptions` + +
+
+
+
+ + +
+
+
+ +
client.tenants.usage(tenant_id:) -> CloudPDF::Types::TenantsUsage200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Facts only — no limits or billing state. Views count share exchanges plus authorized /v1/access grants, deduplicated across the two. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +client.tenants.usage(tenant_id: "tenantId") +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**period:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Tenants::RequestOptions` + +
+
+
+
+ +
@@ -993,6 +1671,82 @@ client.documents.thumbnail( + + + + +
client.documents.upload_proxy(tenant_id:, id:, request) -> CloudPDF::Types::DocumentsUploadProxy200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +This bounded origin-mediated fallback must only be used after documents.init returns upload.kind=proxy. Auto mode prefers a presigned object-store PUT whenever available. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```ruby +File.open("document.pdf", "rb") do |file| + client.documents.upload_proxy( + tenant_id: "tenantId", + id: "id", + file: file + ) +end +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenant_id:** `String` + +
+
+ +
+
+ +**id:** `String` + +
+
+ +
+
+ +**request_options:** `CloudPDF::Documents::RequestOptions` + +
+
+
+
+ +
@@ -1093,6 +1847,14 @@ client.documents.init(
+**upload_preference:** `CloudPDF::Documents::Types::DocumentsInitRequestUploadPreference` + +
+
+ +
+
+ **request_options:** `CloudPDF::Documents::RequestOptions`