diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 7e56fe29..e2f2c074 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.16" + ".": "0.1.0-alpha.17" } \ No newline at end of file diff --git a/.rubocop.yml b/.rubocop.yml index b50fcd67..7734b33f 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,7 +8,7 @@ AllCops: - "bin/*" NewCops: enable SuggestExtensions: false - TargetRubyVersion: 3.1.0 + TargetRubyVersion: 3.2.0 # Whether MFA is required or not should be left to the token configuration. Gemspec/RequireMFA: @@ -112,6 +112,8 @@ Metrics/AbcSize: Metrics/BlockLength: AllowedPatterns: - assert_pattern + - type_alias + - define_sorbet_constant! Exclude: - "**/*.rbi" @@ -182,6 +184,9 @@ Style/ClassAndModuleChildren: Exclude: - "test/**/*" +Style/CommentAnnotation: + Enabled: false + # We should go back and add these docs, but ignore for now. Style/Documentation: Enabled: false diff --git a/.stats.yml b/.stats.yml index ac3940f3..c72261be 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 46 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-f09e5f2c555d7ee764478b7bc73e92cd21f403d6ec189be14574c8367bc131ce.yml -openapi_spec_hash: bd0a8e001f14132c105992d40149909a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-5b00a0bc705b1d5bfcb5ea79c7af544766d51ec12ccc4721825664ab397789d8.yml +openapi_spec_hash: 34891659cff31395ba7683a8153b1db5 config_hash: 53778a0b839c4f6ad34fbba051f5e8a6 diff --git a/CHANGELOG.md b/CHANGELOG.md index c757c7db..71ef7171 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## 0.1.0-alpha.17 (2025-05-16) + +Full Changelog: [v0.1.0-alpha.16...v0.1.0-alpha.17](https://github.com/Finch-API/finch-api-ruby/compare/v0.1.0-alpha.16...v0.1.0-alpha.17) + +### Features + +* **api:** api update ([2cd7677](https://github.com/Finch-API/finch-api-ruby/commit/2cd76772fe2768477bb236372c94887a7f1f7022)) +* **api:** api update ([db14723](https://github.com/Finch-API/finch-api-ruby/commit/db147236a70addae46834af9b8339400480a7600)) +* **api:** api update ([1f0346a](https://github.com/Finch-API/finch-api-ruby/commit/1f0346afcca537802e8287a46bc2f759e909975f)) +* bump default connection pool size limit to minimum of 99 ([2e0e107](https://github.com/Finch-API/finch-api-ruby/commit/2e0e1078e5a29ffb965346cd6f620743f0e4b6db)) +* expose base client options as read only attributes ([289fb00](https://github.com/Finch-API/finch-api-ruby/commit/289fb00361821da703dbc9aab1db9ad8435427e3)) +* expose recursive `#to_h` conversion ([03335a6](https://github.com/Finch-API/finch-api-ruby/commit/03335a6a67ce9176fecdafc79c98ddeb22210803)) +* support sorbet aliases at the runtime ([beb18c8](https://github.com/Finch-API/finch-api-ruby/commit/beb18c85b5edba3d056d5d480f9fc4d19ea751a4)) + + +### Bug Fixes + +* **internal:** update gemspec name ([70eb621](https://github.com/Finch-API/finch-api-ruby/commit/70eb6214cf238d92f6b2f23969f252a5e4ce3941)) + + +### Chores + +* fix misc linting / minor issues ([9c271ed](https://github.com/Finch-API/finch-api-ruby/commit/9c271edf9374973a70e98774d1f55959181ed6be)) +* **internal:** version bump ([f365e16](https://github.com/Finch-API/finch-api-ruby/commit/f365e164984a15deeb545bc07ab8a85373d840ea)) + + +### Documentation + +* rewrite much of README.md for readability ([d5fac03](https://github.com/Finch-API/finch-api-ruby/commit/d5fac031d01715a45d40fab30e856e42c601a9a9)) + ## 0.1.0-alpha.16 (2025-05-08) Full Changelog: [v0.1.0-alpha.15...v0.1.0-alpha.16](https://github.com/Finch-API/finch-api-ruby/compare/v0.1.0-alpha.15...v0.1.0-alpha.16) diff --git a/Gemfile.lock b/Gemfile.lock index f5af4e69..cfeb6cb0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - finch-api (0.1.0.pre.alpha.15) + finch-api (0.1.0.pre.alpha.16) connection_pool GEM diff --git a/README.md b/README.md index e2e7f25f..ddbe24bd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Finch Ruby API library -The Finch Ruby library provides convenient access to the Finch REST API from any Ruby 3.2.0+ application. +The Finch Ruby library provides convenient access to the Finch REST API from any Ruby 3.2.0+ application. It ships with comprehensive types & docstrings in Yard, RBS, and RBI – [see below](https://github.com/Finch-API/finch-api-ruby#Sorbet) for usage with Sorbet. The standard library's `net/http` is used as the HTTP transport, with connection pooling via the `connection_pool` gem. It is generated with [Stainless](https://www.stainless.com/). @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "finch-api", "~> 0.1.0.pre.alpha.16" +gem "finch-api", "~> 0.1.0.pre.alpha.17" ``` @@ -35,16 +35,6 @@ page = finch.hris.directory.list puts(page.id) ``` -## Sorbet - -This library is written with [Sorbet type definitions](https://sorbet.org/docs/rbi). However, there is no runtime dependency on the `sorbet-runtime`. - -When using sorbet, it is recommended to use model classes as below. This provides stronger type checking and tooling integration. - -```ruby -finch.hris.directory.list -``` - ### Pagination List methods in the Finch API are paginated. @@ -64,15 +54,30 @@ page.auto_paging_each do |directory| end ``` -### Errors +Alternatively, you can use the `#next_page?` and `#next_page` methods for more granular control working with pages. + +```ruby +if page.next_page? + new_page = page.next_page + puts(new_page.individuals[0].id) +end +``` + +### Handling errors When the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), a subclass of `FinchAPI::Errors::APIError` will be thrown: ```ruby begin company = finch.hris.company.retrieve -rescue FinchAPI::Errors::APIError => e - puts(e.status) # 400 +rescue FinchAPI::Errors::APIConnectionError => e + puts("The server could not be reached") + puts(e.cause) # an underlying Exception, likely raised within `net/http` +rescue FinchAPI::Errors::RateLimitError => e + puts("A 429 status code was received; we should back off a bit.") +rescue FinchAPI::Errors::APIStatusError => e + puts("Another non-200-range status code was received") + puts(e.status) end ``` @@ -112,11 +117,7 @@ finch.hris.directory.list(request_options: {max_retries: 5}) ### Timeouts -By default, requests will time out after 60 seconds. - -Timeouts are applied separately to the initial connection and the overall request time, so in some cases a request could wait 2\*timeout seconds before it fails. - -You can use the `timeout` option to configure or disable this: +By default, requests will time out after 60 seconds. You can use the timeout option to configure or disable this: ```ruby # Configure the default for all requests: @@ -128,39 +129,52 @@ finch = FinchAPI::Client.new( finch.hris.directory.list(request_options: {timeout: 5}) ``` -## Model DSL +On timeout, `FinchAPI::Errors::APITimeoutError` is raised. + +Note that requests that time out are retried by default. -This library uses a simple DSL to represent request parameters and response shapes in `lib/finch_api/models`. +## Advanced concepts -With the right [editor plugins](https://shopify.github.io/ruby-lsp), you can ctrl-click on elements of the DSL to navigate around and explore the library. +### BaseModel -In all places where a `BaseModel` type is specified, vanilla Ruby `Hash` can also be used. For example, the following are interchangeable as arguments: +All parameter and response objects inherit from `FinchAPI::Internal::Type::BaseModel`, which provides several conveniences, including: -```ruby -# This has tooling readability, for auto-completion, static analysis, and goto definition with supported language services -params = FinchAPI::Models::HRIS::DirectoryListParams.new +1. All fields, including unknown ones, are accessible with `obj[:prop]` syntax, and can be destructured with `obj => {prop: prop}` or pattern-matching syntax. -# This also works -params = { +2. Structural equivalence for equality; if two API calls return the same values, comparing the responses with == will return true. -} -``` +3. Both instances and the classes themselves can be pretty-printed. -## Editor support +4. Helpers such as `#to_h`, `#deep_to_h`, `#to_json`, and `#to_yaml`. -A combination of [Shopify LSP](https://shopify.github.io/ruby-lsp) and [Solargraph](https://solargraph.org/) is recommended for non-[Sorbet](https://sorbet.org) users. The former is especially good at go to definition, while the latter has much better auto-completion support. +### Making custom or undocumented requests -## Advanced concepts +#### Undocumented properties + +You can send undocumented parameters to any endpoint, and read undocumented response properties, like so: -### Making custom/undocumented requests +Note: the `extra_` parameters of the same name overrides the documented parameters. + +```ruby +page = + finch.hris.directory.list( + request_options: { + extra_query: {my_query_parameter: value}, + extra_body: {my_body_parameter: value}, + extra_headers: {"my-header": value} + } + ) + +puts(page[:my_undocumented_property]) +``` #### Undocumented request params -If you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` under the `request_options:` parameter when making a requests as seen in examples above. +If you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` under the `request_options:` parameter when making a request as seen in examples above. #### Undocumented endpoints -To make requests to undocumented endpoints, you can make requests using `client.request`. Options on the client will be respected (such as retries) when making this request. +To make requests to undocumented endpoints while retaining the benefit of auth, retries, and so on, you can make requests using `client.request`, like so: ```ruby response = client.request( @@ -168,42 +182,67 @@ response = client.request( path: '/undocumented/endpoint', query: {"dog": "woof"}, headers: {"useful-header": "interesting-value"}, - body: {"he": "llo"}, + body: {"hello": "world"} ) ``` ### Concurrency & connection pooling -The `FinchAPI::Client` instances are thread-safe, and should be re-used across multiple threads. By default, each `Client` have their own HTTP connection pool, with a maximum number of connections equal to thread count. +The `FinchAPI::Client` instances are threadsafe, but only are fork-safe when there are no in-flight HTTP requests. -When the maximum number of connections has been checked out from the connection pool, the `Client` will wait for an in use connection to become available. The queue time for this mechanism is accounted for by the per-request timeout. +Each instance of `FinchAPI::Client` has its own HTTP connection pool with a default size of 99. As such, we recommend instantiating the client once per application in most settings. + +When all available connections from the pool are checked out, requests wait for a new connection to become available, with queue time counting towards the request timeout. Unless otherwise specified, other classes in the SDK do not have locks protecting their underlying data structure. -Currently, `FinchAPI::Client` instances are only fork-safe if there are no in-flight HTTP requests. +## Sorbet -### Sorbet +This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitions, and has no dependency on sorbet-runtime. -#### Enums +You can provide typesafe request parameters like so: -Sorbet's typed enums require sub-classing of the [`T::Enum` class](https://sorbet.org/docs/tenum) from the `sorbet-runtime` gem. +```ruby +finch.hris.directory.list +``` -Since this library does not depend on `sorbet-runtime`, it uses a [`T.all` intersection type](https://sorbet.org/docs/intersection-types) with a ruby primitive type to construct a "tagged alias" instead. +Or, equivalently: ```ruby -module FinchAPI::ConnectionStatusType - # This alias aids language service driven navigation. - TaggedSymbol = T.type_alias { T.all(Symbol, FinchAPI::ConnectionStatusType) } -end +# Hashes work, but are not typesafe: +finch.hris.directory.list + +# You can also splat a full Params class: +params = FinchAPI::HRIS::DirectoryListParams.new +finch.hris.directory.list(**params) ``` -#### Argument passing trick +### Enums -It is possible to pass a compatible model / parameter class to a method that expects keyword arguments by using the `**` splat operator. +Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime: ```ruby -params = FinchAPI::Models::HRIS::DirectoryListParams.new -finch.hris.directory.list(**params) +# :one_time +puts(FinchAPI::HRIS::BenefitFrequency::ONE_TIME) + +# Revealed type: `T.all(FinchAPI::HRIS::BenefitFrequency, Symbol)` +T.reveal_type(FinchAPI::HRIS::BenefitFrequency::ONE_TIME) +``` + +Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value: + +```ruby +# Using the enum constants preserves the tagged type information: +finch.hris.benefits.create( + frequency: FinchAPI::HRIS::BenefitFrequency::ONE_TIME, + # … +) + +# Literal values is also permissible: +finch.hris.benefits.create( + frequency: :one_time, + # … +) ``` ## Versioning diff --git a/Rakefile b/Rakefile index 8361a8b9..e1688e63 100644 --- a/Rakefile +++ b/Rakefile @@ -41,7 +41,7 @@ desc("Lint `*.rb(i)`") multitask(:"lint:rubocop") do find = %w[find ./lib ./test ./rbi -type f -and ( -name *.rb -or -name *.rbi ) -print0] - rubocop = %w[rubocop --fail-level E] + rubocop = %w[rubocop] rubocop += %w[--format github] if ENV.key?("CI") # some lines cannot be shortened @@ -147,7 +147,7 @@ multitask(:"build:gem") do sig/* GLOB - sh(*%w[gem build -- openai.gemspec]) + sh(*%w[gem build -- finch_api.gemspec]) rm_rf(ignore_file) end diff --git a/lib/finch_api.rb b/lib/finch_api.rb index d5161c9f..a7b1341f 100644 --- a/lib/finch_api.rb +++ b/lib/finch_api.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true # Standard libraries. +# rubocop:disable Lint/RedundantRequireStatement require "English" require "cgi" require "date" @@ -15,6 +16,7 @@ require "stringio" require "time" require "uri" +# rubocop:enable Lint/RedundantRequireStatement # We already ship the preferred sorbet manifests in the package itself. # `tapioca` currently does not offer us a way to opt out of unnecessary compilation. diff --git a/lib/finch_api/client.rb b/lib/finch_api/client.rb index 016325a2..16173744 100644 --- a/lib/finch_api/client.rb +++ b/lib/finch_api/client.rb @@ -103,10 +103,10 @@ def initialize( client_secret: ENV["FINCH_CLIENT_SECRET"], access_token: nil, base_url: ENV["FINCH_BASE_URL"], - max_retries: FinchAPI::Client::DEFAULT_MAX_RETRIES, - timeout: FinchAPI::Client::DEFAULT_TIMEOUT_IN_SECONDS, - initial_retry_delay: FinchAPI::Client::DEFAULT_INITIAL_RETRY_DELAY, - max_retry_delay: FinchAPI::Client::DEFAULT_MAX_RETRY_DELAY + max_retries: self.class::DEFAULT_MAX_RETRIES, + timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, + initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, + max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY ) base_url ||= "https://api.tryfinch.com" diff --git a/lib/finch_api/errors.rb b/lib/finch_api/errors.rb index f11eb03d..db324534 100644 --- a/lib/finch_api/errors.rb +++ b/lib/finch_api/errors.rb @@ -99,7 +99,7 @@ class APIStatusError < FinchAPI::Errors::APIError # @param response [nil] # @param message [String, nil] # - # @return [FinchAPI::Errors::APIStatusError] + # @return [self] def self.for(url:, status:, body:, request:, response:, message: nil) kwargs = { url: url, diff --git a/lib/finch_api/internal.rb b/lib/finch_api/internal.rb index ccc805f6..2fb38522 100644 --- a/lib/finch_api/internal.rb +++ b/lib/finch_api/internal.rb @@ -2,10 +2,16 @@ module FinchAPI module Internal + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + OMIT = Object.new.tap do _1.define_singleton_method(:inspect) { "#<#{FinchAPI::Internal}::OMIT>" } end .freeze + + define_sorbet_constant!(:AnyHash) do + T.type_alias { T::Hash[Symbol, T.anything] } + end end end diff --git a/lib/finch_api/internal/transport/base_client.rb b/lib/finch_api/internal/transport/base_client.rb index 8b715cfa..42d40224 100644 --- a/lib/finch_api/internal/transport/base_client.rb +++ b/lib/finch_api/internal/transport/base_client.rb @@ -7,6 +7,8 @@ module Transport # # @abstract class BaseClient + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + # from whatwg fetch spec MAX_REDIRECTS = 20 @@ -151,6 +153,27 @@ def reap_connection!(status, stream:) end end + # @return [URI::Generic] + attr_reader :base_url + + # @return [Float] + attr_reader :timeout + + # @return [Integer] + attr_reader :max_retries + + # @return [Float] + attr_reader :initial_retry_delay + + # @return [Float] + attr_reader :max_retry_delay + + # @return [Hash{String=>String}] + attr_reader :headers + + # @return [String, nil] + attr_reader :idempotency_header + # @api private # @return [FinchAPI::Internal::Transport::PooledNetRequester] attr_reader :requester @@ -182,10 +205,11 @@ def initialize( }, headers ) - @base_url = FinchAPI::Internal::Util.parse_uri(base_url) + @base_url_components = FinchAPI::Internal::Util.parse_uri(base_url) + @base_url = FinchAPI::Internal::Util.unparse_uri(@base_url_components) @idempotency_header = idempotency_header&.to_s&.downcase - @max_retries = max_retries @timeout = timeout + @max_retries = max_retries @initial_retry_delay = initial_retry_delay @max_retry_delay = max_retry_delay end @@ -276,10 +300,14 @@ def initialize( FinchAPI::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact) end + url = FinchAPI::Internal::Util.join_parsed_uri( + @base_url_components, + {**req, path: path, query: query} + ) headers, encoded = FinchAPI::Internal::Util.encode_content(headers, body) { method: method, - url: FinchAPI::Internal::Util.join_parsed_uri(@base_url, {**req, path: path, query: query}), + url: url, headers: headers, body: encoded, max_retries: opts.fetch(:max_retries, @max_retries), @@ -473,10 +501,54 @@ def request(req) # @return [String] def inspect # rubocop:disable Layout/LineLength - base_url = FinchAPI::Internal::Util.unparse_uri(@base_url) - "#<#{self.class.name}:0x#{object_id.to_s(16)} base_url=#{base_url} max_retries=#{@max_retries} timeout=#{@timeout}>" + "#<#{self.class.name}:0x#{object_id.to_s(16)} base_url=#{@base_url} max_retries=#{@max_retries} timeout=#{@timeout}>" # rubocop:enable Layout/LineLength end + + define_sorbet_constant!(:RequestComponents) do + T.type_alias do + { + method: Symbol, + path: T.any(String, T::Array[String]), + query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]), + headers: T.nilable( + T::Hash[String, + T.nilable( + T.any( + String, + Integer, + T::Array[T.nilable(T.any(String, Integer))] + ) + )] + ), + body: T.nilable(T.anything), + unwrap: T.nilable( + T.any( + Symbol, + Integer, + T::Array[T.any(Symbol, Integer)], + T.proc.params(arg0: T.anything).returns(T.anything) + ) + ), + page: T.nilable(T::Class[FinchAPI::Internal::Type::BasePage[FinchAPI::Internal::Type::BaseModel]]), + stream: T.nilable(T::Class[T.anything]), + model: T.nilable(FinchAPI::Internal::Type::Converter::Input), + options: T.nilable(FinchAPI::RequestOptions::OrHash) + } + end + end + define_sorbet_constant!(:RequestInput) do + T.type_alias do + { + method: Symbol, + url: URI::Generic, + headers: T::Hash[String, String], + body: T.anything, + max_retries: Integer, + timeout: Float + } + end + end end end end diff --git a/lib/finch_api/internal/transport/pooled_net_requester.rb b/lib/finch_api/internal/transport/pooled_net_requester.rb index 82763091..453207f9 100644 --- a/lib/finch_api/internal/transport/pooled_net_requester.rb +++ b/lib/finch_api/internal/transport/pooled_net_requester.rb @@ -5,10 +5,14 @@ module Internal module Transport # @api private class PooledNetRequester + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + # from the golang stdlib # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49 KEEP_ALIVE_TIMEOUT = 30 + DEFAULT_MAX_CONNECTIONS = [Etc.nprocessors, 99].max + class << self # @api private # @@ -182,11 +186,23 @@ def execute(request) # @api private # # @param size [Integer] - def initialize(size: Etc.nprocessors) + def initialize(size: self.class::DEFAULT_MAX_CONNECTIONS) @mutex = Mutex.new @size = size @pools = {} end + + define_sorbet_constant!(:Request) do + T.type_alias do + { + method: Symbol, + url: URI::Generic, + headers: T::Hash[String, String], + body: T.anything, + deadline: Float + } + end + end end end end diff --git a/lib/finch_api/internal/type/array_of.rb b/lib/finch_api/internal/type/array_of.rb index aa6d250e..f789f438 100644 --- a/lib/finch_api/internal/type/array_of.rb +++ b/lib/finch_api/internal/type/array_of.rb @@ -29,7 +29,7 @@ class ArrayOf # # @option spec [Boolean] :"nil?" # - # @return [FinchAPI::Internal::Type::ArrayOf] + # @return [self] def self.[](...) = new(...) # @api public diff --git a/lib/finch_api/internal/type/base_model.rb b/lib/finch_api/internal/type/base_model.rb index 66b9e378..df96b3fa 100644 --- a/lib/finch_api/internal/type/base_model.rb +++ b/lib/finch_api/internal/type/base_model.rb @@ -6,6 +6,7 @@ module Type # @abstract class BaseModel extend FinchAPI::Internal::Type::Converter + extend FinchAPI::Internal::Util::SorbetRuntimeSupport class << self # @api private @@ -13,11 +14,17 @@ class << self # Assumes superclass fields are totally defined before fields are accessed / # defined on subclasses. # - # @return [Hash{Symbol=>Hash{Symbol=>Object}}] - def known_fields - @known_fields ||= (self < FinchAPI::Internal::Type::BaseModel ? superclass.known_fields.dup : {}) + # @param child [Class] + def inherited(child) + super + child.known_fields.replace(known_fields.dup) end + # @api private + # + # @return [Hash{Symbol=>Hash{Symbol=>Object}}] + def known_fields = @known_fields ||= {} + # @api private # # @return [Hash{Symbol=>Hash{Symbol=>Object}}] @@ -206,7 +213,7 @@ class << self # # @option state [Integer] :branched # - # @return [FinchAPI::Internal::Type::BaseModel, Object] + # @return [self, Object] def coerce(value, state:) exactness = state.fetch(:exactness) @@ -265,7 +272,7 @@ def coerce(value, state:) # @api private # - # @param value [FinchAPI::Internal::Type::BaseModel, Object] + # @param value [self, Object] # # @param state [Hash{Symbol=>Object}] . # @@ -306,6 +313,39 @@ def dump(value, state:) end end + class << self + # @api private + # + # @param model [FinchAPI::Internal::Type::BaseModel] + # @param convert [Boolean] + # + # @return [Hash{Symbol=>Object}] + def recursively_to_h(model, convert:) + rec = ->(x) do + case x + in FinchAPI::Internal::Type::BaseModel + if convert + fields = x.class.known_fields + x.to_h.to_h do |key, val| + [key, rec.call(fields.key?(key) ? x.public_send(key) : val)] + rescue FinchAPI::Errors::ConversionError + [key, rec.call(val)] + end + else + rec.call(x.to_h) + end + in Hash + x.transform_values(&rec) + in Array + x.map(&rec) + else + x + end + end + rec.call(model) + end + end + # @api public # # Returns the raw value associated with the given key, if found. Otherwise, nil is @@ -342,9 +382,25 @@ def to_h = @data alias_method :to_hash, :to_h + # @api public + # + # In addition to the behaviour of `#to_h`, this method will recursively call + # `#to_h` on nested models. + # + # @return [Hash{Symbol=>Object}] + def deep_to_h = self.class.recursively_to_h(@data, convert: false) + # @param keys [Array, nil] # # @return [Hash{Symbol=>Object}] + # + # @example + # # `operation_support_matrix` is a `FinchAPI::OperationSupportMatrix` + # operation_support_matrix => { + # create: create, + # delete: delete, + # read: read + # } def deconstruct_keys(keys) (keys || self.class.known_fields.keys) .filter_map do |k| @@ -357,29 +413,6 @@ def deconstruct_keys(keys) .to_h end - class << self - # @api private - # - # @param model [FinchAPI::Internal::Type::BaseModel] - # - # @return [Hash{Symbol=>Object}] - def walk(model) - walk = ->(x) do - case x - in FinchAPI::Internal::Type::BaseModel - walk.call(x.to_h) - in Hash - x.transform_values(&walk) - in Array - x.map(&walk) - else - x - end - end - walk.call(model) - end - end - # @api public # # @param a [Object] @@ -425,12 +458,19 @@ def inspect(depth: 0) # @api public # # @return [String] - def to_s = self.class.walk(@data).to_s + def to_s = deep_to_h.to_s # @api private # # @return [String] - def inspect = "#<#{self.class}:0x#{object_id.to_s(16)} #{self}>" + def inspect + converted = self.class.recursively_to_h(self, convert: true) + "#<#{self.class}:0x#{object_id.to_s(16)} #{converted}>" + end + + define_sorbet_constant!(:KnownField) do + T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean} } + end end end end diff --git a/lib/finch_api/internal/type/converter.rb b/lib/finch_api/internal/type/converter.rb index 4cfcd47f..4c9a4bbc 100644 --- a/lib/finch_api/internal/type/converter.rb +++ b/lib/finch_api/internal/type/converter.rb @@ -5,6 +5,8 @@ module Internal module Type # @api private module Converter + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + # rubocop:disable Lint/UnusedMethodArgument # @api private @@ -268,6 +270,22 @@ def inspect(target, depth:) end end end + + define_sorbet_constant!(:Input) do + T.type_alias { T.any(FinchAPI::Internal::Type::Converter, T::Class[T.anything]) } + end + define_sorbet_constant!(:CoerceState) do + T.type_alias do + { + strictness: T.any(T::Boolean, Symbol), + exactness: {yes: Integer, no: Integer, maybe: Integer}, + branched: Integer + } + end + end + define_sorbet_constant!(:DumpState) do + T.type_alias { {can_retry: T::Boolean} } + end end end end diff --git a/lib/finch_api/internal/type/enum.rb b/lib/finch_api/internal/type/enum.rb index 830a9ad6..b723326c 100644 --- a/lib/finch_api/internal/type/enum.rb +++ b/lib/finch_api/internal/type/enum.rb @@ -42,6 +42,7 @@ module Type # end module Enum include FinchAPI::Internal::Type::Converter + include FinchAPI::Internal::Util::SorbetRuntimeSupport # All of the valid Symbol values for this enum. # diff --git a/lib/finch_api/internal/type/hash_of.rb b/lib/finch_api/internal/type/hash_of.rb index 12c62224..76d4cc95 100644 --- a/lib/finch_api/internal/type/hash_of.rb +++ b/lib/finch_api/internal/type/hash_of.rb @@ -29,7 +29,7 @@ class HashOf # # @option spec [Boolean] :"nil?" # - # @return [FinchAPI::Internal::Type::HashOf] + # @return [self] def self.[](...) = new(...) # @api public diff --git a/lib/finch_api/internal/type/union.rb b/lib/finch_api/internal/type/union.rb index 2a39afe8..6b75e69b 100644 --- a/lib/finch_api/internal/type/union.rb +++ b/lib/finch_api/internal/type/union.rb @@ -27,6 +27,7 @@ module Type # end module Union include FinchAPI::Internal::Type::Converter + include FinchAPI::Internal::Util::SorbetRuntimeSupport # @api private # diff --git a/lib/finch_api/internal/util.rb b/lib/finch_api/internal/util.rb index 0e621b04..01504163 100644 --- a/lib/finch_api/internal/util.rb +++ b/lib/finch_api/internal/util.rb @@ -801,6 +801,62 @@ def decode_sse(lines) end end end + + # @api private + module SorbetRuntimeSupport + class MissingSorbetRuntimeError < ::RuntimeError + end + + # @api private + # + # @return [Hash{Symbol=>Object}] + private def sorbet_runtime_constants = @sorbet_runtime_constants ||= {} + + # @api private + # + # @param name [Symbol] + def const_missing(name) + super unless sorbet_runtime_constants.key?(name) + + unless Object.const_defined?(:T) + message = "Trying to access a Sorbet constant #{name.inspect} without `sorbet-runtime`." + raise MissingSorbetRuntimeError.new(message) + end + + sorbet_runtime_constants.fetch(name).call + end + + # @api private + # + # @param name [Symbol] + # @param blk [Proc] + def define_sorbet_constant!(name, &blk) = sorbet_runtime_constants.store(name, blk) + end + + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + + define_sorbet_constant!(:ParsedUri) do + T.type_alias do + { + scheme: T.nilable(String), + host: T.nilable(String), + port: T.nilable(Integer), + path: T.nilable(String), + query: T::Hash[String, T::Array[String]] + } + end + end + + define_sorbet_constant!(:ServerSentEvent) do + T.type_alias do + { + event: T.nilable(String), + data: T.nilable(String), + id: T.nilable(String), + retry: T.nilable(Integer) + } + end + end end end end diff --git a/lib/finch_api/models.rb b/lib/finch_api/models.rb index 24688159..70bdd0f5 100644 --- a/lib/finch_api/models.rb +++ b/lib/finch_api/models.rb @@ -1,6 +1,33 @@ # frozen_string_literal: true module FinchAPI + [FinchAPI::Internal::Type::BaseModel, *FinchAPI::Internal::Type::BaseModel.subclasses].each do |cls| + cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, FinchAPI::Internal::AnyHash) } } + end + + [ + *FinchAPI::Internal::Type::Enum.included_modules, + *FinchAPI::Internal::Type::Union.included_modules + ].each do |cls| + cls.constants.each do |name| + case cls.const_get(name) + in true | false + cls.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T.all(T::Boolean, cls) } } + cls.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } } + in Integer + cls.define_sorbet_constant!(:TaggedInteger) { T.type_alias { T.all(Integer, cls) } } + cls.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } } + in Float + cls.define_sorbet_constant!(:TaggedFloat) { T.type_alias { T.all(Float, cls) } } + cls.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } } + in Symbol + cls.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { T.all(Symbol, cls) } } + cls.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } } + else + end + end + end + AccessTokenCreateParams = FinchAPI::Models::AccessTokenCreateParams AccountDisconnectParams = FinchAPI::Models::AccountDisconnectParams diff --git a/lib/finch_api/models/hris/document_retreive_response.rb b/lib/finch_api/models/hris/document_retreive_response.rb index 8b657bd6..7c63e79b 100644 --- a/lib/finch_api/models/hris/document_retreive_response.rb +++ b/lib/finch_api/models/hris/document_retreive_response.rb @@ -20,6 +20,10 @@ module DocumentRetreiveResponse # @!method self.variants # @return [Array(FinchAPI::HRIS::W42020, FinchAPI::HRIS::W42005)] + + define_sorbet_constant!(:Variants) do + T.type_alias { T.any(FinchAPI::HRIS::W42020, FinchAPI::HRIS::W42005) } + end end end end diff --git a/lib/finch_api/models/hris/employment_data.rb b/lib/finch_api/models/hris/employment_data.rb index 54db06b8..d04898ec 100644 --- a/lib/finch_api/models/hris/employment_data.rb +++ b/lib/finch_api/models/hris/employment_data.rb @@ -221,6 +221,10 @@ module Value # @!method self.variants # @return [Array(String, Array, Object, Float, Boolean)] + define_sorbet_constant!(:Variants) do + T.type_alias { T.any(String, T::Array[T.anything], T.anything, Float, T::Boolean) } + end + # @type [FinchAPI::Internal::Type::Converter] UnionMember1Array = FinchAPI::Internal::Type::ArrayOf[FinchAPI::Internal::Type::Unknown] end @@ -367,6 +371,12 @@ class BatchError < FinchAPI::Internal::Type::BaseModel # @!method self.variants # @return [Array(FinchAPI::HRIS::EmploymentData::UnionMember0, FinchAPI::HRIS::EmploymentData::BatchError)] + + define_sorbet_constant!(:Variants) do + T.type_alias do + T.any(FinchAPI::HRIS::EmploymentData::UnionMember0, FinchAPI::HRIS::EmploymentData::BatchError) + end + end end end end diff --git a/lib/finch_api/models/hris/individual.rb b/lib/finch_api/models/hris/individual.rb index 1f32edba..fece92d1 100644 --- a/lib/finch_api/models/hris/individual.rb +++ b/lib/finch_api/models/hris/individual.rb @@ -250,6 +250,12 @@ class BatchError < FinchAPI::Internal::Type::BaseModel # @!method self.variants # @return [Array(FinchAPI::HRIS::Individual::UnionMember0, FinchAPI::HRIS::Individual::BatchError)] + + define_sorbet_constant!(:Variants) do + T.type_alias do + T.any(FinchAPI::HRIS::Individual::UnionMember0, FinchAPI::HRIS::Individual::BatchError) + end + end end end end diff --git a/lib/finch_api/models/hris/pay_statement.rb b/lib/finch_api/models/hris/pay_statement.rb index 55ce6f66..7d44e315 100644 --- a/lib/finch_api/models/hris/pay_statement.rb +++ b/lib/finch_api/models/hris/pay_statement.rb @@ -370,6 +370,7 @@ module PaymentMethod CHECK = :check DIRECT_DEPOSIT = :direct_deposit + OTHER = :other # @!method self.values # @return [Array] diff --git a/lib/finch_api/models/sandbox/payment_create_params.rb b/lib/finch_api/models/sandbox/payment_create_params.rb index 23b275a4..b9e59e09 100644 --- a/lib/finch_api/models/sandbox/payment_create_params.rb +++ b/lib/finch_api/models/sandbox/payment_create_params.rb @@ -423,6 +423,7 @@ module PaymentMethod CHECK = :check DIRECT_DEPOSIT = :direct_deposit + OTHER = :other # @!method self.values # @return [Array] diff --git a/lib/finch_api/models/webhook_event.rb b/lib/finch_api/models/webhook_event.rb index 7273c7e9..981273f6 100644 --- a/lib/finch_api/models/webhook_event.rb +++ b/lib/finch_api/models/webhook_event.rb @@ -25,6 +25,21 @@ module WebhookEvent # @!method self.variants # @return [Array(FinchAPI::AccountUpdateEvent, FinchAPI::CompanyEvent, FinchAPI::JobCompletionEvent, FinchAPI::DirectoryEvent, FinchAPI::EmploymentEvent, FinchAPI::IndividualEvent, FinchAPI::PaymentEvent, FinchAPI::PayStatementEvent)] + + define_sorbet_constant!(:Variants) do + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent, + FinchAPI::CompanyEvent, + FinchAPI::JobCompletionEvent, + FinchAPI::DirectoryEvent, + FinchAPI::EmploymentEvent, + FinchAPI::IndividualEvent, + FinchAPI::PaymentEvent, + FinchAPI::PayStatementEvent + ) + end + end end end end diff --git a/lib/finch_api/request_options.rb b/lib/finch_api/request_options.rb index 31804441..c09feacc 100644 --- a/lib/finch_api/request_options.rb +++ b/lib/finch_api/request_options.rb @@ -69,5 +69,9 @@ def self.validate!(opts) # Returns a new instance of RequestOptions. # # @param values [Hash{Symbol=>Object}] + + define_sorbet_constant!(:OrHash) do + T.type_alias { T.any(FinchAPI::RequestOptions, FinchAPI::Internal::AnyHash) } + end end end diff --git a/lib/finch_api/version.rb b/lib/finch_api/version.rb index 2da0f4c1..4d3582a9 100644 --- a/lib/finch_api/version.rb +++ b/lib/finch_api/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FinchAPI - VERSION = "0.1.0.pre.alpha.16" + VERSION = "0.1.0.pre.alpha.17" end diff --git a/rbi/finch_api/internal.rbi b/rbi/finch_api/internal.rbi index 1ee4ba64..c6af6ce1 100644 --- a/rbi/finch_api/internal.rbi +++ b/rbi/finch_api/internal.rbi @@ -2,6 +2,8 @@ module FinchAPI module Internal + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + # Due to the current WIP status of Shapes support in Sorbet, types referencing # this alias might be refined in the future. AnyHash = T.type_alias { T::Hash[Symbol, T.anything] } diff --git a/rbi/finch_api/internal/transport/base_client.rbi b/rbi/finch_api/internal/transport/base_client.rbi index 176c8f89..0b9f6325 100644 --- a/rbi/finch_api/internal/transport/base_client.rbi +++ b/rbi/finch_api/internal/transport/base_client.rbi @@ -5,9 +5,11 @@ module FinchAPI module Transport # @api private class BaseClient + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + abstract! - RequestComponentsShape = + RequestComponents = T.type_alias do { method: Symbol, @@ -53,7 +55,7 @@ module FinchAPI } end - RequestInputShape = + RequestInput = T.type_alias do { method: Symbol, @@ -74,8 +76,7 @@ module FinchAPI # @api private sig do params( - req: - FinchAPI::Internal::Transport::BaseClient::RequestComponentsShape + req: FinchAPI::Internal::Transport::BaseClient::RequestComponents ).void end def validate!(req) @@ -94,13 +95,10 @@ module FinchAPI # @api private sig do params( - request: - FinchAPI::Internal::Transport::BaseClient::RequestInputShape, + request: FinchAPI::Internal::Transport::BaseClient::RequestInput, status: Integer, response_headers: T.any(T::Hash[String, String], Net::HTTPHeader) - ).returns( - FinchAPI::Internal::Transport::BaseClient::RequestInputShape - ) + ).returns(FinchAPI::Internal::Transport::BaseClient::RequestInput) end def follow_redirect(request, status:, response_headers:) end @@ -116,6 +114,27 @@ module FinchAPI end end + sig { returns(URI::Generic) } + attr_reader :base_url + + sig { returns(Float) } + attr_reader :timeout + + sig { returns(Integer) } + attr_reader :max_retries + + sig { returns(Float) } + attr_reader :initial_retry_delay + + sig { returns(Float) } + attr_reader :max_retry_delay + + sig { returns(T::Hash[String, String]) } + attr_reader :headers + + sig { returns(T.nilable(String)) } + attr_reader :idempotency_header + # @api private sig { returns(FinchAPI::Internal::Transport::PooledNetRequester) } attr_reader :requester @@ -167,13 +186,10 @@ module FinchAPI sig do overridable .params( - req: - FinchAPI::Internal::Transport::BaseClient::RequestComponentsShape, + req: FinchAPI::Internal::Transport::BaseClient::RequestComponents, opts: FinchAPI::Internal::AnyHash ) - .returns( - FinchAPI::Internal::Transport::BaseClient::RequestInputShape - ) + .returns(FinchAPI::Internal::Transport::BaseClient::RequestInput) end private def build_request(req, opts) end @@ -191,8 +207,7 @@ module FinchAPI # @api private sig do params( - request: - FinchAPI::Internal::Transport::BaseClient::RequestInputShape, + request: FinchAPI::Internal::Transport::BaseClient::RequestInput, redirect_count: Integer, retry_count: Integer, send_retry_header: T::Boolean diff --git a/rbi/finch_api/internal/transport/pooled_net_requester.rbi b/rbi/finch_api/internal/transport/pooled_net_requester.rbi index c44047ea..3a30451f 100644 --- a/rbi/finch_api/internal/transport/pooled_net_requester.rbi +++ b/rbi/finch_api/internal/transport/pooled_net_requester.rbi @@ -5,7 +5,9 @@ module FinchAPI module Transport # @api private class PooledNetRequester - RequestShape = + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + + Request = T.type_alias do { method: Symbol, @@ -20,6 +22,8 @@ module FinchAPI # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49 KEEP_ALIVE_TIMEOUT = 30 + DEFAULT_MAX_CONNECTIONS = T.let(T.unsafe(nil), Integer) + class << self # @api private sig { params(url: URI::Generic).returns(Net::HTTP) } @@ -35,7 +39,7 @@ module FinchAPI sig do params( request: - FinchAPI::Internal::Transport::PooledNetRequester::RequestShape, + FinchAPI::Internal::Transport::PooledNetRequester::Request, blk: T.proc.params(arg0: String).void ).returns([Net::HTTPGenericRequest, T.proc.void]) end @@ -57,8 +61,7 @@ module FinchAPI # @api private sig do params( - request: - FinchAPI::Internal::Transport::PooledNetRequester::RequestShape + request: FinchAPI::Internal::Transport::PooledNetRequester::Request ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]]) end def execute(request) @@ -66,7 +69,9 @@ module FinchAPI # @api private sig { params(size: Integer).returns(T.attached_class) } - def self.new(size: Etc.nprocessors) + def self.new( + size: FinchAPI::Internal::Transport::PooledNetRequester::DEFAULT_MAX_CONNECTIONS + ) end end end diff --git a/rbi/finch_api/internal/type/base_model.rbi b/rbi/finch_api/internal/type/base_model.rbi index 8c2a8f6f..96f27f17 100644 --- a/rbi/finch_api/internal/type/base_model.rbi +++ b/rbi/finch_api/internal/type/base_model.rbi @@ -5,10 +5,11 @@ module FinchAPI module Type class BaseModel extend FinchAPI::Internal::Type::Converter + extend FinchAPI::Internal::Util::SorbetRuntimeSupport abstract! - KnownFieldShape = + KnownField = T.type_alias do { mode: T.nilable(Symbol), @@ -18,19 +19,29 @@ module FinchAPI end OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Internal::Type::BaseModel, + FinchAPI::Internal::AnyHash + ) + end class << self # @api private # # Assumes superclass fields are totally defined before fields are accessed / # defined on subclasses. + sig { params(child: T.self_type).void } + def inherited(child) + end + + # @api private sig do returns( T::Hash[ Symbol, T.all( - FinchAPI::Internal::Type::BaseModel::KnownFieldShape, + FinchAPI::Internal::Type::BaseModel::KnownField, { type_fn: T.proc.returns(FinchAPI::Internal::Type::Converter::Input) @@ -48,7 +59,7 @@ module FinchAPI T::Hash[ Symbol, T.all( - FinchAPI::Internal::Type::BaseModel::KnownFieldShape, + FinchAPI::Internal::Type::BaseModel::KnownField, { type: FinchAPI::Internal::Type::Converter::Input } ) ] @@ -188,6 +199,18 @@ module FinchAPI end end + class << self + # @api private + sig do + params( + model: FinchAPI::Internal::Type::BaseModel, + convert: T::Boolean + ).returns(FinchAPI::Internal::AnyHash) + end + def recursively_to_h(model, convert:) + end + end + # Returns the raw value associated with the given key, if found. Otherwise, nil is # returned. # @@ -222,6 +245,12 @@ module FinchAPI def to_hash end + # In addition to the behaviour of `#to_h`, this method will recursively call + # `#to_h` on nested models. + sig { overridable.returns(FinchAPI::Internal::AnyHash) } + def deep_to_h + end + sig do params(keys: T.nilable(T::Array[Symbol])).returns( FinchAPI::Internal::AnyHash @@ -230,17 +259,6 @@ module FinchAPI def deconstruct_keys(keys) end - class << self - # @api private - sig do - params(model: FinchAPI::Internal::Type::BaseModel).returns( - FinchAPI::Internal::AnyHash - ) - end - def walk(model) - end - end - sig { params(a: T.anything).returns(String) } def to_json(*a) end diff --git a/rbi/finch_api/internal/type/base_page.rbi b/rbi/finch_api/internal/type/base_page.rbi index 7c4fef6e..0eb28ffb 100644 --- a/rbi/finch_api/internal/type/base_page.rbi +++ b/rbi/finch_api/internal/type/base_page.rbi @@ -29,8 +29,7 @@ module FinchAPI sig do params( client: FinchAPI::Internal::Transport::BaseClient, - req: - FinchAPI::Internal::Transport::BaseClient::RequestComponentsShape, + req: FinchAPI::Internal::Transport::BaseClient::RequestComponents, headers: T.any(T::Hash[String, String], Net::HTTPHeader), page_data: T.anything ).void diff --git a/rbi/finch_api/internal/type/converter.rbi b/rbi/finch_api/internal/type/converter.rbi index 2b559453..e89c3738 100644 --- a/rbi/finch_api/internal/type/converter.rbi +++ b/rbi/finch_api/internal/type/converter.rbi @@ -5,6 +5,8 @@ module FinchAPI module Type # @api private module Converter + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + Input = T.type_alias do T.any(FinchAPI::Internal::Type::Converter, T::Class[T.anything]) diff --git a/rbi/finch_api/internal/type/enum.rbi b/rbi/finch_api/internal/type/enum.rbi index 9ce15417..4852dc97 100644 --- a/rbi/finch_api/internal/type/enum.rbi +++ b/rbi/finch_api/internal/type/enum.rbi @@ -17,6 +17,7 @@ module FinchAPI # values safely. module Enum include FinchAPI::Internal::Type::Converter + include FinchAPI::Internal::Util::SorbetRuntimeSupport # All of the valid Symbol values for this enum. sig do diff --git a/rbi/finch_api/internal/type/union.rbi b/rbi/finch_api/internal/type/union.rbi index c2ceea53..86cacf70 100644 --- a/rbi/finch_api/internal/type/union.rbi +++ b/rbi/finch_api/internal/type/union.rbi @@ -6,6 +6,7 @@ module FinchAPI # @api private module Union include FinchAPI::Internal::Type::Converter + include FinchAPI::Internal::Util::SorbetRuntimeSupport # @api private # diff --git a/rbi/finch_api/internal/util.rbi b/rbi/finch_api/internal/util.rbi index 3d68dc8d..c3cc7577 100644 --- a/rbi/finch_api/internal/util.rbi +++ b/rbi/finch_api/internal/util.rbi @@ -4,6 +4,8 @@ module FinchAPI module Internal # @api private module Util + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + # @api private sig { returns(Float) } def self.monotonic_secs @@ -172,7 +174,7 @@ module FinchAPI end end - ParsedUriShape = + ParsedUri = T.type_alias do { scheme: T.nilable(String), @@ -187,7 +189,7 @@ module FinchAPI # @api private sig do params(url: T.any(URI::Generic, String)).returns( - FinchAPI::Internal::Util::ParsedUriShape + FinchAPI::Internal::Util::ParsedUri ) end def parse_uri(url) @@ -195,7 +197,7 @@ module FinchAPI # @api private sig do - params(parsed: FinchAPI::Internal::Util::ParsedUriShape).returns( + params(parsed: FinchAPI::Internal::Util::ParsedUri).returns( URI::Generic ) end @@ -205,8 +207,8 @@ module FinchAPI # @api private sig do params( - lhs: FinchAPI::Internal::Util::ParsedUriShape, - rhs: FinchAPI::Internal::Util::ParsedUriShape + lhs: FinchAPI::Internal::Util::ParsedUri, + rhs: FinchAPI::Internal::Util::ParsedUri ).returns(URI::Generic) end def join_parsed_uri(lhs, rhs) @@ -423,6 +425,27 @@ module FinchAPI def decode_sse(lines) end end + + # @api private + module SorbetRuntimeSupport + class MissingSorbetRuntimeError < ::RuntimeError + end + + # @api private + sig { returns(T::Hash[Symbol, T.anything]) } + private def sorbet_runtime_constants + end + + # @api private + sig { params(name: Symbol).void } + def const_missing(name) + end + + # @api private + sig { params(name: Symbol, blk: T.proc.returns(T.anything)).void } + def define_sorbet_constant!(name, &blk) + end + end end end end diff --git a/rbi/finch_api/models/access_token_create_params.rbi b/rbi/finch_api/models/access_token_create_params.rbi index d2344ecd..51f5fb30 100644 --- a/rbi/finch_api/models/access_token_create_params.rbi +++ b/rbi/finch_api/models/access_token_create_params.rbi @@ -6,7 +6,10 @@ module FinchAPI extend FinchAPI::Internal::Type::RequestParameters::Converter include FinchAPI::Internal::Type::RequestParameters - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::AccessTokenCreateParams, FinchAPI::Internal::AnyHash) + end sig { returns(String) } attr_accessor :code diff --git a/rbi/finch_api/models/account_disconnect_params.rbi b/rbi/finch_api/models/account_disconnect_params.rbi index 66b06e9c..75465e4f 100644 --- a/rbi/finch_api/models/account_disconnect_params.rbi +++ b/rbi/finch_api/models/account_disconnect_params.rbi @@ -6,7 +6,10 @@ module FinchAPI extend FinchAPI::Internal::Type::RequestParameters::Converter include FinchAPI::Internal::Type::RequestParameters - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::AccountDisconnectParams, FinchAPI::Internal::AnyHash) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/account_introspect_params.rbi b/rbi/finch_api/models/account_introspect_params.rbi index 0c59ae46..c1d2442d 100644 --- a/rbi/finch_api/models/account_introspect_params.rbi +++ b/rbi/finch_api/models/account_introspect_params.rbi @@ -6,7 +6,10 @@ module FinchAPI extend FinchAPI::Internal::Type::RequestParameters::Converter include FinchAPI::Internal::Type::RequestParameters - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::AccountIntrospectParams, FinchAPI::Internal::AnyHash) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/account_update_event.rbi b/rbi/finch_api/models/account_update_event.rbi index 27d230e3..34e732df 100644 --- a/rbi/finch_api/models/account_update_event.rbi +++ b/rbi/finch_api/models/account_update_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class AccountUpdateEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::AccountUpdateEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::AccountUpdateEvent::Data)) } attr_reader :data @@ -47,7 +50,12 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data, + FinchAPI::Internal::AnyHash + ) + end sig do returns(FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod) @@ -89,7 +97,12 @@ module FinchAPI class AuthenticationMethod < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod, + FinchAPI::Internal::AnyHash + ) + end # Each benefit type and their supported features. If the benefit type is not # supported, the property will be null @@ -183,7 +196,12 @@ module FinchAPI class SupportedFields < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -359,7 +377,12 @@ module FinchAPI class Company < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Company, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -514,7 +537,10 @@ module FinchAPI class Accounts < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Company::Accounts, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -583,7 +609,10 @@ module FinchAPI class Departments < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Company::Departments, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -634,7 +663,10 @@ module FinchAPI class Parent < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Company::Departments::Parent, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -656,7 +688,10 @@ module FinchAPI class Entity < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Company::Entity, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -689,7 +724,10 @@ module FinchAPI class Locations < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Company::Locations, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -767,7 +805,12 @@ module FinchAPI class Directory < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Directory, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -830,7 +873,10 @@ module FinchAPI class Individuals < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Directory::Individuals, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -929,7 +975,10 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Directory::Individuals::Manager, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -951,7 +1000,10 @@ module FinchAPI class Paging < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Directory::Paging, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -984,7 +1036,12 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Employment, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -1224,7 +1281,10 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Employment::Department, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1245,7 +1305,10 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Employment::Employment, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1278,7 +1341,10 @@ module FinchAPI class Income < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Employment::Income, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1325,7 +1391,10 @@ module FinchAPI class Location < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Employment::Location, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1403,7 +1472,10 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Employment::Manager, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1424,7 +1496,12 @@ module FinchAPI class Individual < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Individual, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -1602,7 +1679,10 @@ module FinchAPI class Emails < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Individual::Emails, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1633,7 +1713,10 @@ module FinchAPI class PhoneNumbers < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Individual::PhoneNumbers, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1664,7 +1747,10 @@ module FinchAPI class Residence < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Individual::Residence, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -1742,7 +1828,12 @@ module FinchAPI class PayGroup < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayGroup, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -1800,7 +1891,12 @@ module FinchAPI class PayStatement < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayStatement, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -1863,7 +1959,10 @@ module FinchAPI class Paging < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayStatement::Paging, + FinchAPI::Internal::AnyHash + ) end sig { returns(T::Boolean) } @@ -1890,7 +1989,10 @@ module FinchAPI class PayStatements < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayStatement::PayStatements, + FinchAPI::Internal::AnyHash + ) end sig do @@ -2055,7 +2157,10 @@ module FinchAPI class Earnings < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::Earnings, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2110,7 +2215,10 @@ module FinchAPI class EmployeeDeductions < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::EmployeeDeductions, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2179,7 +2287,10 @@ module FinchAPI class EmployerContributions < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::EmployerContributions, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2226,7 +2337,10 @@ module FinchAPI class Taxes < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::Taxes, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2296,7 +2410,12 @@ module FinchAPI class Payment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Payment, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -2439,7 +2558,10 @@ module FinchAPI class PayPeriod < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::AccountUpdateEvent::Data::AuthenticationMethod::SupportedFields::Payment::PayPeriod, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } diff --git a/rbi/finch_api/models/base_webhook_event.rbi b/rbi/finch_api/models/base_webhook_event.rbi index cfb68aa0..57f1e84d 100644 --- a/rbi/finch_api/models/base_webhook_event.rbi +++ b/rbi/finch_api/models/base_webhook_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class BaseWebhookEvent < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::BaseWebhookEvent, FinchAPI::Internal::AnyHash) + end # [DEPRECATED] Unique Finch ID of the employer account used to make this # connection. Use `connection_id` instead to identify the connection associated diff --git a/rbi/finch_api/models/company_event.rbi b/rbi/finch_api/models/company_event.rbi index 486c50d5..04a735c5 100644 --- a/rbi/finch_api/models/company_event.rbi +++ b/rbi/finch_api/models/company_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class CompanyEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::CompanyEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } attr_accessor :data diff --git a/rbi/finch_api/models/connect/session_new_params.rbi b/rbi/finch_api/models/connect/session_new_params.rbi index 829bd584..6f0f91c6 100644 --- a/rbi/finch_api/models/connect/session_new_params.rbi +++ b/rbi/finch_api/models/connect/session_new_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Connect::SessionNewParams, + FinchAPI::Internal::AnyHash + ) + end sig { returns(String) } attr_accessor :customer_id @@ -194,7 +199,12 @@ module FinchAPI class Integration < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Connect::SessionNewParams::Integration, + FinchAPI::Internal::AnyHash + ) + end sig do returns( diff --git a/rbi/finch_api/models/connect/session_new_response.rbi b/rbi/finch_api/models/connect/session_new_response.rbi index 47c0bc00..2e387c13 100644 --- a/rbi/finch_api/models/connect/session_new_response.rbi +++ b/rbi/finch_api/models/connect/session_new_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Connect class SessionNewResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Connect::SessionNewResponse, + FinchAPI::Internal::AnyHash + ) + end # The Connect URL to redirect the user to for authentication sig { returns(String) } diff --git a/rbi/finch_api/models/connect/session_reauthenticate_params.rbi b/rbi/finch_api/models/connect/session_reauthenticate_params.rbi index e26e1043..6994e85e 100644 --- a/rbi/finch_api/models/connect/session_reauthenticate_params.rbi +++ b/rbi/finch_api/models/connect/session_reauthenticate_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Connect::SessionReauthenticateParams, + FinchAPI::Internal::AnyHash + ) + end # The ID of the existing connection to reauthenticate sig { returns(String) } diff --git a/rbi/finch_api/models/connect/session_reauthenticate_response.rbi b/rbi/finch_api/models/connect/session_reauthenticate_response.rbi index 2a990f38..94dd4d27 100644 --- a/rbi/finch_api/models/connect/session_reauthenticate_response.rbi +++ b/rbi/finch_api/models/connect/session_reauthenticate_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Connect class SessionReauthenticateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Connect::SessionReauthenticateResponse, + FinchAPI::Internal::AnyHash + ) + end # The Connect URL to redirect the user to for reauthentication sig { returns(String) } diff --git a/rbi/finch_api/models/create_access_token_response.rbi b/rbi/finch_api/models/create_access_token_response.rbi index b83caaf5..a50b7fd1 100644 --- a/rbi/finch_api/models/create_access_token_response.rbi +++ b/rbi/finch_api/models/create_access_token_response.rbi @@ -3,7 +3,13 @@ module FinchAPI module Models class CreateAccessTokenResponse < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any( + FinchAPI::CreateAccessTokenResponse, + FinchAPI::Internal::AnyHash + ) + end # The access token for the connection. sig { returns(String) } diff --git a/rbi/finch_api/models/directory_event.rbi b/rbi/finch_api/models/directory_event.rbi index 1b9c418b..e031275b 100644 --- a/rbi/finch_api/models/directory_event.rbi +++ b/rbi/finch_api/models/directory_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class DirectoryEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::DirectoryEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::DirectoryEvent::Data)) } attr_reader :data @@ -43,7 +46,9 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::DirectoryEvent::Data, FinchAPI::Internal::AnyHash) + end # The ID of the individual related to the event. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/disconnect_response.rbi b/rbi/finch_api/models/disconnect_response.rbi index a4599d09..b75b846c 100644 --- a/rbi/finch_api/models/disconnect_response.rbi +++ b/rbi/finch_api/models/disconnect_response.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class DisconnectResponse < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::DisconnectResponse, FinchAPI::Internal::AnyHash) + end # If the request is successful, Finch will return “success” (HTTP 200 status). sig { returns(String) } diff --git a/rbi/finch_api/models/employment_event.rbi b/rbi/finch_api/models/employment_event.rbi index 67f0b439..ea2043fb 100644 --- a/rbi/finch_api/models/employment_event.rbi +++ b/rbi/finch_api/models/employment_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class EmploymentEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::EmploymentEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::EmploymentEvent::Data)) } attr_reader :data @@ -43,7 +46,9 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::EmploymentEvent::Data, FinchAPI::Internal::AnyHash) + end # The ID of the individual related to the event. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/benefit_contribution.rbi b/rbi/finch_api/models/hris/benefit_contribution.rbi index 4dc7d980..86012901 100644 --- a/rbi/finch_api/models/hris/benefit_contribution.rbi +++ b/rbi/finch_api/models/hris/benefit_contribution.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class BenefitContribution < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitContribution, + FinchAPI::Internal::AnyHash + ) + end # Contribution amount in cents (if `fixed`) or basis points (if `percent`). sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/hris/benefit_create_params.rbi b/rbi/finch_api/models/hris/benefit_create_params.rbi index cb20450b..72206fcf 100644 --- a/rbi/finch_api/models/hris/benefit_create_params.rbi +++ b/rbi/finch_api/models/hris/benefit_create_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitCreateParams, + FinchAPI::Internal::AnyHash + ) + end # The company match for this benefit. sig do @@ -91,7 +96,12 @@ module FinchAPI class CompanyContribution < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitCreateParams::CompanyContribution, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -162,7 +172,12 @@ module FinchAPI class Tier < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitCreateParams::CompanyContribution::Tier, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(Integer)) } attr_reader :match diff --git a/rbi/finch_api/models/hris/benefit_features_and_operations.rbi b/rbi/finch_api/models/hris/benefit_features_and_operations.rbi index 9917010f..8b9d6c4c 100644 --- a/rbi/finch_api/models/hris/benefit_features_and_operations.rbi +++ b/rbi/finch_api/models/hris/benefit_features_and_operations.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class BenefitFeaturesAndOperations < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitFeaturesAndOperations, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -58,7 +63,12 @@ module FinchAPI class SupportedFeatures < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitFeaturesAndOperations::SupportedFeatures, + FinchAPI::Internal::AnyHash + ) + end # Whether the provider supports an annual maximum for this benefit. sig { returns(T.nilable(T::Boolean)) } diff --git a/rbi/finch_api/models/hris/benefit_list_params.rbi b/rbi/finch_api/models/hris/benefit_list_params.rbi index 61362160..a055d3ef 100644 --- a/rbi/finch_api/models/hris/benefit_list_params.rbi +++ b/rbi/finch_api/models/hris/benefit_list_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitListParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/benefit_list_supported_benefits_params.rbi b/rbi/finch_api/models/hris/benefit_list_supported_benefits_params.rbi index eabf8b5c..b7d0a7da 100644 --- a/rbi/finch_api/models/hris/benefit_list_supported_benefits_params.rbi +++ b/rbi/finch_api/models/hris/benefit_list_supported_benefits_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitListSupportedBenefitsParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/benefit_list_supported_benefits_response.rbi b/rbi/finch_api/models/hris/benefit_list_supported_benefits_response.rbi index 3df38f27..5133c381 100644 --- a/rbi/finch_api/models/hris/benefit_list_supported_benefits_response.rbi +++ b/rbi/finch_api/models/hris/benefit_list_supported_benefits_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class BenefitListSupportedBenefitsResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::BenefitListSupportedBenefitsResponse, + FinchAPI::Internal::AnyHash + ) + end # Whether the provider supports an annual maximum for this benefit. sig { returns(T.nilable(T::Boolean)) } diff --git a/rbi/finch_api/models/hris/benefit_retrieve_params.rbi b/rbi/finch_api/models/hris/benefit_retrieve_params.rbi index a6214ebe..810a2385 100644 --- a/rbi/finch_api/models/hris/benefit_retrieve_params.rbi +++ b/rbi/finch_api/models/hris/benefit_retrieve_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitRetrieveParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/benefit_update_params.rbi b/rbi/finch_api/models/hris/benefit_update_params.rbi index 69edc451..28fcc65e 100644 --- a/rbi/finch_api/models/hris/benefit_update_params.rbi +++ b/rbi/finch_api/models/hris/benefit_update_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::BenefitUpdateParams, + FinchAPI::Internal::AnyHash + ) + end # Updated name or description. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/benefits/enrolled_individual_benefit_response.rbi b/rbi/finch_api/models/hris/benefits/enrolled_individual_benefit_response.rbi index 891239d7..a9602c45 100644 --- a/rbi/finch_api/models/hris/benefits/enrolled_individual_benefit_response.rbi +++ b/rbi/finch_api/models/hris/benefits/enrolled_individual_benefit_response.rbi @@ -6,7 +6,12 @@ module FinchAPI module Benefits class EnrolledIndividualBenefitResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::EnrolledIndividualBenefitResponse, + FinchAPI::Internal::AnyHash + ) + end sig { returns(String) } attr_accessor :job_id diff --git a/rbi/finch_api/models/hris/benefits/individual_benefit.rbi b/rbi/finch_api/models/hris/benefits/individual_benefit.rbi index d8474420..00a7de49 100644 --- a/rbi/finch_api/models/hris/benefits/individual_benefit.rbi +++ b/rbi/finch_api/models/hris/benefits/individual_benefit.rbi @@ -8,7 +8,12 @@ module FinchAPI module Benefits class IndividualBenefit < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualBenefit, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -60,7 +65,12 @@ module FinchAPI class Body < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualBenefit::Body, + FinchAPI::Internal::AnyHash + ) + end # If the benefit supports annual maximum, the amount in cents for this individual. sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/hris/benefits/individual_enroll_many_params.rbi b/rbi/finch_api/models/hris/benefits/individual_enroll_many_params.rbi index 9d56a8b2..e1d0fcde 100644 --- a/rbi/finch_api/models/hris/benefits/individual_enroll_many_params.rbi +++ b/rbi/finch_api/models/hris/benefits/individual_enroll_many_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualEnrollManyParams, + FinchAPI::Internal::AnyHash + ) + end # Array of the individual_id to enroll and a configuration object. sig do @@ -65,7 +70,12 @@ module FinchAPI class Individual < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualEnrollManyParams::Individual, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -119,7 +129,12 @@ module FinchAPI class Configuration < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualEnrollManyParams::Individual::Configuration, + FinchAPI::Internal::AnyHash + ) + end # For HSA benefits only - whether the contribution limit is for an individual or # family @@ -277,7 +292,10 @@ module FinchAPI class CompanyContribution < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::HRIS::Benefits::IndividualEnrollManyParams::Individual::Configuration::CompanyContribution, + FinchAPI::Internal::AnyHash + ) end # Amount in cents for fixed type or basis points (1/100th of a percent) for @@ -370,7 +388,10 @@ module FinchAPI class EmployeeDeduction < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::HRIS::Benefits::IndividualEnrollManyParams::Individual::Configuration::EmployeeDeduction, + FinchAPI::Internal::AnyHash + ) end # Amount in cents for fixed type or basis points (1/100th of a percent) for diff --git a/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_params.rbi b/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_params.rbi index f4768c51..d6695a0d 100644 --- a/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_params.rbi +++ b/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualEnrolledIDsParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_response.rbi b/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_response.rbi index ef4508db..47c77b2c 100644 --- a/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_response.rbi +++ b/rbi/finch_api/models/hris/benefits/individual_enrolled_ids_response.rbi @@ -6,7 +6,12 @@ module FinchAPI module Benefits class IndividualEnrolledIDsResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Benefits::IndividualEnrolledIDsResponse, + FinchAPI::Internal::AnyHash + ) + end # The id of the benefit. sig { returns(String) } diff --git a/rbi/finch_api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi b/rbi/finch_api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi index 3bf64914..85685415 100644 --- a/rbi/finch_api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi +++ b/rbi/finch_api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualRetrieveManyBenefitsParams, + FinchAPI::Internal::AnyHash + ) + end # comma-delimited list of stable Finch uuids for each individual. If empty, # defaults to all individuals diff --git a/rbi/finch_api/models/hris/benefits/individual_unenroll_many_params.rbi b/rbi/finch_api/models/hris/benefits/individual_unenroll_many_params.rbi index 0e10126a..e9261602 100644 --- a/rbi/finch_api/models/hris/benefits/individual_unenroll_many_params.rbi +++ b/rbi/finch_api/models/hris/benefits/individual_unenroll_many_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::IndividualUnenrollManyParams, + FinchAPI::Internal::AnyHash + ) + end # Array of individual_ids to unenroll. sig { returns(T.nilable(T::Array[String])) } diff --git a/rbi/finch_api/models/hris/benefits/unenrolled_individual_benefit_response.rbi b/rbi/finch_api/models/hris/benefits/unenrolled_individual_benefit_response.rbi index b7e9ed62..53f91028 100644 --- a/rbi/finch_api/models/hris/benefits/unenrolled_individual_benefit_response.rbi +++ b/rbi/finch_api/models/hris/benefits/unenrolled_individual_benefit_response.rbi @@ -6,7 +6,12 @@ module FinchAPI module Benefits class UnenrolledIndividualBenefitResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Benefits::UnenrolledIndividualBenefitResponse, + FinchAPI::Internal::AnyHash + ) + end sig { returns(String) } attr_accessor :job_id diff --git a/rbi/finch_api/models/hris/benefits_support.rbi b/rbi/finch_api/models/hris/benefits_support.rbi index 3525e1fb..d5935f18 100644 --- a/rbi/finch_api/models/hris/benefits_support.rbi +++ b/rbi/finch_api/models/hris/benefits_support.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class BenefitsSupport < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::BenefitsSupport, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::HRIS::BenefitFeaturesAndOperations)) } attr_reader :commuter diff --git a/rbi/finch_api/models/hris/company.rbi b/rbi/finch_api/models/hris/company.rbi index 5c211263..ee9d5eb4 100644 --- a/rbi/finch_api/models/hris/company.rbi +++ b/rbi/finch_api/models/hris/company.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class HRISCompany < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::HRISCompany, FinchAPI::Internal::AnyHash) + end # A stable Finch `id` (UUID v4) for the company. sig { returns(String) } @@ -124,7 +126,12 @@ module FinchAPI class Account < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::HRISCompany::Account, + FinchAPI::Internal::AnyHash + ) + end # The name of the bank associated in the payroll/HRIS system. sig { returns(T.nilable(String)) } @@ -232,7 +239,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::HRISCompany::Department, + FinchAPI::Internal::AnyHash + ) + end # The department name. sig { returns(T.nilable(String)) } @@ -285,7 +297,12 @@ module FinchAPI class Parent < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::HRISCompany::Department::Parent, + FinchAPI::Internal::AnyHash + ) + end # The parent department's name. sig { returns(T.nilable(String)) } @@ -307,7 +324,12 @@ module FinchAPI class Entity < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::HRISCompany::Entity, + FinchAPI::Internal::AnyHash + ) + end # The tax payer subtype of the company. sig do diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_params.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_params.rbi index 31a5d81d..8db60e0e 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_params.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_params.rbi @@ -10,7 +10,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams, + FinchAPI::Internal::AnyHash + ) + end # Specifies the fields to be applied when the condition is met. sig do @@ -128,7 +133,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Attributes, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached in the entity. It is a key-value pairs where the # values can be of any type (string, number, boolean, object, array, etc.). @@ -160,7 +170,12 @@ module FinchAPI class Condition < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Condition, + FinchAPI::Internal::AnyHash + ) + end # The field to be checked in the rule. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_response.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_response.rbi index 92229457..66d58147 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_response.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_create_response.rbi @@ -7,7 +7,12 @@ module FinchAPI module PayStatementItem class RuleCreateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleCreateResponse, + FinchAPI::Internal::AnyHash + ) + end # Finch id (uuidv4) for the rule. sig { returns(T.nilable(String)) } @@ -166,7 +171,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleCreateResponse::Attributes, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached in the entity. It is a key-value pairs where the # values can be of any type (string, number, boolean, object, array, etc.). @@ -198,7 +208,12 @@ module FinchAPI class Condition < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleCreateResponse::Condition, + FinchAPI::Internal::AnyHash + ) + end # The field to be checked in the rule. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_params.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_params.rbi index ea99b7c0..6c9e9edf 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_params.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_params.rbi @@ -10,7 +10,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Company::PayStatementItem::RuleDeleteParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_response.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_response.rbi index 61f9912b..864a1248 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_response.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_delete_response.rbi @@ -7,7 +7,12 @@ module FinchAPI module PayStatementItem class RuleDeleteResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleDeleteResponse, + FinchAPI::Internal::AnyHash + ) + end # Finch id (uuidv4) for the rule. sig { returns(T.nilable(String)) } @@ -177,7 +182,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleDeleteResponse::Attributes, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached in the entity. It is a key-value pairs where the # values can be of any type (string, number, boolean, object, array, etc.). @@ -209,7 +219,12 @@ module FinchAPI class Condition < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleDeleteResponse::Condition, + FinchAPI::Internal::AnyHash + ) + end # The field to be checked in the rule. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_params.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_params.rbi index fe6d2b94..a95be1cb 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_params.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_params.rbi @@ -10,7 +10,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Company::PayStatementItem::RuleListParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_response.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_response.rbi index 40fb4af0..34ab90f6 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_response.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_list_response.rbi @@ -7,7 +7,12 @@ module FinchAPI module PayStatementItem class RuleListResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleListResponse, + FinchAPI::Internal::AnyHash + ) + end # Finch id (uuidv4) for the rule. sig { returns(T.nilable(String)) } @@ -166,7 +171,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleListResponse::Attributes, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached in the entity. It is a key-value pairs where the # values can be of any type (string, number, boolean, object, array, etc.). @@ -198,7 +208,12 @@ module FinchAPI class Condition < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleListResponse::Condition, + FinchAPI::Internal::AnyHash + ) + end # The field to be checked in the rule. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_params.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_params.rbi index 47c522da..61648289 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_params.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_params.rbi @@ -10,7 +10,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Company::PayStatementItem::RuleUpdateParams, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T.anything)) } attr_reader :optional_property diff --git a/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_response.rbi b/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_response.rbi index 21989ed7..3cc83160 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_response.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item/rule_update_response.rbi @@ -7,7 +7,12 @@ module FinchAPI module PayStatementItem class RuleUpdateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleUpdateResponse, + FinchAPI::Internal::AnyHash + ) + end # Finch id (uuidv4) for the rule. sig { returns(T.nilable(String)) } @@ -166,7 +171,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleUpdateResponse::Attributes, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached in the entity. It is a key-value pairs where the # values can be of any type (string, number, boolean, object, array, etc.). @@ -198,7 +208,12 @@ module FinchAPI class Condition < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItem::RuleUpdateResponse::Condition, + FinchAPI::Internal::AnyHash + ) + end # The field to be checked in the rule. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/company/pay_statement_item_list_params.rbi b/rbi/finch_api/models/hris/company/pay_statement_item_list_params.rbi index e6e94f94..e5744f6d 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item_list_params.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item_list_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Company::PayStatementItemListParams, + FinchAPI::Internal::AnyHash + ) + end # Comma-delimited list of pay statement item categories to filter on. If empty, # defaults to all categories. diff --git a/rbi/finch_api/models/hris/company/pay_statement_item_list_response.rbi b/rbi/finch_api/models/hris/company/pay_statement_item_list_response.rbi index fe8b20dc..d50d4a14 100644 --- a/rbi/finch_api/models/hris/company/pay_statement_item_list_response.rbi +++ b/rbi/finch_api/models/hris/company/pay_statement_item_list_response.rbi @@ -6,7 +6,12 @@ module FinchAPI module Company class PayStatementItemListResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItemListResponse, + FinchAPI::Internal::AnyHash + ) + end # The attributes of the pay statement item. sig do @@ -86,7 +91,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::Company::PayStatementItemListResponse::Attributes, + FinchAPI::Internal::AnyHash + ) + end # `true` if the amount is paid by the employers. This field is only available for # taxes. diff --git a/rbi/finch_api/models/hris/company_benefit.rbi b/rbi/finch_api/models/hris/company_benefit.rbi index f3c8d308..be57f17d 100644 --- a/rbi/finch_api/models/hris/company_benefit.rbi +++ b/rbi/finch_api/models/hris/company_benefit.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class CompanyBenefit < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::CompanyBenefit, FinchAPI::Internal::AnyHash) + end # The id of the benefit. sig { returns(String) } @@ -85,7 +87,12 @@ module FinchAPI class CompanyContribution < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::CompanyBenefit::CompanyContribution, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -156,7 +163,12 @@ module FinchAPI class Tier < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::CompanyBenefit::CompanyContribution::Tier, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(Integer)) } attr_reader :match diff --git a/rbi/finch_api/models/hris/company_retrieve_params.rbi b/rbi/finch_api/models/hris/company_retrieve_params.rbi index 7b6103dd..c618cc0f 100644 --- a/rbi/finch_api/models/hris/company_retrieve_params.rbi +++ b/rbi/finch_api/models/hris/company_retrieve_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::CompanyRetrieveParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/create_company_benefits_response.rbi b/rbi/finch_api/models/hris/create_company_benefits_response.rbi index 8c1171de..ceb0e3e6 100644 --- a/rbi/finch_api/models/hris/create_company_benefits_response.rbi +++ b/rbi/finch_api/models/hris/create_company_benefits_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class CreateCompanyBenefitsResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::CreateCompanyBenefitsResponse, + FinchAPI::Internal::AnyHash + ) + end # The id of the benefit. sig { returns(String) } diff --git a/rbi/finch_api/models/hris/directory_list_individuals_params.rbi b/rbi/finch_api/models/hris/directory_list_individuals_params.rbi index 6a97d740..19c1627d 100644 --- a/rbi/finch_api/models/hris/directory_list_individuals_params.rbi +++ b/rbi/finch_api/models/hris/directory_list_individuals_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::DirectoryListIndividualsParams, + FinchAPI::Internal::AnyHash + ) + end # Number of employees to return (defaults to all) sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/hris/directory_list_params.rbi b/rbi/finch_api/models/hris/directory_list_params.rbi index 485972c9..28bc07a1 100644 --- a/rbi/finch_api/models/hris/directory_list_params.rbi +++ b/rbi/finch_api/models/hris/directory_list_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::DirectoryListParams, + FinchAPI::Internal::AnyHash + ) + end # Number of employees to return (defaults to all) sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/hris/document_list_params.rbi b/rbi/finch_api/models/hris/document_list_params.rbi index e63364f2..f17a1d7f 100644 --- a/rbi/finch_api/models/hris/document_list_params.rbi +++ b/rbi/finch_api/models/hris/document_list_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::DocumentListParams, + FinchAPI::Internal::AnyHash + ) + end # Comma-delimited list of stable Finch uuids for each individual. If empty, # defaults to all individuals diff --git a/rbi/finch_api/models/hris/document_list_response.rbi b/rbi/finch_api/models/hris/document_list_response.rbi index 60673a7c..10d4c179 100644 --- a/rbi/finch_api/models/hris/document_list_response.rbi +++ b/rbi/finch_api/models/hris/document_list_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class DocumentListResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::HRIS::DocumentListResponse, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T::Array[FinchAPI::HRIS::DocumentResponse]) } attr_accessor :documents diff --git a/rbi/finch_api/models/hris/document_response.rbi b/rbi/finch_api/models/hris/document_response.rbi index 5f423f07..b1f06cc8 100644 --- a/rbi/finch_api/models/hris/document_response.rbi +++ b/rbi/finch_api/models/hris/document_response.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class DocumentResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::DocumentResponse, FinchAPI::Internal::AnyHash) + end # A stable Finch id for the document. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/hris/document_retreive_params.rbi b/rbi/finch_api/models/hris/document_retreive_params.rbi index 076a555a..c008d3e1 100644 --- a/rbi/finch_api/models/hris/document_retreive_params.rbi +++ b/rbi/finch_api/models/hris/document_retreive_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::DocumentRetreiveParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/hris/employment_data.rbi b/rbi/finch_api/models/hris/employment_data.rbi index 1a541553..c6dc67f5 100644 --- a/rbi/finch_api/models/hris/employment_data.rbi +++ b/rbi/finch_api/models/hris/employment_data.rbi @@ -16,7 +16,12 @@ module FinchAPI class UnionMember0 < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentData::UnionMember0, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(String) } @@ -298,7 +303,12 @@ module FinchAPI class CustomField < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentData::UnionMember0::CustomField, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :name @@ -395,7 +405,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentData::UnionMember0::Department, + FinchAPI::Internal::AnyHash + ) + end # The name of the department associated with the individual. sig { returns(T.nilable(String)) } @@ -416,7 +431,12 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentData::UnionMember0::Employment, + FinchAPI::Internal::AnyHash + ) + end # The secondary employment type of the individual. Options: `full_time`, # `part_time`, `intern`, `temp`, `seasonal` and `individual_contractor`. @@ -633,7 +653,12 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentData::UnionMember0::Manager, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(String) } @@ -655,7 +680,12 @@ module FinchAPI class BatchError < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentData::BatchError, + FinchAPI::Internal::AnyHash + ) + end sig { returns(Float) } attr_accessor :code diff --git a/rbi/finch_api/models/hris/employment_data_response.rbi b/rbi/finch_api/models/hris/employment_data_response.rbi index adb2704f..b177eb88 100644 --- a/rbi/finch_api/models/hris/employment_data_response.rbi +++ b/rbi/finch_api/models/hris/employment_data_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class EmploymentDataResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentDataResponse, + FinchAPI::Internal::AnyHash + ) + end sig do returns( diff --git a/rbi/finch_api/models/hris/employment_retrieve_many_params.rbi b/rbi/finch_api/models/hris/employment_retrieve_many_params.rbi index 3fe6eb78..db2ec9eb 100644 --- a/rbi/finch_api/models/hris/employment_retrieve_many_params.rbi +++ b/rbi/finch_api/models/hris/employment_retrieve_many_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentRetrieveManyParams, + FinchAPI::Internal::AnyHash + ) + end # The array of batch requests. sig do @@ -48,7 +53,12 @@ module FinchAPI class Request < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::EmploymentRetrieveManyParams::Request, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. There is no # limit to the number of `individual_id` to send per request. It is preferantial diff --git a/rbi/finch_api/models/hris/individual.rbi b/rbi/finch_api/models/hris/individual.rbi index 06733d8d..220e8bbb 100644 --- a/rbi/finch_api/models/hris/individual.rbi +++ b/rbi/finch_api/models/hris/individual.rbi @@ -16,7 +16,12 @@ module FinchAPI class UnionMember0 < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Individual::UnionMember0, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(String) } @@ -315,7 +320,12 @@ module FinchAPI class PhoneNumber < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Individual::UnionMember0::PhoneNumber, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :data @@ -392,7 +402,12 @@ module FinchAPI class Email < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Individual::UnionMember0::Email, + FinchAPI::Internal::AnyHash + ) + end sig { returns(String) } attr_accessor :data @@ -470,7 +485,12 @@ module FinchAPI class BatchError < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Individual::BatchError, + FinchAPI::Internal::AnyHash + ) + end sig { returns(Float) } attr_accessor :code diff --git a/rbi/finch_api/models/hris/individual_in_directory.rbi b/rbi/finch_api/models/hris/individual_in_directory.rbi index 721abe37..b17280bb 100644 --- a/rbi/finch_api/models/hris/individual_in_directory.rbi +++ b/rbi/finch_api/models/hris/individual_in_directory.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class IndividualInDirectory < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::IndividualInDirectory, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(String) } @@ -110,7 +115,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::IndividualInDirectory::Department, + FinchAPI::Internal::AnyHash + ) + end # The name of the department. sig { returns(T.nilable(String)) } @@ -131,7 +141,12 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::IndividualInDirectory::Manager, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(String) } diff --git a/rbi/finch_api/models/hris/individual_response.rbi b/rbi/finch_api/models/hris/individual_response.rbi index be05bb33..f35bee8d 100644 --- a/rbi/finch_api/models/hris/individual_response.rbi +++ b/rbi/finch_api/models/hris/individual_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class IndividualResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::IndividualResponse, + FinchAPI::Internal::AnyHash + ) + end sig do returns( diff --git a/rbi/finch_api/models/hris/individual_retrieve_many_params.rbi b/rbi/finch_api/models/hris/individual_retrieve_many_params.rbi index 44b5d135..a8fce80e 100644 --- a/rbi/finch_api/models/hris/individual_retrieve_many_params.rbi +++ b/rbi/finch_api/models/hris/individual_retrieve_many_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::IndividualRetrieveManyParams, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -80,7 +85,12 @@ module FinchAPI class Options < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::IndividualRetrieveManyParams::Options, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Array[String])) } attr_reader :include @@ -99,7 +109,12 @@ module FinchAPI class Request < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::IndividualRetrieveManyParams::Request, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :individual_id diff --git a/rbi/finch_api/models/hris/pay_statement.rbi b/rbi/finch_api/models/hris/pay_statement.rbi index 9796bb09..be2cf9c7 100644 --- a/rbi/finch_api/models/hris/pay_statement.rbi +++ b/rbi/finch_api/models/hris/pay_statement.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class PayStatement < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::PayStatement, FinchAPI::Internal::AnyHash) + end # The array of earnings objects associated with this pay statement sig do @@ -185,7 +187,12 @@ module FinchAPI class Earning < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::Earning, + FinchAPI::Internal::AnyHash + ) + end # The earnings amount in cents. sig { returns(T.nilable(Integer)) } @@ -282,7 +289,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::Earning::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -323,7 +335,12 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::Earning::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached to the entity by existing rules. It is a key-value # pairs where the values can be of any type (string, number, boolean, object, @@ -449,7 +466,12 @@ module FinchAPI class EmployeeDeduction < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::EmployeeDeduction, + FinchAPI::Internal::AnyHash + ) + end # The deduction amount in cents. sig { returns(T.nilable(Integer)) } @@ -538,7 +560,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::EmployeeDeduction::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -579,7 +606,12 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::EmployeeDeduction::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached to the entity by existing rules. It is a key-value # pairs where the values can be of any type (string, number, boolean, object, @@ -618,7 +650,12 @@ module FinchAPI class EmployerContribution < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::EmployerContribution, + FinchAPI::Internal::AnyHash + ) + end # The contribution amount in cents. sig { returns(T.nilable(Integer)) } @@ -699,7 +736,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::EmployerContribution::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -740,7 +782,12 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::EmployerContribution::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached to the entity by existing rules. It is a key-value # pairs where the values can be of any type (string, number, boolean, object, @@ -797,6 +844,11 @@ module FinchAPI :direct_deposit, FinchAPI::HRIS::PayStatement::PaymentMethod::TaggedSymbol ) + OTHER = + T.let( + :other, + FinchAPI::HRIS::PayStatement::PaymentMethod::TaggedSymbol + ) sig do override.returns( @@ -811,7 +863,12 @@ module FinchAPI class Tax < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::Tax, + FinchAPI::Internal::AnyHash + ) + end # The tax amount in cents. sig { returns(T.nilable(Integer)) } @@ -899,7 +956,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::Tax::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -940,7 +1002,12 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatement::Tax::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) + end # The metadata to be attached to the entity by existing rules. It is a key-value # pairs where the values can be of any type (string, number, boolean, object, diff --git a/rbi/finch_api/models/hris/pay_statement_response.rbi b/rbi/finch_api/models/hris/pay_statement_response.rbi index 815a7dea..035d8d52 100644 --- a/rbi/finch_api/models/hris/pay_statement_response.rbi +++ b/rbi/finch_api/models/hris/pay_statement_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class PayStatementResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatementResponse, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(FinchAPI::HRIS::PayStatementResponseBody)) } attr_reader :body diff --git a/rbi/finch_api/models/hris/pay_statement_response_body.rbi b/rbi/finch_api/models/hris/pay_statement_response_body.rbi index f1524235..2deb25a9 100644 --- a/rbi/finch_api/models/hris/pay_statement_response_body.rbi +++ b/rbi/finch_api/models/hris/pay_statement_response_body.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class PayStatementResponseBody < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatementResponseBody, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(FinchAPI::Paging)) } attr_reader :paging diff --git a/rbi/finch_api/models/hris/pay_statement_retrieve_many_params.rbi b/rbi/finch_api/models/hris/pay_statement_retrieve_many_params.rbi index 0e306b89..f4c9101e 100644 --- a/rbi/finch_api/models/hris/pay_statement_retrieve_many_params.rbi +++ b/rbi/finch_api/models/hris/pay_statement_retrieve_many_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatementRetrieveManyParams, + FinchAPI::Internal::AnyHash + ) + end # The array of batch requests. sig do @@ -50,7 +55,12 @@ module FinchAPI class Request < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PayStatementRetrieveManyParams::Request, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for a payment. sig { returns(String) } diff --git a/rbi/finch_api/models/hris/payment.rbi b/rbi/finch_api/models/hris/payment.rbi index 5ff791c5..7b7d6081 100644 --- a/rbi/finch_api/models/hris/payment.rbi +++ b/rbi/finch_api/models/hris/payment.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class Payment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::Payment, FinchAPI::Internal::AnyHash) + end # The unique id for the payment. sig { returns(T.nilable(String)) } @@ -197,7 +199,12 @@ module FinchAPI class PayPeriod < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::Payment::PayPeriod, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :end_date diff --git a/rbi/finch_api/models/hris/payment_list_params.rbi b/rbi/finch_api/models/hris/payment_list_params.rbi index 666ed0d8..0934fc28 100644 --- a/rbi/finch_api/models/hris/payment_list_params.rbi +++ b/rbi/finch_api/models/hris/payment_list_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::PaymentListParams, + FinchAPI::Internal::AnyHash + ) + end # The end date to retrieve payments by a company (inclusive) in `YYYY-MM-DD` # format. diff --git a/rbi/finch_api/models/hris/support_per_benefit_type.rbi b/rbi/finch_api/models/hris/support_per_benefit_type.rbi index 1f51d185..79720488 100644 --- a/rbi/finch_api/models/hris/support_per_benefit_type.rbi +++ b/rbi/finch_api/models/hris/support_per_benefit_type.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class SupportPerBenefitType < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::SupportPerBenefitType, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(FinchAPI::OperationSupportMatrix)) } attr_reader :company_benefits diff --git a/rbi/finch_api/models/hris/supported_benefit.rbi b/rbi/finch_api/models/hris/supported_benefit.rbi index 561cded5..320239bf 100644 --- a/rbi/finch_api/models/hris/supported_benefit.rbi +++ b/rbi/finch_api/models/hris/supported_benefit.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class SupportedBenefit < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::SupportedBenefit, FinchAPI::Internal::AnyHash) + end # Whether the provider supports an annual maximum for this benefit. sig { returns(T.nilable(T::Boolean)) } diff --git a/rbi/finch_api/models/hris/update_company_benefit_response.rbi b/rbi/finch_api/models/hris/update_company_benefit_response.rbi index bd9f29fd..46b6401e 100644 --- a/rbi/finch_api/models/hris/update_company_benefit_response.rbi +++ b/rbi/finch_api/models/hris/update_company_benefit_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module HRIS class UpdateCompanyBenefitResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::HRIS::UpdateCompanyBenefitResponse, + FinchAPI::Internal::AnyHash + ) + end # The id of the benefit. sig { returns(String) } diff --git a/rbi/finch_api/models/hris/w42005.rbi b/rbi/finch_api/models/hris/w42005.rbi index 14d586bd..128aa1cf 100644 --- a/rbi/finch_api/models/hris/w42005.rbi +++ b/rbi/finch_api/models/hris/w42005.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class W42005 < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::W42005, FinchAPI::Internal::AnyHash) + end # Detailed information specific to the 2005 W4 form. sig { returns(T.nilable(FinchAPI::HRIS::W42005::Data)) } @@ -58,7 +60,9 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::W42005::Data, FinchAPI::Internal::AnyHash) + end # Additional withholding amount (in cents). sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/hris/w42020.rbi b/rbi/finch_api/models/hris/w42020.rbi index 6d525adc..fb6c2bdb 100644 --- a/rbi/finch_api/models/hris/w42020.rbi +++ b/rbi/finch_api/models/hris/w42020.rbi @@ -5,7 +5,9 @@ module FinchAPI module HRIS class W42020 < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::W42020, FinchAPI::Internal::AnyHash) + end # Detailed information specific to the 2020 W4 form. sig { returns(T.nilable(FinchAPI::HRIS::W42020::Data)) } @@ -58,7 +60,9 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::HRIS::W42020::Data, FinchAPI::Internal::AnyHash) + end # Amount claimed for dependents other than qualifying children under 17 (in # cents). diff --git a/rbi/finch_api/models/income.rbi b/rbi/finch_api/models/income.rbi index ab6e2cad..64142b1d 100644 --- a/rbi/finch_api/models/income.rbi +++ b/rbi/finch_api/models/income.rbi @@ -3,7 +3,8 @@ module FinchAPI module Models class Income < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias { T.any(FinchAPI::Income, FinchAPI::Internal::AnyHash) } # The income amount in cents. sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/individual_event.rbi b/rbi/finch_api/models/individual_event.rbi index faead1f2..8149f95e 100644 --- a/rbi/finch_api/models/individual_event.rbi +++ b/rbi/finch_api/models/individual_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class IndividualEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::IndividualEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::IndividualEvent::Data)) } attr_reader :data @@ -43,7 +46,9 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::IndividualEvent::Data, FinchAPI::Internal::AnyHash) + end # The ID of the individual related to the event. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/introspection.rbi b/rbi/finch_api/models/introspection.rbi index 081679f3..2249bd9d 100644 --- a/rbi/finch_api/models/introspection.rbi +++ b/rbi/finch_api/models/introspection.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class Introspection < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::Introspection, FinchAPI::Internal::AnyHash) + end # The Finch UUID of the token being introspected. sig { returns(String) } @@ -188,7 +191,12 @@ module FinchAPI class AuthenticationMethod < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Introspection::AuthenticationMethod, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -264,7 +272,12 @@ module FinchAPI class ConnectionStatus < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Introspection::AuthenticationMethod::ConnectionStatus, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :message @@ -375,7 +388,12 @@ module FinchAPI class ConnectionStatus < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Introspection::ConnectionStatus, + FinchAPI::Internal::AnyHash + ) + end # The datetime when the connection was last successfully synced. sig { returns(T.nilable(Time)) } diff --git a/rbi/finch_api/models/job_completion_event.rbi b/rbi/finch_api/models/job_completion_event.rbi index d37b94ce..d3bda9ec 100644 --- a/rbi/finch_api/models/job_completion_event.rbi +++ b/rbi/finch_api/models/job_completion_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class JobCompletionEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::JobCompletionEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::JobCompletionEvent::Data)) } attr_reader :data @@ -47,7 +50,12 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::JobCompletionEvent::Data, + FinchAPI::Internal::AnyHash + ) + end # The id of the job which has completed. sig { returns(String) } diff --git a/rbi/finch_api/models/jobs/automated_async_job.rbi b/rbi/finch_api/models/jobs/automated_async_job.rbi index b7fd553d..e2376edc 100644 --- a/rbi/finch_api/models/jobs/automated_async_job.rbi +++ b/rbi/finch_api/models/jobs/automated_async_job.rbi @@ -5,7 +5,12 @@ module FinchAPI module Jobs class AutomatedAsyncJob < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Jobs::AutomatedAsyncJob, + FinchAPI::Internal::AnyHash + ) + end # The datetime the job completed. sig { returns(T.nilable(Time)) } @@ -112,7 +117,12 @@ module FinchAPI class Params < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Jobs::AutomatedAsyncJob::Params, + FinchAPI::Internal::AnyHash + ) + end # The ID of the individual that the job was completed for. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/jobs/automated_create_params.rbi b/rbi/finch_api/models/jobs/automated_create_params.rbi index 2ffac899..1b0c03a1 100644 --- a/rbi/finch_api/models/jobs/automated_create_params.rbi +++ b/rbi/finch_api/models/jobs/automated_create_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Jobs::AutomatedCreateParams, + FinchAPI::Internal::AnyHash + ) + end # The type of job to start. sig { returns(FinchAPI::Jobs::AutomatedCreateParams::Type::OrSymbol) } @@ -80,7 +85,12 @@ module FinchAPI class Params < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Jobs::AutomatedCreateParams::Params, + FinchAPI::Internal::AnyHash + ) + end # The unique ID of the individual for W-4 data sync. sig { returns(String) } diff --git a/rbi/finch_api/models/jobs/automated_create_response.rbi b/rbi/finch_api/models/jobs/automated_create_response.rbi index d2dca1bd..18773c8a 100644 --- a/rbi/finch_api/models/jobs/automated_create_response.rbi +++ b/rbi/finch_api/models/jobs/automated_create_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Jobs class AutomatedCreateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Jobs::AutomatedCreateResponse, + FinchAPI::Internal::AnyHash + ) + end # The number of allowed refreshes per hour (per hour, fixed window) sig { returns(Integer) } diff --git a/rbi/finch_api/models/jobs/automated_list_params.rbi b/rbi/finch_api/models/jobs/automated_list_params.rbi index f95fa380..7a11e67e 100644 --- a/rbi/finch_api/models/jobs/automated_list_params.rbi +++ b/rbi/finch_api/models/jobs/automated_list_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Jobs::AutomatedListParams, + FinchAPI::Internal::AnyHash + ) + end # Number of items to return sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/jobs/automated_list_response.rbi b/rbi/finch_api/models/jobs/automated_list_response.rbi index 4e666677..511cb8ba 100644 --- a/rbi/finch_api/models/jobs/automated_list_response.rbi +++ b/rbi/finch_api/models/jobs/automated_list_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Jobs class AutomatedListResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Jobs::AutomatedListResponse, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T::Array[FinchAPI::Jobs::AutomatedAsyncJob]) } attr_accessor :data @@ -42,7 +47,12 @@ module FinchAPI class Meta < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Jobs::AutomatedListResponse::Meta, + FinchAPI::Internal::AnyHash + ) + end # Information about remaining quotas for this connection. Only applicable for # customers opted in to use Finch's Data Sync Refresh endpoint @@ -93,7 +103,12 @@ module FinchAPI class Quotas < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Jobs::AutomatedListResponse::Meta::Quotas, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -138,7 +153,12 @@ module FinchAPI class DataSyncAll < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Jobs::AutomatedListResponse::Meta::Quotas::DataSyncAll, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(Integer)) } attr_reader :allowed_refreshes diff --git a/rbi/finch_api/models/jobs/automated_retrieve_params.rbi b/rbi/finch_api/models/jobs/automated_retrieve_params.rbi index 8bcdcb4c..daa429b3 100644 --- a/rbi/finch_api/models/jobs/automated_retrieve_params.rbi +++ b/rbi/finch_api/models/jobs/automated_retrieve_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Jobs::AutomatedRetrieveParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/jobs/manual_async_job.rbi b/rbi/finch_api/models/jobs/manual_async_job.rbi index 07c83796..e8d6ea29 100644 --- a/rbi/finch_api/models/jobs/manual_async_job.rbi +++ b/rbi/finch_api/models/jobs/manual_async_job.rbi @@ -5,7 +5,9 @@ module FinchAPI module Jobs class ManualAsyncJob < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::Jobs::ManualAsyncJob, FinchAPI::Internal::AnyHash) + end # Specific information about the job, such as individual statuses for batch jobs. sig { returns(T.nilable(T::Array[T.anything])) } diff --git a/rbi/finch_api/models/jobs/manual_retrieve_params.rbi b/rbi/finch_api/models/jobs/manual_retrieve_params.rbi index 3c3c7fae..1b6a3dad 100644 --- a/rbi/finch_api/models/jobs/manual_retrieve_params.rbi +++ b/rbi/finch_api/models/jobs/manual_retrieve_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Jobs::ManualRetrieveParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/location.rbi b/rbi/finch_api/models/location.rbi index 2a98c0fd..61ebcd8d 100644 --- a/rbi/finch_api/models/location.rbi +++ b/rbi/finch_api/models/location.rbi @@ -3,7 +3,8 @@ module FinchAPI module Models class Location < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias { T.any(FinchAPI::Location, FinchAPI::Internal::AnyHash) } # City, district, suburb, town, or village. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/money.rbi b/rbi/finch_api/models/money.rbi index 2ab196e5..6510a1a1 100644 --- a/rbi/finch_api/models/money.rbi +++ b/rbi/finch_api/models/money.rbi @@ -3,7 +3,8 @@ module FinchAPI module Models class Money < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias { T.any(FinchAPI::Money, FinchAPI::Internal::AnyHash) } # Amount for money object (in cents) sig { returns(T.nilable(Integer)) } diff --git a/rbi/finch_api/models/operation_support_matrix.rbi b/rbi/finch_api/models/operation_support_matrix.rbi index 509921da..9d1ec9ad 100644 --- a/rbi/finch_api/models/operation_support_matrix.rbi +++ b/rbi/finch_api/models/operation_support_matrix.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class OperationSupportMatrix < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::OperationSupportMatrix, FinchAPI::Internal::AnyHash) + end # - `supported`: This operation is supported by both the provider and Finch # - `not_supported_by_finch`: This operation is not supported by Finch but diff --git a/rbi/finch_api/models/paging.rbi b/rbi/finch_api/models/paging.rbi index 86906989..8b1065fe 100644 --- a/rbi/finch_api/models/paging.rbi +++ b/rbi/finch_api/models/paging.rbi @@ -3,7 +3,8 @@ module FinchAPI module Models class Paging < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias { T.any(FinchAPI::Paging, FinchAPI::Internal::AnyHash) } # The current start index of the returned list of elements sig { returns(Integer) } diff --git a/rbi/finch_api/models/pay_statement_event.rbi b/rbi/finch_api/models/pay_statement_event.rbi index b74da438..7f169eb4 100644 --- a/rbi/finch_api/models/pay_statement_event.rbi +++ b/rbi/finch_api/models/pay_statement_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class PayStatementEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::PayStatementEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::PayStatementEvent::Data)) } attr_reader :data @@ -45,7 +48,12 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::PayStatementEvent::Data, + FinchAPI::Internal::AnyHash + ) + end # The ID of the individual associated with the pay statement. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/payment_event.rbi b/rbi/finch_api/models/payment_event.rbi index ca98e852..271f31f1 100644 --- a/rbi/finch_api/models/payment_event.rbi +++ b/rbi/finch_api/models/payment_event.rbi @@ -3,7 +3,10 @@ module FinchAPI module Models class PaymentEvent < FinchAPI::Models::BaseWebhookEvent - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::PaymentEvent, FinchAPI::Internal::AnyHash) + end sig { returns(T.nilable(FinchAPI::PaymentEvent::Data)) } attr_reader :data @@ -43,7 +46,9 @@ module FinchAPI class Data < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any(FinchAPI::PaymentEvent::Data, FinchAPI::Internal::AnyHash) + end # The date of the payment. sig { returns(String) } diff --git a/rbi/finch_api/models/payroll/pay_group_list_params.rbi b/rbi/finch_api/models/payroll/pay_group_list_params.rbi index 7beea8af..a64b3e53 100644 --- a/rbi/finch_api/models/payroll/pay_group_list_params.rbi +++ b/rbi/finch_api/models/payroll/pay_group_list_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Payroll::PayGroupListParams, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :individual_id diff --git a/rbi/finch_api/models/payroll/pay_group_list_response.rbi b/rbi/finch_api/models/payroll/pay_group_list_response.rbi index b83a5581..dae722e8 100644 --- a/rbi/finch_api/models/payroll/pay_group_list_response.rbi +++ b/rbi/finch_api/models/payroll/pay_group_list_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Payroll class PayGroupListResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Payroll::PayGroupListResponse, + FinchAPI::Internal::AnyHash + ) + end # Finch id (uuidv4) for the pay group sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/payroll/pay_group_retrieve_params.rbi b/rbi/finch_api/models/payroll/pay_group_retrieve_params.rbi index 5f4610ef..3b985d03 100644 --- a/rbi/finch_api/models/payroll/pay_group_retrieve_params.rbi +++ b/rbi/finch_api/models/payroll/pay_group_retrieve_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Payroll::PayGroupRetrieveParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/payroll/pay_group_retrieve_response.rbi b/rbi/finch_api/models/payroll/pay_group_retrieve_response.rbi index 5d980b81..6a4f31f5 100644 --- a/rbi/finch_api/models/payroll/pay_group_retrieve_response.rbi +++ b/rbi/finch_api/models/payroll/pay_group_retrieve_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Payroll class PayGroupRetrieveResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Payroll::PayGroupRetrieveResponse, + FinchAPI::Internal::AnyHash + ) + end # Finch id (uuidv4) for the pay group sig { returns(String) } diff --git a/rbi/finch_api/models/provider.rbi b/rbi/finch_api/models/provider.rbi index 51e08ee7..f20cbcf8 100644 --- a/rbi/finch_api/models/provider.rbi +++ b/rbi/finch_api/models/provider.rbi @@ -3,7 +3,8 @@ module FinchAPI module Models class Provider < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias { T.any(FinchAPI::Provider, FinchAPI::Internal::AnyHash) } # The id of the payroll provider used in Connect. sig { returns(T.nilable(String)) } @@ -147,7 +148,12 @@ module FinchAPI class AuthenticationMethod < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod, + FinchAPI::Internal::AnyHash + ) + end # Each benefit type and their supported features. If the benefit type is not # supported, the property will be null @@ -235,7 +241,12 @@ module FinchAPI class SupportedFields < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -411,7 +422,12 @@ module FinchAPI class Company < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Company, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -565,7 +581,12 @@ module FinchAPI class Accounts < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Company::Accounts, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :account_name @@ -632,7 +653,12 @@ module FinchAPI class Departments < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Company::Departments, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :name @@ -682,7 +708,10 @@ module FinchAPI class Parent < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Company::Departments::Parent, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -703,7 +732,12 @@ module FinchAPI class Entity < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Company::Entity, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :subtype @@ -734,7 +768,12 @@ module FinchAPI class Locations < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Company::Locations, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :city @@ -811,7 +850,12 @@ module FinchAPI class Directory < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Directory, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -873,7 +917,12 @@ module FinchAPI class Individuals < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Directory::Individuals, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -971,7 +1020,10 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Directory::Individuals::Manager, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -992,7 +1044,12 @@ module FinchAPI class Paging < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Directory::Paging, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :count @@ -1024,7 +1081,12 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Employment, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -1263,7 +1325,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Employment::Department, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :name @@ -1282,7 +1349,12 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Employment::Employment, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :subtype @@ -1313,7 +1385,12 @@ module FinchAPI class Income < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Employment::Income, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :amount @@ -1354,7 +1431,12 @@ module FinchAPI class Location < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Employment::Location, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :city @@ -1430,7 +1512,12 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Employment::Manager, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -1450,7 +1537,12 @@ module FinchAPI class Individual < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Individual, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -1627,7 +1719,12 @@ module FinchAPI class Emails < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Individual::Emails, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :data @@ -1656,7 +1753,12 @@ module FinchAPI class PhoneNumbers < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Individual::PhoneNumbers, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :data @@ -1685,7 +1787,12 @@ module FinchAPI class Residence < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Individual::Residence, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :city @@ -1762,7 +1869,12 @@ module FinchAPI class PayGroup < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayGroup, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -1820,7 +1932,12 @@ module FinchAPI class PayStatement < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayStatement, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -1882,7 +1999,12 @@ module FinchAPI class Paging < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayStatement::Paging, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T::Boolean) } attr_accessor :count @@ -1907,7 +2029,12 @@ module FinchAPI class PayStatements < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayStatement::PayStatements, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -2071,7 +2198,10 @@ module FinchAPI class Earnings < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::Earnings, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2126,7 +2256,10 @@ module FinchAPI class EmployeeDeductions < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::EmployeeDeductions, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2195,7 +2328,10 @@ module FinchAPI class EmployerContributions < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::EmployerContributions, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2242,7 +2378,10 @@ module FinchAPI class Taxes < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::PayStatement::PayStatements::Taxes, + FinchAPI::Internal::AnyHash + ) end sig { returns(T.nilable(T::Boolean)) } @@ -2312,7 +2451,12 @@ module FinchAPI class Payment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Payment, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :id @@ -2454,7 +2598,12 @@ module FinchAPI class PayPeriod < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Provider::AuthenticationMethod::SupportedFields::Payment::PayPeriod, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(T::Boolean)) } attr_reader :end_date diff --git a/rbi/finch_api/models/provider_list_params.rbi b/rbi/finch_api/models/provider_list_params.rbi index ca67a1b1..1f95177b 100644 --- a/rbi/finch_api/models/provider_list_params.rbi +++ b/rbi/finch_api/models/provider_list_params.rbi @@ -6,7 +6,10 @@ module FinchAPI extend FinchAPI::Internal::Type::RequestParameters::Converter include FinchAPI::Internal::Type::RequestParameters - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::ProviderListParams, FinchAPI::Internal::AnyHash) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/request_forwarding_forward_params.rbi b/rbi/finch_api/models/request_forwarding_forward_params.rbi index 8ec580dd..077e7160 100644 --- a/rbi/finch_api/models/request_forwarding_forward_params.rbi +++ b/rbi/finch_api/models/request_forwarding_forward_params.rbi @@ -6,7 +6,13 @@ module FinchAPI extend FinchAPI::Internal::Type::RequestParameters::Converter include FinchAPI::Internal::Type::RequestParameters - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any( + FinchAPI::RequestForwardingForwardParams, + FinchAPI::Internal::AnyHash + ) + end # The HTTP method for the forwarded request. Valid values include: `GET` , `POST` # , `PUT` , `DELETE` , and `PATCH`. diff --git a/rbi/finch_api/models/request_forwarding_forward_response.rbi b/rbi/finch_api/models/request_forwarding_forward_response.rbi index 2c0ac2e7..85f514a3 100644 --- a/rbi/finch_api/models/request_forwarding_forward_response.rbi +++ b/rbi/finch_api/models/request_forwarding_forward_response.rbi @@ -3,7 +3,13 @@ module FinchAPI module Models class RequestForwardingForwardResponse < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any( + FinchAPI::Models::RequestForwardingForwardResponse, + FinchAPI::Internal::AnyHash + ) + end # A string representation of the HTTP response body of the forwarded request’s # response received from the underlying integration’s API. This field may be null @@ -78,7 +84,12 @@ module FinchAPI class Request < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::RequestForwardingForwardResponse::Request, + FinchAPI::Internal::AnyHash + ) + end # The body that was specified for the forwarded request. If a value was not # specified in the original request, this value will be returned as null ; diff --git a/rbi/finch_api/models/sandbox/company_update_params.rbi b/rbi/finch_api/models/sandbox/company_update_params.rbi index 58410a68..265c165f 100644 --- a/rbi/finch_api/models/sandbox/company_update_params.rbi +++ b/rbi/finch_api/models/sandbox/company_update_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::CompanyUpdateParams, + FinchAPI::Internal::AnyHash + ) + end # An array of bank account objects associated with the payroll/HRIS system. sig do @@ -142,7 +147,12 @@ module FinchAPI class Account < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::CompanyUpdateParams::Account, + FinchAPI::Internal::AnyHash + ) + end # The name of the bank associated in the payroll/HRIS system. sig { returns(T.nilable(String)) } @@ -253,7 +263,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::CompanyUpdateParams::Department, + FinchAPI::Internal::AnyHash + ) + end # The department name. sig { returns(T.nilable(String)) } @@ -312,7 +327,12 @@ module FinchAPI class Parent < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::CompanyUpdateParams::Department::Parent, + FinchAPI::Internal::AnyHash + ) + end # The parent department's name. sig { returns(T.nilable(String)) } @@ -334,7 +354,12 @@ module FinchAPI class Entity < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::CompanyUpdateParams::Entity, + FinchAPI::Internal::AnyHash + ) + end # The tax payer subtype of the company. sig do diff --git a/rbi/finch_api/models/sandbox/company_update_response.rbi b/rbi/finch_api/models/sandbox/company_update_response.rbi index 85ff5ddb..0708ea38 100644 --- a/rbi/finch_api/models/sandbox/company_update_response.rbi +++ b/rbi/finch_api/models/sandbox/company_update_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Sandbox class CompanyUpdateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::CompanyUpdateResponse, + FinchAPI::Internal::AnyHash + ) + end # An array of bank account objects associated with the payroll/HRIS system. sig do @@ -153,7 +158,12 @@ module FinchAPI class Account < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::CompanyUpdateResponse::Account, + FinchAPI::Internal::AnyHash + ) + end # The name of the bank associated in the payroll/HRIS system. sig { returns(T.nilable(String)) } @@ -264,7 +274,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::CompanyUpdateResponse::Department, + FinchAPI::Internal::AnyHash + ) + end # The department name. sig { returns(T.nilable(String)) } @@ -323,7 +338,12 @@ module FinchAPI class Parent < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::CompanyUpdateResponse::Department::Parent, + FinchAPI::Internal::AnyHash + ) + end # The parent department's name. sig { returns(T.nilable(String)) } @@ -345,7 +365,12 @@ module FinchAPI class Entity < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::CompanyUpdateResponse::Entity, + FinchAPI::Internal::AnyHash + ) + end # The tax payer subtype of the company. sig do diff --git a/rbi/finch_api/models/sandbox/connection_create_params.rbi b/rbi/finch_api/models/sandbox/connection_create_params.rbi index 122ace5b..2d22c88f 100644 --- a/rbi/finch_api/models/sandbox/connection_create_params.rbi +++ b/rbi/finch_api/models/sandbox/connection_create_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::ConnectionCreateParams, + FinchAPI::Internal::AnyHash + ) + end # The provider associated with the connection sig { returns(String) } diff --git a/rbi/finch_api/models/sandbox/connection_create_response.rbi b/rbi/finch_api/models/sandbox/connection_create_response.rbi index d6ded80c..f1ae7d81 100644 --- a/rbi/finch_api/models/sandbox/connection_create_response.rbi +++ b/rbi/finch_api/models/sandbox/connection_create_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Sandbox class ConnectionCreateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::ConnectionCreateResponse, + FinchAPI::Internal::AnyHash + ) + end sig { returns(String) } attr_accessor :access_token diff --git a/rbi/finch_api/models/sandbox/connections/account_create_params.rbi b/rbi/finch_api/models/sandbox/connections/account_create_params.rbi index fe57f7df..e51f919a 100644 --- a/rbi/finch_api/models/sandbox/connections/account_create_params.rbi +++ b/rbi/finch_api/models/sandbox/connections/account_create_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::Connections::AccountCreateParams, + FinchAPI::Internal::AnyHash + ) + end sig { returns(String) } attr_accessor :company_id diff --git a/rbi/finch_api/models/sandbox/connections/account_create_response.rbi b/rbi/finch_api/models/sandbox/connections/account_create_response.rbi index e46aba9a..17d70435 100644 --- a/rbi/finch_api/models/sandbox/connections/account_create_response.rbi +++ b/rbi/finch_api/models/sandbox/connections/account_create_response.rbi @@ -6,7 +6,12 @@ module FinchAPI module Connections class AccountCreateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::Connections::AccountCreateResponse, + FinchAPI::Internal::AnyHash + ) + end sig { returns(String) } attr_accessor :access_token diff --git a/rbi/finch_api/models/sandbox/connections/account_update_params.rbi b/rbi/finch_api/models/sandbox/connections/account_update_params.rbi index 6881f0e9..13d8cb5c 100644 --- a/rbi/finch_api/models/sandbox/connections/account_update_params.rbi +++ b/rbi/finch_api/models/sandbox/connections/account_update_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::Connections::AccountUpdateParams, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(FinchAPI::ConnectionStatusType::OrSymbol)) } attr_reader :connection_status diff --git a/rbi/finch_api/models/sandbox/connections/account_update_response.rbi b/rbi/finch_api/models/sandbox/connections/account_update_response.rbi index 346c3537..41f0b3f3 100644 --- a/rbi/finch_api/models/sandbox/connections/account_update_response.rbi +++ b/rbi/finch_api/models/sandbox/connections/account_update_response.rbi @@ -6,7 +6,12 @@ module FinchAPI module Connections class AccountUpdateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::Connections::AccountUpdateResponse, + FinchAPI::Internal::AnyHash + ) + end # [DEPRECATED] Use `connection_id` to associate a connection with an access token sig { returns(String) } diff --git a/rbi/finch_api/models/sandbox/directory_create_params.rbi b/rbi/finch_api/models/sandbox/directory_create_params.rbi index 542a66bc..a1db145b 100644 --- a/rbi/finch_api/models/sandbox/directory_create_params.rbi +++ b/rbi/finch_api/models/sandbox/directory_create_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams, + FinchAPI::Internal::AnyHash + ) + end # Array of individuals to create. Takes all combined fields from `/individual` and # `/employment` endpoints. All fields are optional. @@ -55,7 +60,12 @@ module FinchAPI class Body < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams::Body, + FinchAPI::Internal::AnyHash + ) + end # Worker's compensation classification code for this employee sig { returns(T.nilable(String)) } @@ -472,7 +482,12 @@ module FinchAPI class CustomField < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams::Body::CustomField, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :name @@ -500,7 +515,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams::Body::Department, + FinchAPI::Internal::AnyHash + ) + end # The name of the department associated with the individual. sig { returns(T.nilable(String)) } @@ -521,7 +541,12 @@ module FinchAPI class Email < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams::Body::Email, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :data @@ -601,7 +626,12 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams::Body::Employment, + FinchAPI::Internal::AnyHash + ) + end # The secondary employment type of the individual. Options: `full_time`, # `part_time`, `intern`, `temp`, `seasonal` and `individual_contractor`. @@ -927,7 +957,12 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams::Body::Manager, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(T.nilable(String)) } @@ -951,7 +986,12 @@ module FinchAPI class PhoneNumber < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::DirectoryCreateParams::Body::PhoneNumber, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :data diff --git a/rbi/finch_api/models/sandbox/employment_update_params.rbi b/rbi/finch_api/models/sandbox/employment_update_params.rbi index bfd932a7..c63b7232 100644 --- a/rbi/finch_api/models/sandbox/employment_update_params.rbi +++ b/rbi/finch_api/models/sandbox/employment_update_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::EmploymentUpdateParams, + FinchAPI::Internal::AnyHash + ) + end # Worker's compensation classification code for this employee sig { returns(T.nilable(String)) } @@ -276,7 +281,12 @@ module FinchAPI class CustomField < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::EmploymentUpdateParams::CustomField, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :name @@ -304,7 +314,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::EmploymentUpdateParams::Department, + FinchAPI::Internal::AnyHash + ) + end # The name of the department associated with the individual. sig { returns(T.nilable(String)) } @@ -325,7 +340,12 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::EmploymentUpdateParams::Employment, + FinchAPI::Internal::AnyHash + ) + end # The secondary employment type of the individual. Options: `full_time`, # `part_time`, `intern`, `temp`, `seasonal` and `individual_contractor`. @@ -541,7 +561,12 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::EmploymentUpdateParams::Manager, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/sandbox/employment_update_response.rbi b/rbi/finch_api/models/sandbox/employment_update_response.rbi index c04017b7..308d3fd6 100644 --- a/rbi/finch_api/models/sandbox/employment_update_response.rbi +++ b/rbi/finch_api/models/sandbox/employment_update_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Sandbox class EmploymentUpdateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::EmploymentUpdateResponse, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(T.nilable(String)) } @@ -293,7 +298,12 @@ module FinchAPI class CustomField < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::EmploymentUpdateResponse::CustomField, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :name @@ -321,7 +331,12 @@ module FinchAPI class Department < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::EmploymentUpdateResponse::Department, + FinchAPI::Internal::AnyHash + ) + end # The name of the department associated with the individual. sig { returns(T.nilable(String)) } @@ -342,7 +357,12 @@ module FinchAPI class Employment < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::EmploymentUpdateResponse::Employment, + FinchAPI::Internal::AnyHash + ) + end # The secondary employment type of the individual. Options: `full_time`, # `part_time`, `intern`, `temp`, `seasonal` and `individual_contractor`. @@ -558,7 +578,12 @@ module FinchAPI class Manager < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::EmploymentUpdateResponse::Manager, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(T.nilable(String)) } diff --git a/rbi/finch_api/models/sandbox/individual_update_params.rbi b/rbi/finch_api/models/sandbox/individual_update_params.rbi index a6b8a9f1..76c3b06c 100644 --- a/rbi/finch_api/models/sandbox/individual_update_params.rbi +++ b/rbi/finch_api/models/sandbox/individual_update_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::IndividualUpdateParams, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :dob @@ -195,7 +200,12 @@ module FinchAPI class Email < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::IndividualUpdateParams::Email, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :data @@ -382,7 +392,12 @@ module FinchAPI class PhoneNumber < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::IndividualUpdateParams::PhoneNumber, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :data diff --git a/rbi/finch_api/models/sandbox/individual_update_response.rbi b/rbi/finch_api/models/sandbox/individual_update_response.rbi index c3f3a3bf..2b7eaf22 100644 --- a/rbi/finch_api/models/sandbox/individual_update_response.rbi +++ b/rbi/finch_api/models/sandbox/individual_update_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Sandbox class IndividualUpdateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::IndividualUpdateResponse, + FinchAPI::Internal::AnyHash + ) + end # A stable Finch `id` (UUID v4) for an individual in the company. sig { returns(T.nilable(String)) } @@ -204,7 +209,12 @@ module FinchAPI class Email < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::IndividualUpdateResponse::Email, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :data @@ -394,7 +404,12 @@ module FinchAPI class PhoneNumber < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::IndividualUpdateResponse::PhoneNumber, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_accessor :data diff --git a/rbi/finch_api/models/sandbox/job_create_params.rbi b/rbi/finch_api/models/sandbox/job_create_params.rbi index c819c197..224549b1 100644 --- a/rbi/finch_api/models/sandbox/job_create_params.rbi +++ b/rbi/finch_api/models/sandbox/job_create_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::JobCreateParams, + FinchAPI::Internal::AnyHash + ) + end # The type of job to start. Currently the only supported type is `data_sync_all` sig { returns(FinchAPI::Sandbox::JobCreateParams::Type::OrSymbol) } diff --git a/rbi/finch_api/models/sandbox/job_create_response.rbi b/rbi/finch_api/models/sandbox/job_create_response.rbi index 25004398..c6004498 100644 --- a/rbi/finch_api/models/sandbox/job_create_response.rbi +++ b/rbi/finch_api/models/sandbox/job_create_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Sandbox class JobCreateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::JobCreateResponse, + FinchAPI::Internal::AnyHash + ) + end # The number of allowed refreshes per hour (per hour, fixed window) sig { returns(Integer) } diff --git a/rbi/finch_api/models/sandbox/jobs/configuration_retrieve_params.rbi b/rbi/finch_api/models/sandbox/jobs/configuration_retrieve_params.rbi index 60578aec..422b840a 100644 --- a/rbi/finch_api/models/sandbox/jobs/configuration_retrieve_params.rbi +++ b/rbi/finch_api/models/sandbox/jobs/configuration_retrieve_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::Jobs::ConfigurationRetrieveParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/sandbox/jobs/configuration_update_params.rbi b/rbi/finch_api/models/sandbox/jobs/configuration_update_params.rbi index af721a6f..87047cbc 100644 --- a/rbi/finch_api/models/sandbox/jobs/configuration_update_params.rbi +++ b/rbi/finch_api/models/sandbox/jobs/configuration_update_params.rbi @@ -9,7 +9,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::Jobs::ConfigurationUpdateParams, + FinchAPI::Internal::AnyHash + ) + end sig do params(request_options: FinchAPI::RequestOptions::OrHash).returns( diff --git a/rbi/finch_api/models/sandbox/jobs/sandbox_job_configuration.rbi b/rbi/finch_api/models/sandbox/jobs/sandbox_job_configuration.rbi index 14ec6ae3..af55a9b2 100644 --- a/rbi/finch_api/models/sandbox/jobs/sandbox_job_configuration.rbi +++ b/rbi/finch_api/models/sandbox/jobs/sandbox_job_configuration.rbi @@ -6,7 +6,12 @@ module FinchAPI module Jobs class SandboxJobConfiguration < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::Jobs::SandboxJobConfiguration, + FinchAPI::Internal::AnyHash + ) + end sig do returns( diff --git a/rbi/finch_api/models/sandbox/payment_create_params.rbi b/rbi/finch_api/models/sandbox/payment_create_params.rbi index c7abb730..247cb329 100644 --- a/rbi/finch_api/models/sandbox/payment_create_params.rbi +++ b/rbi/finch_api/models/sandbox/payment_create_params.rbi @@ -8,7 +8,12 @@ module FinchAPI include FinchAPI::Internal::Type::RequestParameters OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams, + FinchAPI::Internal::AnyHash + ) + end sig { returns(T.nilable(String)) } attr_reader :end_date @@ -76,7 +81,12 @@ module FinchAPI class PayStatement < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement, + FinchAPI::Internal::AnyHash + ) + end # The array of earnings objects associated with this pay statement sig do @@ -300,7 +310,12 @@ module FinchAPI class Earning < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::Earning, + FinchAPI::Internal::AnyHash + ) + end # The earnings amount in cents. sig { returns(T.nilable(Integer)) } @@ -403,7 +418,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::Earning::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -445,7 +465,10 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::Earning::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) end # The metadata to be attached to the entity by existing rules. It is a key-value @@ -577,7 +600,12 @@ module FinchAPI class EmployeeDeduction < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::EmployeeDeduction, + FinchAPI::Internal::AnyHash + ) + end # The deduction amount in cents. sig { returns(T.nilable(Integer)) } @@ -666,7 +694,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::EmployeeDeduction::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -708,7 +741,10 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::EmployeeDeduction::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) end # The metadata to be attached to the entity by existing rules. It is a key-value @@ -750,7 +786,12 @@ module FinchAPI class EmployerContribution < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::EmployerContribution, + FinchAPI::Internal::AnyHash + ) + end # The contribution amount in cents. sig { returns(T.nilable(Integer)) } @@ -831,7 +872,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::EmployerContribution::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -873,7 +919,10 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::EmployerContribution::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) end # The metadata to be attached to the entity by existing rules. It is a key-value @@ -936,6 +985,11 @@ module FinchAPI :direct_deposit, FinchAPI::Sandbox::PaymentCreateParams::PayStatement::PaymentMethod::TaggedSymbol ) + OTHER = + T.let( + :other, + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::PaymentMethod::TaggedSymbol + ) sig do override.returns( @@ -950,7 +1004,12 @@ module FinchAPI class Tax < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::Tax, + FinchAPI::Internal::AnyHash + ) + end # The tax amount in cents. sig { returns(T.nilable(Integer)) } @@ -1051,7 +1110,12 @@ module FinchAPI class Attributes < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::Tax::Attributes, + FinchAPI::Internal::AnyHash + ) + end sig do returns( @@ -1093,7 +1157,10 @@ module FinchAPI class Metadata < FinchAPI::Internal::Type::BaseModel OrHash = T.type_alias do - T.any(T.self_type, FinchAPI::Internal::AnyHash) + T.any( + FinchAPI::Sandbox::PaymentCreateParams::PayStatement::Tax::Attributes::Metadata, + FinchAPI::Internal::AnyHash + ) end # The metadata to be attached to the entity by existing rules. It is a key-value diff --git a/rbi/finch_api/models/sandbox/payment_create_response.rbi b/rbi/finch_api/models/sandbox/payment_create_response.rbi index 0026d74c..654c74b4 100644 --- a/rbi/finch_api/models/sandbox/payment_create_response.rbi +++ b/rbi/finch_api/models/sandbox/payment_create_response.rbi @@ -5,7 +5,12 @@ module FinchAPI module Sandbox class PaymentCreateResponse < FinchAPI::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + T.type_alias do + T.any( + FinchAPI::Models::Sandbox::PaymentCreateResponse, + FinchAPI::Internal::AnyHash + ) + end # The date of the payment. sig { returns(String) } diff --git a/rbi/finch_api/request_options.rbi b/rbi/finch_api/request_options.rbi index 75da1f93..1fb7a7c9 100644 --- a/rbi/finch_api/request_options.rbi +++ b/rbi/finch_api/request_options.rbi @@ -7,7 +7,10 @@ module FinchAPI # When making a request, you can pass an actual {RequestOptions} instance, or # simply pass a Hash with symbol keys matching the attributes on this class. class RequestOptions < FinchAPI::Internal::Type::BaseModel - OrHash = T.type_alias { T.any(T.self_type, FinchAPI::Internal::AnyHash) } + OrHash = + T.type_alias do + T.any(FinchAPI::RequestOptions, FinchAPI::Internal::AnyHash) + end # @api private sig { params(opts: FinchAPI::RequestOptions::OrHash).void } diff --git a/sig/finch_api/internal.rbs b/sig/finch_api/internal.rbs index 2705b868..989f54a7 100644 --- a/sig/finch_api/internal.rbs +++ b/sig/finch_api/internal.rbs @@ -1,5 +1,7 @@ module FinchAPI module Internal + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + OMIT: Object end end diff --git a/sig/finch_api/internal/single_page.rbs b/sig/finch_api/internal/single_page.rbs index d3a79153..42d40949 100644 --- a/sig/finch_api/internal/single_page.rbs +++ b/sig/finch_api/internal/single_page.rbs @@ -5,7 +5,7 @@ module FinchAPI def next_page?: -> bool - def next_page: -> self + def next_page: -> instance def auto_paging_each: { (Elem arg0) -> void } -> void diff --git a/sig/finch_api/internal/transport/base_client.rbs b/sig/finch_api/internal/transport/base_client.rbs index 2d9858d4..a7d0e7a3 100644 --- a/sig/finch_api/internal/transport/base_client.rbs +++ b/sig/finch_api/internal/transport/base_client.rbs @@ -2,6 +2,8 @@ module FinchAPI module Internal module Transport class BaseClient + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + type request_components = { method: Symbol, @@ -20,7 +22,6 @@ module FinchAPI model: FinchAPI::Internal::Type::Converter::input?, options: FinchAPI::request_opts? } - type request_input = { method: Symbol, @@ -55,6 +56,20 @@ module FinchAPI stream: Enumerable[String]? ) -> void + attr_reader base_url: URI::Generic + + attr_reader timeout: Float + + attr_reader max_retries: Integer + + attr_reader initial_retry_delay: Float + + attr_reader max_retry_delay: Float + + attr_reader headers: ::Hash[String, String] + + attr_reader idempotency_header: String? + # @api private attr_reader requester: FinchAPI::Internal::Transport::PooledNetRequester diff --git a/sig/finch_api/internal/transport/pooled_net_requester.rbs b/sig/finch_api/internal/transport/pooled_net_requester.rbs index a6fcef47..7274399e 100644 --- a/sig/finch_api/internal/transport/pooled_net_requester.rbs +++ b/sig/finch_api/internal/transport/pooled_net_requester.rbs @@ -2,6 +2,8 @@ module FinchAPI module Internal module Transport class PooledNetRequester + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + type request = { method: Symbol, @@ -13,6 +15,8 @@ module FinchAPI KEEP_ALIVE_TIMEOUT: 30 + DEFAULT_MAX_CONNECTIONS: Integer + def self.connect: (URI::Generic url) -> top def self.calibrate_socket_timeout: (top conn, Float deadline) -> void diff --git a/sig/finch_api/internal/type/base_model.rbs b/sig/finch_api/internal/type/base_model.rbs index 031f5ff8..3e759953 100644 --- a/sig/finch_api/internal/type/base_model.rbs +++ b/sig/finch_api/internal/type/base_model.rbs @@ -3,10 +3,13 @@ module FinchAPI module Type class BaseModel extend FinchAPI::Internal::Type::Converter + extend FinchAPI::Internal::Util::SorbetRuntimeSupport type known_field = { mode: (:coerce | :dump)?, required: bool, nilable: bool } + def self.inherited: (self child) -> void + def self.known_fields: -> ::Hash[Symbol, (FinchAPI::Internal::Type::BaseModel::known_field & { type_fn: (^-> FinchAPI::Internal::Type::Converter::input) })] @@ -65,23 +68,26 @@ module FinchAPI state: FinchAPI::Internal::Type::Converter::dump_state ) -> (::Hash[top, top] | top) + def self.recursively_to_h: ( + FinchAPI::Internal::Type::BaseModel model, + convert: bool + ) -> ::Hash[Symbol, top] + def []: (Symbol key) -> top? def to_h: -> ::Hash[Symbol, top] alias to_hash to_h - def deconstruct_keys: (::Array[Symbol]? keys) -> ::Hash[Symbol, top] + def deep_to_h: -> ::Hash[Symbol, top] - def self.walk: ( - FinchAPI::Internal::Type::BaseModel model - ) -> ::Hash[Symbol, top] + def deconstruct_keys: (::Array[Symbol]? keys) -> ::Hash[Symbol, top] def to_json: (*top a) -> String def to_yaml: (*top a) -> String - def initialize: (?::Hash[Symbol, top] | self data) -> void + def initialize: (?::Hash[Symbol, top] | instance data) -> void def self.inspect: (?depth: Integer) -> String diff --git a/sig/finch_api/internal/type/base_page.rbs b/sig/finch_api/internal/type/base_page.rbs index 8ac650c6..e7c99538 100644 --- a/sig/finch_api/internal/type/base_page.rbs +++ b/sig/finch_api/internal/type/base_page.rbs @@ -4,7 +4,7 @@ module FinchAPI module BasePage[Elem] def next_page?: -> bool - def next_page: -> self + def next_page: -> instance def auto_paging_each: { (Elem arg0) -> void } -> void diff --git a/sig/finch_api/internal/type/converter.rbs b/sig/finch_api/internal/type/converter.rbs index a99d5e89..304b7dcf 100644 --- a/sig/finch_api/internal/type/converter.rbs +++ b/sig/finch_api/internal/type/converter.rbs @@ -2,6 +2,8 @@ module FinchAPI module Internal module Type module Converter + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + type input = FinchAPI::Internal::Type::Converter | Class type coerce_state = diff --git a/sig/finch_api/internal/type/enum.rbs b/sig/finch_api/internal/type/enum.rbs index 9db0a5e5..363980da 100644 --- a/sig/finch_api/internal/type/enum.rbs +++ b/sig/finch_api/internal/type/enum.rbs @@ -3,6 +3,7 @@ module FinchAPI module Type module Enum include FinchAPI::Internal::Type::Converter + include FinchAPI::Internal::Util::SorbetRuntimeSupport def self.values: -> ::Array[(nil | bool | Integer | Float | Symbol)] diff --git a/sig/finch_api/internal/type/union.rbs b/sig/finch_api/internal/type/union.rbs index 2b42c3ef..1517c991 100644 --- a/sig/finch_api/internal/type/union.rbs +++ b/sig/finch_api/internal/type/union.rbs @@ -3,6 +3,7 @@ module FinchAPI module Type module Union include FinchAPI::Internal::Type::Converter + include FinchAPI::Internal::Util::SorbetRuntimeSupport private def self.known_variants: -> ::Array[[Symbol?, (^-> FinchAPI::Internal::Type::Converter::input)]] diff --git a/sig/finch_api/internal/util.rbs b/sig/finch_api/internal/util.rbs index c9605c99..a2adf4fc 100644 --- a/sig/finch_api/internal/util.rbs +++ b/sig/finch_api/internal/util.rbs @@ -1,6 +1,8 @@ module FinchAPI module Internal module Util + extend FinchAPI::Internal::Util::SorbetRuntimeSupport + def self?.monotonic_secs: -> Float def self?.arch: -> String @@ -155,6 +157,17 @@ module FinchAPI def self?.decode_sse: ( Enumerable[String] lines ) -> Enumerable[FinchAPI::Internal::Util::server_sent_event] + + module SorbetRuntimeSupport + class MissingSorbetRuntimeError < ::RuntimeError + end + + private def sorbet_runtime_constants: -> ::Hash[Symbol, top] + + def const_missing: (Symbol name) -> void + + def define_sorbet_constant!: (Symbol name) { -> top } -> void + end end end end diff --git a/sig/finch_api/models/hris/pay_statement.rbs b/sig/finch_api/models/hris/pay_statement.rbs index 5542547c..f8b18b32 100644 --- a/sig/finch_api/models/hris/pay_statement.rbs +++ b/sig/finch_api/models/hris/pay_statement.rbs @@ -262,13 +262,14 @@ module FinchAPI end end - type payment_method = :check | :direct_deposit + type payment_method = :check | :direct_deposit | :other module PaymentMethod extend FinchAPI::Internal::Type::Enum CHECK: :check DIRECT_DEPOSIT: :direct_deposit + OTHER: :other def self?.values: -> ::Array[FinchAPI::HRIS::PayStatement::payment_method] end diff --git a/sig/finch_api/models/sandbox/payment_create_params.rbs b/sig/finch_api/models/sandbox/payment_create_params.rbs index 7019dbc7..b70453e0 100644 --- a/sig/finch_api/models/sandbox/payment_create_params.rbs +++ b/sig/finch_api/models/sandbox/payment_create_params.rbs @@ -295,13 +295,14 @@ module FinchAPI end end - type payment_method = :check | :direct_deposit + type payment_method = :check | :direct_deposit | :other module PaymentMethod extend FinchAPI::Internal::Type::Enum CHECK: :check DIRECT_DEPOSIT: :direct_deposit + OTHER: :other def self?.values: -> ::Array[FinchAPI::Sandbox::PaymentCreateParams::PayStatement::payment_method] end diff --git a/test/finch_api/client_test.rb b/test/finch_api/client_test.rb index 54a36d04..5208163f 100644 --- a/test/finch_api/client_test.rb +++ b/test/finch_api/client_test.rb @@ -3,14 +3,9 @@ require_relative "test_helper" class FinchAPITest < Minitest::Test + extend Minitest::Serial include WebMock::API - class << self - def test_order = :random - - def run_one_method(...) = Minitest::Runnable.run_one_method(...) - end - def before_all super WebMock.enable! diff --git a/test/finch_api/internal/sorbet_runtime_support_test.rb b/test/finch_api/internal/sorbet_runtime_support_test.rb new file mode 100644 index 00000000..2815cf86 --- /dev/null +++ b/test/finch_api/internal/sorbet_runtime_support_test.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +class FinchAPI::Test::SorbetRuntimeSupportTest < Minitest::Test + i_suck_and_my_tests_are_order_dependent! + + module E + extend FinchAPI::Internal::Type::Enum + + define_sorbet_constant!(:TaggedSymbol) { 1 } + end + + module U + extend FinchAPI::Internal::Type::Union + + define_sorbet_constant!(:Variants) { 2 } + end + + class M < FinchAPI::Internal::Type::BaseModel + define_sorbet_constant!(:OrHash) { 3 } + end + + def test_nil_aliases + err = FinchAPI::Internal::Util::SorbetRuntimeSupport::MissingSorbetRuntimeError + + assert_raises(err) { FinchAPI::Internal::AnyHash } + assert_raises(err) { FinchAPI::Internal::Type::Converter::Input } + assert_raises(err) { FinchAPI::Internal::Type::Converter::CoerceState } + assert_raises(err) { FinchAPI::Internal::Type::Converter::DumpState } + assert_raises(err) { FinchAPI::Internal::Type::BaseModel::KnownField } + assert_raises(err) { FinchAPI::Internal::Util::ParsedUri } + assert_raises(err) { FinchAPI::Internal::Util::ServerSentEvent } + assert_raises(err) { FinchAPI::Internal::Transport::BaseClient::RequestComponents } + assert_raises(err) { FinchAPI::Internal::Transport::BaseClient::RequestInput } + assert_raises(err) { FinchAPI::Internal::Transport::PooledNetRequester::Request } + assert_raises(err) { E::TaggedSymbol } + assert_raises(err) { U::Variants } + assert_raises(err) { M::OrHash } + end + + def test_stubbed_aliases + Kernel.instance_eval { const_set(:T, nil) } + + assert_equal(1, E::TaggedSymbol) + assert_equal(2, U::Variants) + assert_equal(3, M::OrHash) + end +end diff --git a/test/finch_api/test_helper.rb b/test/finch_api/test_helper.rb index 3f5ffc15..2f623e3b 100644 --- a/test/finch_api/test_helper.rb +++ b/test/finch_api/test_helper.rb @@ -52,6 +52,12 @@ def initialize end end +module Minitest::Serial + def test_order = :random + + def run_one_method(...) = Minitest::Runnable.run_one_method(...) +end + class Minitest::Test include Minitest::Hooks