autorender 0.1.0
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.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +41 -0
- data/README.md +266 -0
- data/SECURITY.md +27 -0
- data/lib/autorender/client.rb +98 -0
- data/lib/autorender/errors.rb +228 -0
- data/lib/autorender/file_part.rb +58 -0
- data/lib/autorender/internal/page_pagination.rb +96 -0
- data/lib/autorender/internal/transport/base_client.rb +576 -0
- data/lib/autorender/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/autorender/internal/type/array_of.rb +168 -0
- data/lib/autorender/internal/type/base_model.rb +531 -0
- data/lib/autorender/internal/type/base_page.rb +55 -0
- data/lib/autorender/internal/type/boolean.rb +77 -0
- data/lib/autorender/internal/type/converter.rb +327 -0
- data/lib/autorender/internal/type/enum.rb +131 -0
- data/lib/autorender/internal/type/file_input.rb +111 -0
- data/lib/autorender/internal/type/hash_of.rb +188 -0
- data/lib/autorender/internal/type/request_parameters.rb +42 -0
- data/lib/autorender/internal/type/union.rb +237 -0
- data/lib/autorender/internal/type/unknown.rb +81 -0
- data/lib/autorender/internal/util.rb +968 -0
- data/lib/autorender/internal.rb +20 -0
- data/lib/autorender/models/file_delete_params.rb +20 -0
- data/lib/autorender/models/file_list_params.rb +65 -0
- data/lib/autorender/models/file_list_response.rb +167 -0
- data/lib/autorender/models/file_rename_params.rb +29 -0
- data/lib/autorender/models/file_rename_response.rb +143 -0
- data/lib/autorender/models/file_retrieve_params.rb +20 -0
- data/lib/autorender/models/file_retrieve_response.rb +143 -0
- data/lib/autorender/models/folder_create_params.rb +30 -0
- data/lib/autorender/models/folder_create_response.rb +54 -0
- data/lib/autorender/models/folder_delete_params.rb +20 -0
- data/lib/autorender/models/folder_list_params.rb +49 -0
- data/lib/autorender/models/folder_list_response.rb +65 -0
- data/lib/autorender/models/folder_rename_params.rb +29 -0
- data/lib/autorender/models/folder_rename_response.rb +54 -0
- data/lib/autorender/models/multipart_upload_complete_params.rb +26 -0
- data/lib/autorender/models/multipart_upload_complete_response.rb +144 -0
- data/lib/autorender/models/multipart_upload_start_params.rb +82 -0
- data/lib/autorender/models/multipart_upload_start_response.rb +105 -0
- data/lib/autorender/models/upload_create_from_url_params.rb +76 -0
- data/lib/autorender/models/upload_create_from_url_response.rb +144 -0
- data/lib/autorender/models/upload_create_params.rb +86 -0
- data/lib/autorender/models/upload_create_response.rb +144 -0
- data/lib/autorender/models.rb +65 -0
- data/lib/autorender/request_options.rb +77 -0
- data/lib/autorender/resources/files.rb +108 -0
- data/lib/autorender/resources/folders.rb +109 -0
- data/lib/autorender/resources/multipart_uploads.rb +66 -0
- data/lib/autorender/resources/uploads.rb +90 -0
- data/lib/autorender/version.rb +5 -0
- data/lib/autorender.rb +82 -0
- data/manifest.yaml +17 -0
- data/rbi/autorender/client.rbi +62 -0
- data/rbi/autorender/errors.rbi +205 -0
- data/rbi/autorender/file_part.rbi +37 -0
- data/rbi/autorender/internal/page_pagination.rbi +28 -0
- data/rbi/autorender/internal/transport/base_client.rbi +300 -0
- data/rbi/autorender/internal/transport/pooled_net_requester.rbi +84 -0
- data/rbi/autorender/internal/type/array_of.rbi +104 -0
- data/rbi/autorender/internal/type/base_model.rbi +308 -0
- data/rbi/autorender/internal/type/base_page.rbi +42 -0
- data/rbi/autorender/internal/type/boolean.rbi +58 -0
- data/rbi/autorender/internal/type/converter.rbi +216 -0
- data/rbi/autorender/internal/type/enum.rbi +82 -0
- data/rbi/autorender/internal/type/file_input.rbi +59 -0
- data/rbi/autorender/internal/type/hash_of.rbi +104 -0
- data/rbi/autorender/internal/type/request_parameters.rbi +29 -0
- data/rbi/autorender/internal/type/union.rbi +128 -0
- data/rbi/autorender/internal/type/unknown.rbi +58 -0
- data/rbi/autorender/internal/util.rbi +515 -0
- data/rbi/autorender/internal.rbi +18 -0
- data/rbi/autorender/models/file_delete_params.rbi +35 -0
- data/rbi/autorender/models/file_list_params.rbi +116 -0
- data/rbi/autorender/models/file_list_response.rbi +227 -0
- data/rbi/autorender/models/file_rename_params.rbi +49 -0
- data/rbi/autorender/models/file_rename_response.rbi +205 -0
- data/rbi/autorender/models/file_retrieve_params.rbi +35 -0
- data/rbi/autorender/models/file_retrieve_response.rbi +209 -0
- data/rbi/autorender/models/folder_create_params.rbi +54 -0
- data/rbi/autorender/models/folder_create_response.rbi +75 -0
- data/rbi/autorender/models/folder_delete_params.rbi +35 -0
- data/rbi/autorender/models/folder_list_params.rbi +97 -0
- data/rbi/autorender/models/folder_list_response.rbi +105 -0
- data/rbi/autorender/models/folder_rename_params.rbi +49 -0
- data/rbi/autorender/models/folder_rename_response.rbi +75 -0
- data/rbi/autorender/models/multipart_upload_complete_params.rbi +49 -0
- data/rbi/autorender/models/multipart_upload_complete_response.rbi +174 -0
- data/rbi/autorender/models/multipart_upload_start_params.rbi +138 -0
- data/rbi/autorender/models/multipart_upload_start_response.rbi +146 -0
- data/rbi/autorender/models/upload_create_from_url_params.rbi +119 -0
- data/rbi/autorender/models/upload_create_from_url_response.rbi +174 -0
- data/rbi/autorender/models/upload_create_params.rbi +128 -0
- data/rbi/autorender/models/upload_create_response.rbi +174 -0
- data/rbi/autorender/models.rbi +28 -0
- data/rbi/autorender/request_options.rbi +59 -0
- data/rbi/autorender/resources/files.rbi +72 -0
- data/rbi/autorender/resources/folders.rbi +75 -0
- data/rbi/autorender/resources/multipart_uploads.rbi +53 -0
- data/rbi/autorender/resources/uploads.rbi +84 -0
- data/rbi/autorender/version.rbi +5 -0
- data/sig/autorender/client.rbs +32 -0
- data/sig/autorender/errors.rbs +117 -0
- data/sig/autorender/file_part.rbs +21 -0
- data/sig/autorender/internal/page_pagination.rbs +17 -0
- data/sig/autorender/internal/transport/base_client.rbs +133 -0
- data/sig/autorender/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/autorender/internal/type/array_of.rbs +48 -0
- data/sig/autorender/internal/type/base_model.rbs +102 -0
- data/sig/autorender/internal/type/base_page.rbs +24 -0
- data/sig/autorender/internal/type/boolean.rbs +26 -0
- data/sig/autorender/internal/type/converter.rbs +79 -0
- data/sig/autorender/internal/type/enum.rbs +32 -0
- data/sig/autorender/internal/type/file_input.rbs +25 -0
- data/sig/autorender/internal/type/hash_of.rbs +48 -0
- data/sig/autorender/internal/type/request_parameters.rbs +19 -0
- data/sig/autorender/internal/type/union.rbs +52 -0
- data/sig/autorender/internal/type/unknown.rbs +26 -0
- data/sig/autorender/internal/util.rbs +199 -0
- data/sig/autorender/internal.rbs +9 -0
- data/sig/autorender/models/file_delete_params.rbs +23 -0
- data/sig/autorender/models/file_list_params.rbs +79 -0
- data/sig/autorender/models/file_list_response.rbs +159 -0
- data/sig/autorender/models/file_rename_params.rbs +28 -0
- data/sig/autorender/models/file_rename_response.rbs +132 -0
- data/sig/autorender/models/file_retrieve_params.rbs +23 -0
- data/sig/autorender/models/file_retrieve_response.rbs +132 -0
- data/sig/autorender/models/folder_create_params.rbs +30 -0
- data/sig/autorender/models/folder_create_response.rbs +50 -0
- data/sig/autorender/models/folder_delete_params.rbs +23 -0
- data/sig/autorender/models/folder_list_params.rbs +57 -0
- data/sig/autorender/models/folder_list_response.rbs +65 -0
- data/sig/autorender/models/folder_rename_params.rbs +28 -0
- data/sig/autorender/models/folder_rename_response.rbs +50 -0
- data/sig/autorender/models/multipart_upload_complete_params.rbs +30 -0
- data/sig/autorender/models/multipart_upload_complete_response.rbs +131 -0
- data/sig/autorender/models/multipart_upload_start_params.rbs +90 -0
- data/sig/autorender/models/multipart_upload_start_response.rbs +92 -0
- data/sig/autorender/models/upload_create_from_url_params.rbs +75 -0
- data/sig/autorender/models/upload_create_from_url_response.rbs +131 -0
- data/sig/autorender/models/upload_create_params.rbs +80 -0
- data/sig/autorender/models/upload_create_response.rbs +131 -0
- data/sig/autorender/models.rbs +25 -0
- data/sig/autorender/request_options.rbs +36 -0
- data/sig/autorender/resources/files.rbs +32 -0
- data/sig/autorender/resources/folders.rbs +31 -0
- data/sig/autorender/resources/multipart_uploads.rbs +26 -0
- data/sig/autorender/resources/uploads.rbs +32 -0
- data/sig/autorender/version.rbs +3 -0
- metadata +223 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Autorender
|
|
4
|
+
module Models
|
|
5
|
+
class UploadCreateResponse < Autorender::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Autorender::Models::UploadCreateResponse,
|
|
10
|
+
Autorender::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
attr_accessor :id
|
|
16
|
+
|
|
17
|
+
sig { returns(Time) }
|
|
18
|
+
attr_accessor :created_at
|
|
19
|
+
|
|
20
|
+
sig { returns(T.nilable(String)) }
|
|
21
|
+
attr_accessor :custom_id
|
|
22
|
+
|
|
23
|
+
sig { returns(String) }
|
|
24
|
+
attr_accessor :extension
|
|
25
|
+
|
|
26
|
+
sig { returns(String) }
|
|
27
|
+
attr_accessor :file_no
|
|
28
|
+
|
|
29
|
+
sig { returns(T.nilable(String)) }
|
|
30
|
+
attr_accessor :folder_no
|
|
31
|
+
|
|
32
|
+
sig { returns(T.nilable(Integer)) }
|
|
33
|
+
attr_accessor :height
|
|
34
|
+
|
|
35
|
+
sig { returns(T::Boolean) }
|
|
36
|
+
attr_accessor :is_duplicate
|
|
37
|
+
|
|
38
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
39
|
+
attr_accessor :metadata
|
|
40
|
+
|
|
41
|
+
sig { returns(String) }
|
|
42
|
+
attr_accessor :mime_type
|
|
43
|
+
|
|
44
|
+
sig { returns(String) }
|
|
45
|
+
attr_accessor :name
|
|
46
|
+
|
|
47
|
+
sig { returns(String) }
|
|
48
|
+
attr_accessor :path
|
|
49
|
+
|
|
50
|
+
sig { returns(Integer) }
|
|
51
|
+
attr_accessor :size
|
|
52
|
+
|
|
53
|
+
sig { returns(T::Array[String]) }
|
|
54
|
+
attr_accessor :tags
|
|
55
|
+
|
|
56
|
+
sig { returns(String) }
|
|
57
|
+
attr_accessor :thumbnail
|
|
58
|
+
|
|
59
|
+
sig { returns(String) }
|
|
60
|
+
attr_accessor :upload_source
|
|
61
|
+
|
|
62
|
+
sig { returns(String) }
|
|
63
|
+
attr_accessor :url
|
|
64
|
+
|
|
65
|
+
sig { returns(T.nilable(Integer)) }
|
|
66
|
+
attr_accessor :width
|
|
67
|
+
|
|
68
|
+
sig { returns(String) }
|
|
69
|
+
attr_accessor :workspace_id
|
|
70
|
+
|
|
71
|
+
sig { returns(T.nilable(String)) }
|
|
72
|
+
attr_reader :format_
|
|
73
|
+
|
|
74
|
+
sig { params(format_: String).void }
|
|
75
|
+
attr_writer :format_
|
|
76
|
+
|
|
77
|
+
sig { returns(T.nilable(String)) }
|
|
78
|
+
attr_reader :hash_
|
|
79
|
+
|
|
80
|
+
sig { params(hash_: String).void }
|
|
81
|
+
attr_writer :hash_
|
|
82
|
+
|
|
83
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
84
|
+
attr_reader :is_private
|
|
85
|
+
|
|
86
|
+
sig { params(is_private: T::Boolean).void }
|
|
87
|
+
attr_writer :is_private
|
|
88
|
+
|
|
89
|
+
# Upload created
|
|
90
|
+
sig do
|
|
91
|
+
params(
|
|
92
|
+
id: String,
|
|
93
|
+
created_at: Time,
|
|
94
|
+
custom_id: T.nilable(String),
|
|
95
|
+
extension: String,
|
|
96
|
+
file_no: String,
|
|
97
|
+
folder_no: T.nilable(String),
|
|
98
|
+
height: T.nilable(Integer),
|
|
99
|
+
is_duplicate: T::Boolean,
|
|
100
|
+
metadata: T.nilable(T::Hash[Symbol, T.anything]),
|
|
101
|
+
mime_type: String,
|
|
102
|
+
name: String,
|
|
103
|
+
path: String,
|
|
104
|
+
size: Integer,
|
|
105
|
+
tags: T::Array[String],
|
|
106
|
+
thumbnail: String,
|
|
107
|
+
upload_source: String,
|
|
108
|
+
url: String,
|
|
109
|
+
width: T.nilable(Integer),
|
|
110
|
+
workspace_id: String,
|
|
111
|
+
format_: String,
|
|
112
|
+
hash_: String,
|
|
113
|
+
is_private: T::Boolean
|
|
114
|
+
).returns(T.attached_class)
|
|
115
|
+
end
|
|
116
|
+
def self.new(
|
|
117
|
+
id:,
|
|
118
|
+
created_at:,
|
|
119
|
+
custom_id:,
|
|
120
|
+
extension:,
|
|
121
|
+
file_no:,
|
|
122
|
+
folder_no:,
|
|
123
|
+
height:,
|
|
124
|
+
is_duplicate:,
|
|
125
|
+
metadata:,
|
|
126
|
+
mime_type:,
|
|
127
|
+
name:,
|
|
128
|
+
path:,
|
|
129
|
+
size:,
|
|
130
|
+
tags:,
|
|
131
|
+
thumbnail:,
|
|
132
|
+
upload_source:,
|
|
133
|
+
url:,
|
|
134
|
+
width:,
|
|
135
|
+
workspace_id:,
|
|
136
|
+
format_: nil,
|
|
137
|
+
hash_: nil,
|
|
138
|
+
is_private: nil
|
|
139
|
+
)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
sig do
|
|
143
|
+
override.returns(
|
|
144
|
+
{
|
|
145
|
+
id: String,
|
|
146
|
+
created_at: Time,
|
|
147
|
+
custom_id: T.nilable(String),
|
|
148
|
+
extension: String,
|
|
149
|
+
file_no: String,
|
|
150
|
+
folder_no: T.nilable(String),
|
|
151
|
+
height: T.nilable(Integer),
|
|
152
|
+
is_duplicate: T::Boolean,
|
|
153
|
+
metadata: T.nilable(T::Hash[Symbol, T.anything]),
|
|
154
|
+
mime_type: String,
|
|
155
|
+
name: String,
|
|
156
|
+
path: String,
|
|
157
|
+
size: Integer,
|
|
158
|
+
tags: T::Array[String],
|
|
159
|
+
thumbnail: String,
|
|
160
|
+
upload_source: String,
|
|
161
|
+
url: String,
|
|
162
|
+
width: T.nilable(Integer),
|
|
163
|
+
workspace_id: String,
|
|
164
|
+
format_: String,
|
|
165
|
+
hash_: String,
|
|
166
|
+
is_private: T::Boolean
|
|
167
|
+
}
|
|
168
|
+
)
|
|
169
|
+
end
|
|
170
|
+
def to_hash
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Autorender
|
|
4
|
+
FileDeleteParams = Autorender::Models::FileDeleteParams
|
|
5
|
+
|
|
6
|
+
FileListParams = Autorender::Models::FileListParams
|
|
7
|
+
|
|
8
|
+
FileRenameParams = Autorender::Models::FileRenameParams
|
|
9
|
+
|
|
10
|
+
FileRetrieveParams = Autorender::Models::FileRetrieveParams
|
|
11
|
+
|
|
12
|
+
FolderCreateParams = Autorender::Models::FolderCreateParams
|
|
13
|
+
|
|
14
|
+
FolderDeleteParams = Autorender::Models::FolderDeleteParams
|
|
15
|
+
|
|
16
|
+
FolderListParams = Autorender::Models::FolderListParams
|
|
17
|
+
|
|
18
|
+
FolderRenameParams = Autorender::Models::FolderRenameParams
|
|
19
|
+
|
|
20
|
+
MultipartUploadCompleteParams =
|
|
21
|
+
Autorender::Models::MultipartUploadCompleteParams
|
|
22
|
+
|
|
23
|
+
MultipartUploadStartParams = Autorender::Models::MultipartUploadStartParams
|
|
24
|
+
|
|
25
|
+
UploadCreateFromURLParams = Autorender::Models::UploadCreateFromURLParams
|
|
26
|
+
|
|
27
|
+
UploadCreateParams = Autorender::Models::UploadCreateParams
|
|
28
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Autorender
|
|
4
|
+
# Specify HTTP behaviour to use for a specific request. These options supplement
|
|
5
|
+
# or override those provided at the client level.
|
|
6
|
+
#
|
|
7
|
+
# When making a request, you can pass an actual {RequestOptions} instance, or
|
|
8
|
+
# simply pass a Hash with symbol keys matching the attributes on this class.
|
|
9
|
+
class RequestOptions < Autorender::Internal::Type::BaseModel
|
|
10
|
+
OrHash =
|
|
11
|
+
T.type_alias do
|
|
12
|
+
T.any(Autorender::RequestOptions, Autorender::Internal::AnyHash)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
sig { params(opts: Autorender::RequestOptions::OrHash).void }
|
|
17
|
+
def self.validate!(opts)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Idempotency key to send with request and all associated retries. Will only be
|
|
21
|
+
# sent for write requests.
|
|
22
|
+
sig { returns(T.nilable(String)) }
|
|
23
|
+
attr_accessor :idempotency_key
|
|
24
|
+
|
|
25
|
+
# Extra query params to send with the request. These are `.merge`’d into any
|
|
26
|
+
# `query` given at the client level.
|
|
27
|
+
sig do
|
|
28
|
+
returns(
|
|
29
|
+
T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
attr_accessor :extra_query
|
|
33
|
+
|
|
34
|
+
# Extra headers to send with the request. These are `.merged`’d into any
|
|
35
|
+
# `extra_headers` given at the client level.
|
|
36
|
+
sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) }
|
|
37
|
+
attr_accessor :extra_headers
|
|
38
|
+
|
|
39
|
+
# Extra data to send with the request. These are deep merged into any data
|
|
40
|
+
# generated as part of the normal request.
|
|
41
|
+
sig { returns(T.nilable(T.anything)) }
|
|
42
|
+
attr_accessor :extra_body
|
|
43
|
+
|
|
44
|
+
# Maximum number of retries to attempt after a failed initial request.
|
|
45
|
+
sig { returns(T.nilable(Integer)) }
|
|
46
|
+
attr_accessor :max_retries
|
|
47
|
+
|
|
48
|
+
# Request timeout in seconds.
|
|
49
|
+
sig { returns(T.nilable(Float)) }
|
|
50
|
+
attr_accessor :timeout
|
|
51
|
+
|
|
52
|
+
# Returns a new instance of RequestOptions.
|
|
53
|
+
sig do
|
|
54
|
+
params(values: Autorender::Internal::AnyHash).returns(T.attached_class)
|
|
55
|
+
end
|
|
56
|
+
def self.new(values = {})
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Autorender
|
|
4
|
+
module Resources
|
|
5
|
+
# File management endpoints (API key required)
|
|
6
|
+
class Files
|
|
7
|
+
# Get file details
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
file_no: String,
|
|
11
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
12
|
+
).returns(Autorender::Models::FileRetrieveResponse)
|
|
13
|
+
end
|
|
14
|
+
def retrieve(file_no, request_options: {})
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# List/search files with pagination, filtering, and sorting.
|
|
18
|
+
sig do
|
|
19
|
+
params(
|
|
20
|
+
folder_no: String,
|
|
21
|
+
limit: Integer,
|
|
22
|
+
page: Integer,
|
|
23
|
+
search: String,
|
|
24
|
+
sort: Autorender::FileListParams::Sort::OrSymbol,
|
|
25
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
26
|
+
).returns(Autorender::Models::FileListResponse)
|
|
27
|
+
end
|
|
28
|
+
def list(
|
|
29
|
+
# Filter by folder number
|
|
30
|
+
folder_no: nil,
|
|
31
|
+
limit: nil,
|
|
32
|
+
page: nil,
|
|
33
|
+
# Partial name match (case-insensitive)
|
|
34
|
+
search: nil,
|
|
35
|
+
sort: nil,
|
|
36
|
+
request_options: {}
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Delete file
|
|
41
|
+
sig do
|
|
42
|
+
params(
|
|
43
|
+
file_no: String,
|
|
44
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
45
|
+
).void
|
|
46
|
+
end
|
|
47
|
+
def delete(file_no, request_options: {})
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Rename file
|
|
51
|
+
sig do
|
|
52
|
+
params(
|
|
53
|
+
file_no: String,
|
|
54
|
+
name: String,
|
|
55
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
56
|
+
).returns(Autorender::Models::FileRenameResponse)
|
|
57
|
+
end
|
|
58
|
+
def rename(
|
|
59
|
+
file_no,
|
|
60
|
+
# New file name without extension or path separators
|
|
61
|
+
name:,
|
|
62
|
+
request_options: {}
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# @api private
|
|
67
|
+
sig { params(client: Autorender::Client).returns(T.attached_class) }
|
|
68
|
+
def self.new(client:)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Autorender
|
|
4
|
+
module Resources
|
|
5
|
+
# Folder management endpoints (API key required)
|
|
6
|
+
class Folders
|
|
7
|
+
# Create folder
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
name: String,
|
|
11
|
+
parent_folder_no: String,
|
|
12
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
13
|
+
).returns(Autorender::Models::FolderCreateResponse)
|
|
14
|
+
end
|
|
15
|
+
def create(
|
|
16
|
+
# Folder name without slashes
|
|
17
|
+
name:,
|
|
18
|
+
# Parent folder number
|
|
19
|
+
parent_folder_no: nil,
|
|
20
|
+
request_options: {}
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# List folders
|
|
25
|
+
sig do
|
|
26
|
+
params(
|
|
27
|
+
parent_folder_no: String,
|
|
28
|
+
search: String,
|
|
29
|
+
sort: Autorender::FolderListParams::Sort::OrSymbol,
|
|
30
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
31
|
+
).returns(Autorender::Models::FolderListResponse)
|
|
32
|
+
end
|
|
33
|
+
def list(
|
|
34
|
+
# Filter by parent folder number
|
|
35
|
+
parent_folder_no: nil,
|
|
36
|
+
# Partial name match (case-insensitive)
|
|
37
|
+
search: nil,
|
|
38
|
+
sort: nil,
|
|
39
|
+
request_options: {}
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Delete folder
|
|
44
|
+
sig do
|
|
45
|
+
params(
|
|
46
|
+
folder_no: String,
|
|
47
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
48
|
+
).void
|
|
49
|
+
end
|
|
50
|
+
def delete(folder_no, request_options: {})
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Rename folder
|
|
54
|
+
sig do
|
|
55
|
+
params(
|
|
56
|
+
folder_no: String,
|
|
57
|
+
name: String,
|
|
58
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
59
|
+
).returns(Autorender::Models::FolderRenameResponse)
|
|
60
|
+
end
|
|
61
|
+
def rename(
|
|
62
|
+
folder_no,
|
|
63
|
+
# New folder name without slashes
|
|
64
|
+
name:,
|
|
65
|
+
request_options: {}
|
|
66
|
+
)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# @api private
|
|
70
|
+
sig { params(client: Autorender::Client).returns(T.attached_class) }
|
|
71
|
+
def self.new(client:)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Autorender
|
|
4
|
+
module Resources
|
|
5
|
+
# Upload endpoints (API key required)
|
|
6
|
+
class MultipartUploads
|
|
7
|
+
# Finalise a multipart upload session and return the stored file record.
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
session_id: String,
|
|
11
|
+
uuid: String,
|
|
12
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
13
|
+
).returns(Autorender::Models::MultipartUploadCompleteResponse)
|
|
14
|
+
end
|
|
15
|
+
def complete(session_id:, uuid: nil, request_options: {})
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Initialise a multipart upload session and receive pre-signed part URLs.
|
|
19
|
+
sig do
|
|
20
|
+
params(
|
|
21
|
+
file_name: String,
|
|
22
|
+
format_: String,
|
|
23
|
+
size: Integer,
|
|
24
|
+
custom_id: String,
|
|
25
|
+
folder: String,
|
|
26
|
+
metadata: T::Hash[Symbol, T.anything],
|
|
27
|
+
random_prefix: T::Boolean,
|
|
28
|
+
tags: Autorender::MultipartUploadStartParams::Tags::Variants,
|
|
29
|
+
ttl_seconds: Integer,
|
|
30
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
31
|
+
).returns(Autorender::Models::MultipartUploadStartResponse)
|
|
32
|
+
end
|
|
33
|
+
def start(
|
|
34
|
+
file_name:,
|
|
35
|
+
format_:,
|
|
36
|
+
size:,
|
|
37
|
+
custom_id: nil,
|
|
38
|
+
folder: nil,
|
|
39
|
+
metadata: nil,
|
|
40
|
+
random_prefix: nil,
|
|
41
|
+
tags: nil,
|
|
42
|
+
ttl_seconds: nil,
|
|
43
|
+
request_options: {}
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# @api private
|
|
48
|
+
sig { params(client: Autorender::Client).returns(T.attached_class) }
|
|
49
|
+
def self.new(client:)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Autorender
|
|
4
|
+
module Resources
|
|
5
|
+
# Upload endpoints (API key required)
|
|
6
|
+
class Uploads
|
|
7
|
+
# Upload a file from your backend server using multipart/form-data.
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
file: Autorender::Internal::FileInput,
|
|
11
|
+
file_name: String,
|
|
12
|
+
custom_id: String,
|
|
13
|
+
folder: String,
|
|
14
|
+
metadata: String,
|
|
15
|
+
random_prefix: String,
|
|
16
|
+
tags: String,
|
|
17
|
+
transform: String,
|
|
18
|
+
webhook_url: String,
|
|
19
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
20
|
+
).returns(Autorender::Models::UploadCreateResponse)
|
|
21
|
+
end
|
|
22
|
+
def create(
|
|
23
|
+
# File to upload.
|
|
24
|
+
file:,
|
|
25
|
+
# File name (e.g. product.jpg)
|
|
26
|
+
file_name:,
|
|
27
|
+
# Custom identifier
|
|
28
|
+
custom_id: nil,
|
|
29
|
+
# Optional folder path
|
|
30
|
+
folder: nil,
|
|
31
|
+
# JSON string of metadata
|
|
32
|
+
metadata: nil,
|
|
33
|
+
# true/false to append random suffix
|
|
34
|
+
random_prefix: nil,
|
|
35
|
+
# Comma-separated tags
|
|
36
|
+
tags: nil,
|
|
37
|
+
# Transform string (w_300,h_300,c_crop,...)
|
|
38
|
+
transform: nil,
|
|
39
|
+
# URL to notify on success
|
|
40
|
+
webhook_url: nil,
|
|
41
|
+
request_options: {}
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Download a file from a remote URL and store it in AutoRender.
|
|
46
|
+
sig do
|
|
47
|
+
params(
|
|
48
|
+
remote_url: String,
|
|
49
|
+
custom_id: String,
|
|
50
|
+
file_name: String,
|
|
51
|
+
folder: String,
|
|
52
|
+
metadata: String,
|
|
53
|
+
random_prefix: String,
|
|
54
|
+
tags: String,
|
|
55
|
+
webhook_url: String,
|
|
56
|
+
request_options: Autorender::RequestOptions::OrHash
|
|
57
|
+
).returns(Autorender::Models::UploadCreateFromURLResponse)
|
|
58
|
+
end
|
|
59
|
+
def create_from_url(
|
|
60
|
+
# HTTP/HTTPS URL to fetch
|
|
61
|
+
remote_url:,
|
|
62
|
+
custom_id: nil,
|
|
63
|
+
# Override file name
|
|
64
|
+
file_name: nil,
|
|
65
|
+
# Destination folder path
|
|
66
|
+
folder: nil,
|
|
67
|
+
# JSON string of metadata object
|
|
68
|
+
metadata: nil,
|
|
69
|
+
# true/false to append random suffix
|
|
70
|
+
random_prefix: nil,
|
|
71
|
+
# Comma-separated tags
|
|
72
|
+
tags: nil,
|
|
73
|
+
webhook_url: nil,
|
|
74
|
+
request_options: {}
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @api private
|
|
79
|
+
sig { params(client: Autorender::Client).returns(T.attached_class) }
|
|
80
|
+
def self.new(client:)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Autorender
|
|
2
|
+
class Client < Autorender::Internal::Transport::BaseClient
|
|
3
|
+
DEFAULT_MAX_RETRIES: 2
|
|
4
|
+
|
|
5
|
+
DEFAULT_TIMEOUT_IN_SECONDS: Float
|
|
6
|
+
|
|
7
|
+
DEFAULT_INITIAL_RETRY_DELAY: Float
|
|
8
|
+
|
|
9
|
+
DEFAULT_MAX_RETRY_DELAY: Float
|
|
10
|
+
|
|
11
|
+
attr_reader api_key: String?
|
|
12
|
+
|
|
13
|
+
attr_reader uploads: Autorender::Resources::Uploads
|
|
14
|
+
|
|
15
|
+
attr_reader files: Autorender::Resources::Files
|
|
16
|
+
|
|
17
|
+
attr_reader folders: Autorender::Resources::Folders
|
|
18
|
+
|
|
19
|
+
attr_reader multipart_uploads: Autorender::Resources::MultipartUploads
|
|
20
|
+
|
|
21
|
+
private def auth_headers: -> ::Hash[String, String]
|
|
22
|
+
|
|
23
|
+
def initialize: (
|
|
24
|
+
?api_key: String?,
|
|
25
|
+
?base_url: String?,
|
|
26
|
+
?max_retries: Integer,
|
|
27
|
+
?timeout: Float,
|
|
28
|
+
?initial_retry_delay: Float,
|
|
29
|
+
?max_retry_delay: Float
|
|
30
|
+
) -> void
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
module Autorender
|
|
2
|
+
module Errors
|
|
3
|
+
class Error < StandardError
|
|
4
|
+
attr_accessor cause: StandardError?
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class ConversionError < Autorender::Errors::Error
|
|
8
|
+
def cause: -> StandardError?
|
|
9
|
+
|
|
10
|
+
def initialize: (
|
|
11
|
+
on: Class,
|
|
12
|
+
method: Symbol,
|
|
13
|
+
target: top,
|
|
14
|
+
value: top,
|
|
15
|
+
?cause: StandardError?
|
|
16
|
+
) -> void
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class APIError < Autorender::Errors::Error
|
|
20
|
+
attr_accessor url: URI::Generic
|
|
21
|
+
|
|
22
|
+
attr_accessor status: Integer?
|
|
23
|
+
|
|
24
|
+
attr_accessor headers: ::Hash[String, String]?
|
|
25
|
+
|
|
26
|
+
attr_accessor body: top?
|
|
27
|
+
|
|
28
|
+
def initialize: (
|
|
29
|
+
url: URI::Generic,
|
|
30
|
+
?status: Integer?,
|
|
31
|
+
?headers: ::Hash[String, String]?,
|
|
32
|
+
?body: Object?,
|
|
33
|
+
?request: nil,
|
|
34
|
+
?response: nil,
|
|
35
|
+
?message: String?
|
|
36
|
+
) -> void
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
class APIConnectionError < Autorender::Errors::APIError
|
|
40
|
+
def initialize: (
|
|
41
|
+
url: URI::Generic,
|
|
42
|
+
?status: nil,
|
|
43
|
+
?headers: ::Hash[String, String]?,
|
|
44
|
+
?body: nil,
|
|
45
|
+
?request: nil,
|
|
46
|
+
?response: nil,
|
|
47
|
+
?message: String?
|
|
48
|
+
) -> void
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
class APITimeoutError < Autorender::Errors::APIConnectionError
|
|
52
|
+
def initialize: (
|
|
53
|
+
url: URI::Generic,
|
|
54
|
+
?status: nil,
|
|
55
|
+
?headers: ::Hash[String, String]?,
|
|
56
|
+
?body: nil,
|
|
57
|
+
?request: nil,
|
|
58
|
+
?response: nil,
|
|
59
|
+
?message: String?
|
|
60
|
+
) -> void
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
class APIStatusError < Autorender::Errors::APIError
|
|
64
|
+
def self.for: (
|
|
65
|
+
url: URI::Generic,
|
|
66
|
+
status: Integer,
|
|
67
|
+
headers: ::Hash[String, String]?,
|
|
68
|
+
body: Object?,
|
|
69
|
+
request: nil,
|
|
70
|
+
response: nil,
|
|
71
|
+
?message: String?
|
|
72
|
+
) -> instance
|
|
73
|
+
|
|
74
|
+
def initialize: (
|
|
75
|
+
url: URI::Generic,
|
|
76
|
+
status: Integer,
|
|
77
|
+
headers: ::Hash[String, String]?,
|
|
78
|
+
body: Object?,
|
|
79
|
+
request: nil,
|
|
80
|
+
response: nil,
|
|
81
|
+
?message: String?
|
|
82
|
+
) -> void
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
class BadRequestError < Autorender::Errors::APIStatusError
|
|
86
|
+
HTTP_STATUS: 400
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
class AuthenticationError < Autorender::Errors::APIStatusError
|
|
90
|
+
HTTP_STATUS: 401
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class PermissionDeniedError < Autorender::Errors::APIStatusError
|
|
94
|
+
HTTP_STATUS: 403
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
class NotFoundError < Autorender::Errors::APIStatusError
|
|
98
|
+
HTTP_STATUS: 404
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
class ConflictError < Autorender::Errors::APIStatusError
|
|
102
|
+
HTTP_STATUS: 409
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
class UnprocessableEntityError < Autorender::Errors::APIStatusError
|
|
106
|
+
HTTP_STATUS: 422
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
class RateLimitError < Autorender::Errors::APIStatusError
|
|
110
|
+
HTTP_STATUS: 429
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
class InternalServerError < Autorender::Errors::APIStatusError
|
|
114
|
+
HTTP_STATUS: Range[Integer]
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|