dub 0.12.4 → 0.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/metadata_fields.rb +3 -1
  3. data/lib/crystalline/module.rb +6 -2
  4. data/lib/crystalline/types.rb +52 -0
  5. data/lib/open_api_sdk/models/operations/listevents_request.rb +60 -64
  6. data/lib/open_api_sdk/models/operations/listevents_request.rbi +20 -22
  7. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +60 -64
  8. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rbi +20 -22
  9. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +1 -1
  10. data/lib/open_api_sdk/models/operations.rb +0 -6
  11. data/lib/open_api_sdk/models/shared/analyticstoplinks.rb +10 -6
  12. data/lib/open_api_sdk/models/shared/analyticstoplinks.rbi +4 -2
  13. data/lib/open_api_sdk/models/shared/partneranalyticstoplinks.rb +10 -6
  14. data/lib/open_api_sdk/models/shared/partneranalyticstoplinks.rbi +4 -2
  15. data/lib/open_api_sdk/sdkconfiguration.rb +3 -3
  16. metadata +2 -14
  17. data/lib/open_api_sdk/models/operations/continent.rb +0 -24
  18. data/lib/open_api_sdk/models/operations/continent.rbi +0 -11
  19. data/lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rb +0 -27
  20. data/lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rbi +0 -11
  21. data/lib/open_api_sdk/models/operations/queryparam_continent.rb +0 -24
  22. data/lib/open_api_sdk/models/operations/queryparam_continent.rbi +0 -11
  23. data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +0 -21
  24. data/lib/open_api_sdk/models/operations/queryparam_trigger.rbi +0 -11
  25. data/lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rb +0 -27
  26. data/lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rbi +0 -11
  27. data/lib/open_api_sdk/models/operations/trigger.rb +0 -21
  28. data/lib/open_api_sdk/models/operations/trigger.rbi +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66da0756afa302568f27f615694cf428bc3f0e8b113e80c4238ae5263af1d0f4
4
- data.tar.gz: 5bbb12ae587c7d37f366c86f0fa215f9273b26990530e705825c631141d5d163
3
+ metadata.gz: 41735c609fdd842dc1c2cbc512b1131e3e3ca825b233a70b5251e36137970a86
4
+ data.tar.gz: 7f7f5975a408bf9a6969d1f6f086b07dacf325fe19edf4ee910b9cea37daf200
5
5
  SHA512:
6
- metadata.gz: 469bd062d22c8b5a90f0d9739de0eb0c54c7bc9a8b9a59940f0db01cb2bc4597ce1dc7367096eb35b869cf446da72b39b5f14a6b06a55de6eb6622f981ad9323
7
- data.tar.gz: ef641f821c7f66680853ae70cc89bd546acc32b89adb8fda3c1bde600a2895a080c27d70cdb96fd65d61bc148df51f10e472763bd4c013100265b8cd0a4fe16f
6
+ metadata.gz: 6f051245203954c7078adb22c10d73fafd4778e20b9eb2ff983a02f947c56c3d6d0201aef1da5f8924549a424bf39413a7c65637bf9e7cadb8309b13c5b25058
7
+ data.tar.gz: 3d032d1af64548fedd00a6b7123d26488f25091b8788b7751512895f8f0f9d00e1aee241b59adb97da988fb4b66662a6c8092d52131946ac5338db62cefec9a1
@@ -84,7 +84,9 @@ module Crystalline
84
84
  # If field is nilable, and the value is not in the dict, just move to the next field
85
85
  next if value.nil?
86
86
 
87
- if Crystalline::Utils.arr? field_type
87
+ if field_type.is_a?(Crystalline::DiscriminatedUnion)
88
+ to_build[key] = field_type.parse(value)
89
+ elsif Crystalline::Utils.arr? field_type
88
90
  inner_type = Crystalline::Utils.arr_of(field_type)
89
91
  unmarshalled_array = value.map { |f| unmarshal_single(inner_type, f, format_metadata) }
90
92
  to_build[key] = unmarshalled_array
@@ -34,7 +34,9 @@ module Crystalline
34
34
  if Crystalline::Utils.nilable? type
35
35
  type = Crystalline::Utils.nilable_of type
36
36
  end
37
- if type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
37
+ if type.is_a?(Crystalline::DiscriminatedUnion)
38
+ type.parse(data)
39
+ elsif type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
38
40
  type.from_dict(data)
39
41
  elsif Crystalline::Utils.union? type
40
42
  union_types = Crystalline::Utils.get_union_types(type)
@@ -123,7 +125,9 @@ module Crystalline
123
125
  inexact = 0
124
126
  unmatched = 0
125
127
 
126
- if value.class.include?(::Crystalline::MetadataFields)
128
+ if value.is_a?(Crystalline::Unknown)
129
+ return [0, 0, 0]
130
+ elsif value.class.include?(::Crystalline::MetadataFields)
127
131
  value.fields.each do |field|
128
132
  format_metadata = field.metadata.fetch(:format_json, {})
129
133
  lookup = format_metadata.fetch(:letter_case, nil)&.call
@@ -40,6 +40,58 @@ module Crystalline
40
40
  class Boolean
41
41
  end
42
42
 
43
+ # Wraps an unrecognized payload from an open discriminated union.
44
+ # Produced when the discriminator value is missing, unknown, or schema validation fails.
45
+ class Unknown
46
+ attr_reader :raw
47
+
48
+ def initialize(raw:)
49
+ @raw = raw
50
+ end
51
+
52
+ def unknown?
53
+ true
54
+ end
55
+ end
56
+
57
+ # Forward-compatible discriminated union parser.
58
+ # Known discriminator values are deserialized to their mapped types.
59
+ # Unknown or invalid payloads are captured as Crystalline::Unknown.
60
+ class DiscriminatedUnion
61
+ attr_reader :discriminator, :variants
62
+
63
+ def initialize(discriminator, variants)
64
+ @discriminator = discriminator
65
+ @variants = variants
66
+ end
67
+
68
+ def parse(payload)
69
+ unless payload.is_a?(::Hash)
70
+ return Unknown.new(raw: payload)
71
+ end
72
+
73
+ disc_value = payload[@discriminator]
74
+ unless disc_value.is_a?(::String)
75
+ return Unknown.new(raw: payload)
76
+ end
77
+
78
+ variant_type = @variants[disc_value]
79
+ unless variant_type
80
+ return Unknown.new(raw: payload)
81
+ end
82
+
83
+ begin
84
+ Crystalline.unmarshal_json(payload, variant_type)
85
+ rescue StandardError
86
+ Unknown.new(raw: payload)
87
+ end
88
+ end
89
+ end
90
+
91
+ def self.unknown?(value)
92
+ value.is_a?(Unknown)
93
+ end
94
+
43
95
  module Enum
44
96
  def self.included(base)
45
97
  base.extend(ClassMethods)
@@ -12,19 +12,23 @@ module OpenApiSDK
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # The domain to filter analytics for.
15
+ # The domain to filter analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `dub.co`, `dub.co,google.com`, `-spam.com`.
16
16
  field :domain, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': true } }
17
17
  # The slug of the short link to retrieve analytics for. Must be used along with the corresponding `domain` of the short link to fetch analytics for a specific short link.
18
18
  field :key, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'key', 'style': 'form', 'explode': true } }
19
- # The unique ID of the short link on Dub to retrieve analytics for.
19
+ # The unique ID of the link to retrieve analytics for.Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `link_123`, `link_123,link_456`, `-link_789`.
20
20
  field :link_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'linkId', 'style': 'form', 'explode': true } }
21
21
  # The ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter.
22
22
  field :external_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'externalId', 'style': 'form', 'explode': true } }
23
- # The ID of the tenant that created the link inside your system.
23
+ # The ID of the tenant that created the link inside your system. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `tenant_123`, `tenant_123,tenant_456`, `-tenant_789`.
24
24
  field :tenant_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } }
25
- # The ID of the program to retrieve analytics for.
26
- field :program_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'programId', 'style': 'form', 'explode': true } }
27
- # The ID of the partner to retrieve analytics for.
25
+ # The tag ID to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `tag_123`, `tag_123,tag_456`, `-tag_789`.
26
+ field :tag_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
27
+ # The folder ID to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `folder_123`, `folder_123,folder_456`, `-folder_789`. If not provided, return analytics for all links.
28
+ field :folder_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } }
29
+ # The group ID to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `grp_123`, `grp_123,grp_456`, `-grp_789`.
30
+ field :group_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'groupId', 'style': 'form', 'explode': true } }
31
+ # The ID of the partner to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `pn_123`, `pn_123,pn_456`, `-pn_789`.
28
32
  field :partner_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } }
29
33
  # The ID of the customer to retrieve analytics for.
30
34
  field :customer_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'customerId', 'style': 'form', 'explode': true } }
@@ -34,60 +38,54 @@ module OpenApiSDK
34
38
  field :start, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'start', 'style': 'form', 'explode': true } }
35
39
  # The end date and time when to retrieve analytics from. If not provided, defaults to the current date. If set along with `start`, takes precedence over `interval`.
36
40
  field :end_, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'end', 'style': 'form', 'explode': true } }
37
- # The country to retrieve analytics for. Must be passed as a 2-letter ISO 3166-1 country code. See https://d.to/geo for more information.
41
+ # The country to retrieve analytics for. Must be passed as a 2-letter ISO 3166-1 country code (see https://d.to/geo). Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `US`, `US,BR,FR`, `-US`.
38
42
  field :country, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'country', 'style': 'form', 'explode': true } }
39
- # The city to retrieve analytics for.
43
+ # The city to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `New York`, `New York,London`, `-New York`.
40
44
  field :city, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'city', 'style': 'form', 'explode': true } }
41
- # The ISO 3166-2 region code to retrieve analytics for.
45
+ # The ISO 3166-2 region code to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `NY`, `NY,CA`, `-NY`.
42
46
  field :region, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'region', 'style': 'form', 'explode': true } }
43
- # The continent to retrieve analytics for.
44
- field :continent, Crystalline::Nilable.new(Models::Operations::QueryParamContinent), { 'query_param': { 'field_name': 'continent', 'style': 'form', 'explode': true } }
45
- # The device to retrieve analytics for.
47
+ # The continent to retrieve analytics for. Valid values: AF, AN, AS, EU, NA, OC, SA. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `NA`, `NA,EU`, `-AS`.
48
+ field :continent, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'continent', 'style': 'form', 'explode': true } }
49
+ # The device to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `Desktop`, `Mobile,Tablet`, `-Mobile`.
46
50
  field :device, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'device', 'style': 'form', 'explode': true } }
47
- # The browser to retrieve analytics for.
51
+ # The browser to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `Chrome`, `Chrome,Firefox,Safari`, `-IE`.
48
52
  field :browser, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'browser', 'style': 'form', 'explode': true } }
49
- # The OS to retrieve analytics for.
53
+ # The OS to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `Windows`, `Mac,Windows,Linux`, `-Windows`.
50
54
  field :os, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'os', 'style': 'form', 'explode': true } }
51
- # The trigger to retrieve analytics for. If undefined, returns all trigger types.
52
- field :trigger, Crystalline::Nilable.new(Models::Operations::QueryParamTrigger), { 'query_param': { 'field_name': 'trigger', 'style': 'form', 'explode': true } }
53
- # The referer hostname to retrieve analytics for.
55
+ # The trigger to retrieve analytics for. Valid values: qr, link, pageview. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `qr`, `qr,link`, `-qr`. If undefined, returns all trigger types.
56
+ field :trigger, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'trigger', 'style': 'form', 'explode': true } }
57
+ # The referer hostname to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `google.com`, `google.com,twitter.com`, `-facebook.com`.
54
58
  field :referer, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'referer', 'style': 'form', 'explode': true } }
55
- # The full referer URL to retrieve analytics for.
59
+ # The full referer URL to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `https://google.com`, `https://google.com,https://twitter.com`, `-https://spam.com`.
56
60
  field :referer_url, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'refererUrl', 'style': 'form', 'explode': true } }
57
- # The URL to retrieve analytics for.
61
+ # The destination URL to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `https://example.com`, `https://example.com,https://other.com`, `-https://spam.com`.
58
62
  field :url, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'url', 'style': 'form', 'explode': true } }
59
- # The tag IDs to retrieve analytics for.
60
- field :tag_ids, Crystalline::Nilable.new(Crystalline::Union.new(::String, Crystalline::Array.new(::String))), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
61
- # The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links.
62
- field :folder_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } }
63
- # The group ID to retrieve analytics for.
64
- field :group_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'groupId', 'style': 'form', 'explode': true } }
63
+ # The UTM source to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `google`, `google,twitter`, `-spam`.
64
+ field :utm_source, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_source', 'style': 'form', 'explode': true } }
65
+ # The UTM medium to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `cpc`, `cpc,social`, `-email`.
66
+ field :utm_medium, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_medium', 'style': 'form', 'explode': true } }
67
+ # The UTM campaign to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `summer_sale`, `summer_sale,winter_sale`, `-old_campaign`.
68
+ field :utm_campaign, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_campaign', 'style': 'form', 'explode': true } }
69
+ # The UTM term to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`).
70
+ field :utm_term, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } }
71
+ # The UTM content to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`).
72
+ field :utm_content, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_content', 'style': 'form', 'explode': true } }
65
73
  # Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.
66
74
  field :root, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'root', 'style': 'form', 'explode': true } }
67
75
  # Filter sales by type: 'new' for first-time purchases, 'recurring' for repeat purchases. If undefined, returns both.
68
76
  field :sale_type, Crystalline::Nilable.new(Models::Operations::QueryParamSaleType), { 'query_param': { 'field_name': 'saleType', 'style': 'form', 'explode': true } }
69
- # Search the events by a custom metadata value. Only available for lead and sale events.
77
+ # Search the events by a custom metadata value. Only available for lead and sale events. Examples: `metadata['key']:'value'`
70
78
  field :query, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
71
- # Deprecated: Use `tagIds` instead. The tag ID to retrieve analytics for.
72
- field :tag_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
79
+ # Deprecated: This is automatically inferred from your workspace's defaultProgramId. The ID of the program to retrieve analytics for.
80
+ field :program_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'programId', 'style': 'form', 'explode': true } }
81
+ # Deprecated: Use `tagId` instead. The tag IDs to retrieve analytics for.
82
+ field :tag_ids, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
73
83
  # Deprecated: Use the `trigger` field instead. Filter for QR code scans. If true, filter for QR codes only. If false, filter for links only. If undefined, return both.
74
84
  field :qr, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'qr', 'style': 'form', 'explode': true } }
75
85
  # The type of event to retrieve analytics for. Defaults to 'clicks'.
76
86
  field :event, Crystalline::Nilable.new(Models::Operations::QueryParamEvent), { 'query_param': { 'field_name': 'event', 'style': 'form', 'explode': true } }
77
87
  # The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.
78
88
  field :timezone, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'timezone', 'style': 'form', 'explode': true } }
79
- # The UTM source of the short link.
80
- field :utm_source, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_source', 'style': 'form', 'explode': true } }
81
- # The UTM medium of the short link.
82
- field :utm_medium, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_medium', 'style': 'form', 'explode': true } }
83
- # The UTM campaign of the short link.
84
- field :utm_campaign, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_campaign', 'style': 'form', 'explode': true } }
85
- # The UTM term of the short link.
86
- field :utm_term, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } }
87
- # The UTM content of the short link.
88
- field :utm_content, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_content', 'style': 'form', 'explode': true } }
89
- # The ref of the short link.
90
- field :ref, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'ref', 'style': 'form', 'explode': true } }
91
89
 
92
90
  field :page, Crystalline::Nilable.new(::Float), { 'query_param': { 'field_name': 'page', 'style': 'form', 'explode': true } }
93
91
 
@@ -99,14 +97,16 @@ module OpenApiSDK
99
97
  # DEPRECATED. Use `sortOrder` instead.
100
98
  field :order, Crystalline::Nilable.new(Models::Operations::Order), { 'query_param': { 'field_name': 'order', 'style': 'form', 'explode': true } }
101
99
 
102
- sig { params(domain: T.nilable(::String), key: T.nilable(::String), link_id: T.nilable(::String), external_id: T.nilable(::String), tenant_id: T.nilable(::String), program_id: T.nilable(::String), partner_id: T.nilable(::String), customer_id: T.nilable(::String), interval: T.nilable(Models::Operations::QueryParamInterval), start: T.nilable(::String), end_: T.nilable(::String), country: T.nilable(::String), city: T.nilable(::String), region: T.nilable(::String), continent: T.nilable(Models::Operations::QueryParamContinent), device: T.nilable(::String), browser: T.nilable(::String), os: T.nilable(::String), trigger: T.nilable(Models::Operations::QueryParamTrigger), referer: T.nilable(::String), referer_url: T.nilable(::String), url: T.nilable(::String), tag_ids: T.nilable(T.any(::String, T::Array[::String])), folder_id: T.nilable(::String), group_id: T.nilable(::String), root: T.nilable(T::Boolean), sale_type: T.nilable(Models::Operations::QueryParamSaleType), query: T.nilable(::String), tag_id: T.nilable(::String), qr: T.nilable(T::Boolean), event: T.nilable(Models::Operations::QueryParamEvent), timezone: T.nilable(::String), utm_source: T.nilable(::String), utm_medium: T.nilable(::String), utm_campaign: T.nilable(::String), utm_term: T.nilable(::String), utm_content: T.nilable(::String), ref: T.nilable(::String), page: T.nilable(::Float), limit: T.nilable(::Float), sort_order: T.nilable(Models::Operations::QueryParamSortOrder), sort_by: T.nilable(Models::Operations::QueryParamSortBy), order: T.nilable(Models::Operations::Order)).void }
103
- def initialize(domain: nil, key: nil, link_id: nil, external_id: nil, tenant_id: nil, program_id: nil, partner_id: nil, customer_id: nil, interval: nil, start: nil, end_: nil, country: nil, city: nil, region: nil, continent: nil, device: nil, browser: nil, os: nil, trigger: nil, referer: nil, referer_url: nil, url: nil, tag_ids: nil, folder_id: nil, group_id: nil, root: nil, sale_type: nil, query: nil, tag_id: nil, qr: nil, event: Models::Operations::QueryParamEvent::CLICKS, timezone: 'UTC', utm_source: nil, utm_medium: nil, utm_campaign: nil, utm_term: nil, utm_content: nil, ref: nil, page: 1.0, limit: 100.0, sort_order: Models::Operations::QueryParamSortOrder::DESC, sort_by: Models::Operations::QueryParamSortBy::TIMESTAMP, order: Models::Operations::Order::DESC)
100
+ sig { params(domain: T.nilable(::String), key: T.nilable(::String), link_id: T.nilable(::String), external_id: T.nilable(::String), tenant_id: T.nilable(::String), tag_id: T.nilable(::String), folder_id: T.nilable(::String), group_id: T.nilable(::String), partner_id: T.nilable(::String), customer_id: T.nilable(::String), interval: T.nilable(Models::Operations::QueryParamInterval), start: T.nilable(::String), end_: T.nilable(::String), country: T.nilable(::String), city: T.nilable(::String), region: T.nilable(::String), continent: T.nilable(::String), device: T.nilable(::String), browser: T.nilable(::String), os: T.nilable(::String), trigger: T.nilable(::String), referer: T.nilable(::String), referer_url: T.nilable(::String), url: T.nilable(::String), utm_source: T.nilable(::String), utm_medium: T.nilable(::String), utm_campaign: T.nilable(::String), utm_term: T.nilable(::String), utm_content: T.nilable(::String), root: T.nilable(T::Boolean), sale_type: T.nilable(Models::Operations::QueryParamSaleType), query: T.nilable(::String), program_id: T.nilable(::String), tag_ids: T.nilable(::String), qr: T.nilable(T::Boolean), event: T.nilable(Models::Operations::QueryParamEvent), timezone: T.nilable(::String), page: T.nilable(::Float), limit: T.nilable(::Float), sort_order: T.nilable(Models::Operations::QueryParamSortOrder), sort_by: T.nilable(Models::Operations::QueryParamSortBy), order: T.nilable(Models::Operations::Order)).void }
101
+ def initialize(domain: nil, key: nil, link_id: nil, external_id: nil, tenant_id: nil, tag_id: nil, folder_id: nil, group_id: nil, partner_id: nil, customer_id: nil, interval: nil, start: nil, end_: nil, country: nil, city: nil, region: nil, continent: nil, device: nil, browser: nil, os: nil, trigger: nil, referer: nil, referer_url: nil, url: nil, utm_source: nil, utm_medium: nil, utm_campaign: nil, utm_term: nil, utm_content: nil, root: nil, sale_type: nil, query: nil, program_id: nil, tag_ids: nil, qr: nil, event: Models::Operations::QueryParamEvent::CLICKS, timezone: 'UTC', page: 1.0, limit: 100.0, sort_order: Models::Operations::QueryParamSortOrder::DESC, sort_by: Models::Operations::QueryParamSortBy::TIMESTAMP, order: Models::Operations::Order::DESC)
104
102
  @domain = domain
105
103
  @key = key
106
104
  @link_id = link_id
107
105
  @external_id = external_id
108
106
  @tenant_id = tenant_id
109
- @program_id = program_id
107
+ @tag_id = tag_id
108
+ @folder_id = folder_id
109
+ @group_id = group_id
110
110
  @partner_id = partner_id
111
111
  @customer_id = customer_id
112
112
  @interval = interval
@@ -123,22 +123,19 @@ module OpenApiSDK
123
123
  @referer = referer
124
124
  @referer_url = referer_url
125
125
  @url = url
126
- @tag_ids = tag_ids
127
- @folder_id = folder_id
128
- @group_id = group_id
126
+ @utm_source = utm_source
127
+ @utm_medium = utm_medium
128
+ @utm_campaign = utm_campaign
129
+ @utm_term = utm_term
130
+ @utm_content = utm_content
129
131
  @root = root
130
132
  @sale_type = sale_type
131
133
  @query = query
132
- @tag_id = tag_id
134
+ @program_id = program_id
135
+ @tag_ids = tag_ids
133
136
  @qr = qr
134
137
  @event = event
135
138
  @timezone = timezone
136
- @utm_source = utm_source
137
- @utm_medium = utm_medium
138
- @utm_campaign = utm_campaign
139
- @utm_term = utm_term
140
- @utm_content = utm_content
141
- @ref = ref
142
139
  @page = page
143
140
  @limit = limit
144
141
  @sort_order = sort_order
@@ -154,7 +151,9 @@ module OpenApiSDK
154
151
  return false unless @link_id == other.link_id
155
152
  return false unless @external_id == other.external_id
156
153
  return false unless @tenant_id == other.tenant_id
157
- return false unless @program_id == other.program_id
154
+ return false unless @tag_id == other.tag_id
155
+ return false unless @folder_id == other.folder_id
156
+ return false unless @group_id == other.group_id
158
157
  return false unless @partner_id == other.partner_id
159
158
  return false unless @customer_id == other.customer_id
160
159
  return false unless @interval == other.interval
@@ -171,22 +170,19 @@ module OpenApiSDK
171
170
  return false unless @referer == other.referer
172
171
  return false unless @referer_url == other.referer_url
173
172
  return false unless @url == other.url
174
- return false unless @tag_ids == other.tag_ids
175
- return false unless @folder_id == other.folder_id
176
- return false unless @group_id == other.group_id
173
+ return false unless @utm_source == other.utm_source
174
+ return false unless @utm_medium == other.utm_medium
175
+ return false unless @utm_campaign == other.utm_campaign
176
+ return false unless @utm_term == other.utm_term
177
+ return false unless @utm_content == other.utm_content
177
178
  return false unless @root == other.root
178
179
  return false unless @sale_type == other.sale_type
179
180
  return false unless @query == other.query
180
- return false unless @tag_id == other.tag_id
181
+ return false unless @program_id == other.program_id
182
+ return false unless @tag_ids == other.tag_ids
181
183
  return false unless @qr == other.qr
182
184
  return false unless @event == other.event
183
185
  return false unless @timezone == other.timezone
184
- return false unless @utm_source == other.utm_source
185
- return false unless @utm_medium == other.utm_medium
186
- return false unless @utm_campaign == other.utm_campaign
187
- return false unless @utm_term == other.utm_term
188
- return false unless @utm_content == other.utm_content
189
- return false unless @ref == other.ref
190
186
  return false unless @page == other.page
191
187
  return false unless @limit == other.limit
192
188
  return false unless @sort_order == other.sort_order
@@ -18,8 +18,12 @@ class OpenApiSDK::Models::Operations::ListEventsRequest
18
18
  def external_id=(str_); end
19
19
  def tenant_id(); end
20
20
  def tenant_id=(str_); end
21
- def program_id(); end
22
- def program_id=(str_); end
21
+ def tag_id(); end
22
+ def tag_id=(str_); end
23
+ def folder_id(); end
24
+ def folder_id=(str_); end
25
+ def group_id(); end
26
+ def group_id=(str_); end
23
27
  def partner_id(); end
24
28
  def partner_id=(str_); end
25
29
  def customer_id(); end
@@ -52,38 +56,32 @@ class OpenApiSDK::Models::Operations::ListEventsRequest
52
56
  def referer_url=(str_); end
53
57
  def url(); end
54
58
  def url=(str_); end
55
- def tag_ids(); end
56
- def tag_ids=(str_); end
57
- def folder_id(); end
58
- def folder_id=(str_); end
59
- def group_id(); end
60
- def group_id=(str_); end
59
+ def utm_source(); end
60
+ def utm_source=(str_); end
61
+ def utm_medium(); end
62
+ def utm_medium=(str_); end
63
+ def utm_campaign(); end
64
+ def utm_campaign=(str_); end
65
+ def utm_term(); end
66
+ def utm_term=(str_); end
67
+ def utm_content(); end
68
+ def utm_content=(str_); end
61
69
  def root(); end
62
70
  def root=(str_); end
63
71
  def sale_type(); end
64
72
  def sale_type=(str_); end
65
73
  def query(); end
66
74
  def query=(str_); end
67
- def tag_id(); end
68
- def tag_id=(str_); end
75
+ def program_id(); end
76
+ def program_id=(str_); end
77
+ def tag_ids(); end
78
+ def tag_ids=(str_); end
69
79
  def qr(); end
70
80
  def qr=(str_); end
71
81
  def event(); end
72
82
  def event=(str_); end
73
83
  def timezone(); end
74
84
  def timezone=(str_); end
75
- def utm_source(); end
76
- def utm_source=(str_); end
77
- def utm_medium(); end
78
- def utm_medium=(str_); end
79
- def utm_campaign(); end
80
- def utm_campaign=(str_); end
81
- def utm_term(); end
82
- def utm_term=(str_); end
83
- def utm_content(); end
84
- def utm_content=(str_); end
85
- def ref(); end
86
- def ref=(str_); end
87
85
  def page(); end
88
86
  def page=(str_); end
89
87
  def limit(); end
@@ -12,19 +12,23 @@ module OpenApiSDK
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # The domain to filter analytics for.
15
+ # The domain to filter analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `dub.co`, `dub.co,google.com`, `-spam.com`.
16
16
  field :domain, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': true } }
17
17
  # The slug of the short link to retrieve analytics for. Must be used along with the corresponding `domain` of the short link to fetch analytics for a specific short link.
18
18
  field :key, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'key', 'style': 'form', 'explode': true } }
19
- # The unique ID of the short link on Dub to retrieve analytics for.
19
+ # The unique ID of the link to retrieve analytics for.Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `link_123`, `link_123,link_456`, `-link_789`.
20
20
  field :link_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'linkId', 'style': 'form', 'explode': true } }
21
21
  # The ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter.
22
22
  field :external_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'externalId', 'style': 'form', 'explode': true } }
23
- # The ID of the tenant that created the link inside your system.
23
+ # The ID of the tenant that created the link inside your system. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `tenant_123`, `tenant_123,tenant_456`, `-tenant_789`.
24
24
  field :tenant_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } }
25
- # The ID of the program to retrieve analytics for.
26
- field :program_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'programId', 'style': 'form', 'explode': true } }
27
- # The ID of the partner to retrieve analytics for.
25
+ # The tag ID to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `tag_123`, `tag_123,tag_456`, `-tag_789`.
26
+ field :tag_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
27
+ # The folder ID to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `folder_123`, `folder_123,folder_456`, `-folder_789`. If not provided, return analytics for all links.
28
+ field :folder_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } }
29
+ # The group ID to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `grp_123`, `grp_123,grp_456`, `-grp_789`.
30
+ field :group_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'groupId', 'style': 'form', 'explode': true } }
31
+ # The ID of the partner to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `pn_123`, `pn_123,pn_456`, `-pn_789`.
28
32
  field :partner_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } }
29
33
  # The ID of the customer to retrieve analytics for.
30
34
  field :customer_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'customerId', 'style': 'form', 'explode': true } }
@@ -34,42 +38,48 @@ module OpenApiSDK
34
38
  field :start, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'start', 'style': 'form', 'explode': true } }
35
39
  # The end date and time when to retrieve analytics from. If not provided, defaults to the current date. If set along with `start`, takes precedence over `interval`.
36
40
  field :end_, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'end', 'style': 'form', 'explode': true } }
37
- # The country to retrieve analytics for. Must be passed as a 2-letter ISO 3166-1 country code. See https://d.to/geo for more information.
41
+ # The country to retrieve analytics for. Must be passed as a 2-letter ISO 3166-1 country code (see https://d.to/geo). Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `US`, `US,BR,FR`, `-US`.
38
42
  field :country, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'country', 'style': 'form', 'explode': true } }
39
- # The city to retrieve analytics for.
43
+ # The city to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `New York`, `New York,London`, `-New York`.
40
44
  field :city, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'city', 'style': 'form', 'explode': true } }
41
- # The ISO 3166-2 region code to retrieve analytics for.
45
+ # The ISO 3166-2 region code to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `NY`, `NY,CA`, `-NY`.
42
46
  field :region, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'region', 'style': 'form', 'explode': true } }
43
- # The continent to retrieve analytics for.
44
- field :continent, Crystalline::Nilable.new(Models::Operations::Continent), { 'query_param': { 'field_name': 'continent', 'style': 'form', 'explode': true } }
45
- # The device to retrieve analytics for.
47
+ # The continent to retrieve analytics for. Valid values: AF, AN, AS, EU, NA, OC, SA. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `NA`, `NA,EU`, `-AS`.
48
+ field :continent, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'continent', 'style': 'form', 'explode': true } }
49
+ # The device to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `Desktop`, `Mobile,Tablet`, `-Mobile`.
46
50
  field :device, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'device', 'style': 'form', 'explode': true } }
47
- # The browser to retrieve analytics for.
51
+ # The browser to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `Chrome`, `Chrome,Firefox,Safari`, `-IE`.
48
52
  field :browser, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'browser', 'style': 'form', 'explode': true } }
49
- # The OS to retrieve analytics for.
53
+ # The OS to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `Windows`, `Mac,Windows,Linux`, `-Windows`.
50
54
  field :os, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'os', 'style': 'form', 'explode': true } }
51
- # The trigger to retrieve analytics for. If undefined, returns all trigger types.
52
- field :trigger, Crystalline::Nilable.new(Models::Operations::Trigger), { 'query_param': { 'field_name': 'trigger', 'style': 'form', 'explode': true } }
53
- # The referer hostname to retrieve analytics for.
55
+ # The trigger to retrieve analytics for. Valid values: qr, link, pageview. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `qr`, `qr,link`, `-qr`. If undefined, returns all trigger types.
56
+ field :trigger, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'trigger', 'style': 'form', 'explode': true } }
57
+ # The referer hostname to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `google.com`, `google.com,twitter.com`, `-facebook.com`.
54
58
  field :referer, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'referer', 'style': 'form', 'explode': true } }
55
- # The full referer URL to retrieve analytics for.
59
+ # The full referer URL to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `https://google.com`, `https://google.com,https://twitter.com`, `-https://spam.com`.
56
60
  field :referer_url, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'refererUrl', 'style': 'form', 'explode': true } }
57
- # The URL to retrieve analytics for.
61
+ # The destination URL to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `https://example.com`, `https://example.com,https://other.com`, `-https://spam.com`.
58
62
  field :url, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'url', 'style': 'form', 'explode': true } }
59
- # The tag IDs to retrieve analytics for.
60
- field :tag_ids, Crystalline::Nilable.new(Crystalline::Union.new(::String, Crystalline::Array.new(::String))), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
61
- # The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links.
62
- field :folder_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } }
63
- # The group ID to retrieve analytics for.
64
- field :group_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'groupId', 'style': 'form', 'explode': true } }
63
+ # The UTM source to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `google`, `google,twitter`, `-spam`.
64
+ field :utm_source, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_source', 'style': 'form', 'explode': true } }
65
+ # The UTM medium to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `cpc`, `cpc,social`, `-email`.
66
+ field :utm_medium, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_medium', 'style': 'form', 'explode': true } }
67
+ # The UTM campaign to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples: `summer_sale`, `summer_sale,winter_sale`, `-old_campaign`.
68
+ field :utm_campaign, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_campaign', 'style': 'form', 'explode': true } }
69
+ # The UTM term to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`).
70
+ field :utm_term, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } }
71
+ # The UTM content to retrieve analytics for. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`).
72
+ field :utm_content, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_content', 'style': 'form', 'explode': true } }
65
73
  # Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.
66
74
  field :root, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'root', 'style': 'form', 'explode': true } }
67
75
  # Filter sales by type: 'new' for first-time purchases, 'recurring' for repeat purchases. If undefined, returns both.
68
76
  field :sale_type, Crystalline::Nilable.new(Models::Operations::SaleType), { 'query_param': { 'field_name': 'saleType', 'style': 'form', 'explode': true } }
69
- # Search the events by a custom metadata value. Only available for lead and sale events.
77
+ # Search the events by a custom metadata value. Only available for lead and sale events. Examples: `metadata['key']:'value'`
70
78
  field :query, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
71
- # Deprecated: Use `tagIds` instead. The tag ID to retrieve analytics for.
72
- field :tag_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
79
+ # Deprecated: This is automatically inferred from your workspace's defaultProgramId. The ID of the program to retrieve analytics for.
80
+ field :program_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'programId', 'style': 'form', 'explode': true } }
81
+ # Deprecated: Use `tagId` instead. The tag IDs to retrieve analytics for.
82
+ field :tag_ids, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
73
83
  # Deprecated: Use the `trigger` field instead. Filter for QR code scans. If true, filter for QR codes only. If false, filter for links only. If undefined, return both.
74
84
  field :qr, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'qr', 'style': 'form', 'explode': true } }
75
85
  # The type of event to retrieve analytics for. Defaults to `clicks`.
@@ -78,27 +88,17 @@ module OpenApiSDK
78
88
  field :group_by, Crystalline::Nilable.new(Models::Operations::QueryParamGroupBy), { 'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': true } }
79
89
  # The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.
80
90
  field :timezone, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'timezone', 'style': 'form', 'explode': true } }
81
- # The UTM source of the short link.
82
- field :utm_source, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_source', 'style': 'form', 'explode': true } }
83
- # The UTM medium of the short link.
84
- field :utm_medium, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_medium', 'style': 'form', 'explode': true } }
85
- # The UTM campaign of the short link.
86
- field :utm_campaign, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_campaign', 'style': 'form', 'explode': true } }
87
- # The UTM term of the short link.
88
- field :utm_term, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } }
89
- # The UTM content of the short link.
90
- field :utm_content, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_content', 'style': 'form', 'explode': true } }
91
- # The ref of the short link.
92
- field :ref, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'ref', 'style': 'form', 'explode': true } }
93
91
 
94
- sig { params(domain: T.nilable(::String), key: T.nilable(::String), link_id: T.nilable(::String), external_id: T.nilable(::String), tenant_id: T.nilable(::String), program_id: T.nilable(::String), partner_id: T.nilable(::String), customer_id: T.nilable(::String), interval: T.nilable(Models::Operations::Interval), start: T.nilable(::String), end_: T.nilable(::String), country: T.nilable(::String), city: T.nilable(::String), region: T.nilable(::String), continent: T.nilable(Models::Operations::Continent), device: T.nilable(::String), browser: T.nilable(::String), os: T.nilable(::String), trigger: T.nilable(Models::Operations::Trigger), referer: T.nilable(::String), referer_url: T.nilable(::String), url: T.nilable(::String), tag_ids: T.nilable(T.any(::String, T::Array[::String])), folder_id: T.nilable(::String), group_id: T.nilable(::String), root: T.nilable(T::Boolean), sale_type: T.nilable(Models::Operations::SaleType), query: T.nilable(::String), tag_id: T.nilable(::String), qr: T.nilable(T::Boolean), event: T.nilable(Models::Operations::Event), group_by: T.nilable(Models::Operations::QueryParamGroupBy), timezone: T.nilable(::String), utm_source: T.nilable(::String), utm_medium: T.nilable(::String), utm_campaign: T.nilable(::String), utm_term: T.nilable(::String), utm_content: T.nilable(::String), ref: T.nilable(::String)).void }
95
- def initialize(domain: nil, key: nil, link_id: nil, external_id: nil, tenant_id: nil, program_id: nil, partner_id: nil, customer_id: nil, interval: nil, start: nil, end_: nil, country: nil, city: nil, region: nil, continent: nil, device: nil, browser: nil, os: nil, trigger: nil, referer: nil, referer_url: nil, url: nil, tag_ids: nil, folder_id: nil, group_id: nil, root: nil, sale_type: nil, query: nil, tag_id: nil, qr: nil, event: Models::Operations::Event::CLICKS, group_by: Models::Operations::QueryParamGroupBy::COUNT, timezone: 'UTC', utm_source: nil, utm_medium: nil, utm_campaign: nil, utm_term: nil, utm_content: nil, ref: nil)
92
+ sig { params(domain: T.nilable(::String), key: T.nilable(::String), link_id: T.nilable(::String), external_id: T.nilable(::String), tenant_id: T.nilable(::String), tag_id: T.nilable(::String), folder_id: T.nilable(::String), group_id: T.nilable(::String), partner_id: T.nilable(::String), customer_id: T.nilable(::String), interval: T.nilable(Models::Operations::Interval), start: T.nilable(::String), end_: T.nilable(::String), country: T.nilable(::String), city: T.nilable(::String), region: T.nilable(::String), continent: T.nilable(::String), device: T.nilable(::String), browser: T.nilable(::String), os: T.nilable(::String), trigger: T.nilable(::String), referer: T.nilable(::String), referer_url: T.nilable(::String), url: T.nilable(::String), utm_source: T.nilable(::String), utm_medium: T.nilable(::String), utm_campaign: T.nilable(::String), utm_term: T.nilable(::String), utm_content: T.nilable(::String), root: T.nilable(T::Boolean), sale_type: T.nilable(Models::Operations::SaleType), query: T.nilable(::String), program_id: T.nilable(::String), tag_ids: T.nilable(::String), qr: T.nilable(T::Boolean), event: T.nilable(Models::Operations::Event), group_by: T.nilable(Models::Operations::QueryParamGroupBy), timezone: T.nilable(::String)).void }
93
+ def initialize(domain: nil, key: nil, link_id: nil, external_id: nil, tenant_id: nil, tag_id: nil, folder_id: nil, group_id: nil, partner_id: nil, customer_id: nil, interval: nil, start: nil, end_: nil, country: nil, city: nil, region: nil, continent: nil, device: nil, browser: nil, os: nil, trigger: nil, referer: nil, referer_url: nil, url: nil, utm_source: nil, utm_medium: nil, utm_campaign: nil, utm_term: nil, utm_content: nil, root: nil, sale_type: nil, query: nil, program_id: nil, tag_ids: nil, qr: nil, event: Models::Operations::Event::CLICKS, group_by: Models::Operations::QueryParamGroupBy::COUNT, timezone: 'UTC')
96
94
  @domain = domain
97
95
  @key = key
98
96
  @link_id = link_id
99
97
  @external_id = external_id
100
98
  @tenant_id = tenant_id
101
- @program_id = program_id
99
+ @tag_id = tag_id
100
+ @folder_id = folder_id
101
+ @group_id = group_id
102
102
  @partner_id = partner_id
103
103
  @customer_id = customer_id
104
104
  @interval = interval
@@ -115,23 +115,20 @@ module OpenApiSDK
115
115
  @referer = referer
116
116
  @referer_url = referer_url
117
117
  @url = url
118
- @tag_ids = tag_ids
119
- @folder_id = folder_id
120
- @group_id = group_id
118
+ @utm_source = utm_source
119
+ @utm_medium = utm_medium
120
+ @utm_campaign = utm_campaign
121
+ @utm_term = utm_term
122
+ @utm_content = utm_content
121
123
  @root = root
122
124
  @sale_type = sale_type
123
125
  @query = query
124
- @tag_id = tag_id
126
+ @program_id = program_id
127
+ @tag_ids = tag_ids
125
128
  @qr = qr
126
129
  @event = event
127
130
  @group_by = group_by
128
131
  @timezone = timezone
129
- @utm_source = utm_source
130
- @utm_medium = utm_medium
131
- @utm_campaign = utm_campaign
132
- @utm_term = utm_term
133
- @utm_content = utm_content
134
- @ref = ref
135
132
  end
136
133
 
137
134
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -142,7 +139,9 @@ module OpenApiSDK
142
139
  return false unless @link_id == other.link_id
143
140
  return false unless @external_id == other.external_id
144
141
  return false unless @tenant_id == other.tenant_id
145
- return false unless @program_id == other.program_id
142
+ return false unless @tag_id == other.tag_id
143
+ return false unless @folder_id == other.folder_id
144
+ return false unless @group_id == other.group_id
146
145
  return false unless @partner_id == other.partner_id
147
146
  return false unless @customer_id == other.customer_id
148
147
  return false unless @interval == other.interval
@@ -159,23 +158,20 @@ module OpenApiSDK
159
158
  return false unless @referer == other.referer
160
159
  return false unless @referer_url == other.referer_url
161
160
  return false unless @url == other.url
162
- return false unless @tag_ids == other.tag_ids
163
- return false unless @folder_id == other.folder_id
164
- return false unless @group_id == other.group_id
161
+ return false unless @utm_source == other.utm_source
162
+ return false unless @utm_medium == other.utm_medium
163
+ return false unless @utm_campaign == other.utm_campaign
164
+ return false unless @utm_term == other.utm_term
165
+ return false unless @utm_content == other.utm_content
165
166
  return false unless @root == other.root
166
167
  return false unless @sale_type == other.sale_type
167
168
  return false unless @query == other.query
168
- return false unless @tag_id == other.tag_id
169
+ return false unless @program_id == other.program_id
170
+ return false unless @tag_ids == other.tag_ids
169
171
  return false unless @qr == other.qr
170
172
  return false unless @event == other.event
171
173
  return false unless @group_by == other.group_by
172
174
  return false unless @timezone == other.timezone
173
- return false unless @utm_source == other.utm_source
174
- return false unless @utm_medium == other.utm_medium
175
- return false unless @utm_campaign == other.utm_campaign
176
- return false unless @utm_term == other.utm_term
177
- return false unless @utm_content == other.utm_content
178
- return false unless @ref == other.ref
179
175
  true
180
176
  end
181
177
  end
@@ -18,8 +18,12 @@ class OpenApiSDK::Models::Operations::RetrieveAnalyticsRequest
18
18
  def external_id=(str_); end
19
19
  def tenant_id(); end
20
20
  def tenant_id=(str_); end
21
- def program_id(); end
22
- def program_id=(str_); end
21
+ def tag_id(); end
22
+ def tag_id=(str_); end
23
+ def folder_id(); end
24
+ def folder_id=(str_); end
25
+ def group_id(); end
26
+ def group_id=(str_); end
23
27
  def partner_id(); end
24
28
  def partner_id=(str_); end
25
29
  def customer_id(); end
@@ -52,20 +56,26 @@ class OpenApiSDK::Models::Operations::RetrieveAnalyticsRequest
52
56
  def referer_url=(str_); end
53
57
  def url(); end
54
58
  def url=(str_); end
55
- def tag_ids(); end
56
- def tag_ids=(str_); end
57
- def folder_id(); end
58
- def folder_id=(str_); end
59
- def group_id(); end
60
- def group_id=(str_); end
59
+ def utm_source(); end
60
+ def utm_source=(str_); end
61
+ def utm_medium(); end
62
+ def utm_medium=(str_); end
63
+ def utm_campaign(); end
64
+ def utm_campaign=(str_); end
65
+ def utm_term(); end
66
+ def utm_term=(str_); end
67
+ def utm_content(); end
68
+ def utm_content=(str_); end
61
69
  def root(); end
62
70
  def root=(str_); end
63
71
  def sale_type(); end
64
72
  def sale_type=(str_); end
65
73
  def query(); end
66
74
  def query=(str_); end
67
- def tag_id(); end
68
- def tag_id=(str_); end
75
+ def program_id(); end
76
+ def program_id=(str_); end
77
+ def tag_ids(); end
78
+ def tag_ids=(str_); end
69
79
  def qr(); end
70
80
  def qr=(str_); end
71
81
  def event(); end
@@ -74,16 +84,4 @@ class OpenApiSDK::Models::Operations::RetrieveAnalyticsRequest
74
84
  def group_by=(str_); end
75
85
  def timezone(); end
76
86
  def timezone=(str_); end
77
- def utm_source(); end
78
- def utm_source=(str_); end
79
- def utm_medium(); end
80
- def utm_medium=(str_); end
81
- def utm_campaign(); end
82
- def utm_campaign=(str_); end
83
- def utm_term(); end
84
- def utm_term=(str_); end
85
- def utm_content(); end
86
- def utm_content=(str_); end
87
- def ref(); end
88
- def ref=(str_); end
89
87
  end
@@ -18,7 +18,7 @@ module OpenApiSDK
18
18
  field :start, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'start', 'style': 'form', 'explode': true } }
19
19
  # The end date and time when to retrieve analytics from. If not provided, defaults to the current date. If set along with `start`, takes precedence over `interval`.
20
20
  field :end_, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'end', 'style': 'form', 'explode': true } }
21
- # Search the events by a custom metadata value. Only available for lead and sale events.
21
+ # Search the events by a custom metadata value. Only available for lead and sale events. Examples: `metadata['key']:'value'`
22
22
  field :query, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
23
23
  # The ID of the partner to create a link for. Will take precedence over `tenantId` if provided.
24
24
  field :partner_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } }
@@ -40,7 +40,6 @@ module OpenApiSDK
40
40
  autoload :Click, 'open_api_sdk/models/operations/click.rb'
41
41
  autoload :Color, 'open_api_sdk/models/operations/color.rb'
42
42
  autoload :Constraints, 'open_api_sdk/models/operations/constraints.rb'
43
- autoload :Continent, 'open_api_sdk/models/operations/continent.rb'
44
43
  autoload :CreateDomainRequestBody, 'open_api_sdk/models/operations/createdomain_requestbody.rb'
45
44
  autoload :CreateFolderRequestBody, 'open_api_sdk/models/operations/createfolder_requestbody.rb'
46
45
  autoload :CreateLinkRequestBody, 'open_api_sdk/models/operations/createlink_requestbody.rb'
@@ -159,7 +158,6 @@ module OpenApiSDK
159
158
  autoload :ListCommissionsType, 'open_api_sdk/models/operations/listcommissions_type.rb'
160
159
  autoload :ListDomainsRequest, 'open_api_sdk/models/operations/listdomains_request.rb'
161
160
  autoload :ListDomainsResponse, 'open_api_sdk/models/operations/listdomains_response.rb'
162
- autoload :ListEventsQueryParamTagIds, 'open_api_sdk/models/operations/listevents_queryparam_tagids.rb'
163
161
  autoload :ListEventsRequest, 'open_api_sdk/models/operations/listevents_request.rb'
164
162
  autoload :ListEventsResponseBody, 'open_api_sdk/models/operations/listevents_responsebody.rb'
165
163
  autoload :ListEventsResponseBodyEventsClick, 'open_api_sdk/models/operations/listevents_responsebody_events_click.rb'
@@ -198,7 +196,6 @@ module OpenApiSDK
198
196
  autoload :Order, 'open_api_sdk/models/operations/order.rb'
199
197
  autoload :Partner, 'open_api_sdk/models/operations/partner.rb'
200
198
  autoload :PaymentProcessor, 'open_api_sdk/models/operations/paymentprocessor.rb'
201
- autoload :QueryParamContinent, 'open_api_sdk/models/operations/queryparam_continent.rb'
202
199
  autoload :QueryParamEvent, 'open_api_sdk/models/operations/queryparam_event.rb'
203
200
  autoload :QueryParamGroupBy, 'open_api_sdk/models/operations/queryparam_groupby.rb'
204
201
  autoload :QueryParamInterval, 'open_api_sdk/models/operations/queryparam_interval.rb'
@@ -208,7 +205,6 @@ module OpenApiSDK
208
205
  autoload :QueryParamStatus, 'open_api_sdk/models/operations/queryparam_status.rb'
209
206
  autoload :QueryParamTagIds, 'open_api_sdk/models/operations/queryparam_tagids.rb'
210
207
  autoload :QueryParamTagNames, 'open_api_sdk/models/operations/queryparam_tagnames.rb'
211
- autoload :QueryParamTrigger, 'open_api_sdk/models/operations/queryparam_trigger.rb'
212
208
  autoload :Reason, 'open_api_sdk/models/operations/reason.rb'
213
209
  autoload :ReferralFormData, 'open_api_sdk/models/operations/referralformdata.rb'
214
210
  autoload :RegisterDomainRequestBody, 'open_api_sdk/models/operations/registerdomain_requestbody.rb'
@@ -228,7 +224,6 @@ module OpenApiSDK
228
224
  autoload :ResponseBodyPaymentProcessor, 'open_api_sdk/models/operations/responsebody_paymentprocessor.rb'
229
225
  autoload :ResponseBodySale, 'open_api_sdk/models/operations/responsebody_sale.rb'
230
226
  autoload :ResponseBodyTestVariants, 'open_api_sdk/models/operations/responsebody_testvariants.rb'
231
- autoload :RetrieveAnalyticsQueryParamTagIds, 'open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rb'
232
227
  autoload :RetrieveAnalyticsRequest, 'open_api_sdk/models/operations/retrieveanalytics_request.rb'
233
228
  autoload :RetrieveAnalyticsResponseBody, 'open_api_sdk/models/operations/retrieveanalytics_responsebody.rb'
234
229
  autoload :RetrieveLinksRequest, 'open_api_sdk/models/operations/retrievelinks_request.rb'
@@ -251,7 +246,6 @@ module OpenApiSDK
251
246
  autoload :TrackSaleCustomer, 'open_api_sdk/models/operations/tracksale_customer.rb'
252
247
  autoload :TrackSaleRequestBody, 'open_api_sdk/models/operations/tracksale_requestbody.rb'
253
248
  autoload :TrackSaleResponseBody, 'open_api_sdk/models/operations/tracksale_responsebody.rb'
254
- autoload :Trigger, 'open_api_sdk/models/operations/trigger.rb'
255
249
  autoload :Type, 'open_api_sdk/models/operations/type.rb'
256
250
  autoload :UpdateCommissionCustomer, 'open_api_sdk/models/operations/updatecommission_customer.rb'
257
251
  autoload :UpdateCommissionPartner, 'open_api_sdk/models/operations/updatecommission_partner.rb'
@@ -28,10 +28,12 @@ module OpenApiSDK
28
28
  field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url'), required: true } }
29
29
  # The creation timestamp of the short link
30
30
  field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt'), required: true } }
31
- # The comments of the short link
32
- field :comments, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('comments') } }
33
31
  # The custom link preview title (og:title)
34
32
  field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
33
+ # The comments of the short link
34
+ field :comments, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('comments') } }
35
+ # The ID of the partner that the link belongs to (if applicable)
36
+ field :partner_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partnerId') } }
35
37
  # The number of clicks from this link
36
38
  field :clicks, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } }
37
39
  # The number of leads from this link
@@ -41,8 +43,8 @@ module OpenApiSDK
41
43
  # The total amount of sales from this link, in cents
42
44
  field :sale_amount, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
43
45
 
44
- sig { params(link: ::String, id: ::String, domain: ::String, key: ::String, short_link: ::String, url: ::String, created_at: ::String, comments: T.nilable(::String), title: T.nilable(::String), clicks: T.nilable(::Float), leads: T.nilable(::Float), sales: T.nilable(::Float), sale_amount: T.nilable(::Float)).void }
45
- def initialize(link:, id:, domain:, key:, short_link:, url:, created_at:, comments: nil, title: nil, clicks: 0.0, leads: 0.0, sales: 0.0, sale_amount: 0.0)
46
+ sig { params(link: ::String, id: ::String, domain: ::String, key: ::String, short_link: ::String, url: ::String, created_at: ::String, title: T.nilable(::String), comments: T.nilable(::String), partner_id: T.nilable(::String), clicks: T.nilable(::Float), leads: T.nilable(::Float), sales: T.nilable(::Float), sale_amount: T.nilable(::Float)).void }
47
+ def initialize(link:, id:, domain:, key:, short_link:, url:, created_at:, title: nil, comments: nil, partner_id: nil, clicks: 0.0, leads: 0.0, sales: 0.0, sale_amount: 0.0)
46
48
  @link = link
47
49
  @id = id
48
50
  @domain = domain
@@ -50,8 +52,9 @@ module OpenApiSDK
50
52
  @short_link = short_link
51
53
  @url = url
52
54
  @created_at = created_at
53
- @comments = comments
54
55
  @title = title
56
+ @comments = comments
57
+ @partner_id = partner_id
55
58
  @clicks = clicks
56
59
  @leads = leads
57
60
  @sales = sales
@@ -68,8 +71,9 @@ module OpenApiSDK
68
71
  return false unless @short_link == other.short_link
69
72
  return false unless @url == other.url
70
73
  return false unless @created_at == other.created_at
71
- return false unless @comments == other.comments
72
74
  return false unless @title == other.title
75
+ return false unless @comments == other.comments
76
+ return false unless @partner_id == other.partner_id
73
77
  return false unless @clicks == other.clicks
74
78
  return false unless @leads == other.leads
75
79
  return false unless @sales == other.sales
@@ -22,10 +22,12 @@ class OpenApiSDK::Models::Shared::AnalyticsTopLinks
22
22
  def url=(str_); end
23
23
  def created_at(); end
24
24
  def created_at=(str_); end
25
- def comments(); end
26
- def comments=(str_); end
27
25
  def title(); end
28
26
  def title=(str_); end
27
+ def comments(); end
28
+ def comments=(str_); end
29
+ def partner_id(); end
30
+ def partner_id=(str_); end
29
31
  def clicks(); end
30
32
  def clicks=(str_); end
31
33
  def leads(); end
@@ -28,10 +28,12 @@ module OpenApiSDK
28
28
  field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url'), required: true } }
29
29
  # The creation timestamp of the short link
30
30
  field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt'), required: true } }
31
- # The comments of the short link
32
- field :comments, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('comments') } }
33
31
  # The custom link preview title (og:title)
34
32
  field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
33
+ # The comments of the short link
34
+ field :comments, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('comments') } }
35
+ # The ID of the partner that the link belongs to (if applicable)
36
+ field :partner_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partnerId') } }
35
37
  # The number of clicks from this link
36
38
  field :clicks, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } }
37
39
  # The number of leads from this link
@@ -43,8 +45,8 @@ module OpenApiSDK
43
45
 
44
46
  field :earnings, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('earnings') } }
45
47
 
46
- sig { params(link: ::String, id: ::String, domain: ::String, key: ::String, short_link: ::String, url: ::String, created_at: ::String, comments: T.nilable(::String), title: T.nilable(::String), clicks: T.nilable(::Float), leads: T.nilable(::Float), sales: T.nilable(::Float), sale_amount: T.nilable(::Float), earnings: T.nilable(::Float)).void }
47
- def initialize(link:, id:, domain:, key:, short_link:, url:, created_at:, comments: nil, title: nil, clicks: 0.0, leads: 0.0, sales: 0.0, sale_amount: 0.0, earnings: 0.0)
48
+ sig { params(link: ::String, id: ::String, domain: ::String, key: ::String, short_link: ::String, url: ::String, created_at: ::String, title: T.nilable(::String), comments: T.nilable(::String), partner_id: T.nilable(::String), clicks: T.nilable(::Float), leads: T.nilable(::Float), sales: T.nilable(::Float), sale_amount: T.nilable(::Float), earnings: T.nilable(::Float)).void }
49
+ def initialize(link:, id:, domain:, key:, short_link:, url:, created_at:, title: nil, comments: nil, partner_id: nil, clicks: 0.0, leads: 0.0, sales: 0.0, sale_amount: 0.0, earnings: 0.0)
48
50
  @link = link
49
51
  @id = id
50
52
  @domain = domain
@@ -52,8 +54,9 @@ module OpenApiSDK
52
54
  @short_link = short_link
53
55
  @url = url
54
56
  @created_at = created_at
55
- @comments = comments
56
57
  @title = title
58
+ @comments = comments
59
+ @partner_id = partner_id
57
60
  @clicks = clicks
58
61
  @leads = leads
59
62
  @sales = sales
@@ -71,8 +74,9 @@ module OpenApiSDK
71
74
  return false unless @short_link == other.short_link
72
75
  return false unless @url == other.url
73
76
  return false unless @created_at == other.created_at
74
- return false unless @comments == other.comments
75
77
  return false unless @title == other.title
78
+ return false unless @comments == other.comments
79
+ return false unless @partner_id == other.partner_id
76
80
  return false unless @clicks == other.clicks
77
81
  return false unless @leads == other.leads
78
82
  return false unless @sales == other.sales
@@ -22,10 +22,12 @@ class OpenApiSDK::Models::Shared::PartnerAnalyticsTopLinks
22
22
  def url=(str_); end
23
23
  def created_at(); end
24
24
  def created_at=(str_); end
25
- def comments(); end
26
- def comments=(str_); end
27
25
  def title(); end
28
26
  def title=(str_); end
27
+ def comments(); end
28
+ def comments=(str_); end
29
+ def partner_id(); end
30
+ def partner_id=(str_); end
29
31
  def clicks(); end
30
32
  def clicks=(str_); end
31
33
  def leads(); end
@@ -89,9 +89,9 @@ module OpenApiSDK
89
89
  end
90
90
  @language = 'ruby'
91
91
  @openapi_doc_version = '0.0.1'
92
- @sdk_version = '0.12.4'
93
- @gen_version = '2.821.6'
94
- @user_agent = 'speakeasy-sdk/ruby 0.12.4 2.821.6 0.0.1 dub'
92
+ @sdk_version = '0.12.5'
93
+ @gen_version = '2.824.1'
94
+ @user_agent = 'speakeasy-sdk/ruby 0.12.5 2.824.1 0.0.1 dub'
95
95
  end
96
96
 
97
97
  sig { returns([String, T::Hash[Symbol, String]]) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.4
4
+ version: 0.12.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dub
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-13 00:00:00.000000000 Z
11
+ date: 2026-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -356,8 +356,6 @@ files:
356
356
  - lib/open_api_sdk/models/operations/color.rbi
357
357
  - lib/open_api_sdk/models/operations/constraints.rb
358
358
  - lib/open_api_sdk/models/operations/constraints.rbi
359
- - lib/open_api_sdk/models/operations/continent.rb
360
- - lib/open_api_sdk/models/operations/continent.rbi
361
359
  - lib/open_api_sdk/models/operations/createdomain_requestbody.rb
362
360
  - lib/open_api_sdk/models/operations/createdomain_requestbody.rbi
363
361
  - lib/open_api_sdk/models/operations/createfolder_requestbody.rb
@@ -602,8 +600,6 @@ files:
602
600
  - lib/open_api_sdk/models/operations/listdomains_request.rbi
603
601
  - lib/open_api_sdk/models/operations/listdomains_response.rb
604
602
  - lib/open_api_sdk/models/operations/listdomains_response.rbi
605
- - lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rb
606
- - lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rbi
607
603
  - lib/open_api_sdk/models/operations/listevents_request.rb
608
604
  - lib/open_api_sdk/models/operations/listevents_request.rbi
609
605
  - lib/open_api_sdk/models/operations/listevents_responsebody.rb
@@ -682,8 +678,6 @@ files:
682
678
  - lib/open_api_sdk/models/operations/partner.rbi
683
679
  - lib/open_api_sdk/models/operations/paymentprocessor.rb
684
680
  - lib/open_api_sdk/models/operations/paymentprocessor.rbi
685
- - lib/open_api_sdk/models/operations/queryparam_continent.rb
686
- - lib/open_api_sdk/models/operations/queryparam_continent.rbi
687
681
  - lib/open_api_sdk/models/operations/queryparam_event.rb
688
682
  - lib/open_api_sdk/models/operations/queryparam_event.rbi
689
683
  - lib/open_api_sdk/models/operations/queryparam_groupby.rb
@@ -702,8 +696,6 @@ files:
702
696
  - lib/open_api_sdk/models/operations/queryparam_tagids.rbi
703
697
  - lib/open_api_sdk/models/operations/queryparam_tagnames.rb
704
698
  - lib/open_api_sdk/models/operations/queryparam_tagnames.rbi
705
- - lib/open_api_sdk/models/operations/queryparam_trigger.rb
706
- - lib/open_api_sdk/models/operations/queryparam_trigger.rbi
707
699
  - lib/open_api_sdk/models/operations/reason.rb
708
700
  - lib/open_api_sdk/models/operations/reason.rbi
709
701
  - lib/open_api_sdk/models/operations/referralformdata.rb
@@ -742,8 +734,6 @@ files:
742
734
  - lib/open_api_sdk/models/operations/responsebody_sale.rbi
743
735
  - lib/open_api_sdk/models/operations/responsebody_testvariants.rb
744
736
  - lib/open_api_sdk/models/operations/responsebody_testvariants.rbi
745
- - lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rb
746
- - lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rbi
747
737
  - lib/open_api_sdk/models/operations/retrieveanalytics_request.rb
748
738
  - lib/open_api_sdk/models/operations/retrieveanalytics_request.rbi
749
739
  - lib/open_api_sdk/models/operations/retrieveanalytics_responsebody.rb
@@ -796,8 +786,6 @@ files:
796
786
  - lib/open_api_sdk/models/operations/tracksale_requestbody.rbi
797
787
  - lib/open_api_sdk/models/operations/tracksale_responsebody.rb
798
788
  - lib/open_api_sdk/models/operations/tracksale_responsebody.rbi
799
- - lib/open_api_sdk/models/operations/trigger.rb
800
- - lib/open_api_sdk/models/operations/trigger.rbi
801
789
  - lib/open_api_sdk/models/operations/two.rb
802
790
  - lib/open_api_sdk/models/operations/two.rbi
803
791
  - lib/open_api_sdk/models/operations/type.rb
@@ -1,24 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module OpenApiSDK
8
- module Models
9
- module Operations
10
- # Continent - The continent to retrieve analytics for.
11
- class Continent < T::Enum
12
- enums do
13
- AF = new('AF')
14
- AN = new('AN')
15
- AS = new('AS')
16
- EU = new('EU')
17
- NA = new('NA')
18
- OC = new('OC')
19
- SA = new('SA')
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class OpenApiSDK::Models::Operations::Continent
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class OpenApiSDK::Models::Operations::Continent
11
- end
@@ -1,27 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module OpenApiSDK
8
- module Models
9
- module Operations
10
- # The tag IDs to retrieve analytics for.
11
- class ListEventsQueryParamTagIds
12
- extend T::Sig
13
- include Crystalline::MetadataFields
14
-
15
-
16
-
17
- def initialize; end
18
-
19
- sig { params(other: T.untyped).returns(T::Boolean) }
20
- def ==(other)
21
- return false unless other.is_a? self.class
22
- true
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class OpenApiSDK::Models::Operations::ListEventsQueryParamTagIds
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class OpenApiSDK::Models::Operations::ListEventsQueryParamTagIds
11
- end
@@ -1,24 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module OpenApiSDK
8
- module Models
9
- module Operations
10
- # QueryParamContinent - The continent to retrieve analytics for.
11
- class QueryParamContinent < T::Enum
12
- enums do
13
- AF = new('AF')
14
- AN = new('AN')
15
- AS = new('AS')
16
- EU = new('EU')
17
- NA = new('NA')
18
- OC = new('OC')
19
- SA = new('SA')
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class OpenApiSDK::Models::Operations::QueryParamContinent
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class OpenApiSDK::Models::Operations::QueryParamContinent
11
- end
@@ -1,21 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module OpenApiSDK
8
- module Models
9
- module Operations
10
- # QueryParamTrigger - The trigger to retrieve analytics for. If undefined, returns all trigger types.
11
- class QueryParamTrigger < T::Enum
12
- enums do
13
- QR = new('qr')
14
- LINK = new('link')
15
- PAGEVIEW = new('pageview')
16
- DEEPLINK = new('deeplink')
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class OpenApiSDK::Models::Operations::QueryParamTrigger
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class OpenApiSDK::Models::Operations::QueryParamTrigger
11
- end
@@ -1,27 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module OpenApiSDK
8
- module Models
9
- module Operations
10
- # The tag IDs to retrieve analytics for.
11
- class RetrieveAnalyticsQueryParamTagIds
12
- extend T::Sig
13
- include Crystalline::MetadataFields
14
-
15
-
16
-
17
- def initialize; end
18
-
19
- sig { params(other: T.untyped).returns(T::Boolean) }
20
- def ==(other)
21
- return false unless other.is_a? self.class
22
- true
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class OpenApiSDK::Models::Operations::RetrieveAnalyticsQueryParamTagIds
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class OpenApiSDK::Models::Operations::RetrieveAnalyticsQueryParamTagIds
11
- end
@@ -1,21 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module OpenApiSDK
8
- module Models
9
- module Operations
10
- # Trigger - The trigger to retrieve analytics for. If undefined, returns all trigger types.
11
- class Trigger < T::Enum
12
- enums do
13
- QR = new('qr')
14
- LINK = new('link')
15
- PAGEVIEW = new('pageview')
16
- DEEPLINK = new('deeplink')
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class OpenApiSDK::Models::Operations::Trigger
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class OpenApiSDK::Models::Operations::Trigger
11
- end