stackone_client 0.38.1 → 0.39.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.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/lib/stack_one/mcp.rb +18 -9
  3. data/lib/stack_one/models/operations/include.rb +1 -1
  4. data/lib/stack_one/models/operations/stackone_mcp_delete_request.rb +8 -4
  5. data/lib/stack_one/models/operations/stackone_mcp_delete_request.rbi +2 -0
  6. data/lib/stack_one/models/operations/stackone_mcp_get_request.rb +8 -4
  7. data/lib/stack_one/models/operations/stackone_mcp_get_request.rbi +2 -0
  8. data/lib/stack_one/models/operations/stackone_mcp_post_request.rb +10 -6
  9. data/lib/stack_one/models/operations/stackone_mcp_post_request.rbi +4 -2
  10. data/lib/stack_one/models/operations/stackone_proxy_request_response.rb +6 -2
  11. data/lib/stack_one/models/operations/stackone_proxy_request_response.rbi +2 -0
  12. data/lib/stack_one/models/shared/actionsrpcrequestdto.rb +2 -2
  13. data/lib/stack_one/models/shared/actionsrpcresponse.rb +2 -2
  14. data/lib/stack_one/models/shared/applicationattachment_value.rb +3 -0
  15. data/lib/stack_one/models/shared/attachment_value.rb +3 -0
  16. data/lib/stack_one/models/shared/hrisbankdetails.rb +2 -2
  17. data/lib/stack_one/models/shared/hrisbankdetails_2.rb +22 -0
  18. data/lib/stack_one/models/shared/hrisbankdetails_2.rbi +11 -0
  19. data/lib/stack_one/models/shared/{actionsrpcresponse_2.rb → is_primary.rb} +2 -2
  20. data/lib/stack_one/models/shared/{one.rbi → is_primary.rbi} +2 -2
  21. data/lib/stack_one/models/shared/proxyresponseapimodel.rb +45 -0
  22. data/lib/stack_one/models/shared/proxyresponseapimodel.rbi +19 -0
  23. data/lib/stack_one/models/shared/{one.rb → proxyresponseapimodel_data.rb} +2 -2
  24. data/lib/stack_one/models/shared/proxyresponseapimodel_data.rbi +11 -0
  25. data/lib/stack_one/models/shared/query.rb +37 -0
  26. data/lib/stack_one/models/shared/query.rbi +15 -0
  27. data/lib/stack_one/models/shared.rb +5 -2
  28. data/lib/stack_one/proxy.rb +21 -12
  29. data/lib/stack_one/sdkconfiguration.rb +3 -3
  30. metadata +12 -6
  31. data/lib/stack_one/models/shared/actionsrpcresponse_2.rbi +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a16a02518874831a80180f2121a11d1415e94552a8fe27223cbb881b276004e5
4
- data.tar.gz: 85aaa1fd44417e8edac5194a0394622304d3f2d1a1725350c45ab5ab0827fbff
3
+ metadata.gz: ddc7e76bd7dc74ea2683bd7379e628b4bd11fb26a8b9c3e5ad625413d7bfd1e5
4
+ data.tar.gz: e1e81b45097cbdcde82412e5960a7e989f2c3eb5c9cb369805ee26186b4a4ad7
5
5
  SHA512:
6
- metadata.gz: 18f3277de7685e023551e7e03efb80a5d46a65cdfc9bd42bc1da1309297aaa615c17fbeb59093fc4a9575a24b1f399d96205a7b0a9e74d0310902647555dc38e
7
- data.tar.gz: 1917f64ceb862964eb9b20868c3c3041a3002a178861f0c29b1dcaa34358bd27f4375d61d4b78ef82d6b5373bf3bc3c8eba55b9c6144ddd2d09b14d1507f0a2b
6
+ metadata.gz: 801aa8f8073144fa8022effa9e81f22ff43eab1d7365abf6ec8302af6436aeca67ee292bd4078e907e5a3f4352d53ae0fe2e833b845d47d7bd892db826abcee0
7
+ data.tar.gz: 9b27410e7cc3382d0a5a77442379a91467ebd311aacfb65657b4bf5184d3183c99a6e7d5007ea96cf314aec627301dabdcf0a1c77d304ad61f82bb5ac013ec2f
data/lib/stack_one/mcp.rb CHANGED
@@ -39,19 +39,21 @@ module StackOne
39
39
  end
40
40
 
41
41
 
42
- sig { params(security: Models::Operations::StackoneMcpDeleteSecurity, mcp_session_id: ::String, x_account_id: ::String, retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpDeleteResponse) }
43
- def mcp_delete(security:, mcp_session_id:, x_account_id:, retries: nil, timeout_ms: nil)
42
+ sig { params(security: Models::Operations::StackoneMcpDeleteSecurity, mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object), retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpDeleteResponse) }
43
+ def mcp_delete(security:, mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil, retries: nil, timeout_ms: nil)
44
44
  # mcp_delete - Delete MCP session
45
45
  # Close an existing MCP session for the provided session id
46
46
  request = Models::Operations::StackoneMcpDeleteRequest.new(
47
47
  mcp_session_id: mcp_session_id,
48
- x_account_id: x_account_id
48
+ x_account_id: x_account_id,
49
+ x_account_id_query_parameter: x_account_id_query_parameter
49
50
  )
50
51
  url, params = @sdk_configuration.get_server_details
51
52
  base_url = Utils.template_url(url, params)
52
53
  url = "#{base_url}/mcp"
53
54
  headers = Utils.get_headers(request)
54
55
  headers = T.cast(headers, T::Hash[String, String])
56
+ query_params = Utils.get_query_params(Models::Operations::StackoneMcpDeleteRequest, request, nil)
55
57
  headers['Accept'] = 'application/json'
56
58
  headers['user-agent'] = @sdk_configuration.user_agent
57
59
  retries ||= @sdk_configuration.retry_config
@@ -91,6 +93,7 @@ module StackOne
91
93
  http_response = T.must(connection).delete(url) do |req|
92
94
  req.headers.merge!(headers)
93
95
  req.options.timeout = timeout unless timeout.nil?
96
+ req.params = query_params
94
97
  Utils.configure_request_security(req, security)
95
98
 
96
99
  @sdk_configuration.hooks.before_request(
@@ -305,19 +308,21 @@ module StackOne
305
308
  end
306
309
 
307
310
 
308
- sig { params(security: Models::Operations::StackoneMcpGetSecurity, mcp_session_id: ::String, x_account_id: ::String, retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpGetResponse) }
309
- def mcp_get(security:, mcp_session_id:, x_account_id:, retries: nil, timeout_ms: nil)
311
+ sig { params(security: Models::Operations::StackoneMcpGetSecurity, mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object), retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpGetResponse) }
312
+ def mcp_get(security:, mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil, retries: nil, timeout_ms: nil)
310
313
  # mcp_get - Open MCP SSE stream
311
314
  # Open a dedicated Server-Sent Events stream for MCP notifications
312
315
  request = Models::Operations::StackoneMcpGetRequest.new(
313
316
  mcp_session_id: mcp_session_id,
314
- x_account_id: x_account_id
317
+ x_account_id: x_account_id,
318
+ x_account_id_query_parameter: x_account_id_query_parameter
315
319
  )
316
320
  url, params = @sdk_configuration.get_server_details
317
321
  base_url = Utils.template_url(url, params)
318
322
  url = "#{base_url}/mcp"
319
323
  headers = Utils.get_headers(request)
320
324
  headers = T.cast(headers, T::Hash[String, String])
325
+ query_params = Utils.get_query_params(Models::Operations::StackoneMcpGetRequest, request, nil)
321
326
  headers['Accept'] = 'application/json'
322
327
  headers['user-agent'] = @sdk_configuration.user_agent
323
328
  retries ||= @sdk_configuration.retry_config
@@ -357,6 +362,7 @@ module StackOne
357
362
  http_response = T.must(connection).get(url) do |req|
358
363
  req.headers.merge!(headers)
359
364
  req.options.timeout = timeout unless timeout.nil?
365
+ req.params = query_params
360
366
  Utils.configure_request_security(req, security)
361
367
 
362
368
  @sdk_configuration.hooks.before_request(
@@ -571,14 +577,15 @@ module StackOne
571
577
  end
572
578
 
573
579
 
574
- sig { params(security: Models::Operations::StackoneMcpPostSecurity, json_rpc_message_dto: Models::Shared::JsonRpcMessageDto, x_account_id: ::String, mcp_session_id: T.nilable(::String), retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpPostResponse) }
575
- def mcp_post(security:, json_rpc_message_dto:, x_account_id:, mcp_session_id: nil, retries: nil, timeout_ms: nil)
580
+ sig { params(security: Models::Operations::StackoneMcpPostSecurity, json_rpc_message_dto: Models::Shared::JsonRpcMessageDto, mcp_session_id: T.nilable(::String), x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object), retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpPostResponse) }
581
+ def mcp_post(security:, json_rpc_message_dto:, mcp_session_id: nil, x_account_id: nil, x_account_id_query_parameter: nil, retries: nil, timeout_ms: nil)
576
582
  # mcp_post - Send MCP JSON-RPC message
577
583
  # Send JSON-RPC request to the MCP server over HTTP streaming transport
578
584
  request = Models::Operations::StackoneMcpPostRequest.new(
579
585
  json_rpc_message_dto: json_rpc_message_dto,
586
+ mcp_session_id: mcp_session_id,
580
587
  x_account_id: x_account_id,
581
- mcp_session_id: mcp_session_id
588
+ x_account_id_query_parameter: x_account_id_query_parameter
582
589
  )
583
590
  url, params = @sdk_configuration.get_server_details
584
591
  base_url = Utils.template_url(url, params)
@@ -596,6 +603,7 @@ module StackOne
596
603
  else
597
604
  body = data
598
605
  end
606
+ query_params = Utils.get_query_params(Models::Operations::StackoneMcpPostRequest, request, nil)
599
607
  headers['Accept'] = 'application/json'
600
608
  headers['user-agent'] = @sdk_configuration.user_agent
601
609
  retries ||= @sdk_configuration.retry_config
@@ -636,6 +644,7 @@ module StackOne
636
644
  req.body = body
637
645
  req.headers.merge!(headers)
638
646
  req.options.timeout = timeout unless timeout.nil?
647
+ req.params = query_params
639
648
  Utils.configure_request_security(req, security)
640
649
 
641
650
  @sdk_configuration.hooks.before_request(
@@ -13,7 +13,7 @@ module StackOne
13
13
 
14
14
 
15
15
  enums do
16
- OPERATION_DETAILS = new('operation_details')
16
+ ACTION_DETAILS = new('action_details')
17
17
  end
18
18
  end
19
19
  end
@@ -15,13 +15,16 @@ module StackOne
15
15
 
16
16
  # Session id
17
17
  field :mcp_session_id, ::String, { 'header': { 'field_name': 'mcp-session-id', 'style': 'simple', 'explode': false } }
18
- # Account secure id for the target provider account
19
- field :x_account_id, ::String, { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } }
18
+ # Account secure id for the target provider account (optional if x-account-id query parameter is provided)
19
+ field :x_account_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } }
20
+ # Account secure id (alternative to x-account-id header)
21
+ field :x_account_id_query_parameter, Crystalline::Nilable.new(::Object), { 'query_param': { 'field_name': 'x-account-id', 'style': 'form', 'explode': true } }
20
22
 
21
- sig { params(mcp_session_id: ::String, x_account_id: ::String).void }
22
- def initialize(mcp_session_id:, x_account_id:)
23
+ sig { params(mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object)).void }
24
+ def initialize(mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil)
23
25
  @mcp_session_id = mcp_session_id
24
26
  @x_account_id = x_account_id
27
+ @x_account_id_query_parameter = x_account_id_query_parameter
25
28
  end
26
29
 
27
30
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -29,6 +32,7 @@ module StackOne
29
32
  return false unless other.is_a? self.class
30
33
  return false unless @mcp_session_id == other.mcp_session_id
31
34
  return false unless @x_account_id == other.x_account_id
35
+ return false unless @x_account_id_query_parameter == other.x_account_id_query_parameter
32
36
  true
33
37
  end
34
38
  end
@@ -12,4 +12,6 @@ class StackOne::Models::Operations::StackoneMcpDeleteRequest
12
12
  def mcp_session_id=(str_); end
13
13
  def x_account_id(); end
14
14
  def x_account_id=(str_); end
15
+ def x_account_id_query_parameter(); end
16
+ def x_account_id_query_parameter=(str_); end
15
17
  end
@@ -15,13 +15,16 @@ module StackOne
15
15
 
16
16
  # Session id
17
17
  field :mcp_session_id, ::String, { 'header': { 'field_name': 'mcp-session-id', 'style': 'simple', 'explode': false } }
18
- # Account secure id for the target provider account
19
- field :x_account_id, ::String, { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } }
18
+ # Account secure id for the target provider account (optional if x-account-id query parameter is provided)
19
+ field :x_account_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } }
20
+ # Account secure id (alternative to x-account-id header)
21
+ field :x_account_id_query_parameter, Crystalline::Nilable.new(::Object), { 'query_param': { 'field_name': 'x-account-id', 'style': 'form', 'explode': true } }
20
22
 
21
- sig { params(mcp_session_id: ::String, x_account_id: ::String).void }
22
- def initialize(mcp_session_id:, x_account_id:)
23
+ sig { params(mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object)).void }
24
+ def initialize(mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil)
23
25
  @mcp_session_id = mcp_session_id
24
26
  @x_account_id = x_account_id
27
+ @x_account_id_query_parameter = x_account_id_query_parameter
25
28
  end
26
29
 
27
30
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -29,6 +32,7 @@ module StackOne
29
32
  return false unless other.is_a? self.class
30
33
  return false unless @mcp_session_id == other.mcp_session_id
31
34
  return false unless @x_account_id == other.x_account_id
35
+ return false unless @x_account_id_query_parameter == other.x_account_id_query_parameter
32
36
  true
33
37
  end
34
38
  end
@@ -12,4 +12,6 @@ class StackOne::Models::Operations::StackoneMcpGetRequest
12
12
  def mcp_session_id=(str_); end
13
13
  def x_account_id(); end
14
14
  def x_account_id=(str_); end
15
+ def x_account_id_query_parameter(); end
16
+ def x_account_id_query_parameter=(str_); end
15
17
  end
@@ -15,24 +15,28 @@ module StackOne
15
15
 
16
16
  # JSON-RPC 2.0 message
17
17
  field :json_rpc_message_dto, Models::Shared::JsonRpcMessageDto, { 'request': { 'media_type': 'application/json' } }
18
- # Account secure id for the target provider account
19
- field :x_account_id, ::String, { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } }
20
18
  # Session id; omit for initialize, include for subsequent calls
21
19
  field :mcp_session_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'mcp-session-id', 'style': 'simple', 'explode': false } }
20
+ # Account secure id for the target provider account (optional if x-account-id query parameter is provided)
21
+ field :x_account_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } }
22
+ # Account secure id (alternative to x-account-id header)
23
+ field :x_account_id_query_parameter, Crystalline::Nilable.new(::Object), { 'query_param': { 'field_name': 'x-account-id', 'style': 'form', 'explode': true } }
22
24
 
23
- sig { params(json_rpc_message_dto: Models::Shared::JsonRpcMessageDto, x_account_id: ::String, mcp_session_id: T.nilable(::String)).void }
24
- def initialize(json_rpc_message_dto:, x_account_id:, mcp_session_id: nil)
25
+ sig { params(json_rpc_message_dto: Models::Shared::JsonRpcMessageDto, mcp_session_id: T.nilable(::String), x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object)).void }
26
+ def initialize(json_rpc_message_dto:, mcp_session_id: nil, x_account_id: nil, x_account_id_query_parameter: nil)
25
27
  @json_rpc_message_dto = json_rpc_message_dto
26
- @x_account_id = x_account_id
27
28
  @mcp_session_id = mcp_session_id
29
+ @x_account_id = x_account_id
30
+ @x_account_id_query_parameter = x_account_id_query_parameter
28
31
  end
29
32
 
30
33
  sig { params(other: T.untyped).returns(T::Boolean) }
31
34
  def ==(other)
32
35
  return false unless other.is_a? self.class
33
36
  return false unless @json_rpc_message_dto == other.json_rpc_message_dto
34
- return false unless @x_account_id == other.x_account_id
35
37
  return false unless @mcp_session_id == other.mcp_session_id
38
+ return false unless @x_account_id == other.x_account_id
39
+ return false unless @x_account_id_query_parameter == other.x_account_id_query_parameter
36
40
  true
37
41
  end
38
42
  end
@@ -10,8 +10,10 @@ end
10
10
  class StackOne::Models::Operations::StackoneMcpPostRequest
11
11
  def json_rpc_message_dto(); end
12
12
  def json_rpc_message_dto=(str_); end
13
- def x_account_id(); end
14
- def x_account_id=(str_); end
15
13
  def mcp_session_id(); end
16
14
  def mcp_session_id=(str_); end
15
+ def x_account_id(); end
16
+ def x_account_id=(str_); end
17
+ def x_account_id_query_parameter(); end
18
+ def x_account_id_query_parameter=(str_); end
17
19
  end
@@ -21,13 +21,16 @@ module StackOne
21
21
  field :status_code, ::Integer
22
22
  # Raw HTTP response; suitable for custom response parsing
23
23
  field :raw_response, ::Faraday::Response
24
+ # The proxy request was successful.
25
+ field :proxy_response_api_model, Crystalline::Nilable.new(Models::Shared::ProxyResponseApiModel)
24
26
 
25
- sig { params(content_type: ::String, headers: T::Hash[Symbol, T::Array[::String]], status_code: ::Integer, raw_response: ::Faraday::Response).void }
26
- def initialize(content_type:, headers:, status_code:, raw_response:)
27
+ sig { params(content_type: ::String, headers: T::Hash[Symbol, T::Array[::String]], status_code: ::Integer, raw_response: ::Faraday::Response, proxy_response_api_model: T.nilable(Models::Shared::ProxyResponseApiModel)).void }
28
+ def initialize(content_type:, headers:, status_code:, raw_response:, proxy_response_api_model: nil)
27
29
  @content_type = content_type
28
30
  @headers = headers
29
31
  @status_code = status_code
30
32
  @raw_response = raw_response
33
+ @proxy_response_api_model = proxy_response_api_model
31
34
  end
32
35
 
33
36
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -37,6 +40,7 @@ module StackOne
37
40
  return false unless @headers == other.headers
38
41
  return false unless @status_code == other.status_code
39
42
  return false unless @raw_response == other.raw_response
43
+ return false unless @proxy_response_api_model == other.proxy_response_api_model
40
44
  true
41
45
  end
42
46
  end
@@ -16,4 +16,6 @@ class StackOne::Models::Operations::StackoneProxyRequestResponse
16
16
  def status_code=(str_); end
17
17
  def raw_response(); end
18
18
  def raw_response=(str_); end
19
+ def proxy_response_api_model(); end
20
+ def proxy_response_api_model=(str_); end
19
21
  end
@@ -22,9 +22,9 @@ module StackOne
22
22
  # Path parameters for the action
23
23
  field :path, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('path') } }
24
24
  # Query parameters for the action
25
- field :query, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('query') } }
25
+ field :query, Crystalline::Nilable.new(Models::Shared::Query), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('query') } }
26
26
 
27
- sig { params(action: ::String, body: T.nilable(T::Hash[Symbol, ::Object]), headers: T.nilable(T::Hash[Symbol, ::Object]), path: T.nilable(T::Hash[Symbol, ::Object]), query: T.nilable(T::Hash[Symbol, ::Object])).void }
27
+ sig { params(action: ::String, body: T.nilable(T::Hash[Symbol, ::Object]), headers: T.nilable(T::Hash[Symbol, ::Object]), path: T.nilable(T::Hash[Symbol, ::Object]), query: T.nilable(Models::Shared::Query)).void }
28
28
  def initialize(action:, body: nil, headers: nil, path: nil, query: nil)
29
29
  @action = action
30
30
  @body = body
@@ -14,11 +14,11 @@ module StackOne
14
14
  include Crystalline::MetadataFields
15
15
 
16
16
  # The response data from the action RPC call
17
- field :data, Crystalline::Nilable.new(Crystalline::Union.new(Models::Shared::One, Crystalline::Array.new(Models::Shared::ActionsRpcResponse2))), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('data') } }
17
+ field :data, Crystalline::Nilable.new(Crystalline::Union.new(Crystalline::Hash.new(Symbol, ::Object), Crystalline::Array.new(Crystalline::Hash.new(Symbol, ::Object)))), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('data') } }
18
18
  # Cursor for fetching the next page of results
19
19
  field :next_, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('next') } }
20
20
 
21
- sig { params(data: T.nilable(T.any(Models::Shared::One, T::Array[Models::Shared::ActionsRpcResponse2])), next_: T.nilable(::String)).void }
21
+ sig { params(data: T.nilable(T.any(T::Hash[Symbol, ::Object], T::Array[T::Hash[Symbol, ::Object]])), next_: T.nilable(::String)).void }
22
22
  def initialize(data: nil, next_: nil)
23
23
  @data = data
24
24
  @next_ = next_
@@ -14,6 +14,9 @@ module StackOne
14
14
 
15
15
  enums do
16
16
  TEXT = new('text')
17
+ PDF = new('pdf')
18
+ VIDEO = new('video')
19
+ OTHER = new('other')
17
20
  UNMAPPED_VALUE = new('unmapped_value')
18
21
  end
19
22
  end
@@ -14,6 +14,9 @@ module StackOne
14
14
 
15
15
  enums do
16
16
  TEXT = new('text')
17
+ PDF = new('pdf')
18
+ VIDEO = new('video')
19
+ OTHER = new('other')
17
20
  UNMAPPED_VALUE = new('unmapped_value')
18
21
  end
19
22
  end
@@ -30,7 +30,7 @@ module StackOne
30
30
  # Unique identifier
31
31
  field :id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('id') } }
32
32
  # Whether this is the primary bank account
33
- field :is_primary, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('is_primary') } }
33
+ field :is_primary, Crystalline::Nilable.new(Crystalline::Union.new(Crystalline::Boolean.new, Models::Shared::HRISBankDetails2)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('is_primary') } }
34
34
  # Local account number (used when IBAN is not available)
35
35
  field :local_account_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('local_account_number') } }
36
36
  # Provider's unique identifier
@@ -38,7 +38,7 @@ module StackOne
38
38
  # SWIFT/BIC code for international transfers
39
39
  field :swift_bic, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('swift_bic') } }
40
40
 
41
- sig { params(account_name: T.nilable(::String), account_type: T.nilable(Models::Shared::AccountType), bank_name: T.nilable(::String), clearing_codes: T.nilable(T::Array[Models::Shared::ClearingCode]), country_code: T.nilable(Models::Shared::CountryCode), currency_code: T.nilable(Models::Shared::HRISBankDetailsCurrencyCode), iban: T.nilable(::String), id: T.nilable(::String), is_primary: T.nilable(T::Boolean), local_account_number: T.nilable(::String), remote_id: T.nilable(::String), swift_bic: T.nilable(::String)).void }
41
+ sig { params(account_name: T.nilable(::String), account_type: T.nilable(Models::Shared::AccountType), bank_name: T.nilable(::String), clearing_codes: T.nilable(T::Array[Models::Shared::ClearingCode]), country_code: T.nilable(Models::Shared::CountryCode), currency_code: T.nilable(Models::Shared::HRISBankDetailsCurrencyCode), iban: T.nilable(::String), id: T.nilable(::String), is_primary: T.nilable(T.any(T::Boolean, Models::Shared::HRISBankDetails2)), local_account_number: T.nilable(::String), remote_id: T.nilable(::String), swift_bic: T.nilable(::String)).void }
42
42
  def initialize(account_name: nil, account_type: nil, bank_name: nil, clearing_codes: nil, country_code: nil, currency_code: nil, iban: nil, id: nil, is_primary: nil, local_account_number: nil, remote_id: nil, swift_bic: nil)
43
43
  @account_name = account_name
44
44
  @account_type = account_type
@@ -0,0 +1,22 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module StackOne
8
+ module Models
9
+ module Shared
10
+
11
+
12
+ class HRISBankDetails2 < T::Enum
13
+
14
+
15
+ enums do
16
+ TRUE = new('true')
17
+ FALSE = new('false')
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class StackOne::Models::Shared::HRISBankDetails2
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class StackOne::Models::Shared::HRISBankDetails2
11
+ end
@@ -8,8 +8,8 @@ module StackOne
8
8
  module Models
9
9
  module Shared
10
10
 
11
-
12
- class ActionsRpcResponse2
11
+ # Whether this is the primary bank account
12
+ class IsPrimary
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
@@ -2,10 +2,10 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class StackOne::Models::Shared::One
5
+ class StackOne::Models::Shared::IsPrimary
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class StackOne::Models::Shared::One
10
+ class StackOne::Models::Shared::IsPrimary
11
11
  end
@@ -0,0 +1,45 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module StackOne
8
+ module Models
9
+ module Shared
10
+
11
+
12
+ class ProxyResponseApiModel
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The HTTP status code returned by the provider
17
+ field :status, ::Float, { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('status'), required: true } }
18
+ # The response data from the provider. Can be an object, array, or primitive value.
19
+ field :data, Crystalline::Nilable.new(Crystalline::Union.new(Crystalline::Hash.new(Symbol, ::Object), Crystalline::Array.new(Crystalline::Hash.new(Symbol, ::Object)), ::String, ::Float, Crystalline::Boolean.new)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('data') } }
20
+ # The headers returned by the provider
21
+ field :headers, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('headers') } }
22
+ # Provider-specific errors if any occurred
23
+ field :provider_errors, Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::ProviderErrorApiModel)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('provider_errors') } }
24
+
25
+ sig { params(status: ::Float, data: T.nilable(T.any(T::Hash[Symbol, ::Object], T::Array[T::Hash[Symbol, ::Object]], ::String, ::Float, T::Boolean)), headers: T.nilable(T::Hash[Symbol, ::Object]), provider_errors: T.nilable(T::Array[Models::Shared::ProviderErrorApiModel])).void }
26
+ def initialize(status:, data: nil, headers: nil, provider_errors: nil)
27
+ @status = status
28
+ @data = data
29
+ @headers = headers
30
+ @provider_errors = provider_errors
31
+ end
32
+
33
+ sig { params(other: T.untyped).returns(T::Boolean) }
34
+ def ==(other)
35
+ return false unless other.is_a? self.class
36
+ return false unless @status == other.status
37
+ return false unless @data == other.data
38
+ return false unless @headers == other.headers
39
+ return false unless @provider_errors == other.provider_errors
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class StackOne::Models::Shared::ProxyResponseApiModel
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class StackOne::Models::Shared::ProxyResponseApiModel
11
+ def status(); end
12
+ def status=(str_); end
13
+ def data(); end
14
+ def data=(str_); end
15
+ def headers(); end
16
+ def headers=(str_); end
17
+ def provider_errors(); end
18
+ def provider_errors=(str_); end
19
+ end
@@ -8,8 +8,8 @@ module StackOne
8
8
  module Models
9
9
  module Shared
10
10
 
11
-
12
- class One
11
+ # The response data from the provider. Can be an object, array, or primitive value.
12
+ class ProxyResponseApiModelData
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class StackOne::Models::Shared::ProxyResponseApiModelData
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class StackOne::Models::Shared::ProxyResponseApiModelData
11
+ end
@@ -0,0 +1,37 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module StackOne
8
+ module Models
9
+ module Shared
10
+
11
+ # Query parameters for the action
12
+ class Query
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :additional_properties, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('additional_properties') } }
18
+ # Enable debug mode for the action execution
19
+ field :debug, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('debug') } }
20
+
21
+ sig { params(additional_properties: T.nilable(T::Hash[Symbol, ::Object]), debug: T.nilable(T::Boolean)).void }
22
+ def initialize(additional_properties: nil, debug: nil)
23
+ @additional_properties = additional_properties
24
+ @debug = debug
25
+ end
26
+
27
+ sig { params(other: T.untyped).returns(T::Boolean) }
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @additional_properties == other.additional_properties
31
+ return false unless @debug == other.debug
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class StackOne::Models::Shared::Query
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class StackOne::Models::Shared::Query
11
+ def additional_properties(); end
12
+ def additional_properties=(str_); end
13
+ def debug(); end
14
+ def debug=(str_); end
15
+ end
@@ -6,7 +6,6 @@
6
6
  module StackOne
7
7
  module Models
8
8
  module Shared
9
- autoload :One, 'stack_one/models/shared/one.rb'
10
9
  autoload :Two, 'stack_one/models/shared/two.rb'
11
10
  autoload :Four, 'stack_one/models/shared/four.rb'
12
11
  autoload :ATSLocation, 'stack_one/models/shared/atslocation.rb'
@@ -74,7 +73,6 @@ module StackOne
74
73
  autoload :ActionsMetaPaginated, 'stack_one/models/shared/actionsmetapaginated.rb'
75
74
  autoload :ActionsRpcRequestDto, 'stack_one/models/shared/actionsrpcrequestdto.rb'
76
75
  autoload :ActionsRpcResponse, 'stack_one/models/shared/actionsrpcresponse.rb'
77
- autoload :ActionsRpcResponse2, 'stack_one/models/shared/actionsrpcresponse_2.rb'
78
76
  autoload :ActionsRpcResponseData, 'stack_one/models/shared/actionsrpcresponse_data.rb'
79
77
  autoload :AdditionalData, 'stack_one/models/shared/additionaldata.rb'
80
78
  autoload :Answer, 'stack_one/models/shared/answer.rb'
@@ -601,6 +599,7 @@ module StackOne
601
599
  autoload :FoldersHasChildren, 'stack_one/models/shared/folders_has_children.rb'
602
600
  autoload :FoldersHasContent, 'stack_one/models/shared/folders_has_content.rb'
603
601
  autoload :HRISBankDetails, 'stack_one/models/shared/hrisbankdetails.rb'
602
+ autoload :HRISBankDetails2, 'stack_one/models/shared/hrisbankdetails_2.rb'
604
603
  autoload :HRISBankDetails4, 'stack_one/models/shared/hrisbankdetails_4.rb'
605
604
  autoload :HRISBankDetailsSchemas4, 'stack_one/models/shared/hrisbankdetails_schemas_4.rb'
606
605
  autoload :HRISBankDetailsSchemasCurrencyCode4, 'stack_one/models/shared/hrisbankdetails_schemas_currency_code_4.rb'
@@ -1266,6 +1265,8 @@ module StackOne
1266
1265
  autoload :ProviderErrorApiModelHeaders, 'stack_one/models/shared/providererrorapimodel_headers.rb'
1267
1266
  autoload :ProviderErrorApiModelRaw, 'stack_one/models/shared/providererrorapimodel_raw.rb'
1268
1267
  autoload :ProxyRequestBody, 'stack_one/models/shared/proxyrequestbody.rb'
1268
+ autoload :ProxyResponseApiModel, 'stack_one/models/shared/proxyresponseapimodel.rb'
1269
+ autoload :ProxyResponseApiModelData, 'stack_one/models/shared/proxyresponseapimodel_data.rb'
1269
1270
  autoload :PushMessageContentsSchemas, 'stack_one/models/shared/pushmessagecontents_schemas.rb'
1270
1271
  autoload :PushMessages, 'stack_one/models/shared/pushmessages.rb'
1271
1272
  autoload :PushMessages4, 'stack_one/models/shared/pushmessages_4.rb'
@@ -1639,6 +1640,7 @@ module StackOne
1639
1640
  autoload :InterviewStatus, 'stack_one/models/shared/interview_status.rb'
1640
1641
  autoload :IsBotUser, 'stack_one/models/shared/is_bot_user.rb'
1641
1642
  autoload :IsPaid, 'stack_one/models/shared/is_paid.rb'
1643
+ autoload :IsPrimary, 'stack_one/models/shared/is_primary.rb'
1642
1644
  autoload :IsRoot, 'stack_one/models/shared/is_root.rb'
1643
1645
  autoload :IsUnlimited, 'stack_one/models/shared/is_unlimited.rb'
1644
1646
  autoload :IssuedBy, 'stack_one/models/shared/issued_by.rb'
@@ -1672,6 +1674,7 @@ module StackOne
1672
1674
  autoload :PreferredLanguage, 'stack_one/models/shared/preferred_language.rb'
1673
1675
  autoload :Priority, 'stack_one/models/shared/priority.rb'
1674
1676
  autoload :Private, 'stack_one/models/shared/private.rb'
1677
+ autoload :Query, 'stack_one/models/shared/query.rb'
1675
1678
  autoload :Raw, 'stack_one/models/shared/raw.rb'
1676
1679
  autoload :RejectedReasonType, 'stack_one/models/shared/rejected_reason_type.rb'
1677
1680
  autoload :Request, 'stack_one/models/shared/request.rb'
@@ -141,18 +141,27 @@ module StackOne
141
141
 
142
142
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
143
143
  if Utils.match_status_code(http_response.status, ['200', '201', '202', '204'])
144
- http_response = @sdk_configuration.hooks.after_success(
145
- hook_ctx: SDKHooks::AfterSuccessHookContext.new(
146
- hook_ctx: hook_ctx
147
- ),
148
- response: http_response
149
- )
150
- return Models::Operations::StackoneProxyRequestResponse.new(
151
- status_code: http_response.status,
152
- content_type: content_type,
153
- raw_response: http_response,
154
- headers: {}
155
- )
144
+ if Utils.match_content_type(content_type, 'application/json')
145
+ http_response = @sdk_configuration.hooks.after_success(
146
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
147
+ hook_ctx: hook_ctx
148
+ ),
149
+ response: http_response
150
+ )
151
+ response_data = http_response.env.response_body
152
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::ProxyResponseApiModel)
153
+ response = Models::Operations::StackoneProxyRequestResponse.new(
154
+ status_code: http_response.status,
155
+ content_type: content_type,
156
+ raw_response: http_response,
157
+ headers: {},
158
+ proxy_response_api_model: T.unsafe(obj)
159
+ )
160
+
161
+ return response
162
+ else
163
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
164
+ end
156
165
  elsif Utils.match_status_code(http_response.status, ['400'])
157
166
  if Utils.match_content_type(content_type, 'application/json')
158
167
  http_response = @sdk_configuration.hooks.after_success(
@@ -89,9 +89,9 @@ module StackOne
89
89
  end
90
90
  @language = 'ruby'
91
91
  @openapi_doc_version = '1.0.0'
92
- @sdk_version = '0.38.1'
93
- @gen_version = '2.730.5'
94
- @user_agent = 'speakeasy-sdk/ruby 0.38.1 2.730.5 1.0.0 stackone_client'
92
+ @sdk_version = '0.39.0'
93
+ @gen_version = '2.745.2'
94
+ @user_agent = 'speakeasy-sdk/ruby 0.39.0 2.745.2 1.0.0 stackone_client'
95
95
  end
96
96
 
97
97
  sig { returns([String, T::Hash[Symbol, String]]) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackone_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.38.1
4
+ version: 0.39.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - StackOne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-24 00:00:00.000000000 Z
11
+ date: 2025-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -1813,8 +1813,6 @@ files:
1813
1813
  - lib/stack_one/models/shared/actionsrpcrequestdto.rbi
1814
1814
  - lib/stack_one/models/shared/actionsrpcresponse.rb
1815
1815
  - lib/stack_one/models/shared/actionsrpcresponse.rbi
1816
- - lib/stack_one/models/shared/actionsrpcresponse_2.rb
1817
- - lib/stack_one/models/shared/actionsrpcresponse_2.rbi
1818
1816
  - lib/stack_one/models/shared/actionsrpcresponse_data.rb
1819
1817
  - lib/stack_one/models/shared/actionsrpcresponse_data.rbi
1820
1818
  - lib/stack_one/models/shared/active.rb
@@ -2961,6 +2959,8 @@ files:
2961
2959
  - lib/stack_one/models/shared/home_location.rbi
2962
2960
  - lib/stack_one/models/shared/hrisbankdetails.rb
2963
2961
  - lib/stack_one/models/shared/hrisbankdetails.rbi
2962
+ - lib/stack_one/models/shared/hrisbankdetails_2.rb
2963
+ - lib/stack_one/models/shared/hrisbankdetails_2.rbi
2964
2964
  - lib/stack_one/models/shared/hrisbankdetails_4.rb
2965
2965
  - lib/stack_one/models/shared/hrisbankdetails_4.rbi
2966
2966
  - lib/stack_one/models/shared/hrisbankdetails_currency_code.rb
@@ -3907,6 +3907,8 @@ files:
3907
3907
  - lib/stack_one/models/shared/is_bot_user.rbi
3908
3908
  - lib/stack_one/models/shared/is_paid.rb
3909
3909
  - lib/stack_one/models/shared/is_paid.rbi
3910
+ - lib/stack_one/models/shared/is_primary.rb
3911
+ - lib/stack_one/models/shared/is_primary.rbi
3910
3912
  - lib/stack_one/models/shared/is_root.rb
3911
3913
  - lib/stack_one/models/shared/is_root.rbi
3912
3914
  - lib/stack_one/models/shared/is_unlimited.rb
@@ -4305,8 +4307,6 @@ files:
4305
4307
  - lib/stack_one/models/shared/offerspaginated.rbi
4306
4308
  - lib/stack_one/models/shared/offersresult.rb
4307
4309
  - lib/stack_one/models/shared/offersresult.rbi
4308
- - lib/stack_one/models/shared/one.rb
4309
- - lib/stack_one/models/shared/one.rbi
4310
4310
  - lib/stack_one/models/shared/organization.rb
4311
4311
  - lib/stack_one/models/shared/organization.rbi
4312
4312
  - lib/stack_one/models/shared/overall_recommendation.rb
@@ -4371,6 +4371,10 @@ files:
4371
4371
  - lib/stack_one/models/shared/providererrorapimodel_raw.rbi
4372
4372
  - lib/stack_one/models/shared/proxyrequestbody.rb
4373
4373
  - lib/stack_one/models/shared/proxyrequestbody.rbi
4374
+ - lib/stack_one/models/shared/proxyresponseapimodel.rb
4375
+ - lib/stack_one/models/shared/proxyresponseapimodel.rbi
4376
+ - lib/stack_one/models/shared/proxyresponseapimodel_data.rb
4377
+ - lib/stack_one/models/shared/proxyresponseapimodel_data.rbi
4374
4378
  - lib/stack_one/models/shared/pushmessagecontents_schemas.rb
4375
4379
  - lib/stack_one/models/shared/pushmessagecontents_schemas.rbi
4376
4380
  - lib/stack_one/models/shared/pushmessages.rb
@@ -4391,6 +4395,8 @@ files:
4391
4395
  - lib/stack_one/models/shared/pushtemplateresult.rbi
4392
4396
  - lib/stack_one/models/shared/pushtemplatespaginated.rb
4393
4397
  - lib/stack_one/models/shared/pushtemplatespaginated.rbi
4398
+ - lib/stack_one/models/shared/query.rb
4399
+ - lib/stack_one/models/shared/query.rbi
4394
4400
  - lib/stack_one/models/shared/question.rb
4395
4401
  - lib/stack_one/models/shared/question.rbi
4396
4402
  - lib/stack_one/models/shared/question_2.rb
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class StackOne::Models::Shared::ActionsRpcResponse2
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class StackOne::Models::Shared::ActionsRpcResponse2
11
- end