basecamp-sdk 0.8.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.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/basecamp/client.rb +5 -0
- data/lib/basecamp/generated/metadata.json +54 -1
- data/lib/basecamp/generated/services/base_service.rb +13 -0
- data/lib/basecamp/generated/services/campfires_service.rb +2 -2
- data/lib/basecamp/generated/services/card_columns_service.rb +3 -3
- data/lib/basecamp/generated/services/checkins_service.rb +5 -4
- data/lib/basecamp/generated/services/client_approvals_service.rb +1 -1
- data/lib/basecamp/generated/services/client_correspondences_service.rb +1 -1
- data/lib/basecamp/generated/services/documents_service.rb +3 -2
- data/lib/basecamp/generated/services/forwards_service.rb +1 -1
- data/lib/basecamp/generated/services/gauges_service.rb +4 -4
- data/lib/basecamp/generated/services/messages_service.rb +4 -3
- data/lib/basecamp/generated/services/my_assignments_service.rb +1 -1
- data/lib/basecamp/generated/services/my_notifications_service.rb +1 -1
- data/lib/basecamp/generated/services/people_service.rb +2 -2
- data/lib/basecamp/generated/services/projects_service.rb +2 -2
- data/lib/basecamp/generated/services/recordings_service.rb +1 -1
- data/lib/basecamp/generated/services/reports_service.rb +2 -2
- data/lib/basecamp/generated/services/schedules_service.rb +5 -4
- data/lib/basecamp/generated/services/search_service.rb +14 -3
- data/lib/basecamp/generated/services/templates_service.rb +4 -5
- data/lib/basecamp/generated/services/timesheets_service.rb +3 -3
- data/lib/basecamp/generated/services/todolists_service.rb +15 -3
- data/lib/basecamp/generated/services/todos_service.rb +1 -1
- data/lib/basecamp/generated/services/tools_service.rb +1 -1
- data/lib/basecamp/generated/services/uploads_service.rb +3 -2
- data/lib/basecamp/generated/services/webhooks_service.rb +2 -2
- data/lib/basecamp/generated/services/wormholes_service.rb +44 -0
- data/lib/basecamp/generated/types.rb +254 -58
- data/lib/basecamp/version.rb +2 -2
- data/scripts/generate-services.rb +24 -10
- data/scripts/generate-types.rb +33 -1
- metadata +3 -2
|
@@ -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-07-
|
|
4
|
+
# Generated: 2026-07-25T04:02:54Z
|
|
5
5
|
|
|
6
6
|
require "json"
|
|
7
7
|
require "time"
|
|
@@ -439,11 +439,11 @@ module Basecamp
|
|
|
439
439
|
# Card
|
|
440
440
|
class Card
|
|
441
441
|
include TypeHelpers
|
|
442
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :assignees, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :completed, :completed_at, :completer, :completion_subscribers, :completion_url, :content, :description, :due_on, :position, :steps, :subscription_url
|
|
442
|
+
attr_accessor :app_url, :bucket, :created_at, :creator, :description_attachments, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :assignees, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :completed, :completed_at, :completer, :completion_subscribers, :completion_url, :content, :description, :due_on, :position, :steps, :subscription_url
|
|
443
443
|
|
|
444
444
|
# @return [Array<Symbol>]
|
|
445
445
|
def self.required_fields
|
|
446
|
-
%i[app_url bucket created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
446
|
+
%i[app_url bucket created_at creator description_attachments id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
447
447
|
end
|
|
448
448
|
|
|
449
449
|
def initialize(data = {})
|
|
@@ -451,6 +451,7 @@ module Basecamp
|
|
|
451
451
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
452
452
|
@created_at = parse_datetime(data["created_at"])
|
|
453
453
|
@creator = parse_type(data["creator"], "Person")
|
|
454
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
454
455
|
@id = parse_integer(data["id"])
|
|
455
456
|
@inherits_status = parse_boolean(data["inherits_status"])
|
|
456
457
|
@parent = parse_type(data["parent"], "RecordingParent")
|
|
@@ -485,6 +486,7 @@ module Basecamp
|
|
|
485
486
|
"bucket" => @bucket,
|
|
486
487
|
"created_at" => @created_at,
|
|
487
488
|
"creator" => @creator,
|
|
489
|
+
"description_attachments" => @description_attachments,
|
|
488
490
|
"id" => @id,
|
|
489
491
|
"inherits_status" => @inherits_status,
|
|
490
492
|
"parent" => @parent,
|
|
@@ -693,7 +695,7 @@ module Basecamp
|
|
|
693
695
|
# CardTable
|
|
694
696
|
class CardTable
|
|
695
697
|
include TypeHelpers
|
|
696
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :lists, :subscribers, :subscription_url
|
|
698
|
+
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :lists, :subscribers, :subscription_url, :wormholes
|
|
697
699
|
|
|
698
700
|
# @return [Array<Symbol>]
|
|
699
701
|
def self.required_fields
|
|
@@ -717,6 +719,7 @@ module Basecamp
|
|
|
717
719
|
@lists = parse_array(data["lists"], "CardColumn")
|
|
718
720
|
@subscribers = parse_array(data["subscribers"], "Person")
|
|
719
721
|
@subscription_url = data["subscription_url"]
|
|
722
|
+
@wormholes = parse_array(data["wormholes"], "Wormhole")
|
|
720
723
|
end
|
|
721
724
|
|
|
722
725
|
def to_h
|
|
@@ -737,6 +740,7 @@ module Basecamp
|
|
|
737
740
|
"lists" => @lists,
|
|
738
741
|
"subscribers" => @subscribers,
|
|
739
742
|
"subscription_url" => @subscription_url,
|
|
743
|
+
"wormholes" => @wormholes,
|
|
740
744
|
}.compact
|
|
741
745
|
end
|
|
742
746
|
|
|
@@ -787,16 +791,17 @@ module Basecamp
|
|
|
787
791
|
# ClientApproval
|
|
788
792
|
class ClientApproval
|
|
789
793
|
include TypeHelpers
|
|
790
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :approval_status, :approver, :bookmark_url, :content, :due_on, :replies_count, :replies_url, :responses, :subject, :subscription_url
|
|
794
|
+
attr_accessor :app_url, :bucket, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :approval_status, :approver, :bookmark_url, :content, :due_on, :replies_count, :replies_url, :responses, :subject, :subscription_url
|
|
791
795
|
|
|
792
796
|
# @return [Array<Symbol>]
|
|
793
797
|
def self.required_fields
|
|
794
|
-
%i[app_url bucket created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
798
|
+
%i[app_url bucket content_attachments created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
795
799
|
end
|
|
796
800
|
|
|
797
801
|
def initialize(data = {})
|
|
798
802
|
@app_url = data["app_url"]
|
|
799
803
|
@bucket = parse_type(data["bucket"], "RecordingBucket")
|
|
804
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
800
805
|
@created_at = parse_datetime(data["created_at"])
|
|
801
806
|
@creator = parse_type(data["creator"], "Person")
|
|
802
807
|
@id = parse_integer(data["id"])
|
|
@@ -824,6 +829,7 @@ module Basecamp
|
|
|
824
829
|
{
|
|
825
830
|
"app_url" => @app_url,
|
|
826
831
|
"bucket" => @bucket,
|
|
832
|
+
"content_attachments" => @content_attachments,
|
|
827
833
|
"created_at" => @created_at,
|
|
828
834
|
"creator" => @creator,
|
|
829
835
|
"id" => @id,
|
|
@@ -931,16 +937,17 @@ module Basecamp
|
|
|
931
937
|
# ClientCorrespondence
|
|
932
938
|
class ClientCorrespondence
|
|
933
939
|
include TypeHelpers
|
|
934
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :subject, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :content, :replies_count, :replies_url, :subscription_url
|
|
940
|
+
attr_accessor :app_url, :bucket, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :subject, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :content, :replies_count, :replies_url, :subscription_url
|
|
935
941
|
|
|
936
942
|
# @return [Array<Symbol>]
|
|
937
943
|
def self.required_fields
|
|
938
|
-
%i[app_url bucket created_at creator id inherits_status parent status subject title type updated_at url visible_to_clients].freeze
|
|
944
|
+
%i[app_url bucket content_attachments created_at creator id inherits_status parent status subject title type updated_at url visible_to_clients].freeze
|
|
939
945
|
end
|
|
940
946
|
|
|
941
947
|
def initialize(data = {})
|
|
942
948
|
@app_url = data["app_url"]
|
|
943
949
|
@bucket = parse_type(data["bucket"], "RecordingBucket")
|
|
950
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
944
951
|
@created_at = parse_datetime(data["created_at"])
|
|
945
952
|
@creator = parse_type(data["creator"], "Person")
|
|
946
953
|
@id = parse_integer(data["id"])
|
|
@@ -964,6 +971,7 @@ module Basecamp
|
|
|
964
971
|
{
|
|
965
972
|
"app_url" => @app_url,
|
|
966
973
|
"bucket" => @bucket,
|
|
974
|
+
"content_attachments" => @content_attachments,
|
|
967
975
|
"created_at" => @created_at,
|
|
968
976
|
"creator" => @creator,
|
|
969
977
|
"id" => @id,
|
|
@@ -992,17 +1000,18 @@ module Basecamp
|
|
|
992
1000
|
# ClientReply
|
|
993
1001
|
class ClientReply
|
|
994
1002
|
include TypeHelpers
|
|
995
|
-
attr_accessor :app_url, :bucket, :content, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url
|
|
1003
|
+
attr_accessor :app_url, :bucket, :content, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url
|
|
996
1004
|
|
|
997
1005
|
# @return [Array<Symbol>]
|
|
998
1006
|
def self.required_fields
|
|
999
|
-
%i[app_url bucket content created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1007
|
+
%i[app_url bucket content content_attachments created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1000
1008
|
end
|
|
1001
1009
|
|
|
1002
1010
|
def initialize(data = {})
|
|
1003
1011
|
@app_url = data["app_url"]
|
|
1004
1012
|
@bucket = parse_type(data["bucket"], "RecordingBucket")
|
|
1005
1013
|
@content = data["content"]
|
|
1014
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
1006
1015
|
@created_at = parse_datetime(data["created_at"])
|
|
1007
1016
|
@creator = parse_type(data["creator"], "Person")
|
|
1008
1017
|
@id = parse_integer(data["id"])
|
|
@@ -1022,6 +1031,7 @@ module Basecamp
|
|
|
1022
1031
|
"app_url" => @app_url,
|
|
1023
1032
|
"bucket" => @bucket,
|
|
1024
1033
|
"content" => @content,
|
|
1034
|
+
"content_attachments" => @content_attachments,
|
|
1025
1035
|
"created_at" => @created_at,
|
|
1026
1036
|
"creator" => @creator,
|
|
1027
1037
|
"id" => @id,
|
|
@@ -1043,6 +1053,7 @@ module Basecamp
|
|
|
1043
1053
|
end
|
|
1044
1054
|
|
|
1045
1055
|
# ClientSide
|
|
1056
|
+
# @deprecated This shape is deprecated since 2024-01: Use Client Visibility feature instead
|
|
1046
1057
|
class ClientSide
|
|
1047
1058
|
include TypeHelpers
|
|
1048
1059
|
attr_accessor :app_url, :url
|
|
@@ -1067,17 +1078,18 @@ module Basecamp
|
|
|
1067
1078
|
# Comment
|
|
1068
1079
|
class Comment
|
|
1069
1080
|
include TypeHelpers
|
|
1070
|
-
attr_accessor :app_url, :bucket, :content, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url
|
|
1081
|
+
attr_accessor :app_url, :bucket, :content, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url
|
|
1071
1082
|
|
|
1072
1083
|
# @return [Array<Symbol>]
|
|
1073
1084
|
def self.required_fields
|
|
1074
|
-
%i[app_url bucket content created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1085
|
+
%i[app_url bucket content content_attachments created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1075
1086
|
end
|
|
1076
1087
|
|
|
1077
1088
|
def initialize(data = {})
|
|
1078
1089
|
@app_url = data["app_url"]
|
|
1079
1090
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
1080
1091
|
@content = data["content"]
|
|
1092
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
1081
1093
|
@created_at = parse_datetime(data["created_at"])
|
|
1082
1094
|
@creator = parse_type(data["creator"], "Person")
|
|
1083
1095
|
@id = parse_integer(data["id"])
|
|
@@ -1099,6 +1111,7 @@ module Basecamp
|
|
|
1099
1111
|
"app_url" => @app_url,
|
|
1100
1112
|
"bucket" => @bucket,
|
|
1101
1113
|
"content" => @content,
|
|
1114
|
+
"content_attachments" => @content_attachments,
|
|
1102
1115
|
"created_at" => @created_at,
|
|
1103
1116
|
"creator" => @creator,
|
|
1104
1117
|
"id" => @id,
|
|
@@ -1192,16 +1205,17 @@ module Basecamp
|
|
|
1192
1205
|
# Document
|
|
1193
1206
|
class Document
|
|
1194
1207
|
include TypeHelpers
|
|
1195
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :content, :position, :subscription_url
|
|
1208
|
+
attr_accessor :app_url, :bucket, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :content, :position, :subscription_url
|
|
1196
1209
|
|
|
1197
1210
|
# @return [Array<Symbol>]
|
|
1198
1211
|
def self.required_fields
|
|
1199
|
-
%i[app_url bucket created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1212
|
+
%i[app_url bucket content_attachments created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1200
1213
|
end
|
|
1201
1214
|
|
|
1202
1215
|
def initialize(data = {})
|
|
1203
1216
|
@app_url = data["app_url"]
|
|
1204
1217
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
1218
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
1205
1219
|
@created_at = parse_datetime(data["created_at"])
|
|
1206
1220
|
@creator = parse_type(data["creator"], "Person")
|
|
1207
1221
|
@id = parse_integer(data["id"])
|
|
@@ -1227,6 +1241,7 @@ module Basecamp
|
|
|
1227
1241
|
{
|
|
1228
1242
|
"app_url" => @app_url,
|
|
1229
1243
|
"bucket" => @bucket,
|
|
1244
|
+
"content_attachments" => @content_attachments,
|
|
1230
1245
|
"created_at" => @created_at,
|
|
1231
1246
|
"creator" => @creator,
|
|
1232
1247
|
"id" => @id,
|
|
@@ -1320,16 +1335,17 @@ module Basecamp
|
|
|
1320
1335
|
# Forward
|
|
1321
1336
|
class Forward
|
|
1322
1337
|
include TypeHelpers
|
|
1323
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :subject, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :content, :from, :replies_count, :replies_url, :subscription_url
|
|
1338
|
+
attr_accessor :app_url, :bucket, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :subject, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :content, :from, :replies_count, :replies_url, :subscription_url
|
|
1324
1339
|
|
|
1325
1340
|
# @return [Array<Symbol>]
|
|
1326
1341
|
def self.required_fields
|
|
1327
|
-
%i[app_url bucket created_at creator id inherits_status parent status subject title type updated_at url visible_to_clients].freeze
|
|
1342
|
+
%i[app_url bucket content_attachments created_at creator id inherits_status parent status subject title type updated_at url visible_to_clients].freeze
|
|
1328
1343
|
end
|
|
1329
1344
|
|
|
1330
1345
|
def initialize(data = {})
|
|
1331
1346
|
@app_url = data["app_url"]
|
|
1332
1347
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
1348
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
1333
1349
|
@created_at = parse_datetime(data["created_at"])
|
|
1334
1350
|
@creator = parse_type(data["creator"], "Person")
|
|
1335
1351
|
@id = parse_integer(data["id"])
|
|
@@ -1354,6 +1370,7 @@ module Basecamp
|
|
|
1354
1370
|
{
|
|
1355
1371
|
"app_url" => @app_url,
|
|
1356
1372
|
"bucket" => @bucket,
|
|
1373
|
+
"content_attachments" => @content_attachments,
|
|
1357
1374
|
"created_at" => @created_at,
|
|
1358
1375
|
"creator" => @creator,
|
|
1359
1376
|
"id" => @id,
|
|
@@ -1383,17 +1400,18 @@ module Basecamp
|
|
|
1383
1400
|
# ForwardReply
|
|
1384
1401
|
class ForwardReply
|
|
1385
1402
|
include TypeHelpers
|
|
1386
|
-
attr_accessor :app_url, :bucket, :content, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url
|
|
1403
|
+
attr_accessor :app_url, :bucket, :content, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url
|
|
1387
1404
|
|
|
1388
1405
|
# @return [Array<Symbol>]
|
|
1389
1406
|
def self.required_fields
|
|
1390
|
-
%i[app_url bucket content created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1407
|
+
%i[app_url bucket content content_attachments created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
1391
1408
|
end
|
|
1392
1409
|
|
|
1393
1410
|
def initialize(data = {})
|
|
1394
1411
|
@app_url = data["app_url"]
|
|
1395
1412
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
1396
1413
|
@content = data["content"]
|
|
1414
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
1397
1415
|
@created_at = parse_datetime(data["created_at"])
|
|
1398
1416
|
@creator = parse_type(data["creator"], "Person")
|
|
1399
1417
|
@id = parse_integer(data["id"])
|
|
@@ -1415,6 +1433,7 @@ module Basecamp
|
|
|
1415
1433
|
"app_url" => @app_url,
|
|
1416
1434
|
"bucket" => @bucket,
|
|
1417
1435
|
"content" => @content,
|
|
1436
|
+
"content_attachments" => @content_attachments,
|
|
1418
1437
|
"created_at" => @created_at,
|
|
1419
1438
|
"creator" => @creator,
|
|
1420
1439
|
"id" => @id,
|
|
@@ -1440,7 +1459,7 @@ module Basecamp
|
|
|
1440
1459
|
# Gauge
|
|
1441
1460
|
class Gauge
|
|
1442
1461
|
include TypeHelpers
|
|
1443
|
-
attr_accessor :created_at, :id, :updated_at, :app_url, :bookmark_url, :bucket, :creator, :description, :enabled, :inherits_status, :last_needle_color, :last_needle_position, :previous_needle_position, :status, :title, :type, :url, :visible_to_clients
|
|
1462
|
+
attr_accessor :created_at, :id, :updated_at, :app_url, :bookmark_url, :bucket, :creator, :description, :description_attachments, :enabled, :inherits_status, :last_needle_color, :last_needle_position, :previous_needle_position, :status, :title, :type, :url, :visible_to_clients
|
|
1444
1463
|
|
|
1445
1464
|
# @return [Array<Symbol>]
|
|
1446
1465
|
def self.required_fields
|
|
@@ -1456,6 +1475,7 @@ module Basecamp
|
|
|
1456
1475
|
@bucket = parse_type(data["bucket"], "RecordingBucket")
|
|
1457
1476
|
@creator = parse_type(data["creator"], "Person")
|
|
1458
1477
|
@description = data["description"]
|
|
1478
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
1459
1479
|
@enabled = parse_boolean(data["enabled"])
|
|
1460
1480
|
@inherits_status = parse_boolean(data["inherits_status"])
|
|
1461
1481
|
@last_needle_color = data["last_needle_color"]
|
|
@@ -1478,6 +1498,7 @@ module Basecamp
|
|
|
1478
1498
|
"bucket" => @bucket,
|
|
1479
1499
|
"creator" => @creator,
|
|
1480
1500
|
"description" => @description,
|
|
1501
|
+
"description_attachments" => @description_attachments,
|
|
1481
1502
|
"enabled" => @enabled,
|
|
1482
1503
|
"inherits_status" => @inherits_status,
|
|
1483
1504
|
"last_needle_color" => @last_needle_color,
|
|
@@ -1499,15 +1520,16 @@ module Basecamp
|
|
|
1499
1520
|
# GaugeNeedle
|
|
1500
1521
|
class GaugeNeedle
|
|
1501
1522
|
include TypeHelpers
|
|
1502
|
-
attr_accessor :created_at, :id, :updated_at, :app_url, :bookmark_url, :boosts_count, :boosts_url, :bucket, :color, :comments_count, :comments_url, :creator, :description, :inherits_status, :parent, :position, :status, :subscription_url, :title, :type, :url, :visible_to_clients
|
|
1523
|
+
attr_accessor :created_at, :description_attachments, :id, :updated_at, :app_url, :bookmark_url, :boosts_count, :boosts_url, :bucket, :color, :comments_count, :comments_url, :creator, :description, :inherits_status, :parent, :position, :status, :subscription_url, :title, :type, :url, :visible_to_clients
|
|
1503
1524
|
|
|
1504
1525
|
# @return [Array<Symbol>]
|
|
1505
1526
|
def self.required_fields
|
|
1506
|
-
%i[created_at id updated_at].freeze
|
|
1527
|
+
%i[created_at description_attachments id updated_at].freeze
|
|
1507
1528
|
end
|
|
1508
1529
|
|
|
1509
1530
|
def initialize(data = {})
|
|
1510
1531
|
@created_at = parse_datetime(data["created_at"])
|
|
1532
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
1511
1533
|
@id = parse_integer(data["id"])
|
|
1512
1534
|
@updated_at = parse_datetime(data["updated_at"])
|
|
1513
1535
|
@app_url = data["app_url"]
|
|
@@ -1534,6 +1556,7 @@ module Basecamp
|
|
|
1534
1556
|
def to_h
|
|
1535
1557
|
{
|
|
1536
1558
|
"created_at" => @created_at,
|
|
1559
|
+
"description_attachments" => @description_attachments,
|
|
1537
1560
|
"id" => @id,
|
|
1538
1561
|
"updated_at" => @updated_at,
|
|
1539
1562
|
"app_url" => @app_url,
|
|
@@ -1798,17 +1821,18 @@ module Basecamp
|
|
|
1798
1821
|
# Message
|
|
1799
1822
|
class Message
|
|
1800
1823
|
include TypeHelpers
|
|
1801
|
-
attr_accessor :app_url, :bucket, :content, :created_at, :creator, :id, :inherits_status, :parent, :status, :subject, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :category, :comments_count, :comments_url, :subscription_url
|
|
1824
|
+
attr_accessor :app_url, :bucket, :content, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :subject, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :category, :comments_count, :comments_url, :subscription_url
|
|
1802
1825
|
|
|
1803
1826
|
# @return [Array<Symbol>]
|
|
1804
1827
|
def self.required_fields
|
|
1805
|
-
%i[app_url bucket content created_at creator id inherits_status parent status subject title type updated_at url visible_to_clients].freeze
|
|
1828
|
+
%i[app_url bucket content content_attachments created_at creator id inherits_status parent status subject title type updated_at url visible_to_clients].freeze
|
|
1806
1829
|
end
|
|
1807
1830
|
|
|
1808
1831
|
def initialize(data = {})
|
|
1809
1832
|
@app_url = data["app_url"]
|
|
1810
1833
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
1811
1834
|
@content = data["content"]
|
|
1835
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
1812
1836
|
@created_at = parse_datetime(data["created_at"])
|
|
1813
1837
|
@creator = parse_type(data["creator"], "Person")
|
|
1814
1838
|
@id = parse_integer(data["id"])
|
|
@@ -1835,6 +1859,7 @@ module Basecamp
|
|
|
1835
1859
|
"app_url" => @app_url,
|
|
1836
1860
|
"bucket" => @bucket,
|
|
1837
1861
|
"content" => @content,
|
|
1862
|
+
"content_attachments" => @content_attachments,
|
|
1838
1863
|
"created_at" => @created_at,
|
|
1839
1864
|
"creator" => @creator,
|
|
1840
1865
|
"id" => @id,
|
|
@@ -2437,6 +2462,8 @@ module Basecamp
|
|
|
2437
2462
|
# Project
|
|
2438
2463
|
class Project
|
|
2439
2464
|
include TypeHelpers
|
|
2465
|
+
# @!attribute [rw] clientside
|
|
2466
|
+
# @deprecated This shape is deprecated since 2024-01: Use Client Visibility feature instead
|
|
2440
2467
|
attr_accessor :app_url, :created_at, :id, :name, :status, :updated_at, :url, :bookmark_url, :bookmarked, :client_company, :clients_enabled, :clientside, :description, :dock, :end_date, :purpose, :start_date
|
|
2441
2468
|
|
|
2442
2469
|
# @return [Array<Symbol>]
|
|
@@ -2544,6 +2571,33 @@ module Basecamp
|
|
|
2544
2571
|
end
|
|
2545
2572
|
end
|
|
2546
2573
|
|
|
2574
|
+
# ProjectConstructionAttributes
|
|
2575
|
+
class ProjectConstructionAttributes
|
|
2576
|
+
include TypeHelpers
|
|
2577
|
+
attr_accessor :name, :description
|
|
2578
|
+
|
|
2579
|
+
# @return [Array<Symbol>]
|
|
2580
|
+
def self.required_fields
|
|
2581
|
+
%i[name].freeze
|
|
2582
|
+
end
|
|
2583
|
+
|
|
2584
|
+
def initialize(data = {})
|
|
2585
|
+
@name = data["name"]
|
|
2586
|
+
@description = data["description"]
|
|
2587
|
+
end
|
|
2588
|
+
|
|
2589
|
+
def to_h
|
|
2590
|
+
{
|
|
2591
|
+
"name" => @name,
|
|
2592
|
+
"description" => @description,
|
|
2593
|
+
}.compact
|
|
2594
|
+
end
|
|
2595
|
+
|
|
2596
|
+
def to_json(*args)
|
|
2597
|
+
to_h.to_json(*args)
|
|
2598
|
+
end
|
|
2599
|
+
end
|
|
2600
|
+
|
|
2547
2601
|
# Question
|
|
2548
2602
|
class Question
|
|
2549
2603
|
include TypeHelpers
|
|
@@ -2608,17 +2662,18 @@ module Basecamp
|
|
|
2608
2662
|
# QuestionAnswer
|
|
2609
2663
|
class QuestionAnswer
|
|
2610
2664
|
include TypeHelpers
|
|
2611
|
-
attr_accessor :app_url, :bucket, :content, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :group_on, :subscription_url
|
|
2665
|
+
attr_accessor :app_url, :bucket, :content, :content_attachments, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :group_on, :subscription_url
|
|
2612
2666
|
|
|
2613
2667
|
# @return [Array<Symbol>]
|
|
2614
2668
|
def self.required_fields
|
|
2615
|
-
%i[app_url bucket content created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
2669
|
+
%i[app_url bucket content content_attachments created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
2616
2670
|
end
|
|
2617
2671
|
|
|
2618
2672
|
def initialize(data = {})
|
|
2619
2673
|
@app_url = data["app_url"]
|
|
2620
2674
|
@bucket = parse_type(data["bucket"], "RecordingBucket")
|
|
2621
2675
|
@content = data["content"]
|
|
2676
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
2622
2677
|
@created_at = parse_datetime(data["created_at"])
|
|
2623
2678
|
@creator = parse_type(data["creator"], "Person")
|
|
2624
2679
|
@id = parse_integer(data["id"])
|
|
@@ -2644,6 +2699,7 @@ module Basecamp
|
|
|
2644
2699
|
"app_url" => @app_url,
|
|
2645
2700
|
"bucket" => @bucket,
|
|
2646
2701
|
"content" => @content,
|
|
2702
|
+
"content_attachments" => @content_attachments,
|
|
2647
2703
|
"created_at" => @created_at,
|
|
2648
2704
|
"creator" => @creator,
|
|
2649
2705
|
"id" => @id,
|
|
@@ -2844,7 +2900,7 @@ module Basecamp
|
|
|
2844
2900
|
# Recording
|
|
2845
2901
|
class Recording
|
|
2846
2902
|
include TypeHelpers
|
|
2847
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :comments_count, :comments_url, :content, :subscription_url
|
|
2903
|
+
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :comments_count, :comments_url, :content, :content_attachments, :description_attachments, :subscription_url
|
|
2848
2904
|
|
|
2849
2905
|
# @return [Array<Symbol>]
|
|
2850
2906
|
def self.required_fields
|
|
@@ -2869,6 +2925,8 @@ module Basecamp
|
|
|
2869
2925
|
@comments_count = parse_integer(data["comments_count"])
|
|
2870
2926
|
@comments_url = data["comments_url"]
|
|
2871
2927
|
@content = data["content"]
|
|
2928
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
2929
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
2872
2930
|
@subscription_url = data["subscription_url"]
|
|
2873
2931
|
end
|
|
2874
2932
|
|
|
@@ -2891,6 +2949,8 @@ module Basecamp
|
|
|
2891
2949
|
"comments_count" => @comments_count,
|
|
2892
2950
|
"comments_url" => @comments_url,
|
|
2893
2951
|
"content" => @content,
|
|
2952
|
+
"content_attachments" => @content_attachments,
|
|
2953
|
+
"description_attachments" => @description_attachments,
|
|
2894
2954
|
"subscription_url" => @subscription_url,
|
|
2895
2955
|
}.compact
|
|
2896
2956
|
end
|
|
@@ -2962,6 +3022,51 @@ module Basecamp
|
|
|
2962
3022
|
end
|
|
2963
3023
|
end
|
|
2964
3024
|
|
|
3025
|
+
# RichTextAttachment
|
|
3026
|
+
class RichTextAttachment
|
|
3027
|
+
include TypeHelpers
|
|
3028
|
+
attr_accessor :byte_size, :content_type, :download_url, :filename, :id, :preview_url, :previewable, :sgid, :thumbnail_url, :height, :width
|
|
3029
|
+
|
|
3030
|
+
# @return [Array<Symbol>]
|
|
3031
|
+
def self.required_fields
|
|
3032
|
+
%i[byte_size content_type download_url filename id preview_url previewable sgid thumbnail_url].freeze
|
|
3033
|
+
end
|
|
3034
|
+
|
|
3035
|
+
def initialize(data = {})
|
|
3036
|
+
@byte_size = parse_integer(data["byte_size"])
|
|
3037
|
+
@content_type = data["content_type"]
|
|
3038
|
+
@download_url = data["download_url"]
|
|
3039
|
+
@filename = data["filename"]
|
|
3040
|
+
@id = parse_integer(data["id"])
|
|
3041
|
+
@preview_url = data["preview_url"]
|
|
3042
|
+
@previewable = parse_boolean(data["previewable"])
|
|
3043
|
+
@sgid = data["sgid"]
|
|
3044
|
+
@thumbnail_url = data["thumbnail_url"]
|
|
3045
|
+
@height = parse_integer(data["height"])
|
|
3046
|
+
@width = parse_integer(data["width"])
|
|
3047
|
+
end
|
|
3048
|
+
|
|
3049
|
+
def to_h
|
|
3050
|
+
{
|
|
3051
|
+
"byte_size" => @byte_size,
|
|
3052
|
+
"content_type" => @content_type,
|
|
3053
|
+
"download_url" => @download_url,
|
|
3054
|
+
"filename" => @filename,
|
|
3055
|
+
"id" => @id,
|
|
3056
|
+
"preview_url" => @preview_url,
|
|
3057
|
+
"previewable" => @previewable,
|
|
3058
|
+
"sgid" => @sgid,
|
|
3059
|
+
"thumbnail_url" => @thumbnail_url,
|
|
3060
|
+
"height" => @height,
|
|
3061
|
+
"width" => @width,
|
|
3062
|
+
}.compact
|
|
3063
|
+
end
|
|
3064
|
+
|
|
3065
|
+
def to_json(*args)
|
|
3066
|
+
to_h.to_json(*args)
|
|
3067
|
+
end
|
|
3068
|
+
end
|
|
3069
|
+
|
|
2965
3070
|
# Schedule
|
|
2966
3071
|
class Schedule
|
|
2967
3072
|
include TypeHelpers
|
|
@@ -3044,11 +3149,11 @@ module Basecamp
|
|
|
3044
3149
|
# ScheduleEntry
|
|
3045
3150
|
class ScheduleEntry
|
|
3046
3151
|
include TypeHelpers
|
|
3047
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :summary, :title, :type, :updated_at, :url, :visible_to_clients, :all_day, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :description, :ends_at, :participants, :starts_at, :subscription_url
|
|
3152
|
+
attr_accessor :app_url, :bucket, :created_at, :creator, :description_attachments, :id, :inherits_status, :parent, :status, :summary, :title, :type, :updated_at, :url, :visible_to_clients, :all_day, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :description, :ends_at, :participants, :starts_at, :subscription_url
|
|
3048
3153
|
|
|
3049
3154
|
# @return [Array<Symbol>]
|
|
3050
3155
|
def self.required_fields
|
|
3051
|
-
%i[app_url bucket created_at creator id inherits_status parent status summary title type updated_at url visible_to_clients].freeze
|
|
3156
|
+
%i[app_url bucket created_at creator description_attachments id inherits_status parent status summary title type updated_at url visible_to_clients].freeze
|
|
3052
3157
|
end
|
|
3053
3158
|
|
|
3054
3159
|
def initialize(data = {})
|
|
@@ -3056,6 +3161,7 @@ module Basecamp
|
|
|
3056
3161
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
3057
3162
|
@created_at = parse_datetime(data["created_at"])
|
|
3058
3163
|
@creator = parse_type(data["creator"], "Person")
|
|
3164
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
3059
3165
|
@id = parse_integer(data["id"])
|
|
3060
3166
|
@inherits_status = parse_boolean(data["inherits_status"])
|
|
3061
3167
|
@parent = parse_type(data["parent"], "RecordingParent")
|
|
@@ -3085,6 +3191,7 @@ module Basecamp
|
|
|
3085
3191
|
"bucket" => @bucket,
|
|
3086
3192
|
"created_at" => @created_at,
|
|
3087
3193
|
"creator" => @creator,
|
|
3194
|
+
"description_attachments" => @description_attachments,
|
|
3088
3195
|
"id" => @id,
|
|
3089
3196
|
"inherits_status" => @inherits_status,
|
|
3090
3197
|
"parent" => @parent,
|
|
@@ -3117,37 +3224,32 @@ module Basecamp
|
|
|
3117
3224
|
# SearchMetadata
|
|
3118
3225
|
class SearchMetadata
|
|
3119
3226
|
include TypeHelpers
|
|
3120
|
-
attr_accessor :
|
|
3121
|
-
|
|
3122
|
-
def initialize(data = {})
|
|
3123
|
-
@projects = parse_array(data["projects"], "SearchProject")
|
|
3124
|
-
end
|
|
3125
|
-
|
|
3126
|
-
def to_h
|
|
3127
|
-
{
|
|
3128
|
-
"projects" => @projects,
|
|
3129
|
-
}.compact
|
|
3130
|
-
end
|
|
3227
|
+
attr_accessor :default_bucket_label, :default_circle_label, :default_creator_label, :default_file_type_label, :default_type_label, :file_search_types, :recording_search_types
|
|
3131
3228
|
|
|
3132
|
-
|
|
3133
|
-
|
|
3229
|
+
# @return [Array<Symbol>]
|
|
3230
|
+
def self.required_fields
|
|
3231
|
+
%i[default_bucket_label default_circle_label default_creator_label default_file_type_label default_type_label file_search_types recording_search_types].freeze
|
|
3134
3232
|
end
|
|
3135
|
-
end
|
|
3136
|
-
|
|
3137
|
-
# SearchProject
|
|
3138
|
-
class SearchProject
|
|
3139
|
-
include TypeHelpers
|
|
3140
|
-
attr_accessor :id, :name
|
|
3141
3233
|
|
|
3142
3234
|
def initialize(data = {})
|
|
3143
|
-
@
|
|
3144
|
-
@
|
|
3235
|
+
@default_bucket_label = data["default_bucket_label"]
|
|
3236
|
+
@default_circle_label = data["default_circle_label"]
|
|
3237
|
+
@default_creator_label = data["default_creator_label"]
|
|
3238
|
+
@default_file_type_label = data["default_file_type_label"]
|
|
3239
|
+
@default_type_label = data["default_type_label"]
|
|
3240
|
+
@file_search_types = parse_array(data["file_search_types"], "SearchType")
|
|
3241
|
+
@recording_search_types = parse_array(data["recording_search_types"], "SearchType")
|
|
3145
3242
|
end
|
|
3146
3243
|
|
|
3147
3244
|
def to_h
|
|
3148
3245
|
{
|
|
3149
|
-
"
|
|
3150
|
-
"
|
|
3246
|
+
"default_bucket_label" => @default_bucket_label,
|
|
3247
|
+
"default_circle_label" => @default_circle_label,
|
|
3248
|
+
"default_creator_label" => @default_creator_label,
|
|
3249
|
+
"default_file_type_label" => @default_file_type_label,
|
|
3250
|
+
"default_type_label" => @default_type_label,
|
|
3251
|
+
"file_search_types" => @file_search_types,
|
|
3252
|
+
"recording_search_types" => @recording_search_types,
|
|
3151
3253
|
}.compact
|
|
3152
3254
|
end
|
|
3153
3255
|
|
|
@@ -3159,7 +3261,7 @@ module Basecamp
|
|
|
3159
3261
|
# SearchResult
|
|
3160
3262
|
class SearchResult
|
|
3161
3263
|
include TypeHelpers
|
|
3162
|
-
attr_accessor :app_url, :id, :title, :type, :url, :bookmark_url, :bucket, :content, :created_at, :creator, :description, :inherits_status, :parent, :status, :subject, :updated_at, :visible_to_clients
|
|
3264
|
+
attr_accessor :app_url, :id, :title, :type, :url, :bookmark_url, :bucket, :content, :content_attachments, :created_at, :creator, :description, :description_attachments, :inherits_status, :parent, :status, :subject, :updated_at, :visible_to_clients
|
|
3163
3265
|
|
|
3164
3266
|
# @return [Array<Symbol>]
|
|
3165
3267
|
def self.required_fields
|
|
@@ -3175,9 +3277,11 @@ module Basecamp
|
|
|
3175
3277
|
@bookmark_url = data["bookmark_url"]
|
|
3176
3278
|
@bucket = parse_type(data["bucket"], "RecordingBucket")
|
|
3177
3279
|
@content = data["content"]
|
|
3280
|
+
@content_attachments = parse_array(data["content_attachments"], "RichTextAttachment")
|
|
3178
3281
|
@created_at = parse_datetime(data["created_at"])
|
|
3179
3282
|
@creator = parse_type(data["creator"], "Person")
|
|
3180
3283
|
@description = data["description"]
|
|
3284
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
3181
3285
|
@inherits_status = parse_boolean(data["inherits_status"])
|
|
3182
3286
|
@parent = parse_type(data["parent"], "RecordingParent")
|
|
3183
3287
|
@status = data["status"]
|
|
@@ -3196,9 +3300,11 @@ module Basecamp
|
|
|
3196
3300
|
"bookmark_url" => @bookmark_url,
|
|
3197
3301
|
"bucket" => @bucket,
|
|
3198
3302
|
"content" => @content,
|
|
3303
|
+
"content_attachments" => @content_attachments,
|
|
3199
3304
|
"created_at" => @created_at,
|
|
3200
3305
|
"creator" => @creator,
|
|
3201
3306
|
"description" => @description,
|
|
3307
|
+
"description_attachments" => @description_attachments,
|
|
3202
3308
|
"inherits_status" => @inherits_status,
|
|
3203
3309
|
"parent" => @parent,
|
|
3204
3310
|
"status" => @status,
|
|
@@ -3213,6 +3319,33 @@ module Basecamp
|
|
|
3213
3319
|
end
|
|
3214
3320
|
end
|
|
3215
3321
|
|
|
3322
|
+
# SearchType
|
|
3323
|
+
class SearchType
|
|
3324
|
+
include TypeHelpers
|
|
3325
|
+
attr_accessor :key, :value
|
|
3326
|
+
|
|
3327
|
+
# @return [Array<Symbol>]
|
|
3328
|
+
def self.required_fields
|
|
3329
|
+
%i[key value].freeze
|
|
3330
|
+
end
|
|
3331
|
+
|
|
3332
|
+
def initialize(data = {})
|
|
3333
|
+
@key = data["key"]
|
|
3334
|
+
@value = data["value"]
|
|
3335
|
+
end
|
|
3336
|
+
|
|
3337
|
+
def to_h
|
|
3338
|
+
{
|
|
3339
|
+
"key" => @key,
|
|
3340
|
+
"value" => @value,
|
|
3341
|
+
}.reject { |k, v| v.nil? && !["key"].include?(k) }
|
|
3342
|
+
end
|
|
3343
|
+
|
|
3344
|
+
def to_json(*args)
|
|
3345
|
+
to_h.to_json(*args)
|
|
3346
|
+
end
|
|
3347
|
+
end
|
|
3348
|
+
|
|
3216
3349
|
# Subscription
|
|
3217
3350
|
class Subscription
|
|
3218
3351
|
include TypeHelpers
|
|
@@ -3389,11 +3522,11 @@ module Basecamp
|
|
|
3389
3522
|
# Todo
|
|
3390
3523
|
class Todo
|
|
3391
3524
|
include TypeHelpers
|
|
3392
|
-
attr_accessor :app_url, :bucket, :content, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :assignees, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :completed, :completion_subscribers, :completion_url, :description, :due_on, :position, :starts_on, :steps, :subscription_url
|
|
3525
|
+
attr_accessor :app_url, :bucket, :content, :created_at, :creator, :description_attachments, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :assignees, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :completed, :completion_subscribers, :completion_url, :description, :due_on, :position, :starts_on, :steps, :subscription_url
|
|
3393
3526
|
|
|
3394
3527
|
# @return [Array<Symbol>]
|
|
3395
3528
|
def self.required_fields
|
|
3396
|
-
%i[app_url bucket content created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
3529
|
+
%i[app_url bucket content created_at creator description_attachments id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
3397
3530
|
end
|
|
3398
3531
|
|
|
3399
3532
|
def initialize(data = {})
|
|
@@ -3402,6 +3535,7 @@ module Basecamp
|
|
|
3402
3535
|
@content = data["content"]
|
|
3403
3536
|
@created_at = parse_datetime(data["created_at"])
|
|
3404
3537
|
@creator = parse_type(data["creator"], "Person")
|
|
3538
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
3405
3539
|
@id = parse_integer(data["id"])
|
|
3406
3540
|
@inherits_status = parse_boolean(data["inherits_status"])
|
|
3407
3541
|
@parent = parse_type(data["parent"], "TodoParent")
|
|
@@ -3435,6 +3569,7 @@ module Basecamp
|
|
|
3435
3569
|
"content" => @content,
|
|
3436
3570
|
"created_at" => @created_at,
|
|
3437
3571
|
"creator" => @creator,
|
|
3572
|
+
"description_attachments" => @description_attachments,
|
|
3438
3573
|
"id" => @id,
|
|
3439
3574
|
"inherits_status" => @inherits_status,
|
|
3440
3575
|
"parent" => @parent,
|
|
@@ -3532,11 +3667,11 @@ module Basecamp
|
|
|
3532
3667
|
# Todolist
|
|
3533
3668
|
class Todolist
|
|
3534
3669
|
include TypeHelpers
|
|
3535
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :name, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :app_todos_url, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :completed, :completed_ratio, :description, :groups_url, :position, :subscription_url, :todos_url
|
|
3670
|
+
attr_accessor :app_url, :bucket, :created_at, :creator, :description_attachments, :id, :inherits_status, :name, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :app_todos_url, :bookmark_url, :boosts_count, :boosts_url, :comments_count, :comments_url, :completed, :completed_ratio, :description, :groups_url, :position, :subscription_url, :todos_url
|
|
3536
3671
|
|
|
3537
3672
|
# @return [Array<Symbol>]
|
|
3538
3673
|
def self.required_fields
|
|
3539
|
-
%i[app_url bucket created_at creator id inherits_status name parent status title type updated_at url visible_to_clients].freeze
|
|
3674
|
+
%i[app_url bucket created_at creator description_attachments id inherits_status name parent status title type updated_at url visible_to_clients].freeze
|
|
3540
3675
|
end
|
|
3541
3676
|
|
|
3542
3677
|
def initialize(data = {})
|
|
@@ -3544,6 +3679,7 @@ module Basecamp
|
|
|
3544
3679
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
3545
3680
|
@created_at = parse_datetime(data["created_at"])
|
|
3546
3681
|
@creator = parse_type(data["creator"], "Person")
|
|
3682
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
3547
3683
|
@id = parse_integer(data["id"])
|
|
3548
3684
|
@inherits_status = parse_boolean(data["inherits_status"])
|
|
3549
3685
|
@name = data["name"]
|
|
@@ -3575,6 +3711,7 @@ module Basecamp
|
|
|
3575
3711
|
"bucket" => @bucket,
|
|
3576
3712
|
"created_at" => @created_at,
|
|
3577
3713
|
"creator" => @creator,
|
|
3714
|
+
"description_attachments" => @description_attachments,
|
|
3578
3715
|
"id" => @id,
|
|
3579
3716
|
"inherits_status" => @inherits_status,
|
|
3580
3717
|
"name" => @name,
|
|
@@ -3794,11 +3931,11 @@ module Basecamp
|
|
|
3794
3931
|
# Upload
|
|
3795
3932
|
class Upload
|
|
3796
3933
|
include TypeHelpers
|
|
3797
|
-
attr_accessor :app_url, :bucket, :created_at, :creator, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :byte_size, :comments_count, :comments_url, :content_type, :description, :download_url, :filename, :height, :position, :subscription_url, :width
|
|
3934
|
+
attr_accessor :app_url, :bucket, :created_at, :creator, :description_attachments, :id, :inherits_status, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url, :boosts_count, :boosts_url, :byte_size, :comments_count, :comments_url, :content_type, :description, :download_url, :filename, :height, :position, :subscription_url, :width
|
|
3798
3935
|
|
|
3799
3936
|
# @return [Array<Symbol>]
|
|
3800
3937
|
def self.required_fields
|
|
3801
|
-
%i[app_url bucket created_at creator id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
3938
|
+
%i[app_url bucket created_at creator description_attachments id inherits_status parent status title type updated_at url visible_to_clients].freeze
|
|
3802
3939
|
end
|
|
3803
3940
|
|
|
3804
3941
|
def initialize(data = {})
|
|
@@ -3806,6 +3943,7 @@ module Basecamp
|
|
|
3806
3943
|
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
3807
3944
|
@created_at = parse_datetime(data["created_at"])
|
|
3808
3945
|
@creator = parse_type(data["creator"], "Person")
|
|
3946
|
+
@description_attachments = parse_array(data["description_attachments"], "RichTextAttachment")
|
|
3809
3947
|
@id = parse_integer(data["id"])
|
|
3810
3948
|
@inherits_status = parse_boolean(data["inherits_status"])
|
|
3811
3949
|
@parent = parse_type(data["parent"], "RecordingParent")
|
|
@@ -3837,6 +3975,7 @@ module Basecamp
|
|
|
3837
3975
|
"bucket" => @bucket,
|
|
3838
3976
|
"created_at" => @created_at,
|
|
3839
3977
|
"creator" => @creator,
|
|
3978
|
+
"description_attachments" => @description_attachments,
|
|
3840
3979
|
"id" => @id,
|
|
3841
3980
|
"inherits_status" => @inherits_status,
|
|
3842
3981
|
"parent" => @parent,
|
|
@@ -4123,5 +4262,62 @@ module Basecamp
|
|
|
4123
4262
|
to_h.to_json(*args)
|
|
4124
4263
|
end
|
|
4125
4264
|
end
|
|
4265
|
+
|
|
4266
|
+
# Wormhole
|
|
4267
|
+
class Wormhole
|
|
4268
|
+
include TypeHelpers
|
|
4269
|
+
attr_accessor :app_url, :bucket, :color, :created_at, :creator, :destination_url, :id, :inherits_status, :linked, :parent, :status, :title, :type, :updated_at, :url, :visible_to_clients, :bookmark_url
|
|
4270
|
+
|
|
4271
|
+
# @return [Array<Symbol>]
|
|
4272
|
+
def self.required_fields
|
|
4273
|
+
%i[app_url bucket color created_at creator destination_url id inherits_status linked parent status title type updated_at url visible_to_clients].freeze
|
|
4274
|
+
end
|
|
4275
|
+
|
|
4276
|
+
def initialize(data = {})
|
|
4277
|
+
@app_url = data["app_url"]
|
|
4278
|
+
@bucket = parse_type(data["bucket"], "TodoBucket")
|
|
4279
|
+
@color = data["color"]
|
|
4280
|
+
@created_at = parse_datetime(data["created_at"])
|
|
4281
|
+
@creator = parse_type(data["creator"], "Person")
|
|
4282
|
+
@destination_url = data["destination_url"]
|
|
4283
|
+
@id = parse_integer(data["id"])
|
|
4284
|
+
@inherits_status = parse_boolean(data["inherits_status"])
|
|
4285
|
+
@linked = parse_boolean(data["linked"])
|
|
4286
|
+
@parent = parse_type(data["parent"], "RecordingParent")
|
|
4287
|
+
@status = data["status"]
|
|
4288
|
+
@title = data["title"]
|
|
4289
|
+
@type = data["type"]
|
|
4290
|
+
@updated_at = parse_datetime(data["updated_at"])
|
|
4291
|
+
@url = data["url"]
|
|
4292
|
+
@visible_to_clients = parse_boolean(data["visible_to_clients"])
|
|
4293
|
+
@bookmark_url = data["bookmark_url"]
|
|
4294
|
+
end
|
|
4295
|
+
|
|
4296
|
+
def to_h
|
|
4297
|
+
{
|
|
4298
|
+
"app_url" => @app_url,
|
|
4299
|
+
"bucket" => @bucket,
|
|
4300
|
+
"color" => @color,
|
|
4301
|
+
"created_at" => @created_at,
|
|
4302
|
+
"creator" => @creator,
|
|
4303
|
+
"destination_url" => @destination_url,
|
|
4304
|
+
"id" => @id,
|
|
4305
|
+
"inherits_status" => @inherits_status,
|
|
4306
|
+
"linked" => @linked,
|
|
4307
|
+
"parent" => @parent,
|
|
4308
|
+
"status" => @status,
|
|
4309
|
+
"title" => @title,
|
|
4310
|
+
"type" => @type,
|
|
4311
|
+
"updated_at" => @updated_at,
|
|
4312
|
+
"url" => @url,
|
|
4313
|
+
"visible_to_clients" => @visible_to_clients,
|
|
4314
|
+
"bookmark_url" => @bookmark_url,
|
|
4315
|
+
}.reject { |k, v| v.nil? && !["color", "destination_url"].include?(k) }
|
|
4316
|
+
end
|
|
4317
|
+
|
|
4318
|
+
def to_json(*args)
|
|
4319
|
+
to_h.to_json(*args)
|
|
4320
|
+
end
|
|
4321
|
+
end
|
|
4126
4322
|
end
|
|
4127
4323
|
end
|