basecamp-sdk 0.21.0 → 0.23.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b16ed47ffa033dcc0c642c37ebc51a4bc6552fa06a088fd268cb451fa09e2f8
4
- data.tar.gz: 48c691a48f55cc68f9d3d5208488c8baecb56264a230614a22e6b7746d8a7451
3
+ metadata.gz: 970062728951b90280186908c54935e720d7297edf23230a9f0a7ccc57804376
4
+ data.tar.gz: d26a1714e8e59778e2563180531d0835f274f53bdab6f2ebf0edba8d79ab353f
5
5
  SHA512:
6
- metadata.gz: 20f3979bfb268ce78303e4b10aadb50194a4b20818876a076753560260f54d70a9cbd42851a7a4337cdefc316a1800f6d4088437cd68994a684b2e9f60b2d016
7
- data.tar.gz: 88bb6d1ec5889506b6f24660ce919befa780057f37587143526d524286d6fcd1d098aed95971f136400cfc1ab65656f28ea9f605c24ac543c5f9f0c02474fd74
6
+ metadata.gz: 8d7e0cda0be190fbc8d4d40cbe27529b45cc2226e462154dfe2509b80acaf2295da8a1593f1832defd0003b7ff59971df9f416c82ab6adf2ef8094cb29a0aa9d
7
+ data.tar.gz: d7fb5dfdb49af2eef1740528ef96a88801d0c8e66ef0dc025fc8c9e848456b414fa5187ce56bbaff7fdffdc3967cdb1272325e83ff39f287ffb8d7f8c7ec59e7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://basecamp.com/schemas/sdk-metadata.json",
3
3
  "version": "1.0.0",
4
- "generated": "2026-09-30T18:52:50Z",
4
+ "generated": "2026-10-05T19:11:15Z",
5
5
  "operations": {
6
6
  "GetAccount": {
7
7
  "retry": {
@@ -2388,6 +2388,17 @@
2388
2388
  ]
2389
2389
  }
2390
2390
  },
2391
+ "MoveRecordingToVault": {
2392
+ "retry": {
2393
+ "maxAttempts": 2,
2394
+ "baseDelayMs": 1000,
2395
+ "backoff": "exponential",
2396
+ "retryOn": [
2397
+ 429,
2398
+ 503
2399
+ ]
2400
+ }
2401
+ },
2391
2402
  "SpotlightRecording": {
2392
2403
  "retry": {
2393
2404
  "maxAttempts": 3,
@@ -141,12 +141,13 @@ module Basecamp
141
141
 
142
142
  # Update notification settings for a check-in question
143
143
  # @param question_id [Integer] question id ID
144
- # @param notify_on_answer [Boolean, nil] Notify when someone answers
145
- # @param digest_include_unanswered [Boolean, nil] Include unanswered in digest
144
+ # @param responding [Boolean, nil] Whether the authenticated user is asked this question. Omit to leave it unchanged.
145
+ # Turning it on also subscribes the user unless `subscribed: false` is sent with it.
146
+ # @param subscribed [Boolean, nil] Whether the authenticated user is notified when someone answers. Omit to leave it unchanged.
146
147
  # @return [Hash] response data
147
- def update_notification_settings(question_id:, notify_on_answer: nil, digest_include_unanswered: nil)
148
+ def update_notification_settings(question_id:, responding: nil, subscribed: nil)
148
149
  with_operation(service: "checkins", operation: "update_notification_settings", is_mutation: true, resource_id: question_id) do
149
- http_put("/questions/#{question_id}/notification_settings.json", body: compact_params(notify_on_answer: notify_on_answer, digest_include_unanswered: digest_include_unanswered)).json(operation: "UpdateQuestionNotificationSettings")
150
+ http_put("/questions/#{question_id}/notification_settings.json", body: compact_params(responding: responding, subscribed: subscribed)).json(operation: "UpdateQuestionNotificationSettings")
150
151
  end
151
152
  end
152
153
 
@@ -23,6 +23,20 @@ module Basecamp
23
23
  end
24
24
  end
25
25
 
26
+ # Move a document, upload or vault into another vault in its project, or reorder it in its own vault.
27
+ # @param recording_id [Integer] recording id ID
28
+ # @param parent_id [Integer] The destination vault. The recording's current vault keeps it where it is
29
+ # and changes only its position.
30
+ # @param position [Integer, nil] 1-indexed position within the destination vault. Defaults to 1 (first); a
31
+ # position past the end places it last.
32
+ # @return [void]
33
+ def move_to_vault(recording_id:, parent_id:, position: nil)
34
+ with_operation(service: "recordings", operation: "move_to_vault", is_mutation: true, resource_id: recording_id) do
35
+ http_post("/recordings/#{recording_id}/filing.json", body: compact_params(parent_id: parent_id, position: position))
36
+ nil
37
+ end
38
+ end
39
+
26
40
  # Put a recording's card in the spotlight area on its project or template home page.
27
41
  # @param recording_id [Integer] recording id ID
28
42
  # @return [Hash] response data
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Auto-generated from OpenAPI spec. Do not edit manually.
4
- # Generated: 2026-09-30T18:52:50Z
4
+ # Generated: 2026-10-05T19:11:15Z
5
5
 
6
6
  require "json"
7
7
  require "time"
@@ -3708,6 +3708,34 @@ module Basecamp
3708
3708
  end
3709
3709
  end
3710
3710
 
3711
+ # QuestionScheduleInput
3712
+ class QuestionScheduleInput
3713
+ include TypeHelpers
3714
+ attr_accessor :days, :frequency, :start_date, :time_of_day, :week_instance
3715
+
3716
+ def initialize(data = {})
3717
+ @days = data["days"]
3718
+ @frequency = data["frequency"]
3719
+ @start_date = data["start_date"]
3720
+ @time_of_day = data["time_of_day"]
3721
+ @week_instance = parse_integer(data["week_instance"])
3722
+ end
3723
+
3724
+ def to_h
3725
+ {
3726
+ "days" => @days,
3727
+ "frequency" => @frequency,
3728
+ "start_date" => @start_date,
3729
+ "time_of_day" => @time_of_day,
3730
+ "week_instance" => @week_instance,
3731
+ }.compact
3732
+ end
3733
+
3734
+ def to_json(*args)
3735
+ to_h.to_json(*args)
3736
+ end
3737
+ end
3738
+
3711
3739
  # Questionnaire
3712
3740
  class Questionnaire
3713
3741
  include TypeHelpers
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Basecamp
4
- VERSION = "0.21.0"
4
+ VERSION = "0.23.0"
5
5
  API_VERSION = "2026-09-15"
6
6
  end
@@ -179,6 +179,7 @@ class ServiceGenerator
179
179
  METHOD_NAME_OVERRIDES = {
180
180
  'SpotlightRecording' => 'spotlight',
181
181
  'UnspotlightRecording' => 'unspotlight',
182
+ 'MoveRecordingToVault' => 'move_to_vault',
182
183
  'GetMyProfile' => 'my_profile',
183
184
  'GetTodolistOrGroup' => 'get',
184
185
  # The plain `update` name belongs to the merge-safe composite; the raw
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: basecamp-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Basecamp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-30 00:00:00.000000000 Z
11
+ date: 2026-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday