dub 0.10.2 → 0.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rb +6 -2
- data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rbi +2 -0
- data/lib/open_api_sdk/models/operations/createpartner_link.rb +6 -2
- data/lib/open_api_sdk/models/operations/createpartner_link.rbi +2 -0
- data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +6 -38
- data/lib/open_api_sdk/models/operations/createpartner_responsebody.rbi +2 -18
- data/lib/open_api_sdk/models/operations/link.rb +6 -2
- data/lib/open_api_sdk/models/operations/link.rbi +2 -0
- data/lib/open_api_sdk/models/operations/listcommissions_request.rb +7 -3
- data/lib/open_api_sdk/models/operations/listcommissions_request.rbi +2 -0
- data/lib/open_api_sdk/models/operations/listevents_request.rb +6 -2
- data/lib/open_api_sdk/models/operations/listevents_request.rbi +2 -0
- data/lib/open_api_sdk/models/operations/listpartners_link.rb +6 -2
- data/lib/open_api_sdk/models/operations/listpartners_link.rbi +2 -0
- data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rb +1 -1
- data/lib/open_api_sdk/models/operations/listpartners_request.rb +11 -7
- data/lib/open_api_sdk/models/operations/listpartners_request.rbi +4 -2
- data/lib/open_api_sdk/models/operations/listpartners_responsebody.rb +6 -38
- data/lib/open_api_sdk/models/operations/listpartners_responsebody.rbi +2 -18
- data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +6 -2
- data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rbi +2 -0
- data/lib/open_api_sdk/models/operations/tracklead_link.rb +65 -0
- data/lib/open_api_sdk/models/operations/tracklead_link.rbi +29 -0
- data/lib/open_api_sdk/models/operations/tracklead_responsebody.rb +6 -2
- data/lib/open_api_sdk/models/operations/tracklead_responsebody.rbi +2 -0
- data/lib/open_api_sdk/models/operations/tracksale_requestbody.rb +5 -5
- data/lib/open_api_sdk/models/operations/updatecustomer_requestbody.rb +6 -2
- data/lib/open_api_sdk/models/operations/updatecustomer_requestbody.rbi +2 -0
- data/lib/open_api_sdk/models/operations.rb +1 -0
- data/lib/open_api_sdk/models/shared/commissioncreatedevent_data.rb +2 -2
- data/lib/open_api_sdk/models/shared/commissioncreatedevent_partner.rb +77 -0
- data/lib/open_api_sdk/models/shared/commissioncreatedevent_partner.rbi +35 -0
- data/lib/open_api_sdk/models/shared/leadcreatedevent_data.rb +10 -2
- data/lib/open_api_sdk/models/shared/leadcreatedevent_data.rbi +4 -0
- data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rb +6 -38
- data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rbi +2 -18
- data/lib/open_api_sdk/models/shared/partnerenrolledevent_link.rb +6 -2
- data/lib/open_api_sdk/models/shared/partnerenrolledevent_link.rbi +2 -0
- data/lib/open_api_sdk/models/shared/salecreatedevent_data.rb +10 -2
- data/lib/open_api_sdk/models/shared/salecreatedevent_data.rbi +4 -0
- data/lib/open_api_sdk/models/shared/salecreatedevent_partner.rb +77 -0
- data/lib/open_api_sdk/models/shared/salecreatedevent_partner.rbi +35 -0
- data/lib/open_api_sdk/models/shared.rb +2 -0
- data/lib/open_api_sdk/sdkconfiguration.rb +3 -3
- metadata +8 -2
@@ -25,6 +25,8 @@ module OpenApiSDK
|
|
25
25
|
field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt'), required: true } }
|
26
26
|
# The status of the partner's enrollment in the program.
|
27
27
|
field :status, Models::Operations::ListPartnersStatus, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status'), required: true, 'decoder': Utils.enum_from_string(Models::Operations::ListPartnersStatus, false) } }
|
28
|
+
# If the partner profile type is a company, this is the partner's legal company name.
|
29
|
+
field :company_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('companyName'), required: true } }
|
28
30
|
# The partner's email address. Should be a unique value across Dub.
|
29
31
|
field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('email'), required: true } }
|
30
32
|
# The partner's avatar image.
|
@@ -75,43 +77,26 @@ module OpenApiSDK
|
|
75
77
|
field :net_revenue, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('netRevenue') } }
|
76
78
|
# The partner's website URL (including the https protocol).
|
77
79
|
field :website, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('website') } }
|
78
|
-
|
79
|
-
field :website_txt_record, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('websiteTxtRecord') } }
|
80
|
-
|
81
|
-
field :website_verified_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('websiteVerifiedAt') } }
|
82
80
|
# The partner's YouTube channel username (e.g. `johndoe`).
|
83
81
|
field :youtube, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtube') } }
|
84
|
-
|
85
|
-
field :youtube_verified_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtubeVerifiedAt') } }
|
86
|
-
|
87
|
-
field :youtube_subscriber_count, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtubeSubscriberCount') } }
|
88
|
-
|
89
|
-
field :youtube_view_count, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtubeViewCount') } }
|
90
82
|
# The partner's Twitter username (e.g. `johndoe`).
|
91
83
|
field :twitter, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('twitter') } }
|
92
|
-
|
93
|
-
field :twitter_verified_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('twitterVerifiedAt') } }
|
94
84
|
# The partner's LinkedIn username (e.g. `johndoe`).
|
95
85
|
field :linkedin, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('linkedin') } }
|
96
|
-
|
97
|
-
field :linkedin_verified_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('linkedinVerifiedAt') } }
|
98
86
|
# The partner's Instagram username (e.g. `johndoe`).
|
99
87
|
field :instagram, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('instagram') } }
|
100
|
-
|
101
|
-
field :instagram_verified_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('instagramVerifiedAt') } }
|
102
88
|
# The partner's TikTok username (e.g. `johndoe`).
|
103
89
|
field :tiktok, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tiktok') } }
|
104
90
|
|
105
|
-
|
106
|
-
|
107
|
-
sig { params(id: ::String, name: ::String, program_id: ::String, partner_id: ::String, created_at: ::String, status: Models::Operations::ListPartnersStatus, email: T.nilable(::String), image: T.nilable(::String), country: T.nilable(::String), paypal_email: T.nilable(::String), stripe_connect_id: T.nilable(::String), payouts_enabled_at: T.nilable(::String), tenant_id: T.nilable(::String), links: T.nilable(T::Array[Models::Operations::ListPartnersLink]), description: T.nilable(::String), group_id: T.nilable(::String), total_commissions: T.nilable(::Float), click_reward_id: T.nilable(::String), lead_reward_id: T.nilable(::String), sale_reward_id: T.nilable(::String), discount_id: T.nilable(::String), application_id: T.nilable(::String), banned_at: T.nilable(::String), banned_reason: T.nilable(Models::Operations::ListPartnersBannedReason), clicks: T.nilable(::Float), leads: T.nilable(::Float), conversions: T.nilable(::Float), sales: T.nilable(::Float), sale_amount: T.nilable(::Float), net_revenue: T.nilable(::Float), website: T.nilable(::String), website_txt_record: T.nilable(::String), website_verified_at: T.nilable(::String), youtube: T.nilable(::String), youtube_verified_at: T.nilable(::String), youtube_subscriber_count: T.nilable(::Float), youtube_view_count: T.nilable(::Float), twitter: T.nilable(::String), twitter_verified_at: T.nilable(::String), linkedin: T.nilable(::String), linkedin_verified_at: T.nilable(::String), instagram: T.nilable(::String), instagram_verified_at: T.nilable(::String), tiktok: T.nilable(::String), tiktok_verified_at: T.nilable(::String)).void }
|
108
|
-
def initialize(id:, name:, program_id:, partner_id:, created_at:, status:, email: nil, image: nil, country: nil, paypal_email: nil, stripe_connect_id: nil, payouts_enabled_at: nil, tenant_id: nil, links: nil, description: nil, group_id: nil, total_commissions: 0.0, click_reward_id: nil, lead_reward_id: nil, sale_reward_id: nil, discount_id: nil, application_id: nil, banned_at: nil, banned_reason: nil, clicks: 0.0, leads: 0.0, conversions: 0.0, sales: 0.0, sale_amount: 0.0, net_revenue: 0.0, website: nil, website_txt_record: nil, website_verified_at: nil, youtube: nil, youtube_verified_at: nil, youtube_subscriber_count: nil, youtube_view_count: nil, twitter: nil, twitter_verified_at: nil, linkedin: nil, linkedin_verified_at: nil, instagram: nil, instagram_verified_at: nil, tiktok: nil, tiktok_verified_at: nil)
|
91
|
+
sig { params(id: ::String, name: ::String, program_id: ::String, partner_id: ::String, created_at: ::String, status: Models::Operations::ListPartnersStatus, company_name: T.nilable(::String), email: T.nilable(::String), image: T.nilable(::String), country: T.nilable(::String), paypal_email: T.nilable(::String), stripe_connect_id: T.nilable(::String), payouts_enabled_at: T.nilable(::String), tenant_id: T.nilable(::String), links: T.nilable(T::Array[Models::Operations::ListPartnersLink]), description: T.nilable(::String), group_id: T.nilable(::String), total_commissions: T.nilable(::Float), click_reward_id: T.nilable(::String), lead_reward_id: T.nilable(::String), sale_reward_id: T.nilable(::String), discount_id: T.nilable(::String), application_id: T.nilable(::String), banned_at: T.nilable(::String), banned_reason: T.nilable(Models::Operations::ListPartnersBannedReason), clicks: T.nilable(::Float), leads: T.nilable(::Float), conversions: T.nilable(::Float), sales: T.nilable(::Float), sale_amount: T.nilable(::Float), net_revenue: T.nilable(::Float), website: T.nilable(::String), youtube: T.nilable(::String), twitter: T.nilable(::String), linkedin: T.nilable(::String), instagram: T.nilable(::String), tiktok: T.nilable(::String)).void }
|
92
|
+
def initialize(id:, name:, program_id:, partner_id:, created_at:, status:, company_name: nil, email: nil, image: nil, country: nil, paypal_email: nil, stripe_connect_id: nil, payouts_enabled_at: nil, tenant_id: nil, links: nil, description: nil, group_id: nil, total_commissions: 0.0, click_reward_id: nil, lead_reward_id: nil, sale_reward_id: nil, discount_id: nil, application_id: nil, banned_at: nil, banned_reason: nil, clicks: 0.0, leads: 0.0, conversions: 0.0, sales: 0.0, sale_amount: 0.0, net_revenue: 0.0, website: nil, youtube: nil, twitter: nil, linkedin: nil, instagram: nil, tiktok: nil)
|
109
93
|
@id = id
|
110
94
|
@name = name
|
111
95
|
@program_id = program_id
|
112
96
|
@partner_id = partner_id
|
113
97
|
@created_at = created_at
|
114
98
|
@status = status
|
99
|
+
@company_name = company_name
|
115
100
|
@email = email
|
116
101
|
@image = image
|
117
102
|
@country = country
|
@@ -137,20 +122,11 @@ module OpenApiSDK
|
|
137
122
|
@sale_amount = sale_amount
|
138
123
|
@net_revenue = net_revenue
|
139
124
|
@website = website
|
140
|
-
@website_txt_record = website_txt_record
|
141
|
-
@website_verified_at = website_verified_at
|
142
125
|
@youtube = youtube
|
143
|
-
@youtube_verified_at = youtube_verified_at
|
144
|
-
@youtube_subscriber_count = youtube_subscriber_count
|
145
|
-
@youtube_view_count = youtube_view_count
|
146
126
|
@twitter = twitter
|
147
|
-
@twitter_verified_at = twitter_verified_at
|
148
127
|
@linkedin = linkedin
|
149
|
-
@linkedin_verified_at = linkedin_verified_at
|
150
128
|
@instagram = instagram
|
151
|
-
@instagram_verified_at = instagram_verified_at
|
152
129
|
@tiktok = tiktok
|
153
|
-
@tiktok_verified_at = tiktok_verified_at
|
154
130
|
end
|
155
131
|
|
156
132
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
@@ -162,6 +138,7 @@ module OpenApiSDK
|
|
162
138
|
return false unless @partner_id == other.partner_id
|
163
139
|
return false unless @created_at == other.created_at
|
164
140
|
return false unless @status == other.status
|
141
|
+
return false unless @company_name == other.company_name
|
165
142
|
return false unless @email == other.email
|
166
143
|
return false unless @image == other.image
|
167
144
|
return false unless @country == other.country
|
@@ -187,20 +164,11 @@ module OpenApiSDK
|
|
187
164
|
return false unless @sale_amount == other.sale_amount
|
188
165
|
return false unless @net_revenue == other.net_revenue
|
189
166
|
return false unless @website == other.website
|
190
|
-
return false unless @website_txt_record == other.website_txt_record
|
191
|
-
return false unless @website_verified_at == other.website_verified_at
|
192
167
|
return false unless @youtube == other.youtube
|
193
|
-
return false unless @youtube_verified_at == other.youtube_verified_at
|
194
|
-
return false unless @youtube_subscriber_count == other.youtube_subscriber_count
|
195
|
-
return false unless @youtube_view_count == other.youtube_view_count
|
196
168
|
return false unless @twitter == other.twitter
|
197
|
-
return false unless @twitter_verified_at == other.twitter_verified_at
|
198
169
|
return false unless @linkedin == other.linkedin
|
199
|
-
return false unless @linkedin_verified_at == other.linkedin_verified_at
|
200
170
|
return false unless @instagram == other.instagram
|
201
|
-
return false unless @instagram_verified_at == other.instagram_verified_at
|
202
171
|
return false unless @tiktok == other.tiktok
|
203
|
-
return false unless @tiktok_verified_at == other.tiktok_verified_at
|
204
172
|
true
|
205
173
|
end
|
206
174
|
end
|
@@ -20,6 +20,8 @@ class OpenApiSDK::Models::Operations::ListPartnersResponseBody
|
|
20
20
|
def created_at=(str_); end
|
21
21
|
def status(); end
|
22
22
|
def status=(str_); end
|
23
|
+
def company_name(); end
|
24
|
+
def company_name=(str_); end
|
23
25
|
def email(); end
|
24
26
|
def email=(str_); end
|
25
27
|
def image(); end
|
@@ -70,32 +72,14 @@ class OpenApiSDK::Models::Operations::ListPartnersResponseBody
|
|
70
72
|
def net_revenue=(str_); end
|
71
73
|
def website(); end
|
72
74
|
def website=(str_); end
|
73
|
-
def website_txt_record(); end
|
74
|
-
def website_txt_record=(str_); end
|
75
|
-
def website_verified_at(); end
|
76
|
-
def website_verified_at=(str_); end
|
77
75
|
def youtube(); end
|
78
76
|
def youtube=(str_); end
|
79
|
-
def youtube_verified_at(); end
|
80
|
-
def youtube_verified_at=(str_); end
|
81
|
-
def youtube_subscriber_count(); end
|
82
|
-
def youtube_subscriber_count=(str_); end
|
83
|
-
def youtube_view_count(); end
|
84
|
-
def youtube_view_count=(str_); end
|
85
77
|
def twitter(); end
|
86
78
|
def twitter=(str_); end
|
87
|
-
def twitter_verified_at(); end
|
88
|
-
def twitter_verified_at=(str_); end
|
89
79
|
def linkedin(); end
|
90
80
|
def linkedin=(str_); end
|
91
|
-
def linkedin_verified_at(); end
|
92
|
-
def linkedin_verified_at=(str_); end
|
93
81
|
def instagram(); end
|
94
82
|
def instagram=(str_); end
|
95
|
-
def instagram_verified_at(); end
|
96
|
-
def instagram_verified_at=(str_); end
|
97
83
|
def tiktok(); end
|
98
84
|
def tiktok=(str_); end
|
99
|
-
def tiktok_verified_at(); end
|
100
|
-
def tiktok_verified_at=(str_); end
|
101
85
|
end
|
@@ -87,9 +87,11 @@ module OpenApiSDK
|
|
87
87
|
field :utm_term, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } }
|
88
88
|
# The UTM content of the short link.
|
89
89
|
field :utm_content, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'utm_content', 'style': 'form', 'explode': true } }
|
90
|
+
# The ref of the short link.
|
91
|
+
field :ref, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'ref', 'style': 'form', 'explode': true } }
|
90
92
|
|
91
|
-
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)).void }
|
92
|
-
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)
|
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)
|
93
95
|
@domain = domain
|
94
96
|
@key = key
|
95
97
|
@link_id = link_id
|
@@ -127,6 +129,7 @@ module OpenApiSDK
|
|
127
129
|
@utm_campaign = utm_campaign
|
128
130
|
@utm_term = utm_term
|
129
131
|
@utm_content = utm_content
|
132
|
+
@ref = ref
|
130
133
|
end
|
131
134
|
|
132
135
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
@@ -169,6 +172,7 @@ module OpenApiSDK
|
|
169
172
|
return false unless @utm_campaign == other.utm_campaign
|
170
173
|
return false unless @utm_term == other.utm_term
|
171
174
|
return false unless @utm_content == other.utm_content
|
175
|
+
return false unless @ref == other.ref
|
172
176
|
true
|
173
177
|
end
|
174
178
|
end
|
@@ -0,0 +1,65 @@
|
|
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 TrackLeadLink
|
13
|
+
extend T::Sig
|
14
|
+
include Crystalline::MetadataFields
|
15
|
+
|
16
|
+
# The unique ID of the short link.
|
17
|
+
field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id'), 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).
|
19
|
+
field :domain, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('domain'), required: true } }
|
20
|
+
# The short link slug. If not provided, a random 7-character slug will be generated.
|
21
|
+
field :key, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key'), required: true } }
|
22
|
+
# The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`).
|
23
|
+
field :short_link, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('shortLink'), required: true } }
|
24
|
+
# The destination URL of the short link.
|
25
|
+
field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url'), required: true } }
|
26
|
+
# The ID of the partner the short link is associated with.
|
27
|
+
field :partner_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partnerId'), required: true } }
|
28
|
+
# The ID of the program the short link is associated with.
|
29
|
+
field :program_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('programId'), required: true } }
|
30
|
+
# The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.
|
31
|
+
field :tenant_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId'), required: true } }
|
32
|
+
# The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.
|
33
|
+
field :external_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId'), required: true } }
|
34
|
+
|
35
|
+
sig { params(id: ::String, domain: ::String, key: ::String, short_link: ::String, url: ::String, partner_id: T.nilable(::String), program_id: T.nilable(::String), tenant_id: T.nilable(::String), external_id: T.nilable(::String)).void }
|
36
|
+
def initialize(id:, domain:, key:, short_link:, url:, partner_id: nil, program_id: nil, tenant_id: nil, external_id: nil)
|
37
|
+
@id = id
|
38
|
+
@domain = domain
|
39
|
+
@key = key
|
40
|
+
@short_link = short_link
|
41
|
+
@url = url
|
42
|
+
@partner_id = partner_id
|
43
|
+
@program_id = program_id
|
44
|
+
@tenant_id = tenant_id
|
45
|
+
@external_id = external_id
|
46
|
+
end
|
47
|
+
|
48
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
49
|
+
def ==(other)
|
50
|
+
return false unless other.is_a? self.class
|
51
|
+
return false unless @id == other.id
|
52
|
+
return false unless @domain == other.domain
|
53
|
+
return false unless @key == other.key
|
54
|
+
return false unless @short_link == other.short_link
|
55
|
+
return false unless @url == other.url
|
56
|
+
return false unless @partner_id == other.partner_id
|
57
|
+
return false unless @program_id == other.program_id
|
58
|
+
return false unless @tenant_id == other.tenant_id
|
59
|
+
return false unless @external_id == other.external_id
|
60
|
+
true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
|
5
|
+
class OpenApiSDK::Models::Operations::TrackLeadLink
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
7
|
+
end
|
8
|
+
|
9
|
+
|
10
|
+
class OpenApiSDK::Models::Operations::TrackLeadLink
|
11
|
+
def id(); end
|
12
|
+
def id=(str_); end
|
13
|
+
def domain(); end
|
14
|
+
def domain=(str_); end
|
15
|
+
def key(); end
|
16
|
+
def key=(str_); end
|
17
|
+
def short_link(); end
|
18
|
+
def short_link=(str_); end
|
19
|
+
def url(); end
|
20
|
+
def url=(str_); end
|
21
|
+
def partner_id(); end
|
22
|
+
def partner_id=(str_); end
|
23
|
+
def program_id(); end
|
24
|
+
def program_id=(str_); end
|
25
|
+
def tenant_id(); end
|
26
|
+
def tenant_id=(str_); end
|
27
|
+
def external_id(); end
|
28
|
+
def external_id=(str_); end
|
29
|
+
end
|
@@ -18,10 +18,13 @@ module OpenApiSDK
|
|
18
18
|
|
19
19
|
field :customer, Models::Operations::Customer, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('customer'), required: true } }
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
field :link, Crystalline::Nilable.new(Models::Operations::TrackLeadLink), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('link'), required: true } }
|
22
|
+
|
23
|
+
sig { params(click: Models::Operations::Click, customer: Models::Operations::Customer, link: T.nilable(Models::Operations::TrackLeadLink)).void }
|
24
|
+
def initialize(click:, customer:, link: nil)
|
23
25
|
@click = click
|
24
26
|
@customer = customer
|
27
|
+
@link = link
|
25
28
|
end
|
26
29
|
|
27
30
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
@@ -29,6 +32,7 @@ module OpenApiSDK
|
|
29
32
|
return false unless other.is_a? self.class
|
30
33
|
return false unless @click == other.click
|
31
34
|
return false unless @customer == other.customer
|
35
|
+
return false unless @link == other.link
|
32
36
|
true
|
33
37
|
end
|
34
38
|
end
|
@@ -25,17 +25,17 @@ module OpenApiSDK
|
|
25
25
|
field :payment_processor, Crystalline::Nilable.new(Models::Operations::PaymentProcessor), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('paymentProcessor'), 'decoder': Utils.enum_from_string(Models::Operations::PaymentProcessor, true) } }
|
26
26
|
# Additional metadata to be stored with the sale event. Max 10,000 characters when stringified.
|
27
27
|
field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('metadata') } }
|
28
|
-
# [For sale tracking
|
28
|
+
# [For direct sale tracking]: The unique ID of the click that the sale conversion event is attributed to. You can read this value from `dub_id` cookie.
|
29
29
|
field :click_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickId') } }
|
30
30
|
# The invoice ID of the sale. Can be used as a idempotency key – only one sale event can be recorded for a given invoice ID.
|
31
31
|
field :invoice_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('invoiceId') } }
|
32
|
-
# The name of the lead event that occurred before the sale (case-sensitive). This is used to associate the sale event with a particular lead event (instead of the latest lead event for a link-customer combination, which is the default behavior). For sale tracking
|
32
|
+
# The name of the lead event that occurred before the sale (case-sensitive). This is used to associate the sale event with a particular lead event (instead of the latest lead event for a link-customer combination, which is the default behavior). For direct sale tracking, this field can also be used to specify the lead event name.
|
33
33
|
field :lead_event_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leadEventName') } }
|
34
|
-
# [For sale tracking
|
34
|
+
# [For direct sale tracking]: The name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”).
|
35
35
|
field :customer_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('customerName') } }
|
36
|
-
# [For sale tracking
|
36
|
+
# [For direct sale tracking]: The email address of the customer.
|
37
37
|
field :customer_email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('customerEmail') } }
|
38
|
-
# [For sale tracking
|
38
|
+
# [For direct sale tracking]: The avatar URL of the customer.
|
39
39
|
field :customer_avatar, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('customerAvatar') } }
|
40
40
|
|
41
41
|
sig { params(customer_external_id: ::String, amount: ::Integer, currency: T.nilable(::String), event_name: T.nilable(::String), payment_processor: T.nilable(Models::Operations::PaymentProcessor), metadata: T.nilable(T::Hash[Symbol, ::Object]), click_id: T.nilable(::String), invoice_id: T.nilable(::String), lead_event_name: T.nilable(::String), customer_name: T.nilable(::String), customer_email: T.nilable(::String), customer_avatar: T.nilable(::String)).void }
|
@@ -21,13 +21,16 @@ module OpenApiSDK
|
|
21
21
|
field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
|
22
22
|
# Avatar URL of the customer in the client's app.
|
23
23
|
field :avatar, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('avatar') } }
|
24
|
+
# The customer's Stripe customer ID. Useful for attribution recurring sale events to the partner who referred the customer.
|
25
|
+
field :stripe_customer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('stripeCustomerId') } }
|
24
26
|
|
25
|
-
sig { params(external_id: T.nilable(::String), email: T.nilable(::String), name: T.nilable(::String), avatar: T.nilable(::String)).void }
|
26
|
-
def initialize(external_id: nil, email: nil, name: nil, avatar: nil)
|
27
|
+
sig { params(external_id: T.nilable(::String), email: T.nilable(::String), name: T.nilable(::String), avatar: T.nilable(::String), stripe_customer_id: T.nilable(::String)).void }
|
28
|
+
def initialize(external_id: nil, email: nil, name: nil, avatar: nil, stripe_customer_id: nil)
|
27
29
|
@external_id = external_id
|
28
30
|
@email = email
|
29
31
|
@name = name
|
30
32
|
@avatar = avatar
|
33
|
+
@stripe_customer_id = stripe_customer_id
|
31
34
|
end
|
32
35
|
|
33
36
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
@@ -37,6 +40,7 @@ module OpenApiSDK
|
|
37
40
|
return false unless @email == other.email
|
38
41
|
return false unless @name == other.name
|
39
42
|
return false unless @avatar == other.avatar
|
43
|
+
return false unless @stripe_customer_id == other.stripe_customer_id
|
40
44
|
true
|
41
45
|
end
|
42
46
|
end
|
@@ -156,6 +156,7 @@ module OpenApiSDK
|
|
156
156
|
autoload :TagIds, 'open_api_sdk/models/operations/tagids.rb'
|
157
157
|
autoload :TagNames, 'open_api_sdk/models/operations/tagnames.rb'
|
158
158
|
autoload :TestVariants, 'open_api_sdk/models/operations/testvariants.rb'
|
159
|
+
autoload :TrackLeadLink, 'open_api_sdk/models/operations/tracklead_link.rb'
|
159
160
|
autoload :TrackLeadRequestBody, 'open_api_sdk/models/operations/tracklead_requestbody.rb'
|
160
161
|
autoload :TrackLeadResponseBody, 'open_api_sdk/models/operations/tracklead_responsebody.rb'
|
161
162
|
autoload :TrackSaleCustomer, 'open_api_sdk/models/operations/tracksale_customer.rb'
|
@@ -30,7 +30,7 @@ module OpenApiSDK
|
|
30
30
|
|
31
31
|
field :updated_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt'), required: true } }
|
32
32
|
|
33
|
-
field :partner, Models::Shared::
|
33
|
+
field :partner, Models::Shared::CommissionCreatedEventPartner, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partner'), required: true } }
|
34
34
|
|
35
35
|
field :type, Crystalline::Nilable.new(Models::Shared::CommissionCreatedEventType), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Models::Shared::CommissionCreatedEventType, true) } }
|
36
36
|
|
@@ -42,7 +42,7 @@ module OpenApiSDK
|
|
42
42
|
|
43
43
|
field :customer, Crystalline::Nilable.new(Models::Shared::CommissionCreatedEventCustomer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('customer') } }
|
44
44
|
|
45
|
-
sig { params(id: ::String, amount: ::Float, earnings: ::Float, currency: ::String, status: Models::Shared::CommissionCreatedEventStatus, quantity: ::Float, created_at: ::String, updated_at: ::String, partner: Models::Shared::
|
45
|
+
sig { params(id: ::String, amount: ::Float, earnings: ::Float, currency: ::String, status: Models::Shared::CommissionCreatedEventStatus, quantity: ::Float, created_at: ::String, updated_at: ::String, partner: Models::Shared::CommissionCreatedEventPartner, type: T.nilable(Models::Shared::CommissionCreatedEventType), invoice_id: T.nilable(::String), description: T.nilable(::String), user_id: T.nilable(::String), customer: T.nilable(Models::Shared::CommissionCreatedEventCustomer)).void }
|
46
46
|
def initialize(id:, amount:, earnings:, currency:, status:, quantity:, created_at:, updated_at:, partner:, type: nil, invoice_id: nil, description: nil, user_id: nil, customer: nil)
|
47
47
|
@id = id
|
48
48
|
@amount = amount
|
@@ -0,0 +1,77 @@
|
|
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 CommissionCreatedEventPartner
|
13
|
+
extend T::Sig
|
14
|
+
include Crystalline::MetadataFields
|
15
|
+
|
16
|
+
# The partner's unique ID on Dub.
|
17
|
+
field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id'), required: true } }
|
18
|
+
# The partner's full legal name.
|
19
|
+
field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name'), required: true } }
|
20
|
+
|
21
|
+
field :total_clicks, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalClicks'), required: true } }
|
22
|
+
|
23
|
+
field :total_leads, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalLeads'), required: true } }
|
24
|
+
|
25
|
+
field :total_conversions, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalConversions'), required: true } }
|
26
|
+
|
27
|
+
field :total_sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalSales'), required: true } }
|
28
|
+
|
29
|
+
field :total_sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalSaleAmount'), required: true } }
|
30
|
+
|
31
|
+
field :total_commissions, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalCommissions'), required: true } }
|
32
|
+
# The partner's email address. Should be a unique value across Dub.
|
33
|
+
field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('email'), required: true } }
|
34
|
+
# The partner's avatar image.
|
35
|
+
field :image, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image'), required: true } }
|
36
|
+
# The date when the partner enabled payouts.
|
37
|
+
field :payouts_enabled_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt'), required: true } }
|
38
|
+
# The partner's country (required for tax purposes).
|
39
|
+
field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country'), required: true } }
|
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)
|
43
|
+
@id = id
|
44
|
+
@name = name
|
45
|
+
@total_clicks = total_clicks
|
46
|
+
@total_leads = total_leads
|
47
|
+
@total_conversions = total_conversions
|
48
|
+
@total_sales = total_sales
|
49
|
+
@total_sale_amount = total_sale_amount
|
50
|
+
@total_commissions = total_commissions
|
51
|
+
@email = email
|
52
|
+
@image = image
|
53
|
+
@payouts_enabled_at = payouts_enabled_at
|
54
|
+
@country = country
|
55
|
+
end
|
56
|
+
|
57
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
58
|
+
def ==(other)
|
59
|
+
return false unless other.is_a? self.class
|
60
|
+
return false unless @id == other.id
|
61
|
+
return false unless @name == other.name
|
62
|
+
return false unless @total_clicks == other.total_clicks
|
63
|
+
return false unless @total_leads == other.total_leads
|
64
|
+
return false unless @total_conversions == other.total_conversions
|
65
|
+
return false unless @total_sales == other.total_sales
|
66
|
+
return false unless @total_sale_amount == other.total_sale_amount
|
67
|
+
return false unless @total_commissions == other.total_commissions
|
68
|
+
return false unless @email == other.email
|
69
|
+
return false unless @image == other.image
|
70
|
+
return false unless @payouts_enabled_at == other.payouts_enabled_at
|
71
|
+
return false unless @country == other.country
|
72
|
+
true
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
|
5
|
+
class OpenApiSDK::Models::Shared::CommissionCreatedEventPartner
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
7
|
+
end
|
8
|
+
|
9
|
+
|
10
|
+
class OpenApiSDK::Models::Shared::CommissionCreatedEventPartner
|
11
|
+
def id(); end
|
12
|
+
def id=(str_); end
|
13
|
+
def name(); end
|
14
|
+
def name=(str_); end
|
15
|
+
def total_clicks(); end
|
16
|
+
def total_clicks=(str_); end
|
17
|
+
def total_leads(); end
|
18
|
+
def total_leads=(str_); end
|
19
|
+
def total_conversions(); end
|
20
|
+
def total_conversions=(str_); end
|
21
|
+
def total_sales(); end
|
22
|
+
def total_sales=(str_); end
|
23
|
+
def total_sale_amount(); end
|
24
|
+
def total_sale_amount=(str_); end
|
25
|
+
def total_commissions(); end
|
26
|
+
def total_commissions=(str_); end
|
27
|
+
def email(); end
|
28
|
+
def email=(str_); end
|
29
|
+
def image(); end
|
30
|
+
def image=(str_); end
|
31
|
+
def payouts_enabled_at(); end
|
32
|
+
def payouts_enabled_at=(str_); end
|
33
|
+
def country(); end
|
34
|
+
def country=(str_); end
|
35
|
+
end
|
@@ -22,12 +22,18 @@ module OpenApiSDK
|
|
22
22
|
|
23
23
|
field :link, Models::Shared::LeadCreatedEventLink, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('link'), required: true } }
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('metadata'), required: true } }
|
26
|
+
|
27
|
+
field :partner, Crystalline::Nilable.new(Models::Shared::Partner), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partner') } }
|
28
|
+
|
29
|
+
sig { params(event_name: ::String, customer: Models::Shared::LeadCreatedEventCustomer, click: Models::Shared::LeadCreatedEventClick, link: Models::Shared::LeadCreatedEventLink, metadata: T.nilable(T::Hash[Symbol, ::Object]), partner: T.nilable(Models::Shared::Partner)).void }
|
30
|
+
def initialize(event_name:, customer:, click:, link:, metadata: nil, partner: nil)
|
27
31
|
@event_name = event_name
|
28
32
|
@customer = customer
|
29
33
|
@click = click
|
30
34
|
@link = link
|
35
|
+
@metadata = metadata
|
36
|
+
@partner = partner
|
31
37
|
end
|
32
38
|
|
33
39
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
@@ -37,6 +43,8 @@ module OpenApiSDK
|
|
37
43
|
return false unless @customer == other.customer
|
38
44
|
return false unless @click == other.click
|
39
45
|
return false unless @link == other.link
|
46
|
+
return false unless @metadata == other.metadata
|
47
|
+
return false unless @partner == other.partner
|
40
48
|
true
|
41
49
|
end
|
42
50
|
end
|