dub 0.10.5 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +4 -0
  3. data/lib/crystalline/utils.rb +13 -0
  4. data/lib/open_api_sdk/analytics.rb +1 -1
  5. data/lib/open_api_sdk/commissions.rb +2 -2
  6. data/lib/open_api_sdk/customers.rb +4 -241
  7. data/lib/open_api_sdk/domains.rb +6 -6
  8. data/lib/open_api_sdk/embed_tokens.rb +1 -1
  9. data/lib/open_api_sdk/events.rb +1 -1
  10. data/lib/open_api_sdk/folders.rb +4 -4
  11. data/lib/open_api_sdk/links.rb +10 -10
  12. data/lib/open_api_sdk/models/operations/banpartner_requestbody.rb +41 -0
  13. data/lib/open_api_sdk/models/operations/banpartner_requestbody.rbi +17 -0
  14. data/lib/open_api_sdk/models/operations/banpartner_responsebody.rb +33 -0
  15. data/lib/open_api_sdk/models/operations/banpartner_responsebody.rbi +13 -0
  16. data/lib/open_api_sdk/models/operations/createfolder_requestbody.rb +6 -2
  17. data/lib/open_api_sdk/models/operations/createfolder_requestbody.rbi +2 -0
  18. data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +1 -1
  19. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +52 -24
  20. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rbi +24 -10
  21. data/lib/open_api_sdk/models/operations/listcommissions_partner.rb +6 -2
  22. data/lib/open_api_sdk/models/operations/listcommissions_partner.rbi +2 -0
  23. data/lib/open_api_sdk/models/operations/listcommissions_request.rb +6 -2
  24. data/lib/open_api_sdk/models/operations/listcommissions_request.rbi +2 -0
  25. data/lib/open_api_sdk/models/operations/listevents_request.rb +6 -2
  26. data/lib/open_api_sdk/models/operations/listevents_request.rbi +2 -0
  27. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rb +11 -6
  28. data/lib/open_api_sdk/models/operations/listpartners_request.rb +3 -7
  29. data/lib/open_api_sdk/models/operations/listpartners_request.rbi +0 -2
  30. data/lib/open_api_sdk/models/operations/listpartners_responsebody.rb +52 -24
  31. data/lib/open_api_sdk/models/operations/listpartners_responsebody.rbi +24 -10
  32. data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +6 -1
  33. data/lib/open_api_sdk/models/operations/reason.rb +26 -0
  34. data/lib/open_api_sdk/models/operations/reason.rbi +11 -0
  35. data/lib/open_api_sdk/models/operations/requestbody.rb +1 -1
  36. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +6 -2
  37. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rbi +2 -0
  38. data/lib/open_api_sdk/models/operations/retrievelinks_request.rb +2 -2
  39. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +10 -10
  40. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rbi +4 -4
  41. data/lib/open_api_sdk/models/operations/tracklead_requestbody.rb +1 -1
  42. data/lib/open_api_sdk/models/operations/updatecommission_partner.rb +6 -2
  43. data/lib/open_api_sdk/models/operations/updatecommission_partner.rbi +2 -0
  44. data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb +6 -2
  45. data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rbi +2 -0
  46. data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +1 -1
  47. data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +1 -1
  48. data/lib/open_api_sdk/models/operations.rb +3 -6
  49. data/lib/open_api_sdk/models/shared/analyticstopurls.rb +1 -1
  50. data/lib/open_api_sdk/models/shared/applicationformdata.rb +37 -0
  51. data/lib/open_api_sdk/models/shared/applicationformdata.rbi +15 -0
  52. data/lib/open_api_sdk/models/shared/commissioncreatedevent_partner.rb +6 -2
  53. data/lib/open_api_sdk/models/shared/commissioncreatedevent_partner.rbi +2 -0
  54. data/lib/open_api_sdk/models/shared/folderschema.rb +6 -2
  55. data/lib/open_api_sdk/models/shared/folderschema.rbi +2 -0
  56. data/lib/open_api_sdk/models/shared/leadcreatedevent_link.rb +15 -11
  57. data/lib/open_api_sdk/models/shared/leadcreatedevent_link.rbi +6 -4
  58. data/lib/open_api_sdk/models/shared/leadevent_link.rb +15 -11
  59. data/lib/open_api_sdk/models/shared/leadevent_link.rbi +6 -4
  60. data/lib/open_api_sdk/models/shared/link.rb +15 -11
  61. data/lib/open_api_sdk/models/shared/link.rbi +6 -4
  62. data/lib/open_api_sdk/models/shared/linkclickedevent_link.rb +15 -11
  63. data/lib/open_api_sdk/models/shared/linkclickedevent_link.rbi +6 -4
  64. data/lib/open_api_sdk/models/shared/linkschema.rb +7 -3
  65. data/lib/open_api_sdk/models/shared/linkschema.rbi +2 -0
  66. data/lib/open_api_sdk/models/shared/{tagschema.rb → linktagschema.rb} +1 -1
  67. data/lib/open_api_sdk/models/shared/{tagschema.rbi → linktagschema.rbi} +2 -2
  68. data/lib/open_api_sdk/models/shared/linkwebhookevent_link.rb +15 -11
  69. data/lib/open_api_sdk/models/shared/linkwebhookevent_link.rbi +6 -4
  70. data/lib/open_api_sdk/models/shared/partner.rb +6 -2
  71. data/lib/open_api_sdk/models/shared/partner.rbi +2 -0
  72. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent.rb +45 -0
  73. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent.rbi +19 -0
  74. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_data.rb +45 -0
  75. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_data.rbi +19 -0
  76. data/lib/open_api_sdk/models/{operations/createcustomer_type.rb → shared/partnerapplicationsubmittedevent_event.rb} +3 -4
  77. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_event.rbi +11 -0
  78. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_partner.rb +89 -0
  79. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_partner.rbi +41 -0
  80. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_status.rb +28 -0
  81. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_status.rbi +11 -0
  82. data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rb +52 -24
  83. data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rbi +24 -10
  84. data/lib/open_api_sdk/models/shared/salecreatedevent_link.rb +15 -11
  85. data/lib/open_api_sdk/models/shared/salecreatedevent_link.rbi +6 -4
  86. data/lib/open_api_sdk/models/shared/salecreatedevent_partner.rb +6 -2
  87. data/lib/open_api_sdk/models/shared/salecreatedevent_partner.rbi +2 -0
  88. data/lib/open_api_sdk/models/shared/saleevent_link.rb +15 -11
  89. data/lib/open_api_sdk/models/shared/saleevent_link.rbi +6 -4
  90. data/lib/open_api_sdk/models/shared/workspaceschema.rb +10 -2
  91. data/lib/open_api_sdk/models/shared/workspaceschema.rbi +4 -0
  92. data/lib/open_api_sdk/models/shared.rb +7 -1
  93. data/lib/open_api_sdk/partners.rb +241 -6
  94. data/lib/open_api_sdk/qr_codes.rb +1 -1
  95. data/lib/open_api_sdk/sdkconfiguration.rb +3 -3
  96. data/lib/open_api_sdk/tags.rb +10 -10
  97. data/lib/open_api_sdk/track.rb +2 -2
  98. data/lib/open_api_sdk/workspaces.rb +2 -2
  99. metadata +22 -16
  100. data/lib/open_api_sdk/models/operations/createcustomer_discount.rb +0 -61
  101. data/lib/open_api_sdk/models/operations/createcustomer_discount.rbi +0 -27
  102. data/lib/open_api_sdk/models/operations/createcustomer_link.rb +0 -53
  103. data/lib/open_api_sdk/models/operations/createcustomer_link.rbi +0 -23
  104. data/lib/open_api_sdk/models/operations/createcustomer_partner.rb +0 -45
  105. data/lib/open_api_sdk/models/operations/createcustomer_partner.rbi +0 -19
  106. data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rb +0 -49
  107. data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rbi +0 -21
  108. data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rb +0 -81
  109. data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rbi +0 -37
  110. data/lib/open_api_sdk/models/operations/createcustomer_type.rbi +0 -11
@@ -34,6 +34,8 @@ class OpenApiSDK::Models::Operations::ListPartnersResponseBody
34
34
  def stripe_connect_id=(str_); end
35
35
  def payouts_enabled_at(); end
36
36
  def payouts_enabled_at=(str_); end
37
+ def trusted_at(); end
38
+ def trusted_at=(str_); end
37
39
  def tenant_id(); end
38
40
  def tenant_id=(str_); end
39
41
  def links(); end
@@ -58,18 +60,30 @@ class OpenApiSDK::Models::Operations::ListPartnersResponseBody
58
60
  def banned_at=(str_); end
59
61
  def banned_reason(); end
60
62
  def banned_reason=(str_); end
61
- def clicks(); end
62
- def clicks=(str_); end
63
- def leads(); end
64
- def leads=(str_); end
65
- def conversions(); end
66
- def conversions=(str_); end
67
- def sales(); end
68
- def sales=(str_); end
69
- def sale_amount(); end
70
- def sale_amount=(str_); end
63
+ def total_clicks(); end
64
+ def total_clicks=(str_); end
65
+ def total_leads(); end
66
+ def total_leads=(str_); end
67
+ def total_conversions(); end
68
+ def total_conversions=(str_); end
69
+ def total_sales(); end
70
+ def total_sales=(str_); end
71
+ def total_sale_amount(); end
72
+ def total_sale_amount=(str_); end
71
73
  def net_revenue(); end
72
74
  def net_revenue=(str_); end
75
+ def earnings_per_click(); end
76
+ def earnings_per_click=(str_); end
77
+ def average_lifetime_value(); end
78
+ def average_lifetime_value=(str_); end
79
+ def click_to_lead_rate(); end
80
+ def click_to_lead_rate=(str_); end
81
+ def click_to_conversion_rate(); end
82
+ def click_to_conversion_rate=(str_); end
83
+ def lead_to_conversion_rate(); end
84
+ def lead_to_conversion_rate=(str_); end
85
+ def return_on_ad_spend(); end
86
+ def return_on_ad_spend=(str_); end
73
87
  def website(); end
74
88
  def website=(str_); end
75
89
  def youtube(); end
@@ -26,9 +26,14 @@ module OpenApiSDK
26
26
  TRIGGERS = new('triggers')
27
27
  REFERERS = new('referers')
28
28
  REFERER_URLS = new('referer_urls')
29
- TOP_PARTNERS = new('top_partners')
29
+ TOP_FOLDERS = new('top_folders')
30
+ TOP_LINK_TAGS = new('top_link_tags')
31
+ TOP_DOMAINS = new('top_domains')
30
32
  TOP_LINKS = new('top_links')
31
33
  TOP_URLS = new('top_urls')
34
+ TOP_BASE_URLS = new('top_base_urls')
35
+ TOP_PARTNERS = new('top_partners')
36
+ TOP_GROUPS = new('top_groups')
32
37
  UTM_SOURCES = new('utm_sources')
33
38
  UTM_MEDIUMS = new('utm_mediums')
34
39
  UTM_CAMPAIGNS = new('utm_campaigns')
@@ -0,0 +1,26 @@
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
+
11
+
12
+ class Reason < T::Enum
13
+
14
+
15
+ enums do
16
+ TOS_VIOLATION = new('tos_violation')
17
+ INAPPROPRIATE_CONTENT = new('inappropriate_content')
18
+ FAKE_TRAFFIC = new('fake_traffic')
19
+ FRAUD = new('fraud')
20
+ SPAM = new('spam')
21
+ BRAND_ABUSE = new('brand_abuse')
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class OpenApiSDK::Models::Operations::Reason
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class OpenApiSDK::Models::Operations::Reason
11
+ end
@@ -15,7 +15,7 @@ module OpenApiSDK
15
15
 
16
16
  # The destination URL of the short link.
17
17
  field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url'), required: true } }
18
- # The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
18
+ # The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
19
19
  field :domain, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('domain') } }
20
20
  # The short link slug. If not provided, a random 7-character slug will be generated.
21
21
  field :key, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
@@ -61,6 +61,8 @@ module OpenApiSDK
61
61
  field :tag_ids, Crystalline::Nilable.new(Crystalline::Union.new(::String, Crystalline::Array.new(::String))), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
62
62
  # The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links.
63
63
  field :folder_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } }
64
+ # The group ID to retrieve analytics for.
65
+ field :group_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'groupId', 'style': 'form', 'explode': true } }
64
66
  # Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.
65
67
  field :root, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'root', 'style': 'form', 'explode': true } }
66
68
  # Filter sales by type: 'new' for first-time purchases, 'recurring' for repeat purchases. If undefined, returns both.
@@ -90,8 +92,8 @@ module OpenApiSDK
90
92
  # The ref of the short link.
91
93
  field :ref, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'ref', 'style': 'form', 'explode': true } }
92
94
 
93
- 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::Shared::ContinentCode), 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), 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 }
94
- 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, 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)
95
+ 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::Shared::ContinentCode), 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 }
96
+ 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)
95
97
  @domain = domain
96
98
  @key = key
97
99
  @link_id = link_id
@@ -116,6 +118,7 @@ module OpenApiSDK
116
118
  @url = url
117
119
  @tag_ids = tag_ids
118
120
  @folder_id = folder_id
121
+ @group_id = group_id
119
122
  @root = root
120
123
  @sale_type = sale_type
121
124
  @query = query
@@ -159,6 +162,7 @@ module OpenApiSDK
159
162
  return false unless @url == other.url
160
163
  return false unless @tag_ids == other.tag_ids
161
164
  return false unless @folder_id == other.folder_id
165
+ return false unless @group_id == other.group_id
162
166
  return false unless @root == other.root
163
167
  return false unless @sale_type == other.sale_type
164
168
  return false unless @query == other.query
@@ -56,6 +56,8 @@ class OpenApiSDK::Models::Operations::RetrieveAnalyticsRequest
56
56
  def tag_ids=(str_); end
57
57
  def folder_id(); end
58
58
  def folder_id=(str_); end
59
+ def group_id(); end
60
+ def group_id=(str_); end
59
61
  def root(); end
60
62
  def root=(str_); end
61
63
  def sale_type(); end
@@ -13,9 +13,9 @@ module OpenApiSDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
-
16
+ # The ID of the partner to create a link for. Will take precedence over `tenantId` if provided.
17
17
  field :partner_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } }
18
-
18
+ # The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown.
19
19
  field :tenant_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } }
20
20
 
21
21
  sig { params(partner_id: T.nilable(::String), tenant_id: T.nilable(::String)).void }
@@ -13,10 +13,6 @@ module OpenApiSDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # The ID of the partner to retrieve analytics for.
17
- field :partner_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } }
18
- # The ID of the tenant that created the link inside your system.
19
- field :tenant_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } }
20
16
  # The interval to retrieve analytics for. If undefined, defaults to 24h.
21
17
  field :interval, Crystalline::Nilable.new(Models::Operations::RetrievePartnerAnalyticsQueryParamInterval), { 'query_param': { 'field_name': 'interval', 'style': 'form', 'explode': true } }
22
18
  # The start date and time when to retrieve analytics from. If set, takes precedence over `interval`.
@@ -25,19 +21,23 @@ module OpenApiSDK
25
21
  field :end_, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'end', 'style': 'form', 'explode': true } }
26
22
  # Search the events by a custom metadata value. Only available for lead and sale events.
27
23
  field :query, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
24
+ # The ID of the partner to create a link for. Will take precedence over `tenantId` if provided.
25
+ field :partner_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } }
26
+ # The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown.
27
+ field :tenant_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } }
28
28
  # The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.
29
29
  field :timezone, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'timezone', 'style': 'form', 'explode': true } }
30
30
  # The parameter to group the analytics data points by. Defaults to `count` if undefined.
31
31
  field :group_by, Crystalline::Nilable.new(Models::Operations::RetrievePartnerAnalyticsQueryParamGroupBy), { 'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': true } }
32
32
 
33
- sig { params(partner_id: T.nilable(::String), tenant_id: T.nilable(::String), interval: T.nilable(Models::Operations::RetrievePartnerAnalyticsQueryParamInterval), start: T.nilable(::String), end_: T.nilable(::String), query: T.nilable(::String), timezone: T.nilable(::String), group_by: T.nilable(Models::Operations::RetrievePartnerAnalyticsQueryParamGroupBy)).void }
34
- def initialize(partner_id: nil, tenant_id: nil, interval: nil, start: nil, end_: nil, query: nil, timezone: 'UTC', group_by: Models::Operations::RetrievePartnerAnalyticsQueryParamGroupBy::COUNT)
35
- @partner_id = partner_id
36
- @tenant_id = tenant_id
33
+ sig { params(interval: T.nilable(Models::Operations::RetrievePartnerAnalyticsQueryParamInterval), start: T.nilable(::String), end_: T.nilable(::String), query: T.nilable(::String), partner_id: T.nilable(::String), tenant_id: T.nilable(::String), timezone: T.nilable(::String), group_by: T.nilable(Models::Operations::RetrievePartnerAnalyticsQueryParamGroupBy)).void }
34
+ def initialize(interval: nil, start: nil, end_: nil, query: nil, partner_id: nil, tenant_id: nil, timezone: 'UTC', group_by: Models::Operations::RetrievePartnerAnalyticsQueryParamGroupBy::COUNT)
37
35
  @interval = interval
38
36
  @start = start
39
37
  @end_ = end_
40
38
  @query = query
39
+ @partner_id = partner_id
40
+ @tenant_id = tenant_id
41
41
  @timezone = timezone
42
42
  @group_by = group_by
43
43
  end
@@ -45,12 +45,12 @@ module OpenApiSDK
45
45
  sig { params(other: T.untyped).returns(T::Boolean) }
46
46
  def ==(other)
47
47
  return false unless other.is_a? self.class
48
- return false unless @partner_id == other.partner_id
49
- return false unless @tenant_id == other.tenant_id
50
48
  return false unless @interval == other.interval
51
49
  return false unless @start == other.start
52
50
  return false unless @end_ == other.end_
53
51
  return false unless @query == other.query
52
+ return false unless @partner_id == other.partner_id
53
+ return false unless @tenant_id == other.tenant_id
54
54
  return false unless @timezone == other.timezone
55
55
  return false unless @group_by == other.group_by
56
56
  true
@@ -8,10 +8,6 @@ end
8
8
 
9
9
 
10
10
  class OpenApiSDK::Models::Operations::RetrievePartnerAnalyticsRequest
11
- def partner_id(); end
12
- def partner_id=(str_); end
13
- def tenant_id(); end
14
- def tenant_id=(str_); end
15
11
  def interval(); end
16
12
  def interval=(str_); end
17
13
  def start(); end
@@ -20,6 +16,10 @@ class OpenApiSDK::Models::Operations::RetrievePartnerAnalyticsRequest
20
16
  def end_=(str_); end
21
17
  def query(); end
22
18
  def query=(str_); end
19
+ def partner_id(); end
20
+ def partner_id=(str_); end
21
+ def tenant_id(); end
22
+ def tenant_id=(str_); end
23
23
  def timezone(); end
24
24
  def timezone=(str_); end
25
25
  def group_by(); end
@@ -13,7 +13,7 @@ module OpenApiSDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # The unique ID of the click that the lead conversion event is attributed to. You can read this value from `dub_id` cookie. If an empty string is provided, Dub will try to find an existing customer with the provided `customerExternalId` and use the `clickId` from the customer if found.
16
+ # The unique ID of the click that the lead conversion event is attributed to. You can read this value from `dub_id` cookie. [For deferred lead tracking]: If an empty string is provided, Dub will try to find an existing customer with the provided `customerExternalId` and use the `clickId` from the customer if found.
17
17
  field :click_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickId'), required: true } }
18
18
  # The name of the lead event to track. Can also be used as a unique identifier to associate a given lead event for a customer for a subsequent sale event (via the `leadEventName` prop in `/track/sale`).
19
19
  field :event_name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('eventName'), required: true } }
@@ -25,15 +25,18 @@ module OpenApiSDK
25
25
  field :payouts_enabled_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt'), required: true } }
26
26
  # The partner's country (required for tax purposes).
27
27
  field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country'), required: true } }
28
+ # The partner's group ID on Dub.
29
+ field :group_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('groupId') } }
28
30
 
29
- sig { params(id: ::String, name: ::String, email: T.nilable(::String), image: T.nilable(::String), payouts_enabled_at: T.nilable(::String), country: T.nilable(::String)).void }
30
- def initialize(id:, name:, email: nil, image: nil, payouts_enabled_at: nil, country: nil)
31
+ sig { params(id: ::String, name: ::String, email: T.nilable(::String), image: T.nilable(::String), payouts_enabled_at: T.nilable(::String), country: T.nilable(::String), group_id: T.nilable(::String)).void }
32
+ def initialize(id:, name:, email: nil, image: nil, payouts_enabled_at: nil, country: nil, group_id: nil)
31
33
  @id = id
32
34
  @name = name
33
35
  @email = email
34
36
  @image = image
35
37
  @payouts_enabled_at = payouts_enabled_at
36
38
  @country = country
39
+ @group_id = group_id
37
40
  end
38
41
 
39
42
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -45,6 +48,7 @@ module OpenApiSDK
45
48
  return false unless @image == other.image
46
49
  return false unless @payouts_enabled_at == other.payouts_enabled_at
47
50
  return false unless @country == other.country
51
+ return false unless @group_id == other.group_id
48
52
  true
49
53
  end
50
54
  end
@@ -20,4 +20,6 @@ class OpenApiSDK::Models::Operations::UpdateCommissionPartner
20
20
  def payouts_enabled_at=(str_); end
21
21
  def country(); end
22
22
  def country=(str_); end
23
+ def group_id(); end
24
+ def group_id=(str_); end
23
25
  end
@@ -15,12 +15,15 @@ module OpenApiSDK
15
15
 
16
16
  # The name of the folder.
17
17
  field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
18
+ # The description of the folder.
19
+ field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
18
20
  # The access level of the folder within the workspace.
19
21
  field :access_level, Crystalline::Nilable.new(Models::Operations::UpdateFolderAccessLevel), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accessLevel'), 'decoder': Utils.enum_from_string(Models::Operations::UpdateFolderAccessLevel, true) } }
20
22
 
21
- sig { params(name: T.nilable(::String), access_level: T.nilable(Models::Operations::UpdateFolderAccessLevel)).void }
22
- def initialize(name: nil, access_level: nil)
23
+ sig { params(name: T.nilable(::String), description: T.nilable(::String), access_level: T.nilable(Models::Operations::UpdateFolderAccessLevel)).void }
24
+ def initialize(name: nil, description: nil, access_level: nil)
23
25
  @name = name
26
+ @description = description
24
27
  @access_level = access_level
25
28
  end
26
29
 
@@ -28,6 +31,7 @@ module OpenApiSDK
28
31
  def ==(other)
29
32
  return false unless other.is_a? self.class
30
33
  return false unless @name == other.name
34
+ return false unless @description == other.description
31
35
  return false unless @access_level == other.access_level
32
36
  true
33
37
  end
@@ -10,6 +10,8 @@ end
10
10
  class OpenApiSDK::Models::Operations::UpdateFolderRequestBody
11
11
  def name(); end
12
12
  def name=(str_); end
13
+ def description(); end
14
+ def description=(str_); end
13
15
  def access_level(); end
14
16
  def access_level=(str_); end
15
17
  end
@@ -15,7 +15,7 @@ module OpenApiSDK
15
15
 
16
16
  # The destination URL of the short link.
17
17
  field :url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url') } }
18
- # The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
18
+ # The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
19
19
  field :domain, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('domain') } }
20
20
  # The short link slug. If not provided, a random 7-character slug will be generated.
21
21
  field :key, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
@@ -15,7 +15,7 @@ module OpenApiSDK
15
15
 
16
16
  # The destination URL of the short link.
17
17
  field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url'), required: true } }
18
- # The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
18
+ # The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
19
19
  field :domain, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('domain') } }
20
20
  # The short link slug. If not provided, a random 7-character slug will be generated.
21
21
  field :key, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
@@ -12,6 +12,8 @@ module OpenApiSDK
12
12
  autoload :Four, 'open_api_sdk/models/operations/four.rb'
13
13
  autoload :Link, 'open_api_sdk/models/operations/link.rb'
14
14
  autoload :AccessLevel, 'open_api_sdk/models/operations/accesslevel.rb'
15
+ autoload :BanPartnerRequestBody, 'open_api_sdk/models/operations/banpartner_requestbody.rb'
16
+ autoload :BanPartnerResponseBody, 'open_api_sdk/models/operations/banpartner_responsebody.rb'
15
17
  autoload :BannedReason, 'open_api_sdk/models/operations/bannedreason.rb'
16
18
  autoload :BulkCreateLinksTagIds, 'open_api_sdk/models/operations/bulkcreatelinks_tagids.rb'
17
19
  autoload :BulkCreateLinksTagNames, 'open_api_sdk/models/operations/bulkcreatelinks_tagnames.rb'
@@ -26,12 +28,6 @@ module OpenApiSDK
26
28
  autoload :CheckDomainStatusResponseBody, 'open_api_sdk/models/operations/checkdomainstatus_responsebody.rb'
27
29
  autoload :Click, 'open_api_sdk/models/operations/click.rb'
28
30
  autoload :Color, 'open_api_sdk/models/operations/color.rb'
29
- autoload :CreateCustomerLink, 'open_api_sdk/models/operations/createcustomer_link.rb'
30
- autoload :CreateCustomerDiscount, 'open_api_sdk/models/operations/createcustomer_discount.rb'
31
- autoload :CreateCustomerPartner, 'open_api_sdk/models/operations/createcustomer_partner.rb'
32
- autoload :CreateCustomerRequestBody, 'open_api_sdk/models/operations/createcustomer_requestbody.rb'
33
- autoload :CreateCustomerResponseBody, 'open_api_sdk/models/operations/createcustomer_responsebody.rb'
34
- autoload :CreateCustomerType, 'open_api_sdk/models/operations/createcustomer_type.rb'
35
31
  autoload :CreateDomainRequestBody, 'open_api_sdk/models/operations/createdomain_requestbody.rb'
36
32
  autoload :CreateFolderRequestBody, 'open_api_sdk/models/operations/createfolder_requestbody.rb'
37
33
  autoload :CreateLinkRequestBody, 'open_api_sdk/models/operations/createlink_requestbody.rb'
@@ -135,6 +131,7 @@ module OpenApiSDK
135
131
  autoload :QueryParamTagIds, 'open_api_sdk/models/operations/queryparam_tagids.rb'
136
132
  autoload :QueryParamTagNames, 'open_api_sdk/models/operations/queryparam_tagnames.rb'
137
133
  autoload :QueryParamTrigger, 'open_api_sdk/models/operations/queryparam_trigger.rb'
134
+ autoload :Reason, 'open_api_sdk/models/operations/reason.rb'
138
135
  autoload :RegisterDomainRequestBody, 'open_api_sdk/models/operations/registerdomain_requestbody.rb'
139
136
  autoload :RegisterDomainResponseBody, 'open_api_sdk/models/operations/registerdomain_responsebody.rb'
140
137
  autoload :RequestBody, 'open_api_sdk/models/operations/requestbody.rb'
@@ -13,7 +13,7 @@ module OpenApiSDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # The destination URL
16
+ # The full destination URL (including query parameters)
17
17
  field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url'), required: true } }
18
18
  # The number of clicks from this URL
19
19
  field :clicks, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } }
@@ -0,0 +1,37 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module OpenApiSDK
8
+ module Models
9
+ module Shared
10
+
11
+
12
+ class ApplicationFormData
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :label, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('label'), required: true } }
18
+
19
+ field :value, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('value'), required: true } }
20
+
21
+ sig { params(label: ::String, value: T.nilable(::String)).void }
22
+ def initialize(label:, value: nil)
23
+ @label = label
24
+ @value = value
25
+ end
26
+
27
+ sig { params(other: T.untyped).returns(T::Boolean) }
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @label == other.label
31
+ return false unless @value == other.value
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class OpenApiSDK::Models::Shared::ApplicationFormData
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class OpenApiSDK::Models::Shared::ApplicationFormData
11
+ def label(); end
12
+ def label=(str_); end
13
+ def value(); end
14
+ def value=(str_); end
15
+ end
@@ -38,8 +38,10 @@ module OpenApiSDK
38
38
  # The partner's country (required for tax purposes).
39
39
  field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country'), required: true } }
40
40
 
41
- sig { params(id: ::String, name: ::String, total_clicks: ::Float, total_leads: ::Float, total_conversions: ::Float, total_sales: ::Float, total_sale_amount: ::Float, total_commissions: ::Float, email: T.nilable(::String), image: T.nilable(::String), payouts_enabled_at: T.nilable(::String), country: T.nilable(::String)).void }
42
- def initialize(id:, name:, total_clicks:, total_leads:, total_conversions:, total_sales:, total_sale_amount:, total_commissions:, email: nil, image: nil, payouts_enabled_at: nil, country: nil)
41
+ field :group_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('groupId') } }
42
+
43
+ sig { params(id: ::String, name: ::String, total_clicks: ::Float, total_leads: ::Float, total_conversions: ::Float, total_sales: ::Float, total_sale_amount: ::Float, total_commissions: ::Float, email: T.nilable(::String), image: T.nilable(::String), payouts_enabled_at: T.nilable(::String), country: T.nilable(::String), group_id: T.nilable(::String)).void }
44
+ def initialize(id:, name:, total_clicks:, total_leads:, total_conversions:, total_sales:, total_sale_amount:, total_commissions:, email: nil, image: nil, payouts_enabled_at: nil, country: nil, group_id: nil)
43
45
  @id = id
44
46
  @name = name
45
47
  @total_clicks = total_clicks
@@ -52,6 +54,7 @@ module OpenApiSDK
52
54
  @image = image
53
55
  @payouts_enabled_at = payouts_enabled_at
54
56
  @country = country
57
+ @group_id = group_id
55
58
  end
56
59
 
57
60
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -69,6 +72,7 @@ module OpenApiSDK
69
72
  return false unless @image == other.image
70
73
  return false unless @payouts_enabled_at == other.payouts_enabled_at
71
74
  return false unless @country == other.country
75
+ return false unless @group_id == other.group_id
72
76
  true
73
77
  end
74
78
  end
@@ -32,4 +32,6 @@ class OpenApiSDK::Models::Shared::CommissionCreatedEventPartner
32
32
  def payouts_enabled_at=(str_); end
33
33
  def country(); end
34
34
  def country=(str_); end
35
+ def group_id(); end
36
+ def group_id=(str_); end
35
37
  end
@@ -23,16 +23,19 @@ module OpenApiSDK
23
23
  field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt'), required: true } }
24
24
  # The date the folder was updated.
25
25
  field :updated_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt'), required: true } }
26
+ # The description of the folder.
27
+ field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description'), required: true } }
26
28
  # The access level of the folder within the workspace.
27
29
  field :access_level, Crystalline::Nilable.new(Models::Shared::AccessLevel), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accessLevel'), 'decoder': Utils.enum_from_string(Models::Shared::AccessLevel, true) } }
28
30
 
29
- sig { params(id: ::String, name: ::String, type: Models::Shared::Type, created_at: ::String, updated_at: ::String, access_level: T.nilable(Models::Shared::AccessLevel)).void }
30
- def initialize(id:, name:, type:, created_at:, updated_at:, access_level: nil)
31
+ sig { params(id: ::String, name: ::String, type: Models::Shared::Type, created_at: ::String, updated_at: ::String, description: T.nilable(::String), access_level: T.nilable(Models::Shared::AccessLevel)).void }
32
+ def initialize(id:, name:, type:, created_at:, updated_at:, description: nil, access_level: nil)
31
33
  @id = id
32
34
  @name = name
33
35
  @type = type
34
36
  @created_at = created_at
35
37
  @updated_at = updated_at
38
+ @description = description
36
39
  @access_level = access_level
37
40
  end
38
41
 
@@ -44,6 +47,7 @@ module OpenApiSDK
44
47
  return false unless @type == other.type
45
48
  return false unless @created_at == other.created_at
46
49
  return false unless @updated_at == other.updated_at
50
+ return false unless @description == other.description
47
51
  return false unless @access_level == other.access_level
48
52
  true
49
53
  end
@@ -18,6 +18,8 @@ class OpenApiSDK::Models::Shared::FolderSchema
18
18
  def created_at=(str_); end
19
19
  def updated_at(); end
20
20
  def updated_at=(str_); end
21
+ def description(); end
22
+ def description=(str_); end
21
23
  def access_level(); end
22
24
  def access_level=(str_); end
23
25
  end