fizzy-sdk 0.1.1 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e6c694978fa9ea3f688ac55af140cba667c2304405c7cd7e273c68aefc728eb6
4
- data.tar.gz: d033f7d6cf653f4c13d4b07fee52e9169a33a9c5e197396a39adaf6f6b7572bb
3
+ metadata.gz: 3a340f5bc6074aa6d8354e6d488404cda5085487c5bef718de5b59a40fe4f588
4
+ data.tar.gz: 63621ce553f1b4eee5799c2b5c8fefb6453a2b11391e33b4144167558cb59e1f
5
5
  SHA512:
6
- metadata.gz: d018456e4bdba5ee2eb61ddd701d9de28e4dab3644cf121764435286d20b88d4bbc997ce0054c5b773890261936f2bcf54e4fecd8135162aa7f44db073242de4
7
- data.tar.gz: a90c34253cef98776d4462269ab76d7b88d3b1d22fc5db7d8dac7e0eaf98eb68162f007f7aa7f2cf9f5e416c645ad8c83feefc9d54e7f8a7d25c956e4207cf2e
6
+ metadata.gz: b7c6ff9dfd0150ce68ed5b88b4837e653a9f96ee9c9fd577746c1275a948667bc2166b8ad8f5b1d215d16f36e6bee6d05dca3db2bfd45c08919db907d31f7c40
7
+ data.tar.gz: e58eedd8ba28e90114088fd656dabc9fbbdf812c5d6241e43660eb59726b78b38eb2e490460eb36c801b3abff3107e3ba5cccf82c8ba48ffd294beb846cf4325
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://fizzy.do/schemas/sdk-metadata.json",
3
3
  "version": "1.0.0",
4
- "generated": "2026-03-10T16:45:52Z",
4
+ "generated": "2026-04-15T01:18:42Z",
5
5
  "operations": {
6
6
  "ListAccessTokens": {
7
7
  "retry": {
@@ -206,6 +206,22 @@
206
206
  "natural": true
207
207
  }
208
208
  },
209
+ "ListActivities": {
210
+ "retry": {
211
+ "maxAttempts": 3,
212
+ "baseDelayMs": 1000,
213
+ "backoff": "exponential",
214
+ "retryOn": [
215
+ 429,
216
+ 500,
217
+ 503
218
+ ]
219
+ },
220
+ "pagination": {
221
+ "style": "link",
222
+ "pageParam": "page"
223
+ }
224
+ },
209
225
  "ListBoards": {
210
226
  "retry": {
211
227
  "maxAttempts": 3,
@@ -272,6 +288,18 @@
272
288
  "natural": true
273
289
  }
274
290
  },
291
+ "ListBoardAccesses": {
292
+ "retry": {
293
+ "maxAttempts": 3,
294
+ "baseDelayMs": 1000,
295
+ "backoff": "exponential",
296
+ "retryOn": [
297
+ 429,
298
+ 500,
299
+ 503
300
+ ]
301
+ }
302
+ },
275
303
  "ListColumns": {
276
304
  "retry": {
277
305
  "maxAttempts": 3,
@@ -382,6 +410,22 @@
382
410
  "natural": true
383
411
  }
384
412
  },
413
+ "ListColumnCards": {
414
+ "retry": {
415
+ "maxAttempts": 3,
416
+ "baseDelayMs": 1000,
417
+ "backoff": "exponential",
418
+ "retryOn": [
419
+ 429,
420
+ 500,
421
+ 503
422
+ ]
423
+ },
424
+ "pagination": {
425
+ "style": "link",
426
+ "pageParam": "page"
427
+ }
428
+ },
385
429
  "UpdateBoardEntropy": {
386
430
  "retry": {
387
431
  "maxAttempts": 3,
@@ -519,6 +563,22 @@
519
563
  "natural": true
520
564
  }
521
565
  },
566
+ "ListWebhookDeliveries": {
567
+ "retry": {
568
+ "maxAttempts": 3,
569
+ "baseDelayMs": 1000,
570
+ "backoff": "exponential",
571
+ "retryOn": [
572
+ 429,
573
+ 500,
574
+ 503
575
+ ]
576
+ },
577
+ "pagination": {
578
+ "style": "link",
579
+ "pageParam": "page"
580
+ }
581
+ },
522
582
  "ListCards": {
523
583
  "retry": {
524
584
  "maxAttempts": 3,
@@ -1299,6 +1359,42 @@
1299
1359
  "natural": true
1300
1360
  }
1301
1361
  },
1362
+ "CreateUserDataExport": {
1363
+ "retry": {
1364
+ "maxAttempts": 1,
1365
+ "baseDelayMs": null,
1366
+ "backoff": null,
1367
+ "retryOn": null
1368
+ }
1369
+ },
1370
+ "GetUserDataExport": {
1371
+ "retry": {
1372
+ "maxAttempts": 3,
1373
+ "baseDelayMs": 1000,
1374
+ "backoff": "exponential",
1375
+ "retryOn": [
1376
+ 429,
1377
+ 500,
1378
+ 503
1379
+ ]
1380
+ }
1381
+ },
1382
+ "RequestEmailAddressChange": {
1383
+ "retry": {
1384
+ "maxAttempts": 1,
1385
+ "baseDelayMs": null,
1386
+ "backoff": null,
1387
+ "retryOn": null
1388
+ }
1389
+ },
1390
+ "ConfirmEmailAddressChange": {
1391
+ "retry": {
1392
+ "maxAttempts": 1,
1393
+ "baseDelayMs": null,
1394
+ "backoff": null,
1395
+ "retryOn": null
1396
+ }
1397
+ },
1302
1398
  "CreatePushSubscription": {
1303
1399
  "retry": {
1304
1400
  "maxAttempts": 1,
@@ -65,6 +65,17 @@ module Fizzy
65
65
  end
66
66
  end
67
67
 
68
+ # list_board_accesses operation
69
+ # @param account_id [String] account id ID
70
+ # @param board_id [String] board id ID
71
+ # @param page [Integer, nil] page
72
+ # @return [Hash] response data
73
+ def list_board_accesses(account_id:, board_id:, page: nil)
74
+ with_operation(service: "boards", operation: "ListBoardAccesses", is_mutation: false, resource_id: board_id) do
75
+ http_get("/#{account_id}/boards/#{board_id}/accesses.json", params: compact_params(page: page)).json
76
+ end
77
+ end
78
+
68
79
  # publish_board operation
69
80
  # @param account_id [String] account id ID
70
81
  # @param board_id [String] board id ID
@@ -7,6 +7,18 @@ module Fizzy
7
7
  # @generated from OpenAPI spec
8
8
  class CardsService < BaseService
9
9
 
10
+ # list_activities operation
11
+ # @param account_id [String] account id ID
12
+ # @param creator_ids [Array, nil] creator ids
13
+ # @param board_ids [Array, nil] board ids
14
+ # @return [Enumerator<Hash>] paginated results
15
+ def list_activities(account_id:, creator_ids: nil, board_ids: nil)
16
+ wrap_paginated(service: "cards", operation: "ListActivities", is_mutation: false, resource_id: account_id) do
17
+ params = compact_params(creator_ids: creator_ids, board_ids: board_ids)
18
+ paginate("/#{account_id}/activities.json", params: params)
19
+ end
20
+ end
21
+
10
22
  # list_closed_cards operation
11
23
  # @param account_id [String] account id ID
12
24
  # @param board_id [String] board id ID
@@ -37,18 +49,36 @@ module Fizzy
37
49
  end
38
50
  end
39
51
 
52
+ # list_column_cards operation
53
+ # @param account_id [String] account id ID
54
+ # @param board_id [String] board id ID
55
+ # @param column_id [String] column id ID
56
+ # @return [Enumerator<Hash>] paginated results
57
+ def list_column_cards(account_id:, board_id:, column_id:)
58
+ wrap_paginated(service: "cards", operation: "ListColumnCards", is_mutation: false, resource_id: column_id) do
59
+ paginate("/#{account_id}/boards/#{board_id}/columns/#{column_id}/cards.json")
60
+ end
61
+ end
62
+
40
63
  # list operation
41
64
  # @param account_id [String] account id ID
42
- # @param board_id [String, nil] board id
43
- # @param column_id [String, nil] column id
44
- # @param assignee_id [String, nil] assignee id
45
- # @param tag [String, nil] tag
46
- # @param status [String, nil] status
47
- # @param q [String, nil] q
65
+ # @param board_ids [Array, nil] board ids
66
+ # @param tag_ids [Array, nil] tag ids
67
+ # @param assignee_ids [Array, nil] assignee ids
68
+ # @param creator_ids [Array, nil] creator ids
69
+ # @param closer_ids [Array, nil] closer ids
70
+ # @param card_ids [Array, nil] card ids
71
+ # @param column_ids [Array, nil] column ids
72
+ # @param indexed_by [String, nil] indexed by
73
+ # @param sorted_by [String, nil] sorted by
74
+ # @param assignment_status [String, nil] assignment status
75
+ # @param creation [String, nil] creation
76
+ # @param closure [String, nil] closure
77
+ # @param terms [Array, nil] terms
48
78
  # @return [Enumerator<Hash>] paginated results
49
- def list(account_id:, board_id: nil, column_id: nil, assignee_id: nil, tag: nil, status: nil, q: nil)
79
+ def list(account_id:, board_ids: nil, tag_ids: nil, assignee_ids: nil, creator_ids: nil, closer_ids: nil, card_ids: nil, column_ids: nil, indexed_by: nil, sorted_by: nil, assignment_status: nil, creation: nil, closure: nil, terms: nil)
50
80
  wrap_paginated(service: "cards", operation: "ListCards", is_mutation: false, resource_id: account_id) do
51
- params = compact_params(board_id: board_id, column_id: column_id, assignee_id: assignee_id, tag: tag, status: status, q: q)
81
+ params = compact_params(board_ids: board_ids, tag_ids: tag_ids, assignee_ids: assignee_ids, creator_ids: creator_ids, closer_ids: closer_ids, card_ids: card_ids, column_ids: column_ids, indexed_by: indexed_by, sorted_by: sorted_by, assignment_status: assignment_status, creation: creation, closure: closure, terms: terms)
52
82
  paginate("/#{account_id}/cards.json", params: params)
53
83
  end
54
84
  end
@@ -47,6 +47,51 @@ module Fizzy
47
47
  nil
48
48
  end
49
49
  end
50
+
51
+ # create_user_data_export operation
52
+ # @param account_id [String] account id ID
53
+ # @param user_id [String] user id ID
54
+ # @return [Hash] response data
55
+ def create_user_data_export(account_id:, user_id:)
56
+ with_operation(service: "users", operation: "CreateUserDataExport", is_mutation: true, resource_id: user_id) do
57
+ http_post("/#{account_id}/users/#{user_id}/data_exports.json").json
58
+ end
59
+ end
60
+
61
+ # get_user_data_export operation
62
+ # @param account_id [String] account id ID
63
+ # @param user_id [String] user id ID
64
+ # @param export_id [String] export id ID
65
+ # @return [Hash] response data
66
+ def get_user_data_export(account_id:, user_id:, export_id:)
67
+ with_operation(service: "users", operation: "GetUserDataExport", is_mutation: false, resource_id: export_id) do
68
+ http_get("/#{account_id}/users/#{user_id}/data_exports/#{export_id}").json
69
+ end
70
+ end
71
+
72
+ # request_email_address_change operation
73
+ # @param account_id [String] account id ID
74
+ # @param user_id [String] user id ID
75
+ # @param email_address [String] email address
76
+ # @return [void]
77
+ def request_email_address_change(account_id:, user_id:, email_address:)
78
+ with_operation(service: "users", operation: "RequestEmailAddressChange", is_mutation: true, resource_id: user_id) do
79
+ http_post("/#{account_id}/users/#{user_id}/email_addresses.json", body: compact_params(email_address: email_address))
80
+ nil
81
+ end
82
+ end
83
+
84
+ # confirm_email_address_change operation
85
+ # @param account_id [String] account id ID
86
+ # @param user_id [String] user id ID
87
+ # @param email_address_token [String] email address token ID
88
+ # @return [void]
89
+ def confirm_email_address_change(account_id:, user_id:, email_address_token:)
90
+ with_operation(service: "users", operation: "ConfirmEmailAddressChange", is_mutation: true, resource_id: email_address_token) do
91
+ http_post("/#{account_id}/users/#{user_id}/email_addresses/#{email_address_token}/confirmation.json")
92
+ nil
93
+ end
94
+ end
50
95
  end
51
96
  end
52
97
  end
@@ -78,6 +78,17 @@ module Fizzy
78
78
  nil
79
79
  end
80
80
  end
81
+
82
+ # list_webhook_deliveries operation
83
+ # @param account_id [String] account id ID
84
+ # @param board_id [String] board id ID
85
+ # @param webhook_id [String] webhook id ID
86
+ # @return [Enumerator<Hash>] paginated results
87
+ def list_webhook_deliveries(account_id:, board_id:, webhook_id:)
88
+ wrap_paginated(service: "webhooks", operation: "ListWebhookDeliveries", is_mutation: false, resource_id: webhook_id) do
89
+ paginate("/#{account_id}/boards/#{board_id}/webhooks/#{webhook_id}/deliveries.json")
90
+ end
91
+ end
81
92
  end
82
93
  end
83
94
  end
@@ -63,6 +63,75 @@ module Fizzy
63
63
  end
64
64
  end
65
65
 
66
+ # @generated
67
+ Activity = Data.define(:id, :action, :created_at, :description, :particulars, :url, :eventable_type, :eventable, :board, :creator) do
68
+ # @param data [Hash] raw JSON response
69
+ def self.from_json(data)
70
+ new(
71
+ id: data["id"],
72
+ action: data["action"],
73
+ created_at: data["created_at"],
74
+ description: data["description"],
75
+ particulars: data["particulars"],
76
+ url: data["url"],
77
+ eventable_type: data["eventable_type"],
78
+ eventable: data["eventable"],
79
+ board: data["board"],
80
+ creator: data["creator"]
81
+ )
82
+ end
83
+ end
84
+
85
+ # @generated
86
+ ActivityEventable = Data.define(:id, :number, :title, :status, :description, :description_html, :image_url, :has_attachments, :tags, :closed, :postponed, :golden, :last_active_at, :created_at, :updated_at, :body, :creator, :card, :board, :column, :assignees, :has_more_assignees, :comments_url, :reactions_url, :steps, :url) do
87
+ # @param data [Hash] raw JSON response
88
+ def self.from_json(data)
89
+ new(
90
+ id: data["id"],
91
+ number: data["number"],
92
+ title: data["title"],
93
+ status: data["status"],
94
+ description: data["description"],
95
+ description_html: data["description_html"],
96
+ image_url: data["image_url"],
97
+ has_attachments: data["has_attachments"],
98
+ tags: data["tags"],
99
+ closed: data["closed"],
100
+ postponed: data["postponed"],
101
+ golden: data["golden"],
102
+ last_active_at: data["last_active_at"],
103
+ created_at: data["created_at"],
104
+ updated_at: data["updated_at"],
105
+ body: data["body"],
106
+ creator: data["creator"],
107
+ card: data["card"],
108
+ board: data["board"],
109
+ column: data["column"],
110
+ assignees: data["assignees"],
111
+ has_more_assignees: data["has_more_assignees"],
112
+ comments_url: data["comments_url"],
113
+ reactions_url: data["reactions_url"],
114
+ steps: data["steps"],
115
+ url: data["url"]
116
+ )
117
+ end
118
+ end
119
+
120
+ # @generated
121
+ ActivityParticulars = Data.define(:assignee_ids, :old_board, :new_board, :old_title, :new_title, :column) do
122
+ # @param data [Hash] raw JSON response
123
+ def self.from_json(data)
124
+ new(
125
+ assignee_ids: data["assignee_ids"],
126
+ old_board: data["old_board"],
127
+ new_board: data["new_board"],
128
+ old_title: data["old_title"],
129
+ new_title: data["new_title"],
130
+ column: data["column"]
131
+ )
132
+ end
133
+ end
134
+
66
135
  # @generated
67
136
  AssignCardRequestContent = Data.define(:assignee_id) do
68
137
  # @param data [Hash] raw JSON response
@@ -84,7 +153,7 @@ module Fizzy
84
153
  end
85
154
 
86
155
  # @generated
87
- Board = Data.define(:id, :name, :all_access, :created_at, :auto_postpone_period_in_days, :url, :creator) do
156
+ Board = Data.define(:id, :name, :all_access, :created_at, :auto_postpone_period_in_days, :public_description, :public_description_html, :public_url, :user_ids, :url, :creator) do
88
157
  # @param data [Hash] raw JSON response
89
158
  def self.from_json(data)
90
159
  new(
@@ -93,12 +162,47 @@ module Fizzy
93
162
  all_access: data["all_access"],
94
163
  created_at: data["created_at"],
95
164
  auto_postpone_period_in_days: data["auto_postpone_period_in_days"],
165
+ public_description: data["public_description"],
166
+ public_description_html: data["public_description_html"],
167
+ public_url: data["public_url"],
168
+ user_ids: data["user_ids"],
96
169
  url: data["url"],
97
170
  creator: data["creator"]
98
171
  )
99
172
  end
100
173
  end
101
174
 
175
+ # @generated
176
+ BoardAccessUser = Data.define(:id, :name, :role, :active, :email_address, :created_at, :url, :avatar_url, :has_access, :involvement) do
177
+ # @param data [Hash] raw JSON response
178
+ def self.from_json(data)
179
+ new(
180
+ id: data["id"],
181
+ name: data["name"],
182
+ role: data["role"],
183
+ active: data["active"],
184
+ email_address: data["email_address"],
185
+ created_at: data["created_at"],
186
+ url: data["url"],
187
+ avatar_url: data["avatar_url"],
188
+ has_access: data["has_access"],
189
+ involvement: data["involvement"]
190
+ )
191
+ end
192
+ end
193
+
194
+ # @generated
195
+ BoardAccesses = Data.define(:board_id, :all_access, :users) do
196
+ # @param data [Hash] raw JSON response
197
+ def self.from_json(data)
198
+ new(
199
+ board_id: data["board_id"],
200
+ all_access: data["all_access"],
201
+ users: data["users"]
202
+ )
203
+ end
204
+ end
205
+
102
206
  # @generated
103
207
  BulkReadNotificationsRequestContent = Data.define(:notification_ids) do
104
208
  # @param data [Hash] raw JSON response
@@ -153,25 +257,15 @@ module Fizzy
153
257
  end
154
258
 
155
259
  # @generated
156
- Color = Data.define(:name, :value) do
157
- # @param data [Hash] raw JSON response
158
- def self.from_json(data)
159
- new(
160
- name: data["name"],
161
- value: data["value"]
162
- )
163
- end
164
- end
165
-
166
- # @generated
167
- Column = Data.define(:id, :name, :color, :created_at) do
260
+ Column = Data.define(:id, :name, :color, :created_at, :cards_url) do
168
261
  # @param data [Hash] raw JSON response
169
262
  def self.from_json(data)
170
263
  new(
171
264
  id: data["id"],
172
265
  name: data["name"],
173
266
  color: data["color"],
174
- created_at: data["created_at"]
267
+ created_at: data["created_at"],
268
+ cards_url: data["cards_url"]
175
269
  )
176
270
  end
177
271
  end
@@ -376,6 +470,9 @@ module Fizzy
376
470
  # @generated
377
471
  CreateStepResponseContent = Data.define
378
472
 
473
+ # @generated
474
+ CreateUserDataExportResponseContent = Data.define
475
+
379
476
  # @generated
380
477
  CreateWebhookRequestContent = Data.define(:name, :url, :subscribed_actions) do
381
478
  # @param data [Hash] raw JSON response
@@ -391,6 +488,19 @@ module Fizzy
391
488
  # @generated
392
489
  CreateWebhookResponseContent = Data.define
393
490
 
491
+ # @generated
492
+ DataExport = Data.define(:id, :status, :created_at, :download_url) do
493
+ # @param data [Hash] raw JSON response
494
+ def self.from_json(data)
495
+ new(
496
+ id: data["id"],
497
+ status: data["status"],
498
+ created_at: data["created_at"],
499
+ download_url: data["download_url"]
500
+ )
501
+ end
502
+ end
503
+
394
504
  # @generated
395
505
  DirectUpload = Data.define(:id, :key, :filename, :content_type, :byte_size, :checksum, :direct_upload) do
396
506
  # @param data [Hash] raw JSON response
@@ -472,6 +582,9 @@ module Fizzy
472
582
  # @generated
473
583
  GetStepResponseContent = Data.define
474
584
 
585
+ # @generated
586
+ GetUserDataExportResponseContent = Data.define
587
+
475
588
  # @generated
476
589
  GetUserResponseContent = Data.define
477
590
 
@@ -502,13 +615,15 @@ module Fizzy
502
615
  end
503
616
 
504
617
  # @generated
505
- JoinCode = Data.define(:code, :url, :usage_limit) do
618
+ JoinCode = Data.define(:code, :url, :usage_count, :usage_limit, :active) do
506
619
  # @param data [Hash] raw JSON response
507
620
  def self.from_json(data)
508
621
  new(
509
622
  code: data["code"],
510
623
  url: data["url"],
511
- usage_limit: data["usage_limit"]
624
+ usage_count: data["usage_count"],
625
+ usage_limit: data["usage_limit"],
626
+ active: data["active"]
512
627
  )
513
628
  end
514
629
  end
@@ -516,6 +631,12 @@ module Fizzy
516
631
  # @generated
517
632
  ListAccessTokensResponseContent = Data.define
518
633
 
634
+ # @generated
635
+ ListActivitiesResponseContent = Data.define
636
+
637
+ # @generated
638
+ ListBoardAccessesResponseContent = Data.define
639
+
519
640
  # @generated
520
641
  ListBoardsResponseContent = Data.define
521
642
 
@@ -528,6 +649,9 @@ module Fizzy
528
649
  # @generated
529
650
  ListClosedCardsResponseContent = Data.define
530
651
 
652
+ # @generated
653
+ ListColumnCardsResponseContent = Data.define
654
+
531
655
  # @generated
532
656
  ListColumnsResponseContent = Data.define
533
657
 
@@ -558,6 +682,9 @@ module Fizzy
558
682
  # @generated
559
683
  ListUsersResponseContent = Data.define
560
684
 
685
+ # @generated
686
+ ListWebhookDeliveriesResponseContent = Data.define
687
+
561
688
  # @generated
562
689
  ListWebhooksResponseContent = Data.define
563
690
 
@@ -691,6 +818,16 @@ module Fizzy
691
818
  end
692
819
  end
693
820
 
821
+ # @generated
822
+ RequestEmailAddressChangeRequestContent = Data.define(:email_address) do
823
+ # @param data [Hash] raw JSON response
824
+ def self.from_json(data)
825
+ new(
826
+ email_address: data["email_address"]
827
+ )
828
+ end
829
+ end
830
+
694
831
  # @generated
695
832
  RichTextBody = Data.define(:plain_text, :html) do
696
833
  # @param data [Hash] raw JSON response
@@ -728,6 +865,9 @@ module Fizzy
728
865
  end
729
866
  end
730
867
 
868
+ # @generated
869
+ StringMap = Data.define
870
+
731
871
  # @generated
732
872
  Tag = Data.define(:id, :title, :created_at, :url) do
733
873
  # @param data [Hash] raw JSON response
@@ -979,18 +1119,84 @@ module Fizzy
979
1119
  end
980
1120
 
981
1121
  # @generated
982
- Webhook = Data.define(:id, :name, :url, :subscribed_actions, :signing_secret, :active, :created_at, :updated_at) do
1122
+ Webhook = Data.define(:id, :name, :payload_url, :url, :subscribed_actions, :signing_secret, :active, :created_at, :updated_at, :board) do
983
1123
  # @param data [Hash] raw JSON response
984
1124
  def self.from_json(data)
985
1125
  new(
986
1126
  id: data["id"],
987
1127
  name: data["name"],
1128
+ payload_url: data["payload_url"],
988
1129
  url: data["url"],
989
1130
  subscribed_actions: data["subscribed_actions"],
990
1131
  signing_secret: data["signing_secret"],
991
1132
  active: data["active"],
992
1133
  created_at: data["created_at"],
993
- updated_at: data["updated_at"]
1134
+ updated_at: data["updated_at"],
1135
+ board: data["board"]
1136
+ )
1137
+ end
1138
+ end
1139
+
1140
+ # @generated
1141
+ WebhookDelivery = Data.define(:id, :state, :created_at, :updated_at, :request, :response, :event) do
1142
+ # @param data [Hash] raw JSON response
1143
+ def self.from_json(data)
1144
+ new(
1145
+ id: data["id"],
1146
+ state: data["state"],
1147
+ created_at: data["created_at"],
1148
+ updated_at: data["updated_at"],
1149
+ request: data["request"],
1150
+ response: data["response"],
1151
+ event: data["event"]
1152
+ )
1153
+ end
1154
+ end
1155
+
1156
+ # @generated
1157
+ WebhookDeliveryEvent = Data.define(:id, :action, :created_at, :creator, :eventable) do
1158
+ # @param data [Hash] raw JSON response
1159
+ def self.from_json(data)
1160
+ new(
1161
+ id: data["id"],
1162
+ action: data["action"],
1163
+ created_at: data["created_at"],
1164
+ creator: data["creator"],
1165
+ eventable: data["eventable"]
1166
+ )
1167
+ end
1168
+ end
1169
+
1170
+ # @generated
1171
+ WebhookDeliveryEventCreator = Data.define(:id, :name) do
1172
+ # @param data [Hash] raw JSON response
1173
+ def self.from_json(data)
1174
+ new(
1175
+ id: data["id"],
1176
+ name: data["name"]
1177
+ )
1178
+ end
1179
+ end
1180
+
1181
+ # @generated
1182
+ WebhookDeliveryEventEventable = Data.define(:type, :id, :url) do
1183
+ # @param data [Hash] raw JSON response
1184
+ def self.from_json(data)
1185
+ new(
1186
+ type: data["type"],
1187
+ id: data["id"],
1188
+ url: data["url"]
1189
+ )
1190
+ end
1191
+ end
1192
+
1193
+ # @generated
1194
+ WebhookDeliveryResponse = Data.define(:code, :error) do
1195
+ # @param data [Hash] raw JSON response
1196
+ def self.from_json(data)
1197
+ new(
1198
+ code: data["code"],
1199
+ error: data["error"]
994
1200
  )
995
1201
  end
996
1202
  end
data/lib/fizzy/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fizzy
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.3"
5
5
  API_VERSION = "2026-03-01"
6
6
  end
@@ -192,7 +192,14 @@ class ServiceGenerator
192
192
  'CompleteSignup' => 'Sessions',
193
193
  'GetNotificationTray' => 'Notifications',
194
194
  'BulkReadNotifications' => 'Notifications',
195
- 'DeleteCardImage' => 'Cards'
195
+ 'DeleteCardImage' => 'Cards',
196
+ 'ListBoardAccesses' => 'Boards',
197
+ 'ListActivities' => 'Cards',
198
+ 'RequestEmailAddressChange' => 'Users',
199
+ 'ConfirmEmailAddressChange' => 'Users',
200
+ 'CreateUserDataExport' => 'Users',
201
+ 'GetUserDataExport' => 'Users',
202
+ 'ListWebhookDeliveries' => 'Webhooks'
196
203
  }.freeze
197
204
 
198
205
  SERVICE_SUFFIXES = [
@@ -392,7 +399,8 @@ class ServiceGenerator
392
399
  end
393
400
 
394
401
  def to_snake_case(str)
395
- str.gsub(/([a-z\d])([A-Z])/, '\1_\2')
402
+ str.gsub(/\[\]\z/, '')
403
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
396
404
  .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
397
405
  .downcase
398
406
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fizzy-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Basecamp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-11 00:00:00.000000000 Z
11
+ date: 2026-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday