vellum_ai 1.10.4 → 1.10.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 174f42402204c6ce53c3d0e7d41ef48ebbd64948d51da0e70910cf542ec22395
4
- data.tar.gz: 458884696995dbe56a41274094d7d34f19c496296e9adcccb8e3eeb198fc3a8b
3
+ metadata.gz: 2d9d3a074bed53cbb7cf976508e41cffdc3737ee980f0930be1ebc92055b09df
4
+ data.tar.gz: a0315a68ac585bcc37fcb9b7fb68556f0ec5efa6a9fd9ac79fdec0cc87a87aec
5
5
  SHA512:
6
- metadata.gz: 321127cb0bf1131a4d6c28cb192306ef96c9ffb475fb292374df0dd188a4521cd0cff1b6ebae2959d5cefb2a62fafe3d4945210c3457592bda9dafd034d42b10
7
- data.tar.gz: ef3cb909a1bc183e3f90c5099d9657b9e97a9c7a8692a293babef16d05bf228ced17cc8aba5c30b9dd687778faeba3114b6d4dc5941a6a907f347d48eb23ec5e
6
+ metadata.gz: 5e85af35c343a5dc0e9c10e716ae9c0a0988fcacd4931a6ce57ec092311b9f5b6038af53f175ce6fdbc0af189d29fc8d4c227c6beed12b1bcaf9f742d4b3054c
7
+ data.tar.gz: 5e5279482d64437e18ffecd3173faf3fb78448028e751c1a7e9b994d65bd24ceb39e1a55a253a3c34c60d3d36ac7b535cdfaa08df8c364ffe33e43c9f96890b3
data/lib/requests.rb CHANGED
@@ -56,7 +56,7 @@ end
56
56
  end
57
57
  # @return [Hash{String => String}]
58
58
  def get_headers
59
- headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.10.4' }
59
+ headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.10.5' }
60
60
  headers["X-API-KEY"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil?
61
61
  headers
62
62
  end
@@ -107,7 +107,7 @@ end
107
107
  end
108
108
  # @return [Hash{String => String}]
109
109
  def get_headers
110
- headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.10.4' }
110
+ headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.10.5' }
111
111
  headers["X-API-KEY"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil?
112
112
  headers
113
113
  end
data/lib/types_export.rb CHANGED
@@ -605,6 +605,7 @@ require_relative "vellum_ai/types/components_schemas_composio_tool_definition"
605
605
  require_relative "vellum_ai/types/unit_enum"
606
606
  require_relative "vellum_ai/types/update_active_workspace_response"
607
607
  require_relative "vellum_ai/types/upload_document_response"
608
+ require_relative "vellum_ai/types/uploaded_file_read"
608
609
  require_relative "vellum_ai/types/upsert_test_suite_test_case_request"
609
610
  require_relative "vellum_ai/types/vellum_audio"
610
611
  require_relative "vellum_ai/types/vellum_audio_request"
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Vellum
6
+ # Represents a file that has been uploaded to a Vellum Workspace.
7
+ class UploadedFileRead
8
+ # @return [String]
9
+ attr_reader :id
10
+ # @return [String] A signed URL to download the uploaded file.
11
+ attr_reader :file_url
12
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
13
+ attr_reader :additional_properties
14
+ # @return [Object]
15
+ attr_reader :_field_set
16
+ protected :_field_set
17
+
18
+ OMIT = Object.new
19
+
20
+ # @param id [String]
21
+ # @param file_url [String] A signed URL to download the uploaded file.
22
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
23
+ # @return [Vellum::UploadedFileRead]
24
+ def initialize(id: OMIT, file_url: OMIT, additional_properties: nil)
25
+ @id = id if id != OMIT
26
+ @file_url = file_url if file_url != OMIT
27
+ @additional_properties = additional_properties
28
+ @_field_set = { "id": id, "file_url": file_url }.reject do | _k, v |
29
+ v == OMIT
30
+ end
31
+ end
32
+ # Deserialize a JSON object to an instance of UploadedFileRead
33
+ #
34
+ # @param json_object [String]
35
+ # @return [Vellum::UploadedFileRead]
36
+ def self.from_json(json_object:)
37
+ struct = JSON.parse(json_object, object_class: OpenStruct)
38
+ parsed_json = JSON.parse(json_object)
39
+ id = parsed_json["id"]
40
+ file_url = parsed_json["file_url"]
41
+ new(
42
+ id: id,
43
+ file_url: file_url,
44
+ additional_properties: struct
45
+ )
46
+ end
47
+ # Serialize an instance of UploadedFileRead to a JSON object
48
+ #
49
+ # @return [String]
50
+ def to_json
51
+ @_field_set&.to_json
52
+ end
53
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
54
+ # hash and check each fields type against the current object's property
55
+ # definitions.
56
+ #
57
+ # @param obj [Object]
58
+ # @return [Void]
59
+ def self.validate_raw(obj:)
60
+ obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
61
+ obj.file_url&.is_a?(String) != false || raise("Passed value for field obj.file_url is not the expected type, validation failed.")
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,162 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "../types/uploaded_file_read"
4
+ require_relative "../../core/file_utilities"
5
+ require "async"
6
+ require "async"
7
+ require_relative "../../requests"
8
+
9
+ module Vellum
10
+ class UploadedFilesClient
11
+ # @return [Vellum::RequestClient]
12
+ attr_reader :request_client
13
+
14
+
15
+ # @param request_client [Vellum::RequestClient]
16
+ # @return [Vellum::UploadedFilesClient]
17
+ def initialize(request_client:)
18
+ @request_client = request_client
19
+ end
20
+ # Upload a file to be used in the Workspace
21
+ #
22
+ # @param file [String, IO]
23
+ # @param request_options [Vellum::RequestOptions]
24
+ # @return [Vellum::UploadedFileRead]
25
+ def create(file:, request_options: nil)
26
+ response = @request_client.conn.post do | req |
27
+ unless request_options&.timeout_in_seconds.nil?
28
+ req.options.timeout = request_options.timeout_in_seconds
29
+ end
30
+ unless request_options&.api_key.nil?
31
+ req.headers["X-API-KEY"] = request_options.api_key
32
+ end
33
+ unless request_options&.api_version.nil?
34
+ req.headers["X-API-Version"] = request_options.api_version
35
+ else
36
+ req.headers["X-API-Version"] = "2025-07-30"
37
+ end
38
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
39
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
40
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
41
+ end
42
+ req.body = { **(request_options&.additional_body_parameters || {}), file: Vellum::FileUtilities.as_faraday_multipart(file_like: file) }.compact
43
+ req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/v1/uploaded-files"
44
+ end
45
+ Vellum::UploadedFileRead.from_json(json_object: response.body)
46
+ end
47
+ # Retrieve a previously uploaded file by its ID
48
+ #
49
+ # @param id [String] A UUID string identifying this uploaded file.
50
+ # @param request_options [Vellum::RequestOptions]
51
+ # @return [Vellum::UploadedFileRead]
52
+ # @example
53
+ # api = Vellum::Client.new(
54
+ # base_url: "https://api.example.com",
55
+ # environment: Vellum::Environment::PRODUCTION,
56
+ # api_key: "YOUR_API_KEY"
57
+ # )
58
+ # api.uploaded_files.retrieve(id: "id")
59
+ def retrieve(id:, request_options: nil)
60
+ response = @request_client.conn.get do | req |
61
+ unless request_options&.timeout_in_seconds.nil?
62
+ req.options.timeout = request_options.timeout_in_seconds
63
+ end
64
+ unless request_options&.api_key.nil?
65
+ req.headers["X-API-KEY"] = request_options.api_key
66
+ end
67
+ unless request_options&.api_version.nil?
68
+ req.headers["X-API-Version"] = request_options.api_version
69
+ else
70
+ req.headers["X-API-Version"] = "2025-07-30"
71
+ end
72
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
73
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
74
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
75
+ end
76
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
77
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
78
+ end
79
+ req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/v1/uploaded-files/#{id}"
80
+ end
81
+ Vellum::UploadedFileRead.from_json(json_object: response.body)
82
+ end
83
+ end
84
+ class AsyncUploadedFilesClient
85
+ # @return [Vellum::AsyncRequestClient]
86
+ attr_reader :request_client
87
+
88
+
89
+ # @param request_client [Vellum::RequestClient]
90
+ # @return [Vellum::AsyncUploadedFilesClient]
91
+ def initialize(request_client:)
92
+ @request_client = request_client
93
+ end
94
+ # Upload a file to be used in the Workspace
95
+ #
96
+ # @param file [String, IO]
97
+ # @param request_options [Vellum::RequestOptions]
98
+ # @return [Vellum::UploadedFileRead]
99
+ def create(file:, request_options: nil)
100
+ Async do
101
+ response = @request_client.conn.post do | req |
102
+ unless request_options&.timeout_in_seconds.nil?
103
+ req.options.timeout = request_options.timeout_in_seconds
104
+ end
105
+ unless request_options&.api_key.nil?
106
+ req.headers["X-API-KEY"] = request_options.api_key
107
+ end
108
+ unless request_options&.api_version.nil?
109
+ req.headers["X-API-Version"] = request_options.api_version
110
+ else
111
+ req.headers["X-API-Version"] = "2025-07-30"
112
+ end
113
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
114
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
115
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
116
+ end
117
+ req.body = { **(request_options&.additional_body_parameters || {}), file: Vellum::FileUtilities.as_faraday_multipart(file_like: file) }.compact
118
+ req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/v1/uploaded-files"
119
+ end
120
+ Vellum::UploadedFileRead.from_json(json_object: response.body)
121
+ end
122
+ end
123
+ # Retrieve a previously uploaded file by its ID
124
+ #
125
+ # @param id [String] A UUID string identifying this uploaded file.
126
+ # @param request_options [Vellum::RequestOptions]
127
+ # @return [Vellum::UploadedFileRead]
128
+ # @example
129
+ # api = Vellum::Client.new(
130
+ # base_url: "https://api.example.com",
131
+ # environment: Vellum::Environment::PRODUCTION,
132
+ # api_key: "YOUR_API_KEY"
133
+ # )
134
+ # api.uploaded_files.retrieve(id: "id")
135
+ def retrieve(id:, request_options: nil)
136
+ Async do
137
+ response = @request_client.conn.get do | req |
138
+ unless request_options&.timeout_in_seconds.nil?
139
+ req.options.timeout = request_options.timeout_in_seconds
140
+ end
141
+ unless request_options&.api_key.nil?
142
+ req.headers["X-API-KEY"] = request_options.api_key
143
+ end
144
+ unless request_options&.api_version.nil?
145
+ req.headers["X-API-Version"] = request_options.api_version
146
+ else
147
+ req.headers["X-API-Version"] = "2025-07-30"
148
+ end
149
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
150
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
151
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
152
+ end
153
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
154
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
155
+ end
156
+ req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/v1/uploaded-files/#{id}"
157
+ end
158
+ Vellum::UploadedFileRead.from_json(json_object: response.body)
159
+ end
160
+ end
161
+ end
162
+ end
data/lib/vellum_ai.rb CHANGED
@@ -21,6 +21,7 @@ require_relative "vellum_ai/prompts/client"
21
21
  require_relative "vellum_ai/sandboxes/client"
22
22
  require_relative "vellum_ai/test_suite_runs/client"
23
23
  require_relative "vellum_ai/test_suites/client"
24
+ require_relative "vellum_ai/uploaded_files/client"
24
25
  require_relative "vellum_ai/workflow_deployments/client"
25
26
  require_relative "vellum_ai/workflow_executions/client"
26
27
  require_relative "vellum_ai/workflow_sandboxes/client"
@@ -90,6 +91,8 @@ module Vellum
90
91
  attr_reader :test_suite_runs
91
92
  # @return [Vellum::TestSuitesClient]
92
93
  attr_reader :test_suites
94
+ # @return [Vellum::UploadedFilesClient]
95
+ attr_reader :uploaded_files
93
96
  # @return [Vellum::WorkflowDeploymentsClient]
94
97
  attr_reader :workflow_deployments
95
98
  # @return [Vellum::WorkflowExecutionsClient]
@@ -138,6 +141,7 @@ module Vellum
138
141
  @sandboxes = Vellum::SandboxesClient.new(request_client: @request_client)
139
142
  @test_suite_runs = Vellum::TestSuiteRunsClient.new(request_client: @request_client)
140
143
  @test_suites = Vellum::TestSuitesClient.new(request_client: @request_client)
144
+ @uploaded_files = Vellum::UploadedFilesClient.new(request_client: @request_client)
141
145
  @workflow_deployments = Vellum::WorkflowDeploymentsClient.new(request_client: @request_client)
142
146
  @workflow_executions = Vellum::WorkflowExecutionsClient.new(request_client: @request_client)
143
147
  @workflow_sandboxes = Vellum::WorkflowSandboxesClient.new(request_client: @request_client)
@@ -559,6 +563,8 @@ end
559
563
  attr_reader :test_suite_runs
560
564
  # @return [Vellum::AsyncTestSuitesClient]
561
565
  attr_reader :test_suites
566
+ # @return [Vellum::AsyncUploadedFilesClient]
567
+ attr_reader :uploaded_files
562
568
  # @return [Vellum::AsyncWorkflowDeploymentsClient]
563
569
  attr_reader :workflow_deployments
564
570
  # @return [Vellum::AsyncWorkflowExecutionsClient]
@@ -607,6 +613,7 @@ end
607
613
  @sandboxes = Vellum::AsyncSandboxesClient.new(request_client: @async_request_client)
608
614
  @test_suite_runs = Vellum::AsyncTestSuiteRunsClient.new(request_client: @async_request_client)
609
615
  @test_suites = Vellum::AsyncTestSuitesClient.new(request_client: @async_request_client)
616
+ @uploaded_files = Vellum::AsyncUploadedFilesClient.new(request_client: @async_request_client)
610
617
  @workflow_deployments = Vellum::AsyncWorkflowDeploymentsClient.new(request_client: @async_request_client)
611
618
  @workflow_executions = Vellum::AsyncWorkflowExecutionsClient.new(request_client: @async_request_client)
612
619
  @workflow_sandboxes = Vellum::AsyncWorkflowSandboxesClient.new(request_client: @async_request_client)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vellum_ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.4
4
+ version: 1.10.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vellum
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-11-13 00:00:00.000000000 Z
11
+ date: 2025-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -733,6 +733,7 @@ files:
733
733
  - lib/vellum_ai/types/unit_enum.rb
734
734
  - lib/vellum_ai/types/update_active_workspace_response.rb
735
735
  - lib/vellum_ai/types/upload_document_response.rb
736
+ - lib/vellum_ai/types/uploaded_file_read.rb
736
737
  - lib/vellum_ai/types/upsert_test_suite_test_case_request.rb
737
738
  - lib/vellum_ai/types/variable_prompt_block.rb
738
739
  - lib/vellum_ai/types/vellum_audio.rb
@@ -862,6 +863,7 @@ files:
862
863
  - lib/vellum_ai/types/workspace_display_config.rb
863
864
  - lib/vellum_ai/types/workspace_read.rb
864
865
  - lib/vellum_ai/types/workspace_secret_read.rb
866
+ - lib/vellum_ai/uploaded_files/client.rb
865
867
  - lib/vellum_ai/workflow_deployments/client.rb
866
868
  - lib/vellum_ai/workflow_deployments/types/list_workflow_release_tags_request_source.rb
867
869
  - lib/vellum_ai/workflow_deployments/types/workflow_deployments_list_request_status.rb