dub 0.3.0 → 0.9.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/open_api_sdk/models/operations/bannedreason.rb +22 -0
  3. data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +1 -1
  4. data/lib/open_api_sdk/models/operations/createpartner_link.rb +3 -3
  5. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +75 -29
  6. data/lib/open_api_sdk/models/operations/data.rb +1 -1
  7. data/lib/open_api_sdk/models/operations/getlinks_request.rb +1 -1
  8. data/lib/open_api_sdk/models/operations/getlinkscount_request.rb +1 -1
  9. data/lib/open_api_sdk/models/operations/link.rb +3 -3
  10. data/lib/open_api_sdk/models/operations/listcommissions_customer.rb +48 -0
  11. data/lib/open_api_sdk/models/operations/listcommissions_partner.rb +39 -0
  12. data/lib/open_api_sdk/models/operations/listcommissions_responsebody.rb +19 -7
  13. data/lib/open_api_sdk/models/operations/listevents_request.rb +11 -5
  14. data/lib/open_api_sdk/models/operations/listpartners_bannedreason.rb +22 -0
  15. data/lib/open_api_sdk/models/operations/listpartners_link.rb +48 -0
  16. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rb +23 -0
  17. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortorder.rb +18 -0
  18. data/lib/open_api_sdk/models/operations/listpartners_queryparam_status.rb +23 -0
  19. data/lib/open_api_sdk/models/operations/listpartners_request.rb +48 -0
  20. data/lib/open_api_sdk/models/operations/listpartners_response.rb +60 -0
  21. data/lib/open_api_sdk/models/operations/listpartners_responsebody.rb +150 -0
  22. data/lib/open_api_sdk/models/operations/listpartners_status.rb +23 -0
  23. data/lib/open_api_sdk/models/operations/paymentprocessor.rb +1 -0
  24. data/lib/open_api_sdk/models/operations/queryparam_saletype.rb +18 -0
  25. data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +3 -1
  26. data/lib/open_api_sdk/models/operations/requestbody.rb +1 -1
  27. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +11 -5
  28. data/lib/open_api_sdk/models/operations/saletype.rb +18 -0
  29. data/lib/open_api_sdk/models/operations/trigger.rb +3 -1
  30. data/lib/open_api_sdk/models/operations/updatecommission_customer.rb +48 -0
  31. data/lib/open_api_sdk/models/operations/updatecommission_partner.rb +39 -0
  32. data/lib/open_api_sdk/models/operations/updatecommission_responsebody.rb +19 -7
  33. data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +1 -1
  34. data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +1 -1
  35. data/lib/open_api_sdk/models/operations.rb +16 -0
  36. data/lib/open_api_sdk/models/shared/linkschema.rb +10 -7
  37. data/lib/open_api_sdk/models/shared/registereddomain.rb +8 -2
  38. data/lib/open_api_sdk/partners.rb +130 -0
  39. data/lib/open_api_sdk/sdkconfiguration.rb +2 -2
  40. metadata +18 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cbda3e51adde82559dfac95fc365f9b973936417d599675ee994465d47e022aa
4
- data.tar.gz: 93648363c29550185e4b444d5e7194612c74514ee40595f2036963a410a5c355
3
+ metadata.gz: 60286f7ccf87659b71536ba162373a0ec3e2a75cfeb7035d96343afd222db80b
4
+ data.tar.gz: 20a5c25781158a3482e5ef14d95b3957a1386176242de74a0ffedb15d73562ea
5
5
  SHA512:
6
- metadata.gz: 8059104eed49a5b2a237d2584eb0b12937266f51fc616eb413ba87f6ef3c59360d3ec7f015021a73848f803599e139aa47bbaa36bda807f537c420df1f34d19e
7
- data.tar.gz: fa6fdd605700487014ccc1a321123ad57eb793802131dc4f9efd0637ea1ccff93e44c18cbfa5577e29a3a92d2930a8df1ac564a084e65c77102211f8f936efbb
6
+ metadata.gz: 4c18d26ff308b39b2b9d5222c21563afb896c8e6e0407c8a525bafc91f045fe5ed6630c95e995f4fe364fcd413ea7e5b5af35369fa7e50daaf8fc874ec1dba5d
7
+ data.tar.gz: 3d3e284aa138a76da0d457acb591827709291ce14a1560393e38e269c7adcacd519d379febb3d45a599338f94c1a41e298fa38248491e0a604cc56c6c18b48c8
@@ -0,0 +1,22 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module OpenApiSDK
8
+ module Operations
9
+
10
+ # BannedReason - If the partner was banned from the program, this is the reason for the ban.
11
+ class BannedReason < T::Enum
12
+ enums do
13
+ TOS_VIOLATION = new('tos_violation')
14
+ INAPPROPRIATE_CONTENT = new('inappropriate_content')
15
+ FAKE_TRAFFIC = new('fake_traffic')
16
+ FRAUD = new('fraud')
17
+ SPAM = new('spam')
18
+ BRAND_ABUSE = new('brand_abuse')
19
+ end
20
+ end
21
+ end
22
+ end
@@ -61,7 +61,7 @@ module OpenApiSDK
61
61
  field :ref, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ref') } }
62
62
  # Whether the short link uses link cloaking. Defaults to `false` if not provided.
63
63
  field :rewrite, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rewrite') } }
64
- # The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead.
64
+ # Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link.
65
65
  #
66
66
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
67
67
  field :tag_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagId') } }
@@ -19,11 +19,11 @@ module OpenApiSDK
19
19
  field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
20
20
  # The short link slug. If not provided, a random 7-character slug will be generated.
21
21
  field :key, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
22
- # The number of leads the short links has generated.
22
+ # The number of leads the short link has generated.
23
23
  field :leads, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leads') } }
24
- # The total dollar amount of sales the short links has generated (in cents).
24
+ # The total dollar value of sales (in cents) generated by the short link.
25
25
  field :sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
26
- # The number of sales the short links has generated.
26
+ # The total number of sales (includes recurring sales) generated by the short link.
27
27
  field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
28
28
  # The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`).
29
29
  field :short_link, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('shortLink') } }
@@ -11,43 +11,37 @@ module OpenApiSDK
11
11
  class CreatePartnerResponseBody < ::Crystalline::FieldAugmented
12
12
  extend T::Sig
13
13
 
14
- # The total number of clicks on the partner's links.
14
+ # The total number of clicks on the partner's links. Defaults to 0 if `includeExpandedFields` is false.
15
15
  field :clicks, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } }
16
16
  # The partner's country (required for tax purposes).
17
17
  field :country, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country') } }
18
- # The date when the partner was created on Dub.
18
+
19
19
  field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } }
20
- # DEPRECATED: The total earnings/commissions accrued by the partner's links.
21
- #
22
- # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
23
- field :earnings, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('earnings') } }
24
20
  # The partner's email address. Should be a unique value across Dub.
25
21
  field :email, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('email') } }
26
22
  # The partner's unique ID on Dub.
27
23
  field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
28
24
  # The partner's avatar image.
29
25
  field :image, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } }
30
- # The partner's Instagram username (e.g. `johndoe`).
31
- field :instagram, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('instagram') } }
32
- # The total number of leads generated by the partner's links.
26
+ # The total number of leads generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false.
33
27
  field :leads, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leads') } }
34
- # The partner's LinkedIn username (e.g. `johndoe`).
35
- field :linkedin, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('linkedin') } }
36
28
  # The partner's referral links in this program.
37
29
  field :links, T::Array[::OpenApiSDK::Operations::CreatePartnerLink], { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('links') } }
38
30
  # The partner's full legal name.
39
31
  field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
40
- # The total net revenue generated by the partner.
32
+ # The total net revenue generated by the partner. Defaults to 0 if `includeExpandedFields` is false.
41
33
  field :net_revenue, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('netRevenue') } }
34
+ # The partner's unique ID on Dub.
35
+ field :partner_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partnerId') } }
42
36
  # The date when the partner enabled payouts.
43
37
  field :payouts_enabled_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt') } }
44
38
  # The partner's PayPal email (for receiving payouts via PayPal).
45
39
  field :paypal_email, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('paypalEmail') } }
46
40
  # The program's unique ID on Dub.
47
41
  field :program_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('programId') } }
48
- # The total amount of sales (in cents) generated by the partner's links.
42
+ # The total amount of sales (in cents) generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false.
49
43
  field :sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
50
- # The total number of sales generated by the partner's links.
44
+ # The total number of sales generated by the partner's links. Defaults to 0 if `includeExpandedFields` is false.
51
45
  field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
52
46
  # The status of the partner's enrollment in the program.
53
47
  field :status, ::OpenApiSDK::Operations::CreatePartnerStatus, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::CreatePartnerStatus, false) } }
@@ -55,35 +49,69 @@ module OpenApiSDK
55
49
  field :stripe_connect_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('stripeConnectId') } }
56
50
  # The partner's unique ID within your database. Can be useful for associating the partner with a user in your database and retrieving/update their data in the future.
57
51
  field :tenant_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId') } }
58
- # The partner's TikTok username (e.g. `johndoe`).
59
- field :tiktok, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tiktok') } }
60
- # The total commissions paid to the partner for their referrals.
52
+ # The total commissions paid to the partner for their referrals. Defaults to 0 if `includeExpandedFields` is false.
61
53
  field :total_commissions, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalCommissions') } }
54
+ # If the partner submitted an application to join the program, this is the ID of the application.
55
+ field :application_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('applicationId') } }
56
+ # If the partner was banned from the program, this is the date of the ban.
57
+ field :banned_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bannedAt') } }
58
+ # If the partner was banned from the program, this is the reason for the ban.
59
+ field :banned_reason, T.nilable(::OpenApiSDK::Operations::BannedReason), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bannedReason'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::BannedReason, true) } }
60
+
61
+ field :click_reward_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickRewardId') } }
62
+ # A brief description of the partner and their background.
63
+ field :description, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
64
+
65
+ field :discount_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('discountId') } }
66
+ # The partner's Instagram username (e.g. `johndoe`).
67
+ field :instagram, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('instagram') } }
68
+
69
+ field :instagram_verified_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('instagramVerifiedAt') } }
70
+
71
+ field :lead_reward_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leadRewardId') } }
72
+ # The partner's LinkedIn username (e.g. `johndoe`).
73
+ field :linkedin, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('linkedin') } }
74
+
75
+ field :linkedin_verified_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('linkedinVerifiedAt') } }
76
+
77
+ field :sale_reward_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleRewardId') } }
78
+ # The partner's TikTok username (e.g. `johndoe`).
79
+ field :tiktok, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tiktok') } }
80
+
81
+ field :tiktok_verified_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tiktokVerifiedAt') } }
62
82
  # The partner's Twitter username (e.g. `johndoe`).
63
- field :twitter, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('twitter') } }
83
+ field :twitter, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('twitter') } }
84
+
85
+ field :twitter_verified_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('twitterVerifiedAt') } }
64
86
  # The partner's website URL (including the https protocol).
65
- field :website, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('website') } }
87
+ field :website, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('website') } }
88
+
89
+ field :website_txt_record, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('websiteTxtRecord') } }
90
+
91
+ field :website_verified_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('websiteVerifiedAt') } }
66
92
  # The partner's YouTube channel username (e.g. `johndoe`).
67
- field :youtube, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtube') } }
68
- # A brief description of the partner and their background.
69
- field :description, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
93
+ field :youtube, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtube') } }
94
+
95
+ field :youtube_subscriber_count, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtubeSubscriberCount') } }
96
+
97
+ field :youtube_verified_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtubeVerifiedAt') } }
98
+
99
+ field :youtube_view_count, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtubeViewCount') } }
70
100
 
71
101
 
72
- sig { params(clicks: ::Float, country: ::String, created_at: ::String, earnings: ::Float, email: ::String, id: ::String, image: ::String, instagram: ::String, leads: ::Float, linkedin: ::String, links: T::Array[::OpenApiSDK::Operations::CreatePartnerLink], name: ::String, net_revenue: ::Float, payouts_enabled_at: ::String, paypal_email: ::String, program_id: ::String, sale_amount: ::Float, sales: ::Float, status: ::OpenApiSDK::Operations::CreatePartnerStatus, stripe_connect_id: ::String, tenant_id: ::String, tiktok: ::String, total_commissions: ::Float, twitter: ::String, website: ::String, youtube: ::String, description: T.nilable(::String)).void }
73
- def initialize(clicks: nil, country: nil, created_at: nil, earnings: nil, email: nil, id: nil, image: nil, instagram: nil, leads: nil, linkedin: nil, links: nil, name: nil, net_revenue: nil, payouts_enabled_at: nil, paypal_email: nil, program_id: nil, sale_amount: nil, sales: nil, status: nil, stripe_connect_id: nil, tenant_id: nil, tiktok: nil, total_commissions: nil, twitter: nil, website: nil, youtube: nil, description: nil)
102
+ sig { params(clicks: ::Float, country: ::String, created_at: ::String, email: ::String, id: ::String, image: ::String, leads: ::Float, links: T::Array[::OpenApiSDK::Operations::CreatePartnerLink], name: ::String, net_revenue: ::Float, partner_id: ::String, payouts_enabled_at: ::String, paypal_email: ::String, program_id: ::String, sale_amount: ::Float, sales: ::Float, status: ::OpenApiSDK::Operations::CreatePartnerStatus, stripe_connect_id: ::String, tenant_id: ::String, total_commissions: ::Float, application_id: T.nilable(::String), banned_at: T.nilable(::String), banned_reason: T.nilable(::OpenApiSDK::Operations::BannedReason), click_reward_id: T.nilable(::String), description: T.nilable(::String), discount_id: T.nilable(::String), instagram: T.nilable(::String), instagram_verified_at: T.nilable(::String), lead_reward_id: T.nilable(::String), linkedin: T.nilable(::String), linkedin_verified_at: T.nilable(::String), sale_reward_id: T.nilable(::String), tiktok: T.nilable(::String), tiktok_verified_at: T.nilable(::String), twitter: T.nilable(::String), twitter_verified_at: T.nilable(::String), website: T.nilable(::String), website_txt_record: T.nilable(::String), website_verified_at: T.nilable(::String), youtube: T.nilable(::String), youtube_subscriber_count: T.nilable(::Float), youtube_verified_at: T.nilable(::String), youtube_view_count: T.nilable(::Float)).void }
103
+ def initialize(clicks: nil, country: nil, created_at: nil, email: nil, id: nil, image: nil, leads: nil, links: nil, name: nil, net_revenue: nil, partner_id: nil, payouts_enabled_at: nil, paypal_email: nil, program_id: nil, sale_amount: nil, sales: nil, status: nil, stripe_connect_id: nil, tenant_id: nil, total_commissions: nil, application_id: nil, banned_at: nil, banned_reason: nil, click_reward_id: nil, description: nil, discount_id: nil, instagram: nil, instagram_verified_at: nil, lead_reward_id: nil, linkedin: nil, linkedin_verified_at: nil, sale_reward_id: nil, tiktok: nil, tiktok_verified_at: nil, twitter: nil, twitter_verified_at: nil, website: nil, website_txt_record: nil, website_verified_at: nil, youtube: nil, youtube_subscriber_count: nil, youtube_verified_at: nil, youtube_view_count: nil)
74
104
  @clicks = clicks
75
105
  @country = country
76
106
  @created_at = created_at
77
- @earnings = earnings
78
107
  @email = email
79
108
  @id = id
80
109
  @image = image
81
- @instagram = instagram
82
110
  @leads = leads
83
- @linkedin = linkedin
84
111
  @links = links
85
112
  @name = name
86
113
  @net_revenue = net_revenue
114
+ @partner_id = partner_id
87
115
  @payouts_enabled_at = payouts_enabled_at
88
116
  @paypal_email = paypal_email
89
117
  @program_id = program_id
@@ -92,12 +120,30 @@ module OpenApiSDK
92
120
  @status = status
93
121
  @stripe_connect_id = stripe_connect_id
94
122
  @tenant_id = tenant_id
95
- @tiktok = tiktok
96
123
  @total_commissions = total_commissions
124
+ @application_id = application_id
125
+ @banned_at = banned_at
126
+ @banned_reason = banned_reason
127
+ @click_reward_id = click_reward_id
128
+ @description = description
129
+ @discount_id = discount_id
130
+ @instagram = instagram
131
+ @instagram_verified_at = instagram_verified_at
132
+ @lead_reward_id = lead_reward_id
133
+ @linkedin = linkedin
134
+ @linkedin_verified_at = linkedin_verified_at
135
+ @sale_reward_id = sale_reward_id
136
+ @tiktok = tiktok
137
+ @tiktok_verified_at = tiktok_verified_at
97
138
  @twitter = twitter
139
+ @twitter_verified_at = twitter_verified_at
98
140
  @website = website
141
+ @website_txt_record = website_txt_record
142
+ @website_verified_at = website_verified_at
99
143
  @youtube = youtube
100
- @description = description
144
+ @youtube_subscriber_count = youtube_subscriber_count
145
+ @youtube_verified_at = youtube_verified_at
146
+ @youtube_view_count = youtube_view_count
101
147
  end
102
148
  end
103
149
  end
@@ -49,7 +49,7 @@ module OpenApiSDK
49
49
  field :ref, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ref') } }
50
50
  # Whether the short link uses link cloaking. Defaults to `false` if not provided.
51
51
  field :rewrite, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rewrite') } }
52
- # The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead.
52
+ # Deprecated: Use `tagIds` instead. The unique ID of the tag assigned to the short link.
53
53
  #
54
54
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
55
55
  field :tag_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagId') } }
@@ -29,7 +29,7 @@ module OpenApiSDK
29
29
  field :sort_by, T.nilable(::OpenApiSDK::Operations::SortBy), { 'query_param': { 'field_name': 'sortBy', 'style': 'form', 'explode': true } }
30
30
  # The sort order. The default is `desc`.
31
31
  field :sort_order, T.nilable(::OpenApiSDK::Operations::SortOrder), { 'query_param': { 'field_name': 'sortOrder', 'style': 'form', 'explode': true } }
32
- # Deprecated. Use `tagIds` instead. The tag ID to filter the links by.
32
+ # Deprecated: Use `tagIds` instead. The tag ID to filter the links by.
33
33
  field :tag_id, T.nilable(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
34
34
  # The tag IDs to filter the links by.
35
35
  field :tag_ids, T.nilable(::Object), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': false } }
@@ -21,7 +21,7 @@ module OpenApiSDK
21
21
  field :search, T.nilable(::String), { 'query_param': { 'field_name': 'search', 'style': 'form', 'explode': true } }
22
22
  # Whether to include archived links in the response. Defaults to `false` if not provided.
23
23
  field :show_archived, T.nilable(T::Boolean), { 'query_param': { 'field_name': 'showArchived', 'style': 'form', 'explode': true } }
24
- # Deprecated. Use `tagIds` instead. The tag ID to filter the links by.
24
+ # Deprecated: Use `tagIds` instead. The tag ID to filter the links by.
25
25
  field :tag_id, T.nilable(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
26
26
  # The tag IDs to filter the links by.
27
27
  field :tag_ids, T.nilable(::Object), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': false } }
@@ -19,11 +19,11 @@ module OpenApiSDK
19
19
  field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
20
20
  # The short link slug. If not provided, a random 7-character slug will be generated.
21
21
  field :key, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
22
- # The number of leads the short links has generated.
22
+ # The number of leads the short link has generated.
23
23
  field :leads, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leads') } }
24
- # The total dollar amount of sales the short links has generated (in cents).
24
+ # The total dollar value of sales (in cents) generated by the short link.
25
25
  field :sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
26
- # The number of sales the short links has generated.
26
+ # The total number of sales (includes recurring sales) generated by the short link.
27
27
  field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
28
28
  # The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`).
29
29
  field :short_link, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('shortLink') } }
@@ -0,0 +1,48 @@
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 Operations
9
+
10
+
11
+ class ListCommissionsCustomer < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # The date the customer was created.
15
+ field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } }
16
+ # Unique identifier for the customer in the client's app.
17
+ field :external_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } }
18
+ # The unique ID of the customer. You may use either the customer's `id` on Dub (obtained via `/customers` endpoint) or their `externalId` (unique ID within your system, prefixed with `ext_`, e.g. `ext_123`).
19
+ field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
20
+ # Name of the customer.
21
+ field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
22
+ # Avatar URL of the customer.
23
+ field :avatar, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('avatar') } }
24
+ # Country of the customer.
25
+ field :country, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country') } }
26
+ # Email of the customer.
27
+ field :email, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('email') } }
28
+ # Total amount of sales for the customer.
29
+ field :sale_amount, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
30
+ # Total number of sales for the customer.
31
+ field :sales, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
32
+
33
+
34
+ sig { params(created_at: ::String, external_id: ::String, id: ::String, name: ::String, avatar: T.nilable(::String), country: T.nilable(::String), email: T.nilable(::String), sale_amount: T.nilable(::Float), sales: T.nilable(::Float)).void }
35
+ def initialize(created_at: nil, external_id: nil, id: nil, name: nil, avatar: nil, country: nil, email: nil, sale_amount: nil, sales: nil)
36
+ @created_at = created_at
37
+ @external_id = external_id
38
+ @id = id
39
+ @name = name
40
+ @avatar = avatar
41
+ @country = country
42
+ @email = email
43
+ @sale_amount = sale_amount
44
+ @sales = sales
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,39 @@
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 Operations
9
+
10
+
11
+ class ListCommissionsPartner < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # The partner's country (required for tax purposes).
15
+ field :country, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country') } }
16
+ # The partner's email address. Should be a unique value across Dub.
17
+ field :email, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('email') } }
18
+ # The partner's unique ID on Dub.
19
+ field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
20
+ # The partner's avatar image.
21
+ field :image, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } }
22
+ # The partner's full legal name.
23
+ field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
24
+ # The date when the partner enabled payouts.
25
+ field :payouts_enabled_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt') } }
26
+
27
+
28
+ sig { params(country: ::String, email: ::String, id: ::String, image: ::String, name: ::String, payouts_enabled_at: ::String).void }
29
+ def initialize(country: nil, email: nil, id: nil, image: nil, name: nil, payouts_enabled_at: nil)
30
+ @country = country
31
+ @email = email
32
+ @id = id
33
+ @image = image
34
+ @name = name
35
+ @payouts_enabled_at = payouts_enabled_at
36
+ end
37
+ end
38
+ end
39
+ end
@@ -18,33 +18,45 @@ module OpenApiSDK
18
18
 
19
19
  field :currency, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('currency') } }
20
20
 
21
+ field :description, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
22
+
21
23
  field :earnings, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('earnings') } }
22
24
  # The commission's unique ID on Dub.
23
25
  field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
24
26
 
27
+ field :invoice_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('invoiceId') } }
28
+
29
+ field :partner, ::OpenApiSDK::Operations::ListCommissionsPartner, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partner') } }
30
+
31
+ field :quantity, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('quantity') } }
32
+
25
33
  field :status, ::OpenApiSDK::Operations::ListCommissionsStatus, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::ListCommissionsStatus, false) } }
26
34
 
27
35
  field :updated_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
28
36
 
29
- field :description, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
30
-
31
- field :invoice_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('invoiceId') } }
37
+ field :customer, T.nilable(::OpenApiSDK::Operations::ListCommissionsCustomer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('customer') } }
32
38
 
33
39
  field :type, T.nilable(::OpenApiSDK::Operations::ListCommissionsType), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::ListCommissionsType, true) } }
40
+ # The user who created the manual commission.
41
+ field :user_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('userId') } }
34
42
 
35
43
 
36
- sig { params(amount: ::Float, created_at: ::String, currency: ::String, earnings: ::Float, id: ::String, status: ::OpenApiSDK::Operations::ListCommissionsStatus, updated_at: ::String, description: T.nilable(::String), invoice_id: T.nilable(::String), type: T.nilable(::OpenApiSDK::Operations::ListCommissionsType)).void }
37
- def initialize(amount: nil, created_at: nil, currency: nil, earnings: nil, id: nil, status: nil, updated_at: nil, description: nil, invoice_id: nil, type: nil)
44
+ sig { params(amount: ::Float, created_at: ::String, currency: ::String, description: ::String, earnings: ::Float, id: ::String, invoice_id: ::String, partner: ::OpenApiSDK::Operations::ListCommissionsPartner, quantity: ::Float, status: ::OpenApiSDK::Operations::ListCommissionsStatus, updated_at: ::String, customer: T.nilable(::OpenApiSDK::Operations::ListCommissionsCustomer), type: T.nilable(::OpenApiSDK::Operations::ListCommissionsType), user_id: T.nilable(::String)).void }
45
+ def initialize(amount: nil, created_at: nil, currency: nil, description: nil, earnings: nil, id: nil, invoice_id: nil, partner: nil, quantity: nil, status: nil, updated_at: nil, customer: nil, type: nil, user_id: nil)
38
46
  @amount = amount
39
47
  @created_at = created_at
40
48
  @currency = currency
49
+ @description = description
41
50
  @earnings = earnings
42
51
  @id = id
52
+ @invoice_id = invoice_id
53
+ @partner = partner
54
+ @quantity = quantity
43
55
  @status = status
44
56
  @updated_at = updated_at
45
- @description = description
46
- @invoice_id = invoice_id
57
+ @customer = customer
47
58
  @type = type
59
+ @user_id = user_id
48
60
  end
49
61
  end
50
62
  end
@@ -51,8 +51,10 @@ module OpenApiSDK
51
51
  field :partner_id, T.nilable(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } }
52
52
  # The ID of the program to retrieve analytics for.
53
53
  field :program_id, T.nilable(::String), { 'query_param': { 'field_name': 'programId', 'style': 'form', 'explode': true } }
54
- # 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.
54
+ # 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.
55
55
  field :qr, T.nilable(T::Boolean), { 'query_param': { 'field_name': 'qr', 'style': 'form', 'explode': true } }
56
+ # Search the events by a custom metadata value. Only available for lead and sale events.
57
+ field :query, T.nilable(::String), { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
56
58
  # The referer to retrieve analytics for.
57
59
  field :referer, T.nilable(::String), { 'query_param': { 'field_name': 'referer', 'style': 'form', 'explode': true } }
58
60
  # The full referer URL to retrieve analytics for.
@@ -61,13 +63,15 @@ module OpenApiSDK
61
63
  field :region, T.nilable(::String), { 'query_param': { 'field_name': 'region', 'style': 'form', 'explode': true } }
62
64
  # Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.
63
65
  field :root, T.nilable(T::Boolean), { 'query_param': { 'field_name': 'root', 'style': 'form', 'explode': true } }
66
+ # Filter sales by type: 'new' for first-time purchases, 'recurring' for repeat purchases. If undefined, returns both.
67
+ field :sale_type, T.nilable(::OpenApiSDK::Operations::QueryParamSaleType), { 'query_param': { 'field_name': 'saleType', 'style': 'form', 'explode': true } }
64
68
  # The field to sort the events by. The default is `timestamp`.
65
69
  field :sort_by, T.nilable(::OpenApiSDK::Operations::QueryParamSortBy), { 'query_param': { 'field_name': 'sortBy', 'style': 'form', 'explode': true } }
66
70
  # The sort order. The default is `desc`.
67
71
  field :sort_order, T.nilable(::OpenApiSDK::Operations::QueryParamSortOrder), { 'query_param': { 'field_name': 'sortOrder', 'style': 'form', 'explode': true } }
68
72
  # The start date and time when to retrieve analytics from. If set, takes precedence over `interval`.
69
73
  field :start, T.nilable(::String), { 'query_param': { 'field_name': 'start', 'style': 'form', 'explode': true } }
70
- # Deprecated. Use `tagIds` instead. The tag ID to retrieve analytics for.
74
+ # Deprecated: Use `tagIds` instead. The tag ID to retrieve analytics for.
71
75
  field :tag_id, T.nilable(::String), { 'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': true } }
72
76
  # The tag IDs to retrieve analytics for.
73
77
  field :tag_ids, T.nilable(::Object), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
@@ -75,7 +79,7 @@ module OpenApiSDK
75
79
  field :tenant_id, T.nilable(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } }
76
80
  # The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.
77
81
  field :timezone, T.nilable(::String), { 'query_param': { 'field_name': 'timezone', 'style': 'form', 'explode': true } }
78
- # The trigger to retrieve analytics for. If undefined, return both QR and link clicks.
82
+ # The trigger to retrieve analytics for. If undefined, returns all trigger types.
79
83
  field :trigger, T.nilable(::OpenApiSDK::Operations::QueryParamTrigger), { 'query_param': { 'field_name': 'trigger', 'style': 'form', 'explode': true } }
80
84
  # The URL to retrieve analytics for.
81
85
  field :url, T.nilable(::String), { 'query_param': { 'field_name': 'url', 'style': 'form', 'explode': true } }
@@ -91,8 +95,8 @@ module OpenApiSDK
91
95
  field :utm_term, T.nilable(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } }
92
96
 
93
97
 
94
- sig { params(browser: T.nilable(::String), city: T.nilable(::String), continent: T.nilable(::OpenApiSDK::Shared::ContinentCode), country: T.nilable(::OpenApiSDK::Shared::CountryCode), customer_id: T.nilable(::String), device: T.nilable(::String), domain: T.nilable(::String), end_: T.nilable(::String), event: T.nilable(::OpenApiSDK::Operations::QueryParamEvent), external_id: T.nilable(::String), folder_id: T.nilable(::String), interval: T.nilable(::OpenApiSDK::Operations::QueryParamInterval), key: T.nilable(::String), limit: T.nilable(::Float), link_id: T.nilable(::String), order: T.nilable(::OpenApiSDK::Operations::Order), os: T.nilable(::String), page: T.nilable(::Float), partner_id: T.nilable(::String), program_id: T.nilable(::String), qr: T.nilable(T::Boolean), referer: T.nilable(::String), referer_url: T.nilable(::String), region: T.nilable(::String), root: T.nilable(T::Boolean), sort_by: T.nilable(::OpenApiSDK::Operations::QueryParamSortBy), sort_order: T.nilable(::OpenApiSDK::Operations::QueryParamSortOrder), start: T.nilable(::String), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tenant_id: T.nilable(::String), timezone: T.nilable(::String), trigger: T.nilable(::OpenApiSDK::Operations::QueryParamTrigger), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String)).void }
95
- def initialize(browser: nil, city: nil, continent: nil, country: nil, customer_id: nil, device: nil, domain: nil, end_: nil, event: nil, external_id: nil, folder_id: nil, interval: nil, key: nil, limit: nil, link_id: nil, order: nil, os: nil, page: nil, partner_id: nil, program_id: nil, qr: nil, referer: nil, referer_url: nil, region: nil, root: nil, sort_by: nil, sort_order: nil, start: nil, tag_id: nil, tag_ids: nil, tenant_id: nil, timezone: nil, trigger: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil)
98
+ sig { params(browser: T.nilable(::String), city: T.nilable(::String), continent: T.nilable(::OpenApiSDK::Shared::ContinentCode), country: T.nilable(::OpenApiSDK::Shared::CountryCode), customer_id: T.nilable(::String), device: T.nilable(::String), domain: T.nilable(::String), end_: T.nilable(::String), event: T.nilable(::OpenApiSDK::Operations::QueryParamEvent), external_id: T.nilable(::String), folder_id: T.nilable(::String), interval: T.nilable(::OpenApiSDK::Operations::QueryParamInterval), key: T.nilable(::String), limit: T.nilable(::Float), link_id: T.nilable(::String), order: T.nilable(::OpenApiSDK::Operations::Order), os: T.nilable(::String), page: T.nilable(::Float), partner_id: T.nilable(::String), program_id: T.nilable(::String), qr: T.nilable(T::Boolean), query: T.nilable(::String), referer: T.nilable(::String), referer_url: T.nilable(::String), region: T.nilable(::String), root: T.nilable(T::Boolean), sale_type: T.nilable(::OpenApiSDK::Operations::QueryParamSaleType), sort_by: T.nilable(::OpenApiSDK::Operations::QueryParamSortBy), sort_order: T.nilable(::OpenApiSDK::Operations::QueryParamSortOrder), start: T.nilable(::String), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tenant_id: T.nilable(::String), timezone: T.nilable(::String), trigger: T.nilable(::OpenApiSDK::Operations::QueryParamTrigger), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String)).void }
99
+ def initialize(browser: nil, city: nil, continent: nil, country: nil, customer_id: nil, device: nil, domain: nil, end_: nil, event: nil, external_id: nil, folder_id: nil, interval: nil, key: nil, limit: nil, link_id: nil, order: nil, os: nil, page: nil, partner_id: nil, program_id: nil, qr: nil, query: nil, referer: nil, referer_url: nil, region: nil, root: nil, sale_type: nil, sort_by: nil, sort_order: nil, start: nil, tag_id: nil, tag_ids: nil, tenant_id: nil, timezone: nil, trigger: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil)
96
100
  @browser = browser
97
101
  @city = city
98
102
  @continent = continent
@@ -114,10 +118,12 @@ module OpenApiSDK
114
118
  @partner_id = partner_id
115
119
  @program_id = program_id
116
120
  @qr = qr
121
+ @query = query
117
122
  @referer = referer
118
123
  @referer_url = referer_url
119
124
  @region = region
120
125
  @root = root
126
+ @sale_type = sale_type
121
127
  @sort_by = sort_by
122
128
  @sort_order = sort_order
123
129
  @start = start
@@ -0,0 +1,22 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module OpenApiSDK
8
+ module Operations
9
+
10
+ # ListPartnersBannedReason - If the partner was banned from the program, this is the reason for the ban.
11
+ class ListPartnersBannedReason < T::Enum
12
+ enums do
13
+ TOS_VIOLATION = new('tos_violation')
14
+ INAPPROPRIATE_CONTENT = new('inappropriate_content')
15
+ FAKE_TRAFFIC = new('fake_traffic')
16
+ FRAUD = new('fraud')
17
+ SPAM = new('spam')
18
+ BRAND_ABUSE = new('brand_abuse')
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,48 @@
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 Operations
9
+
10
+
11
+ class ListPartnersLink < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # The number of clicks on the short link.
15
+ field :clicks, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } }
16
+ # 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).
17
+ field :domain, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('domain') } }
18
+ # The unique ID of the short link.
19
+ field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
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') } }
22
+ # The number of leads the short link has generated.
23
+ field :leads, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leads') } }
24
+ # The total dollar value of sales (in cents) generated by the short link.
25
+ field :sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
26
+ # The total number of sales (includes recurring sales) generated by the short link.
27
+ field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
28
+ # The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`).
29
+ field :short_link, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('shortLink') } }
30
+ # The destination URL of the short link.
31
+ field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url') } }
32
+
33
+
34
+ sig { params(clicks: ::Float, domain: ::String, id: ::String, key: ::String, leads: ::Float, sale_amount: ::Float, sales: ::Float, short_link: ::String, url: ::String).void }
35
+ def initialize(clicks: nil, domain: nil, id: nil, key: nil, leads: nil, sale_amount: nil, sales: nil, short_link: nil, url: nil)
36
+ @clicks = clicks
37
+ @domain = domain
38
+ @id = id
39
+ @key = key
40
+ @leads = leads
41
+ @sale_amount = sale_amount
42
+ @sales = sales
43
+ @short_link = short_link
44
+ @url = url
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,23 @@
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 Operations
9
+
10
+ # ListPartnersQueryParamSortBy - The field to sort the partners by. The default is `saleAmount`.
11
+ class ListPartnersQueryParamSortBy < T::Enum
12
+ enums do
13
+ CREATED_AT = new('createdAt')
14
+ CLICKS = new('clicks')
15
+ LEADS = new('leads')
16
+ SALES = new('sales')
17
+ SALE_AMOUNT = new('saleAmount')
18
+ COMMISSIONS = new('commissions')
19
+ NET_REVENUE = new('netRevenue')
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,18 @@
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 Operations
9
+
10
+ # ListPartnersQueryParamSortOrder - The sort order. The default is `desc`.
11
+ class ListPartnersQueryParamSortOrder < T::Enum
12
+ enums do
13
+ ASC = new('asc')
14
+ DESC = new('desc')
15
+ end
16
+ end
17
+ end
18
+ end