cloudpdf 3.0.0.alpha.16 → 3.0.0.alpha.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +2 -2
  3. data/lib/CloudPDF/client.rb +5 -0
  4. data/lib/CloudPDF/doc/client.rb +55 -0
  5. data/lib/CloudPDF/doc/signatures/client.rb +5 -4
  6. data/lib/CloudPDF/doc/types/doc_download_link_request.rb +17 -0
  7. data/lib/CloudPDF/doc/versions/client.rb +27 -10
  8. data/lib/CloudPDF/doc/versions/types/analysis_versions_request.rb +2 -0
  9. data/lib/CloudPDF/doc/versions/types/download_versions_request.rb +2 -0
  10. data/lib/CloudPDF/doc/versions/types/list_versions_request.rb +2 -0
  11. data/lib/CloudPDF/doc/versions/types/revision_versions_request.rb +2 -0
  12. data/lib/CloudPDF/doc/versions/types/signature_contents_versions_request.rb +2 -0
  13. data/lib/CloudPDF/doc/versions/types/signature_digest_versions_request.rb +2 -0
  14. data/lib/CloudPDF/doc/versions/types/signatures_versions_request.rb +2 -0
  15. data/lib/CloudPDF/documents/client.rb +60 -0
  16. data/lib/CloudPDF/documents/layers/client.rb +103 -0
  17. data/lib/CloudPDF/documents/layers/types/delete_layers_request.rb +17 -0
  18. data/lib/CloudPDF/documents/layers/types/list_layers_request.rb +21 -0
  19. data/lib/CloudPDF/documents/types/documents_import_from_request.rb +4 -0
  20. data/lib/CloudPDF/documents/types/documents_init_request.rb +4 -0
  21. data/lib/CloudPDF/documents/types/documents_update_request.rb +15 -0
  22. data/lib/CloudPDF/documents/types/list_documents_request.rb +8 -0
  23. data/lib/CloudPDF/documents/types/list_documents_request_order.rb +14 -0
  24. data/lib/CloudPDF/documents/types/list_documents_request_sort.rb +15 -0
  25. data/lib/CloudPDF/folders/client.rb +286 -0
  26. data/lib/CloudPDF/folders/types/delete_folders_request.rb +15 -0
  27. data/lib/CloudPDF/folders/types/folders_create_request.rb +15 -0
  28. data/lib/CloudPDF/folders/types/folders_move_into_request.rb +17 -0
  29. data/lib/CloudPDF/folders/types/folders_update_request.rb +15 -0
  30. data/lib/CloudPDF/folders/types/get_folders_request.rb +13 -0
  31. data/lib/CloudPDF/folders/types/list_folders_request.rb +17 -0
  32. data/lib/CloudPDF/shares/client.rb +56 -1
  33. data/lib/CloudPDF/shares/types/archive_shares_request.rb +13 -0
  34. data/lib/CloudPDF/shares/types/list_shares_request.rb +2 -0
  35. data/lib/CloudPDF/shares/types/shares_create_request.rb +10 -0
  36. data/lib/CloudPDF/shares/types/shares_create_request_layer_mode.rb +14 -0
  37. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity.rb +17 -0
  38. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity_ask.rb +14 -0
  39. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity_fields.rb +19 -0
  40. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity_fields_display_name.rb +14 -0
  41. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity_fields_email.rb +14 -0
  42. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity_fields_organization.rb +14 -0
  43. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity_fields_organizational_unit.rb +14 -0
  44. data/lib/CloudPDF/shares/types/shares_create_request_visitor_identity_fields_title.rb +14 -0
  45. data/lib/CloudPDF/shares/types/shares_exchange_request.rb +6 -0
  46. data/lib/CloudPDF/shares/types/shares_exchange_request_visitor_identity.rb +19 -0
  47. data/lib/CloudPDF/shares/types/shares_update_request.rb +12 -0
  48. data/lib/CloudPDF/shares/types/shares_update_request_layer_mode.rb +14 -0
  49. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity.rb +17 -0
  50. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity_ask.rb +14 -0
  51. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity_fields.rb +19 -0
  52. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity_fields_display_name.rb +14 -0
  53. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity_fields_email.rb +14 -0
  54. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity_fields_organization.rb +14 -0
  55. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity_fields_organizational_unit.rb +14 -0
  56. data/lib/CloudPDF/shares/types/shares_update_request_visitor_identity_fields_title.rb +14 -0
  57. data/lib/CloudPDF/shares/visitors/client.rb +106 -0
  58. data/lib/CloudPDF/shares/visitors/types/delete_visitors_request.rb +17 -0
  59. data/lib/CloudPDF/shares/visitors/types/list_visitors_request.rb +19 -0
  60. data/lib/CloudPDF/types/admin_error_payload_error.rb +2 -0
  61. data/lib/CloudPDF/types/doc_download_link200response.rb +11 -0
  62. data/lib/CloudPDF/types/doc_download_link404response.rb +23 -0
  63. data/lib/CloudPDF/types/doc_download_link501response.rb +23 -0
  64. data/lib/CloudPDF/types/doc_versions_list200response.rb +1 -1
  65. data/lib/CloudPDF/types/documents_commit200response_document.rb +4 -0
  66. data/lib/CloudPDF/types/documents_get200response_document.rb +4 -0
  67. data/lib/CloudPDF/types/documents_import_from200response_document.rb +4 -0
  68. data/lib/CloudPDF/types/documents_import_from202response_document.rb +4 -0
  69. data/lib/CloudPDF/types/documents_init200response_created_document.rb +4 -0
  70. data/lib/CloudPDF/types/documents_init200response_deduped_document.rb +4 -0
  71. data/lib/CloudPDF/types/documents_init200response_resumed_document.rb +4 -0
  72. data/lib/CloudPDF/types/documents_layers_delete403response.rb +23 -0
  73. data/lib/CloudPDF/types/documents_layers_delete404response.rb +23 -0
  74. data/lib/CloudPDF/types/documents_layers_delete409response.rb +23 -0
  75. data/lib/CloudPDF/types/documents_layers_list200response.rb +11 -0
  76. data/lib/CloudPDF/types/documents_layers_list200response_layers_item.rb +23 -0
  77. data/lib/CloudPDF/types/documents_layers_list400response.rb +23 -0
  78. data/lib/CloudPDF/types/documents_layers_list403response.rb +23 -0
  79. data/lib/CloudPDF/types/documents_layers_list404response.rb +23 -0
  80. data/lib/CloudPDF/types/documents_list200response_documents_item.rb +4 -0
  81. data/lib/CloudPDF/types/documents_update200response.rb +9 -0
  82. data/lib/CloudPDF/types/documents_update200response_document.rb +37 -0
  83. data/lib/CloudPDF/types/documents_update200response_document_state.rb +14 -0
  84. data/lib/CloudPDF/types/documents_update200response_document_thumbnail_state.rb +14 -0
  85. data/lib/CloudPDF/types/documents_update400response.rb +23 -0
  86. data/lib/CloudPDF/types/documents_update403response.rb +23 -0
  87. data/lib/CloudPDF/types/documents_update404response.rb +23 -0
  88. data/lib/CloudPDF/types/engine_error_payload_code.rb +2 -1
  89. data/lib/CloudPDF/types/folders_create200response.rb +9 -0
  90. data/lib/CloudPDF/types/folders_create200response_folder.rb +21 -0
  91. data/lib/CloudPDF/types/folders_create400response.rb +23 -0
  92. data/lib/CloudPDF/types/folders_create403response.rb +23 -0
  93. data/lib/CloudPDF/types/folders_create404response.rb +23 -0
  94. data/lib/CloudPDF/types/folders_create409response.rb +23 -0
  95. data/lib/CloudPDF/types/folders_delete403response.rb +23 -0
  96. data/lib/CloudPDF/types/folders_delete404response.rb +23 -0
  97. data/lib/CloudPDF/types/folders_delete409response.rb +23 -0
  98. data/lib/CloudPDF/types/folders_get200response.rb +11 -0
  99. data/lib/CloudPDF/types/folders_get200response_folder.rb +21 -0
  100. data/lib/CloudPDF/types/folders_get200response_path_item.rb +11 -0
  101. data/lib/CloudPDF/types/{shares_delete_response.rb → folders_get403response.rb} +2 -2
  102. data/lib/CloudPDF/types/folders_get404response.rb +23 -0
  103. data/lib/CloudPDF/types/folders_list200response.rb +11 -0
  104. data/lib/CloudPDF/types/folders_list200response_folders_item.rb +21 -0
  105. data/lib/CloudPDF/types/folders_list400response.rb +23 -0
  106. data/lib/CloudPDF/types/folders_list403response.rb +23 -0
  107. data/lib/CloudPDF/types/folders_list404response.rb +23 -0
  108. data/lib/CloudPDF/types/folders_move_into400response.rb +23 -0
  109. data/lib/CloudPDF/types/folders_move_into403response.rb +23 -0
  110. data/lib/CloudPDF/types/folders_move_into404response.rb +23 -0
  111. data/lib/CloudPDF/types/folders_move_into409response.rb +23 -0
  112. data/lib/CloudPDF/types/folders_update200response.rb +9 -0
  113. data/lib/CloudPDF/types/folders_update200response_folder.rb +21 -0
  114. data/lib/CloudPDF/types/folders_update400response.rb +23 -0
  115. data/lib/CloudPDF/types/folders_update403response.rb +23 -0
  116. data/lib/CloudPDF/types/folders_update404response.rb +23 -0
  117. data/lib/CloudPDF/types/folders_update409response.rb +23 -0
  118. data/lib/CloudPDF/types/{tokens_issue_request_doc_identity.rb → identity.rb} +1 -1
  119. data/lib/CloudPDF/types/shares_archive200response.rb +9 -0
  120. data/lib/CloudPDF/types/shares_archive200response_share.rb +49 -0
  121. data/lib/CloudPDF/types/shares_archive200response_share_layer_mode.rb +12 -0
  122. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity.rb +15 -0
  123. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity_ask.rb +12 -0
  124. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity_fields.rb +17 -0
  125. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity_fields_display_name.rb +12 -0
  126. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity_fields_email.rb +12 -0
  127. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity_fields_organization.rb +12 -0
  128. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity_fields_organizational_unit.rb +12 -0
  129. data/lib/CloudPDF/types/shares_archive200response_share_visitor_identity_fields_title.rb +12 -0
  130. data/lib/CloudPDF/types/shares_archive404response.rb +23 -0
  131. data/lib/CloudPDF/types/shares_create200response_share.rb +13 -1
  132. data/lib/CloudPDF/types/shares_create200response_share_layer_mode.rb +12 -0
  133. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity.rb +15 -0
  134. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity_ask.rb +12 -0
  135. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity_fields.rb +17 -0
  136. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity_fields_display_name.rb +12 -0
  137. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity_fields_email.rb +12 -0
  138. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity_fields_organization.rb +12 -0
  139. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity_fields_organizational_unit.rb +12 -0
  140. data/lib/CloudPDF/types/shares_create200response_share_visitor_identity_fields_title.rb +12 -0
  141. data/lib/CloudPDF/types/shares_delete404response.rb +23 -0
  142. data/lib/CloudPDF/types/shares_delete409response.rb +23 -0
  143. data/lib/CloudPDF/types/shares_exchange200response.rb +4 -0
  144. data/lib/CloudPDF/types/{tokens_issue_request_tenant_scope_item_zero.rb → shares_exchange200response_layer_mode.rb} +3 -2
  145. data/lib/CloudPDF/types/shares_exchange200response_visitor.rb +13 -0
  146. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request.rb +17 -0
  147. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_fields.rb +17 -0
  148. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_fields_display_name.rb +12 -0
  149. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_fields_email.rb +12 -0
  150. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_fields_organization.rb +12 -0
  151. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_fields_organizational_unit.rb +12 -0
  152. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_fields_title.rb +12 -0
  153. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_invalid_item.rb +15 -0
  154. data/lib/CloudPDF/types/shares_exchange200response_visitor_identity_request_missing_item.rb +15 -0
  155. data/lib/CloudPDF/types/shares_get200response_share.rb +13 -1
  156. data/lib/CloudPDF/types/shares_get200response_share_layer_mode.rb +12 -0
  157. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity.rb +15 -0
  158. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity_ask.rb +12 -0
  159. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity_fields.rb +17 -0
  160. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity_fields_display_name.rb +12 -0
  161. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity_fields_email.rb +12 -0
  162. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity_fields_organization.rb +12 -0
  163. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity_fields_organizational_unit.rb +12 -0
  164. data/lib/CloudPDF/types/shares_get200response_share_visitor_identity_fields_title.rb +12 -0
  165. data/lib/CloudPDF/types/shares_list200response_shares_item.rb +13 -1
  166. data/lib/CloudPDF/types/shares_list200response_shares_item_layer_mode.rb +12 -0
  167. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity.rb +15 -0
  168. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity_ask.rb +12 -0
  169. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity_fields.rb +17 -0
  170. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity_fields_display_name.rb +12 -0
  171. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity_fields_email.rb +12 -0
  172. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity_fields_organization.rb +12 -0
  173. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity_fields_organizational_unit.rb +12 -0
  174. data/lib/CloudPDF/types/shares_list200response_shares_item_visitor_identity_fields_title.rb +12 -0
  175. data/lib/CloudPDF/types/shares_update200response_share.rb +13 -1
  176. data/lib/CloudPDF/types/shares_update200response_share_layer_mode.rb +12 -0
  177. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity.rb +15 -0
  178. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity_ask.rb +12 -0
  179. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity_fields.rb +17 -0
  180. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity_fields_display_name.rb +12 -0
  181. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity_fields_email.rb +12 -0
  182. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity_fields_organization.rb +12 -0
  183. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity_fields_organizational_unit.rb +12 -0
  184. data/lib/CloudPDF/types/shares_update200response_share_visitor_identity_fields_title.rb +12 -0
  185. data/lib/CloudPDF/types/shares_update409response.rb +23 -0
  186. data/lib/CloudPDF/types/shares_visitors_delete_response.rb +23 -0
  187. data/lib/CloudPDF/types/shares_visitors_list200response.rb +11 -0
  188. data/lib/CloudPDF/types/shares_visitors_list200response_visitors_item.rb +21 -0
  189. data/lib/CloudPDF/types/shares_visitors_list200response_visitors_item_answers.rb +17 -0
  190. data/lib/CloudPDF/types/shares_visitors_list200response_visitors_item_layer.rb +11 -0
  191. data/lib/CloudPDF/types/shares_visitors_list400response.rb +23 -0
  192. data/lib/CloudPDF/types/shares_visitors_list404response.rb +23 -0
  193. data/lib/CloudPDF/types/tokens_issue_request_doc.rb +1 -1
  194. data/lib/CloudPDF/types/tokens_issue_request_tenant.rb +1 -1
  195. data/lib/CloudPDF/version.rb +1 -1
  196. data/lib/cloudpdf.rb +154 -5
  197. data/reference.md +1968 -686
  198. metadata +156 -7
  199. data/lib/CloudPDF/types/tokens_issue_request_tenant_scope_item.rb +0 -13
  200. data/lib/CloudPDF/types/tokens_issue_request_tenant_scope_item_one.rb +0 -16
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Documents
5
+ module Types
6
+ class DocumentsUpdateRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :id, -> { String }, optional: false, nullable: false
10
+
11
+ field :name, -> { String }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -11,6 +11,14 @@ module CloudPDF
11
11
  field :cursor, -> { String }, optional: true, nullable: false
12
12
 
13
13
  field :state, -> { CloudPDF::Documents::Types::ListDocumentsRequestState }, optional: true, nullable: false
14
+
15
+ field :q, -> { String }, optional: true, nullable: false
16
+
17
+ field :folder_id, -> { String }, optional: true, nullable: false, api_name: "folderId"
18
+
19
+ field :sort, -> { CloudPDF::Documents::Types::ListDocumentsRequestSort }, optional: true, nullable: false
20
+
21
+ field :order, -> { CloudPDF::Documents::Types::ListDocumentsRequestOrder }, optional: true, nullable: false
14
22
  end
15
23
  end
16
24
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Documents
5
+ module Types
6
+ module ListDocumentsRequestOrder
7
+ extend CloudPDF::Internal::Types::Enum
8
+
9
+ ASC = "asc"
10
+ DESC = "desc"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Documents
5
+ module Types
6
+ module ListDocumentsRequestSort
7
+ extend CloudPDF::Internal::Types::Enum
8
+
9
+ CREATED_AT = "createdAt"
10
+ NAME = "name"
11
+ SIZE = "size"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,286 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Folders
5
+ class Client
6
+ # @param client [CloudPDF::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # @param request_options [Hash]
14
+ # @param params [Hash]
15
+ # @option request_options [String] :base_url
16
+ # @option request_options [Hash{String => Object}] :additional_headers
17
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
18
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
19
+ # @option request_options [Integer] :timeout_in_seconds
20
+ # @option params [String] :tenant_id
21
+ # @option params [Integer, nil] :limit
22
+ # @option params [String, nil] :cursor
23
+ # @option params [String, nil] :parent_id
24
+ #
25
+ # @example
26
+ # client.folders.list(tenant_id: "tenantId")
27
+ #
28
+ # @return [CloudPDF::Types::FoldersList200Response]
29
+ def list(request_options: {}, **params)
30
+ params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
31
+ query_params = {}
32
+ query_params["limit"] = params[:limit] if params.key?(:limit)
33
+ query_params["cursor"] = params[:cursor] if params.key?(:cursor)
34
+ query_params["parentId"] = params[:parent_id] if params.key?(:parent_id)
35
+
36
+ request = CloudPDF::Internal::JSON::Request.new(
37
+ base_url: request_options[:base_url],
38
+ method: "GET",
39
+ path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/folders",
40
+ query: query_params,
41
+ request_options: request_options
42
+ )
43
+ begin
44
+ response = @client.send(request)
45
+ rescue Net::HTTPRequestTimeout
46
+ raise CloudPDF::Errors::TimeoutError
47
+ end
48
+ code = response.code.to_i
49
+ if code.between?(200, 299)
50
+ (response.body.to_s.empty? ? nil : CloudPDF::Types::FoldersList200Response.load(response.body))
51
+ else
52
+ error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
53
+ raise error_class.new(response.body, code: code)
54
+ end
55
+ end
56
+
57
+ # 409 Conflict carries `details.reason`: `name-taken` (a sibling has the name, ignoring case; `details.name`) or
58
+ # `too-deep` (folders nest at most 100 levels; `details.maxDepth`). 404 when the parent folder does not exist.
59
+ #
60
+ # @param request_options [Hash]
61
+ # @param params [CloudPDF::Folders::Types::FoldersCreateRequest]
62
+ # @option request_options [String] :base_url
63
+ # @option request_options [Hash{String => Object}] :additional_headers
64
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
65
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
66
+ # @option request_options [Integer] :timeout_in_seconds
67
+ # @option params [String] :tenant_id
68
+ #
69
+ # @example
70
+ # client.folders.create(
71
+ # tenant_id: "tenantId",
72
+ # name: "name"
73
+ # )
74
+ #
75
+ # @return [CloudPDF::Types::FoldersCreate200Response]
76
+ def create(request_options: {}, **params)
77
+ params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
78
+ request_data = CloudPDF::Folders::Types::FoldersCreateRequest.new(params).to_h
79
+ non_body_param_names = %w[tenantId]
80
+ body = request_data.except(*non_body_param_names)
81
+
82
+ request = CloudPDF::Internal::JSON::Request.new(
83
+ base_url: request_options[:base_url],
84
+ method: "POST",
85
+ path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/folders",
86
+ body: body,
87
+ request_options: request_options
88
+ )
89
+ begin
90
+ response = @client.send(request)
91
+ rescue Net::HTTPRequestTimeout
92
+ raise CloudPDF::Errors::TimeoutError
93
+ end
94
+ code = response.code.to_i
95
+ if code.between?(200, 299)
96
+ (response.body.to_s.empty? ? nil : CloudPDF::Types::FoldersCreate200Response.load(response.body))
97
+ else
98
+ error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
99
+ raise error_class.new(response.body, code: code)
100
+ end
101
+ end
102
+
103
+ # @param request_options [Hash]
104
+ # @param params [Hash]
105
+ # @option request_options [String] :base_url
106
+ # @option request_options [Hash{String => Object}] :additional_headers
107
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
108
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
109
+ # @option request_options [Integer] :timeout_in_seconds
110
+ # @option params [String] :tenant_id
111
+ # @option params [String] :folder_id
112
+ #
113
+ # @example
114
+ # client.folders.get(
115
+ # tenant_id: "tenantId",
116
+ # folder_id: "folderId"
117
+ # )
118
+ #
119
+ # @return [CloudPDF::Types::FoldersGet200Response]
120
+ def get(request_options: {}, **params)
121
+ params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
122
+ request = CloudPDF::Internal::JSON::Request.new(
123
+ base_url: request_options[:base_url],
124
+ method: "GET",
125
+ path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/folders/#{URI.encode_uri_component(params[:folder_id].to_s)}",
126
+ request_options: request_options
127
+ )
128
+ begin
129
+ response = @client.send(request)
130
+ rescue Net::HTTPRequestTimeout
131
+ raise CloudPDF::Errors::TimeoutError
132
+ end
133
+ code = response.code.to_i
134
+ if code.between?(200, 299)
135
+ (response.body.to_s.empty? ? nil : CloudPDF::Types::FoldersGet200Response.load(response.body))
136
+ else
137
+ error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
138
+ raise error_class.new(response.body, code: code)
139
+ end
140
+ end
141
+
142
+ # Without recursive, a folder with anything inside is refused: 409 Conflict with `details.reason` `not-empty` and
143
+ # what it holds, counted over every level below, in `details.folders` and `details.documents`. With
144
+ # recursive=true, the folder and every folder under it go at once, and every document in them stops opening,
145
+ # leaves every list and stops answering its share links at once; their stored files and links are removed in the
146
+ # background. Uploads into those folders that have not committed cannot commit.
147
+ #
148
+ # @param request_options [Hash]
149
+ # @param params [Hash]
150
+ # @option request_options [String] :base_url
151
+ # @option request_options [Hash{String => Object}] :additional_headers
152
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
153
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
154
+ # @option request_options [Integer] :timeout_in_seconds
155
+ # @option params [String] :tenant_id
156
+ # @option params [String] :folder_id
157
+ # @option params [Boolean, nil] :recursive
158
+ #
159
+ # @example
160
+ # client.folders.delete(
161
+ # tenant_id: "tenantId",
162
+ # folder_id: "folderId"
163
+ # )
164
+ #
165
+ # @return [untyped]
166
+ def delete(request_options: {}, **params)
167
+ params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
168
+ query_params = {}
169
+ query_params["recursive"] = params[:recursive] if params.key?(:recursive)
170
+
171
+ request = CloudPDF::Internal::JSON::Request.new(
172
+ base_url: request_options[:base_url],
173
+ method: "DELETE",
174
+ path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/folders/#{URI.encode_uri_component(params[:folder_id].to_s)}",
175
+ query: query_params,
176
+ request_options: request_options
177
+ )
178
+ begin
179
+ response = @client.send(request)
180
+ rescue Net::HTTPRequestTimeout
181
+ raise CloudPDF::Errors::TimeoutError
182
+ end
183
+ code = response.code.to_i
184
+ return if code.between?(200, 299)
185
+
186
+ error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
187
+ raise error_class.new(response.body, code: code)
188
+ end
189
+
190
+ # 409 Conflict with `details.reason` `name-taken` when a sibling has the name, ignoring case.
191
+ #
192
+ # @param request_options [Hash]
193
+ # @param params [CloudPDF::Folders::Types::FoldersUpdateRequest]
194
+ # @option request_options [String] :base_url
195
+ # @option request_options [Hash{String => Object}] :additional_headers
196
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
197
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
198
+ # @option request_options [Integer] :timeout_in_seconds
199
+ # @option params [String] :tenant_id
200
+ # @option params [String] :folder_id
201
+ #
202
+ # @example
203
+ # client.folders.update(
204
+ # tenant_id: "tenantId",
205
+ # folder_id: "folderId",
206
+ # name: "name"
207
+ # )
208
+ #
209
+ # @return [CloudPDF::Types::FoldersUpdate200Response]
210
+ def update(request_options: {}, **params)
211
+ params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
212
+ request_data = CloudPDF::Folders::Types::FoldersUpdateRequest.new(params).to_h
213
+ non_body_param_names = %w[tenantId folderId]
214
+ body = request_data.except(*non_body_param_names)
215
+
216
+ request = CloudPDF::Internal::JSON::Request.new(
217
+ base_url: request_options[:base_url],
218
+ method: "PATCH",
219
+ path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/folders/#{URI.encode_uri_component(params[:folder_id].to_s)}",
220
+ body: body,
221
+ request_options: request_options
222
+ )
223
+ begin
224
+ response = @client.send(request)
225
+ rescue Net::HTTPRequestTimeout
226
+ raise CloudPDF::Errors::TimeoutError
227
+ end
228
+ code = response.code.to_i
229
+ if code.between?(200, 299)
230
+ (response.body.to_s.empty? ? nil : CloudPDF::Types::FoldersUpdate200Response.load(response.body))
231
+ else
232
+ error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
233
+ raise error_class.new(response.body, code: code)
234
+ end
235
+ end
236
+
237
+ # Up to 1,000 ids in total. A folder moves with everything in it. 404 NotFound names the ids that do not exist or
238
+ # are being deleted in `details.documentIds` and `details.folderIds`. 409 Conflict carries `details.reason`:
239
+ # `cycle` (the destination is a moved folder or inside one; `details.folderId`), `too-deep` (the move would nest
240
+ # folders deeper than 100 levels; `details.maxDepth`) or `name-taken` (a moved folder's name is taken in the
241
+ # destination, ignoring case; `details.name`).
242
+ #
243
+ # @param request_options [Hash]
244
+ # @param params [CloudPDF::Folders::Types::FoldersMoveIntoRequest]
245
+ # @option request_options [String] :base_url
246
+ # @option request_options [Hash{String => Object}] :additional_headers
247
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
248
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
249
+ # @option request_options [Integer] :timeout_in_seconds
250
+ # @option params [String] :tenant_id
251
+ # @option params [String] :folder_id
252
+ #
253
+ # @example
254
+ # client.folders.move_into(
255
+ # tenant_id: "tenantId",
256
+ # folder_id: "folderId"
257
+ # )
258
+ #
259
+ # @return [untyped]
260
+ def move_into(request_options: {}, **params)
261
+ params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
262
+ request_data = CloudPDF::Folders::Types::FoldersMoveIntoRequest.new(params).to_h
263
+ non_body_param_names = %w[tenantId folderId]
264
+ body = request_data.except(*non_body_param_names)
265
+
266
+ request = CloudPDF::Internal::JSON::Request.new(
267
+ base_url: request_options[:base_url],
268
+ method: "POST",
269
+ path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/folders/#{URI.encode_uri_component(params[:folder_id].to_s)}/move-into",
270
+ body: body,
271
+ request_options: request_options
272
+ )
273
+ begin
274
+ response = @client.send(request)
275
+ rescue Net::HTTPRequestTimeout
276
+ raise CloudPDF::Errors::TimeoutError
277
+ end
278
+ code = response.code.to_i
279
+ return if code.between?(200, 299)
280
+
281
+ error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
282
+ raise error_class.new(response.body, code: code)
283
+ end
284
+ end
285
+ end
286
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Folders
5
+ module Types
6
+ class DeleteFoldersRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :folder_id, -> { String }, optional: false, nullable: false, api_name: "folderId"
10
+
11
+ field :recursive, -> { Internal::Types::Boolean }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Folders
5
+ module Types
6
+ class FoldersCreateRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :name, -> { String }, optional: false, nullable: false
10
+
11
+ field :parent_id, -> { String }, optional: true, nullable: false, api_name: "parentId"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Folders
5
+ module Types
6
+ class FoldersMoveIntoRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :folder_id, -> { String }, optional: false, nullable: false, api_name: "folderId"
10
+
11
+ field :document_ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "documentIds"
12
+
13
+ field :folder_ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "folderIds"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Folders
5
+ module Types
6
+ class FoldersUpdateRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :folder_id, -> { String }, optional: false, nullable: false, api_name: "folderId"
10
+
11
+ field :name, -> { String }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Folders
5
+ module Types
6
+ class GetFoldersRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :folder_id, -> { String }, optional: false, nullable: false, api_name: "folderId"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Folders
5
+ module Types
6
+ class ListFoldersRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :limit, -> { Integer }, optional: true, nullable: false
10
+
11
+ field :cursor, -> { String }, optional: true, nullable: false
12
+
13
+ field :parent_id, -> { String }, optional: true, nullable: false, api_name: "parentId"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -12,7 +12,12 @@ module CloudPDF
12
12
 
13
13
  # Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked,
14
14
  # and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired
15
- # until `password` is supplied. Mounted only when the deployment can sign (HS256 mode).
15
+ # until `password` is supplied. A link that asks its visitors who they are on open returns 422
16
+ # VisitorIdentityRequired until the required answers are given; `error.details` carries `fields` (what the link
17
+ # asks), `missing`, `invalid`, `purpose` and `privacyUrl`. A link that asks before the first change issues the
18
+ # session at once with `visitor.identityRequest`, and writes answer 403 VisitorIdentityRequired with the same
19
+ # details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any
20
+ # link. Mounted only when the deployment can sign (HS256 mode).
16
21
  #
17
22
  # @param request_options [Hash]
18
23
  # @param params [CloudPDF::Shares::Types::SharesExchangeRequest]
@@ -60,6 +65,7 @@ module CloudPDF
60
65
  # @option params [Integer, nil] :limit
61
66
  # @option params [String, nil] :cursor
62
67
  # @option params [String, nil] :doc_id
68
+ # @option params [Boolean, nil] :archived
63
69
  #
64
70
  # @example
65
71
  # client.shares.list(tenant_id: "tenantId")
@@ -71,6 +77,7 @@ module CloudPDF
71
77
  query_params["limit"] = params[:limit] if params.key?(:limit)
72
78
  query_params["cursor"] = params[:cursor] if params.key?(:cursor)
73
79
  query_params["docId"] = params[:doc_id] if params.key?(:doc_id)
80
+ query_params["archived"] = params[:archived] if params.key?(:archived)
74
81
 
75
82
  request = CloudPDF::Internal::JSON::Request.new(
76
83
  base_url: request_options[:base_url],
@@ -259,6 +266,54 @@ module CloudPDF
259
266
  raise error_class.new(response.body, code: code)
260
267
  end
261
268
  end
269
+
270
+ # Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing
271
+ # (`disabled`) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer
272
+ # can be deleted.
273
+ #
274
+ # @param request_options [Hash]
275
+ # @param params [Hash]
276
+ # @option request_options [String] :base_url
277
+ # @option request_options [Hash{String => Object}] :additional_headers
278
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
279
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
280
+ # @option request_options [Integer] :timeout_in_seconds
281
+ # @option params [String] :tenant_id
282
+ # @option params [String] :share_id
283
+ #
284
+ # @example
285
+ # client.shares.archive(
286
+ # tenant_id: "tenantId",
287
+ # share_id: "shareId"
288
+ # )
289
+ #
290
+ # @return [CloudPDF::Types::SharesArchive200Response]
291
+ def archive(request_options: {}, **params)
292
+ params = CloudPDF::Internal::Types::Utils.normalize_keys(params)
293
+ request = CloudPDF::Internal::JSON::Request.new(
294
+ base_url: request_options[:base_url],
295
+ method: "POST",
296
+ path: "v1/tenants/#{URI.encode_uri_component(params[:tenant_id].to_s)}/shares/#{URI.encode_uri_component(params[:share_id].to_s)}/archive",
297
+ request_options: request_options
298
+ )
299
+ begin
300
+ response = @client.send(request)
301
+ rescue Net::HTTPRequestTimeout
302
+ raise CloudPDF::Errors::TimeoutError
303
+ end
304
+ code = response.code.to_i
305
+ if code.between?(200, 299)
306
+ (response.body.to_s.empty? ? nil : CloudPDF::Types::SharesArchive200Response.load(response.body))
307
+ else
308
+ error_class = CloudPDF::Errors::ResponseError.subclass_for_code(code)
309
+ raise error_class.new(response.body, code: code)
310
+ end
311
+ end
312
+
313
+ # @return [CloudPDF::Visitors::Client]
314
+ def visitors
315
+ @visitors ||= CloudPDF::Shares::Visitors::Client.new(client: @client)
316
+ end
262
317
  end
263
318
  end
264
319
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Shares
5
+ module Types
6
+ class ArchiveSharesRequest < Internal::Types::Model
7
+ field :tenant_id, -> { String }, optional: false, nullable: false, api_name: "tenantId"
8
+
9
+ field :share_id, -> { String }, optional: false, nullable: false, api_name: "shareId"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -11,6 +11,8 @@ module CloudPDF
11
11
  field :cursor, -> { String }, optional: true, nullable: false
12
12
 
13
13
  field :doc_id, -> { String }, optional: true, nullable: false, api_name: "docId"
14
+
15
+ field :archived, -> { Internal::Types::Boolean }, optional: true, nullable: false
14
16
  end
15
17
  end
16
18
  end
@@ -8,8 +8,18 @@ module CloudPDF
8
8
 
9
9
  field :doc_id, -> { String }, optional: false, nullable: false, api_name: "docId"
10
10
 
11
+ field :layer_mode, -> { CloudPDF::Shares::Types::SharesCreateRequestLayerMode }, optional: true, nullable: false, api_name: "layerMode"
12
+
11
13
  field :layer_name, -> { String }, optional: true, nullable: false, api_name: "layerName"
12
14
 
15
+ field :keep_visitor_layers, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "keepVisitorLayers"
16
+
17
+ field :visitor_idle_seconds, -> { Integer }, optional: true, nullable: false, api_name: "visitorIdleSeconds"
18
+
19
+ field :visitor_identity, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentity }, optional: true, nullable: false, api_name: "visitorIdentity"
20
+
21
+ field :identity, -> { CloudPDF::Types::Identity }, optional: true, nullable: false
22
+
13
23
  field :scope, -> { Internal::Types::Array[String] }, optional: false, nullable: false
14
24
 
15
25
  field :origins, -> { Internal::Types::Array[String] }, optional: true, nullable: false
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Shares
5
+ module Types
6
+ module SharesCreateRequestLayerMode
7
+ extend CloudPDF::Internal::Types::Enum
8
+
9
+ SHARED = "shared"
10
+ PER_VISITOR = "per-visitor"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Shares
5
+ module Types
6
+ class SharesCreateRequestVisitorIdentity < Internal::Types::Model
7
+ field :fields, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentityFields }, optional: false, nullable: false
8
+
9
+ field :ask, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentityAsk }, optional: false, nullable: false
10
+
11
+ field :purpose, -> { String }, optional: true, nullable: false
12
+
13
+ field :privacy_url, -> { String }, optional: true, nullable: false, api_name: "privacyUrl"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Shares
5
+ module Types
6
+ module SharesCreateRequestVisitorIdentityAsk
7
+ extend CloudPDF::Internal::Types::Enum
8
+
9
+ ON_OPEN = "on-open"
10
+ BEFORE_FIRST_CHANGE = "before-first-change"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Shares
5
+ module Types
6
+ class SharesCreateRequestVisitorIdentityFields < Internal::Types::Model
7
+ field :display_name, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentityFieldsDisplayName }, optional: true, nullable: false, api_name: "displayName"
8
+
9
+ field :email, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentityFieldsEmail }, optional: true, nullable: false
10
+
11
+ field :title, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentityFieldsTitle }, optional: true, nullable: false
12
+
13
+ field :organization, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentityFieldsOrganization }, optional: true, nullable: false
14
+
15
+ field :organizational_unit, -> { CloudPDF::Shares::Types::SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit }, optional: true, nullable: false, api_name: "organizationalUnit"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CloudPDF
4
+ module Shares
5
+ module Types
6
+ module SharesCreateRequestVisitorIdentityFieldsDisplayName
7
+ extend CloudPDF::Internal::Types::Enum
8
+
9
+ REQUIRED = "required"
10
+ OPTIONAL = "optional"
11
+ end
12
+ end
13
+ end
14
+ end